Im Definitionsteil für Schematypen (SAPExtendedSchematypes) werden die Schematypen definiert, die im SAP Schema vorhanden sind und mit denen das Konnektorschema erweitert werden soll. Als Name wird der im Attribut Name vergebene Bezeichner verwendet. Dieser Bezeichner muss im erweiterten Konnektorschema eindeutig sein.
Attribut |
Beschreibung |
---|---|
Bem |
Interne Beschreibung. |
Name |
Name des Schematyps im erweiterten Konnektorschema. |
DisplayPattern |
Definition eines Anzeigemusters für die Anzeige der Objekte im Synchronization Editor (beispielsweise im Zielsystembrowser oder bei der Definition der Schemaklassen). (Optional) Es können nur die Spalten verwendet werden, die in der Tabellendefinition geladen wurden (Attribute Key oder Load).
WICHTIG: Jede Spalte, die beim Laden der Objektliste zusätzlich geladen werden muss, erzeugt zusätzliche Last im One Identity Manager. Bei großen Datenmengen kann die Synchronisation dadurch deutlich langsamer werden. Geben Sie hier nur Spalten an, die für die weitere Verarbeitung der Objekte zwingend benötigt werden. |
AddRevisionTimeOffset |
Gibt an, ob an den Revisionszähler die Uhrzeit 23:59:00 angefügt werden soll. (Optional) Sie können das Attribut nutzen, wenn der Revisionszähler nur ein Änderungsdatum und keine Uhrzeit enthält. Damit werden bei der Synchronisation auch solche Objekte berücksichtigt, die nach dem vorherigen Synchronisationslauf, aber noch am selben Tag geändert wurden. |
RevisionProperty |
Name einer Eigenschaft, welche den Revisionszähler enthält. (Optional) |
ListObjectsDefinition |
Funktions- oder Tabellendefinition zum Aufruf einer Objektliste. |
ReadObjectDefinition |
Funktions- oder Tabellendefinition zum Aufruf eines Einzelobjekts. |
WriteObjectDefinition |
Funktionsdefinition zum Schreiben des Objekts. (Optional) |
DeleteObjectDefinition |
Funktionsdefinition zum Löschen des Objekts. (Optional) |
ParentType |
Kontext, in dem der Schematyp gilt. (Optional)
Standardmäßig sind die Schematypen mandantenbezogen (ParentType="SAPMANDANT"). Wenn der neue Schematyp in allen Mandanten eines SAP R/3-Systems gilt, geben Sie den ParentType mit dem Wert "SAPSYSTEM" an. Wenn das Attribut nicht definiert ist, ist der Schematyp mandantenbezogen. |
Eine Schematypdefinition muss mindestens den Aufruf einer Objektliste (Attribut ListObjectsDefinition) enthalten. Dabei kann eine Tabellen- oder eine Funktionsdefinition angegeben werden. Um ein Einzelobjekt aufzurufen (Attribut ReadObjectDefinition), muss zuvor die Objektliste geladen worden sein. Listenaufruf und Einzelobjektaufruf können sich auf unterschiedliche Tabellen beziehen, jedoch müssen die Schlüsselspalten für die Identifikation der Einzelobjekte entweder gleichnamig sein oder per Mapping in der Tabellendefinition für den Einzelobjektaufruf bekannt gegeben worden sein. Im Beispiel unten werden zu einem Objekt aus der Tabelle USR02 die Einzelobjekte aus der Tabelle RSECUSERAUTH ermittelt. Die Schlüsselspalten zur Identifikation der Objekte sind USR02.BNAME und RSECUSERAUTH.UNAME. Die Spalten haben unterschiedliche Namen und werden daher über den Parameter $BNAME$ gemappt.
Es ist möglich, einen Properties–Block zu definieren, in welchem beliebig viele weitere Eigenschaften eines Objekts und die Art des Zugriffs auf diese Eigenschaften deklariert werden können. Eine einzelne Eigenschaft wird mittels Property-Tag definiert, welches die folgenden Attribute haben kann.
Attribut |
Beschreibung |
---|---|
Name |
Name der Eigenschaft. Er muss innerhalb des Schematyps eindeutig sein. |
Description |
Beschreibung der Eigenschaft. |
ListFunction |
Funktion oder Tabelle zum Aufruf aller Werte. |
AddFunction |
Funktion zum Hinzufügen eines Wertes. (Optional) |
DelFunction |
Funktion zum Entfernen eines Wertes. (Optional) |
ReplaceFunction |
Ersetzen des gesamten Inhalts der Eigenschaft. (Optional) |
IsMultivalued |
Angabe, ob die Eigenschaft mehrwertig ist. (Optional)
Wenn das Attribut nicht definiert ist, ist die Eigenschaft nicht mehrwertig. |
Beispiel:
<Tables>
<TABLE Definition = "USR04-Table" TableName="USR04" Key="BNAME,MANDT" X500="CN,OU" SQL="MANDT = sy-mandt" Load="" />
<TABLE Definition = "USR02-Table" TableName="USR02" Key="BNAME" X500="CN" SQL="MANDT = sy-mandt" Load="MANDT,TRDAT" />
<TABLE Definition = "RSECUSERAUTH-SingleUser" TableName="RSECUSERAUTH" Key="AUTH" X500="CN" SQL="UNAME = '$BNAME$'" Load="">
<Mapping>
<Data ParameterName = "$BNAME$" PropertyName = "BNAME" />
</Mapping>
</TABLE>
</Tables>
<Functions>
<Function Definition = "USER GET" FunctionName="BAPI_USER_GET_DETAIL" OutStructure = "" Key ="USERNAME" X500 ="CN">
<Mapping>
<Data ParameterName = "USERNAME" PropertyName = "BNAME" />
</Mapping>
</Function>
<Function Definition = "USER SET" FunctionName="BAPI_USER_CHANGE" OutStructure ="" Key ="USERNAME" X500 ="CN">
<Mapping>
<Data ParameterName = "USERNAME" PropertyName = "BNAME" />
</Mapping>
</Function>
<Function Definition = "USER DEL" FunctionName="BAPI_USER_DELETE" OutStructure ="" Key ="USERNAME" X500 ="CN" >
<Mapping>
<Data ParameterName = "USERNAME" PropertyName = "BNAME" />
</Mapping>
</Function>
<Function Definition = "USER PROFILE SET" FunctionName="BAPI_USER_PROFILES_ASSIGN" OutStructure ="" Key ="USERNAME" X500 ="CN">
<Mapping>
<Data ParameterName = "USERNAME" PropertyName = "BNAME" />
<Data ParameterName = "BAPIPROF~BAPIPROF" PropertyName = "$Value$" />
</Mapping>
</Function>
<Function Definition = "BWProfileDelFkt" FunctionName="/VIAENET/SAPHR_RSECUSERAUT_DEL" OutStructure ="" Key ="ZUSRNAME,ZHIER" X500 ="CN,OU">
<Mapping>
<Data ParameterName = "ZUSRNAME" PropertyName = "BNAME" />
<Data ParameterName = "ZHIER" PropertyName = "$VALUE$" />
</Mapping>
</Function>
<Function Definition = "BWProfileAddFkt" FunctionName="/VIAENET/SAPHR_RSECUSERAUT_ADD" OutStructure ="" Key ="ZUSRNAME,ZHIER" X500 ="CN,OU">
<Mapping>
<Data ParameterName = "ZUSRNAME" PropertyName = "BNAME" />
<Data ParameterName = "ZHIER" PropertyName = "$VALUE$" />
</Mapping>
</Function>
</Functions>
<SAPExtendedSchematypes>
<SAPExtendedSchematype Bem = "alle Benutzer" Name = "UserFunctionTable" DisplayPattern="%BNAME% (%MANDT%)" RevisionProperty="TRDAT" ListObjectsDefinition = "USR02-Table" ReadObjectDefinition ="USER GET" WriteObjectDefinition = "USER SET" DeleteObjectDefinition = "USER DEL">
<Properties>
<Property Name = "SAPBWP" Description="alle BW Profile des Benutzers" ListFunction="RSECUSERAUTH-SingleUser" AddFunction="BWProfileAddFkt" DelFunction="BWProfileDelFkt" ReplaceFunction="" IsMultivalued = "true" />
<Property Name = "USERPROFILE" Description="alle Profile des Benutzers" ListFunction="USR04-Table" AddFunction="" DelFunction="" ReplaceFunction="USER PROFILE SET" IsMultivalued = "true" />
</Properties>
</SAPExtendedSchematype>
<SAPExtendedSchematype Bem = "Asset, Anlagenwerte" Name = "Asset_ANLA" DisplayPattern="%ANLN1% %BUKRS%" AddRevisionTimeOffset="true" RevisionProperty="AEDAT" ListObjectsDefinition = "ANLA-Tabelle" ReadObjectDefinition = "ANLA-Tabelle" InsertObjectDefinition = "" WriteObjectDefinition = "" DeleteObjectDefinition = "" />
</SAPExtendedSchematypes>
Erläuterungen:
Die Liste von Objekten des Schematyps UserFunctionTable wird unter Nutzung der Tabelle USR02 erstellt. Lesen, Schreiben und Löschen erfolgt mit den Funktionen des USER–BAPI, die jeweils als Function deklariert wurden.
Der Schematyp hat einen Properties-Block. Hier werden zwei weitere Eigenschaften definiert, die weder über die Tabellendefinition des Listenaufrufs noch über die Funktionsdefinition des Einzelobjektaufrufs zurückgegeben werden. Definiert wird eine mehrwertige Eigenschaft SAPBWP, deren Werte aus der Tabelle RSECUSERAUTH ermittelt werden. Die Einzelobjekte werden über die Spalten USR02.BNAME und RSECUSERAUTH.UNAME identifiziert. Zum Einfügen und Löschen von Werten werden BAPI-Aufrufe genutzt, die als Funktionen definiert wurden.
Die Eigenschaft Userprofile ist ein Beispiel für eine mehrwertige Eigenschaft, deren Werte beim Lesen aus einer Tabelle stammen (USR04) und die eine Replace–Funktion hat. Daher müssen immer alle Werte bei Änderungen angegeben werden, die in der Eigenschaft verbleiben sollen. Die Schreibfunktion ist die originale Funktion des USER-BAPI zum Setzen von Profilen am Benutzer (Funktionsdefinition für BAPI_USER_PROFILES_ASSIGN). Die Einzelobjekte werden über die Spalten USR02.BNAME und USR04.BNAME identifiziert. Da die Schlüsselspalten den gleichen Namen haben, wird an der Tabellendefinition kein Mapping benötigt.
Der Schematyp Asset_ANLA verwendet den Revisionszähler AEDAT, welcher nur ein Änderungsdatum enthält. An diesen Revisionszähler fügt der Konnektor die Uhrzeit 23:59:00 an (AddRevisionTimeOffset="true").