SAP IdM 7.1 – Neue Funktion im Provisioning auf ein Repository einschränken
Autor: Tobias Harmes | 26. April 2013
In einer Vielsystem-Landschaft ist es nicht unüblich, dass es mehrere Mandanten für ein SAP System gibt. Als Beispiel dient in diesem Beitrag ein SAP FICO System mit drei Mandanten. Ein Mandant repräsentiert ein Land (DE, AT, CH). Für jeden Mandanten gibt es ein Repository im SAP IDM, wobei alle das gleiche Provisioning benutzen. Für das Land DE soll nun im Mandant eine neue Funktion ausgerollt werden, die vorerst nicht in den anderen Mandanten zur Verfügung stehen soll.
Provisioning Task
Da die neue Funktion auch zusätzliche Rollen beinhaltet gibt es eine Erweiterung im Provisioning.
So wie im Bild zu sehen würden alle drei Mandanten im Provisioning Task durch die neue Funktion laufen. Um das auf ein oder auch mehr Mandanten einzuschränken fügen wir einen weiteren Task ein. Hier bietet sich ein Conditional Task an, der zwei Zweige (True und False) besitzt. Mit einem SQL-Statement kann gesteuert werden durch welchen Zweig der Prozess läuft.
In den neuen Task hängen wir im True-Zweig den Task New Function (SAP Module) für die neue Funktionalität.
Damit der Prozess durch den True-Zweig läuft brauchen wir noch das passende SQL-Statement.
Eine Möglichkeit ist folgenden:
SELECT count(1) FROM dual where %REPID% in (<RepositoryID>)
“dual” ist eine interne Tabelle der eingesetzten Oracle Datenbank.
- %REPD% ist Variable die vom Identity Center bereitgestellt wird, um im Provisioning innerhalb des Identity Stores , auf das Repository zurückzugreifen.
- <RepositoryID> ersetzen wir an dieser Stelle mit einer globalen Konstante, die eine oder mehrere RepositoryID’s besitzt auf die geprüft werden soll.
SAP Identity Management
SAP Identity Management unterstützt Sie bei der zentralen Verwaltung von Benutzern, Berechtigungen und Genehmigungs-Workflows im Unternehmen.
Das Statement könnte mit Beispielwerten wie folgt aussehen:
SELECT count(1) FROM dual where 12 in (12)
Das Ergebnis der Query ist gleich “1”, d.h. wahr, wodurch der True-Zweig durchlaufen wird. Ist %REPID% ungleich „12“ ergibt das Statement „0“, d.h. False.
Wir legen also eine globale Konstante „SAP_FICO_REPID_NEW_FUNCTION“ an.
RepositoryID aufnehmen
Die globale Konstante bietet uns gemeinsam mit dem SQL Statement die Möglichkeit eine oder mehrere RepositoryID’s aufzunehmen. Dadurch lassen sich auch Rollout Prozesse, bei denen Funktionen nach und nach in Mandanten bzw. im Identity Center je Repository eingeführt werden, umgesetzen.
Das finale Statement mit der globalen Konstanten sieht wie folgt aus:
SELECT count(1) FROM dual where 12 in (%$glb.MS_FICO_REPID_NEW_FUNCTION)
Eingetragen wird das SQL-Statement in der Konfiguration des Conditional Tasks, gezeigt im nächsten Bild.
Diese Möglichkeit mit dem Conditional Task lässt sich natürlich auch auf andere Bereiche im Provisioning einsetzen.
Was sind Ihre Erfahrungen mit Mandanten im SAP IDM?
(Eingesetzt wird in diesem Beispiel ein SAP NetWeaver Identity Management 7.1 SP5)