Chat now with support
Chat with Support

Identity Manager 8.0 - Administrationshandbuch für die Anbindung einer SAP R/3-Umgebung

Verwalten einer SAP R/3-Umgebung Einrichten der Synchronisation mit einer SAP R/3-Umgebung Basisdaten für die Verwaltung einer SAP R/3-Umgebung
Einrichten von Kontendefinitionen Basisdaten zur Benutzerverwaltung Bearbeiten eines Servers Zielsystemverantwortliche
SAP Systeme SAP Mandanten SAP Benutzerkonten SAP Gruppen, SAP Rollen und SAP Profile SAP Produkte Bereitstellen der Daten für die Systemvermessung Berichte über SAP Systeme Anhang: Konfigurationsparameter für die Verwaltung einer SAP R/3-Umgebung Anhang: Standardprojektvorlage für die Synchronisation einer SAP R/3-Umgebung Anhang: Referenzierte SAP R/3-Tabellen und BAPI-Aufrufe Anhang: Beispiel für eine Schemaerweiterungsdatei

Schemaerweiterungsdatei erstellen

In der Schemaerweiterungsdatei werden alle Schematypen definiert, mit denen das KonnektorschemaClosed erweitert werden soll. Die Schemaerweiterungsdatei ist eine XML-Datei, die einen identischen Aufbau wie das Konnektorschema hat. Sie beschreibt die Definitionen für Tabellenabfragen und BAPI-Aufrufe für die neuen Schematypen. Wenn ein neuer SchematypClosed denselben Name hat, wie ein bereits vorhandener Schematyp, wird die Erweiterung ignoriert.

Die Datei gliedert sich in drei Hauptbereiche:

  • Definitionsteil für Tabellen
  • Definitionsteil für Funktionen
  • Definitionsteil für Schematypen

Grundsätzlich müssen zuerst alle Tabellen und Funktionen, die zum Zugriff auf Daten für die zu definierenden Schematypen benötigt werden, deklariert werden. Anschließend können im Definitionsteil für Schematypen die neuen Schematypen definiert werden. Funktionen und Tabellen dürfen dabei in verschiedenen Schematypdefinitionen verwendet werden. Eine Schematypdefinition muss mindestens den Aufruf für eine Objektliste enthalten.

Struktur der Schemaerweiterungsdatei

<?xml version="1.0" encoding="utf-8" ?>

<SAP>

<Tables>

...

</Tables>

<Functions>

...

</Functions>

<SAPExtendedSchematypes>

...

</SAPExtendedSchematypes>

</SAP>

Vordefinierte Variablen

Im Definitionsteil für Tabellen und Funktionen können Variablen verwendet werden. Nutzbar sind alle Systemvariablen, die der SAP-Baustein RFC_READ_TABLE kennt.

Tabelle 17: Beispiele für Systemvariablen
Variable Beschreibung
sy-langu Aktuell gewählte Anmeldesprache.
sy–datum Aktuelles Datum.
sy-mandant Aktueller Mandant der Anmeldung.

Außerdem können Variablen genutzt werden, die der SAP R/3 Konnektor kennt, beispielsweise aus der Definition von Prozessparametern.

Tabelle 18: Vordefinierte Variablen des SAP R/3 Konnektors
Variable Beschreibung
$Value$ Eingabeparameter des One Identity Manager Service-Aufrufs.
$Mandt$ Nummer des aktuellen Mandanten.
$Date$ Aktuelles Datum.
Detaillierte Informationen zum Thema

Tabellen definieren

Im Definitionsteil für Tabellen (Tables) werden die Tabellen und Spalten selektiert, die zum Zugriff auf die Daten für die zu definierenden Schematypen benötigt werden. Der SAP R/3 Konnektor benötigt für jede Tabelle eine Definition zum Laden der schlanken Objektliste. Dafür definieren Sie genau die Spalten, die der SAP R/3 Konnektor bereits beim Laden der zu synchronisierenden Objekte benötigt. Beim Einzelobjektzugriff werden immer alle Spalten der Tabelle geladen.

Tabelle 19: Tabellendefinition

Attribut

Beschreibung

Definition

Symbolischer Name zur Verwendung der Definition.

TableName

Tabellenname in der SAP Datenbank.

Key

Schlüsselbegriffe zur Bildung eines definierten Namens. Die Angabe von mehreren Werten als kommagetrennte Liste ist möglich.

X500

Kürzel für die Schlüsselbegriffe im Attribut Key. Die Angabe von mehreren Werten als kommagetrennte Liste ist möglich.

SQL

Einschränkende Where-Klausel.

Hinweis: Es gibt einige Beschränkungen bei der Auswertung der SQL-Operatoren im SAP R/3-System. Für ein korrektes Ergebnis beachten Sie folgende Regeln:

Distinct

Aufzählung der Spalten, über die insgesamt ein DistinctFilterClosed wirkt (als kommagetrennte Liste).

Load

Spalten, die zur Ladezeit der Objektliste bereits zu laden sind. Diese Spalten können beispielsweise zur Bildung des Anzeigenamens (DisplayPattern) des Schematyps, als Revisionszähler oder als Eingabeparameter in einer Funktion verwendet werden.

Wenn die Objektliste aus einer Tabelle, aber die Einzelobjekte aus einer Funktion geladen werden sollen, müssen hier alle Spalten angegeben werden, die innerhalb des Synchronisationsprojekts im MappingClosed verwendet werden sollen.

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 SynchronisationClosed dadurch deutlich langsamer werden. Geben Sie hier nur Spalten an, die für die weitere Verarbeitung der Objekte zwingend benötigt werden.

Für den Einzelobjektzugriff werden keine Angaben benötigt.

