Methodendefinitionen
Mit dem <Functions>-Tag ist es innerhalb einer Objektdefinition möglich, Methoden zu definieren, die für Objekte des Schematyps ausführbar sind. Jede Methode führt beliebig viele SQL-Funktionen aus.
Die Benennung des XML-Tags für eine Methode bestimmt den Methodennamen. Innerhalb der Methoden-Sektion werden eine oder mehrere Funktionen definiert. Diese Funktionen werden in einer festgelegten Reihenfolge ausgeführt, wenn an einem Objekt des Schematyps die entsprechende Methode aufgerufen wird.
Struktur der Methodendefinitionen
<Functions>
<Insert>
<Function ... OrderNumber="1" >
</Function>
<Function ... OrderNumber="2" >
</Function>
</Insert>
<Delete>
<Function ...>
</Function>
</Delete>
</Functions>
Im Beispiel hat der Schematyp zwei Methoden, Insert und Delete. Beim Aufruf von Insert sind zwei Funktionen auszuführen, die durch ihr OrderNumber-Attribut in eine feste Reihenfolge gebracht werden. Beim Aufruf der Delete-Methode wird nur eine definierte Funktion ausgeführt.
Funktionsdefinitionen
Die <Function>-Sektion definiert Name, Ausführungsreihenfolge und Parametrisierung von SQL-Funktionsaufrufen.
Tabelle 12: Attribute einer Funktionsdefinition
Name |
Name der Funktion. Vollständige Notation in der Form <Schemaname>.<Paketname>.<Funktionsname>. |
OrderNumber |
Numerische Angabe der Ausführungsreihenfolge. Der Standardwert ist 1. |
Eine Sonderstellung nimmt dabei das Funktionspaket ein, welches Funktionen zur Modifikation von Benutzerkonten bereitstellt (APPS.FND_USER_PKG). Aufgrund der Berechtigungseinschränkungen bei der Ausführung von Funktionen dieses Paketes kann es notwendig sein, ein Wrapper-Paket zu implementieren, welches den Aufrufkontext ändert. Der Name dieses Wrapper-Paketes kann in der Verbindungskonfiguration gespeichert werden. Er wird zur Laufzeit vor der Ausführung der Funktion in dem SQL-Block ersetzt. Die symbolische Variable für den definierten Paketnamen lautet $ebsUserPackageName$. Weitere Informationen finden Sie unter Initiales Synchronisationsprojekt erstellen.
Beispiel
<Function Name="$ebsUserPackageName$.CreateUser" OrderNumber="1" >
Parameterdefinitionen
Die <Parameter>-Tags definieren die an eine Funktion zu übergebenden Parameter, deren Typ und die Quelle des Parameterwertes.
Tabelle 13: Attribute einer Parameterdefinition
Name |
Name des Parameters in der Funktionsdefinition. |
PropertyName |
Name der Objekteigenschaft, deren Wert übergeben werden soll (vollständige Notation).
- ODER -
Festwert, wenn PropertyType="FIX" definiert ist. |
PropertyType |
Datentyp. Mögliche Werte sind:
- CHAR: Zeichenkette.
- DATE: Datumswert. Der Wert wird als gültiges Datum konvertiert.
- FIX: Fester Stringwert. Es wird immer der im Attribut PropertyName angegebene Festwert übergeben.
- NUM: Numerischer Wert. Die Konvertierung lässt keine alphanumerischen Zeichen zu.
|
Mandatory |
Gibt an, ob der Parameter ein Pflichtparameter ist. Der Standardwert ist false. |
NullValue |
Wert oder Zeichenkette, die als Null-Wert übergeben werden soll.
Diese Angabe ist notwendig, um Parameter mit speziell in Funktionspaketen definierten oder in Oracle Database allgemein bekannten Werten als Null-Repräsentation zu bestücken. Die Angabe dieses Attributes ist optional. Als Standard wird bei Erkennung eines Null-Wertes auf einem Pflichtparameter die Zeichenkette null übergeben. Ein optionaler Parameter wird in diesem Fall nicht an den Funktionsaufruf übergeben.
In drei Fällen ist eine Null-Wert-Definition sinnvoll:
- Verwendung einer im Funktionspaket definierten Konstante, beispielsweise $ebsUserPackageName$.null_number. Hierbei würde der Name des in der Verbindungskonfiguration gespeicherten Funktionspaketes zur Benutzerkonten-Modifikation eingesetzt, sofern der variable Ausdruck $ebsUserPackageName$ erkannt wird.
- Verwendung einer in der Oracle Database definierten symbolischen Konstante, beispielsweise sysdate.
- Verwendung eines speziellen Ausdrucks ungleich null, beispielsweise to_date('-2', 'J').
|
Beispiel
<Parameter Name="start_date" PropertyName="APPS.FND_USER_RESP_GROUPS_DIRECT.START_DATE" PropertyType="DATE" Mandatory="TRUE" NullValue="sysdate" />
Symbolische Variablen in Where-Klauseln
Zu jeder Konfiguration einer Datenbankverbindung zu einer Oracle E-Business Suite gehört die Einstellung der Sprachversion. Die aus der Datenbank geladenen Texte sollen in der eingestellten Sprachversion geliefert werden, sofern die Texte übersetzt sind. Diese Einstellung kann mit der symbolischen Variable $SYSLANGU$ in Where-Klauseln genutzt werden. Die Variable wird vor der Ausführung der SQL-Anweisung durch den tatsächlich eingestellten Wert ersetzt.
Beispiel
<Table Name="FND_SECURITY_GROUPS_TL" Schema="APPLSYS" APK="" USN="" WhereClause="APPLSYS.FND_SECURITY_GROUPS_TL.LANGUAGE='$SYSLANGU$'" JoinParentColumn="APPLSYS.FND_SECURITY_GROUPS.SECURITY_GROUP_ID" JoinChildColumn="APPLSYS.FND_SECURITY_GROUPS_TL.SECURITY_GROUP_ID" >