Hinweise
  • Es können mehrere Tabellendefinitionen mit verschiedenen symbolischen Namen, die sich auf dieselbe Tabelle in der SAP Datenbank beziehen, definiert werden.
  • Schlüsselspalten werden immer geladen. Sie sollen daher nicht im Attribut Load angegeben werden.
  • Das Attribut Load wirkt nur beim Laden der Objektliste. Beim Einzelobjektzugriff über eine Tabelle werden immer alle Spalten der Tabelle geladen.
  • Als Operatoren in der Where-Klausel sind zulässig:
    Tabelle 20: Zulässige Operatoren im SQL-Attribut
    Operator Funktion/Beispiel
    EQ =
    NE <>
    GT >
    LT <
    GE >=
    LE <=
    BETWEEN ENDDA BETWEEN '20090101' AND '20090131'
  • Eine Tabellendefinition kann zusätzlich einen Mapping-Block enthalten. Dieser Block dient der Umsetzung von Parametern, die in Where-Klauseln verwendet werden sollen, aber in der Objektliste mit einem anderen Spaltennamen selektiert wurden.

    Im Beispiel würde beim Laden von Einzelobjekten aus der Tabelle RSECUSERAUTH jedes Auftreten der Variable $BNAME$ mit dem aktuellen Wert der Spalte USERNAME ersetzt werden, bevor die SQL-Selektion ausgeführt wird. Die Spalte USERNAME muss zuvor in einer Objektliste geladen worden sein.

    Tabellendefinitionen mit einem Mapping werden in erster Linie zum Laden von Einzelobjekten genutzt.

  • Neben den selbst definierten Parametern können in Where-Klauseln auch vordefinierte Variablen genutzt werden. Weitere Informationen finden Sie unter Schemaerweiterungsdatei erstellen.
Beispiel:

<Tables>

<TABLE Definition = "HRP1001-Table" TableName="HRP1001" Key="OTJID,SUBTY,BEGDA,ENDDA" X500="CN,OU,OU,OU" SQL="MANDT = sy-mandt" Load="VARYF" Distinct="OTJID,SUBTY,VARYF" />

<TABLE Definition = "HRP1000-Table" TableName="HRP1000" Key="OTJID,LANGU,BEGDA,ENDDA" X500="CN,OU,OU,OU" SQL="MANDT = sy-mandt" Load="" Distinct="OTJID" />

<TABLE Definition = "RSECUSERAUTH-SingleUser" TableName="RSECUSERAUTH" Key="AUTH" X500="CN" SQL="UNAME = '$BNAME$'" Load="" >

<Mapping>

<Data ParameterName = "$BNAME$" PropertyName = "USERNAME" />

</Mapping>

</TABLE>

</Tables>

Funktionen definieren

Im Definitionsteil für Funktionen (Functions) werden die Schnittstellen zu den BAPI-Funktionen beschrieben, die zum Zugriff auf die Daten für die zu definierenden Schematypen benötigt werden.

Tabelle 21: Funktionsdefinition
Attribut Beschreibung
Definition Symbolischer Name zur Verwendung der Definition.
FunctionName Funktionsname im SAP R/3-System.
OutStructure Name einer SAP–Struktur, die als Rückgabewert geliefert wird. (Optional)
Key Schlüsselbegriffe zur Bildung eines definierten Namens. Die Angabe von mehreren Werten als kommagetrennte Liste ist möglich.
X500 Kürzel für die Schlüsselbegriffe im Attribut Key. Die Angabe von mehreren Werten als kommagetrennte Liste ist möglich.

Im optionalen MappingClosed-Block wird definiert, wie die Werte an die Parameter des Funktionsaufrufs übergeben werden. Dazu muss vor dem Funktionsaufruf eine Objektliste erzeugt werden, aus deren Eigenschaften die Parameter für den Funktionsaufruf belegt werden können. Im Beispiel unten ist BNAME eine Eigenschaft, die über die Objektliste der Tabelle USR02 ermittelt wird.

An die Parameter können vordefinierte Variablen übergeben werden. Weitere Informationen finden Sie unter Schemaerweiterungsdatei erstellen. Außerdem ist es möglich, einem Funktionsparameter einen festen Wert zu übergeben. Dafür ist die folgende Notation vorgesehen.

<Data ParameterName = "<Name>" PropertyName = "VALUE=<fester Wert>" />

Beispiel:

<Tables>

<TABLE Definition = "USR02-Table" TableName="USR02" Key="BNAME" X500="CN" SQL="MANDT = '$MANDT$'" Load="" />

</Tables>

<Functions>

<Function Definition = "USER GET" FunctionName="BAPI_USER_GET_DETAIL" OutStructure = "" Key ="USERNAME" X500 ="CN">

<Mapping>

<Data ParameterName = "USERNAME" PropertyName = "BNAME" />

</Mapping>

</Function>

</Functions>

Verwandte Themen

Schematypen definieren

Im Definitionsteil für Schematypen (SAPExtendedSchematypes) werden die Schematypen definiert, die im SAP SchemaClosed vorhanden sind und mit denen das KonnektorschemaClosed erweitert werden soll. Als Name wird der im Attribut Name vergebene Bezeichner verwendet. Dieser Bezeichner muss im erweiterten Konnektorschema eindeutig sein.

Tabelle 22: Schematypdefinition
Attribut Beschreibung
Bem Interne Beschreibung.
Name Name des Schematyps im erweiterten Konnektorschema.
DisplayPattern Definition eines Anzeigemusters für die Anzeige der Objekte im Synchronization EditorClosed (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 SynchronisationClosed dadurch deutlich langsamer werden. Geben Sie hier nur Spalten an, die für die weitere Verarbeitung der Objekte zwingend benötigt werden.
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 SchematypClosed 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 MappingClosed 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.

Tabelle 23: Eigenschaftsdefinition
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>

</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.

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating