Migration existierender Beziehungen (REST API für den SAP Solution Manager)

Tabelle zur Speicherung von Beziehungen zu externen Entitäten

Zur Speicherung von Beziehungen eines ChaRM Objekts mit einer externen Entität wird in der Regel die Tabelle /GAL/SM_CHARM_EX verwendet.

Die Spalten der Tabelle haben dabei folgende Bedeutung:

  • REF_GUID: Global unique ID eines ChaRM Objekts mit dem eine Beziehung eingegangen werden soll. Diese GUID referenziert Einträge aus der Kopftabelle CRMD_ORDERADM_H.

  • EXTERNAL_ID: Eindeutige ID der externen Entität, z. B. die System-ID aus ServiceNow oder der Schlüssel aus Jira.

  • CUSTOM_FIELD1 - CUSTOM_FIELD8: Felder zur Speicherung von Zusatzinformationen, die im Rahmen der Integration benötigt werden.

Ein Standard-Szenario für die Verwendung der kundeneigenen Felder ist zur Speicherung eines Kennzeichens aus welcher Quelle oder aus welcher Integration die Beziehung erstellt wurde. Beispielsweise kann man im CUSTOM_FIELD1 die Werte SERVICE_NOW_CTASK, JIRA_STORY oder ADO_TASK speichern, um darzustellen mit welcher externen Entität eine Beziehung besteht.

Diese Information kann bei Webhook-Definitionen als Filterkriterium verwendet werden, um für unterschiedliche Quellen unterschiedliche Webhook-URLs zu Verwenden.

Migration existierender Beziehungen

Einträge in der Tabelle /GAL/SM_CHARM_EX werden automatisch erstellt, wenn über die REST API ChaRM Objekte erstellt werden. Für den Fall, dass existierende Beziehungen migriert werden sollen, z. B. im Rahmen eines Einführungsprojekts, kann ein Upload-Programm mit Transaktionscode /GAL/SM_CHARM_EXTIDS verwendet werden.

Der Selektionsbildschirm enthält dabei folgende Programmoptionen:

  • Dateiname: Name und Pfad der Upload-Datei mit F4-Wertehilfe.

  • Trennzeichen: Trennzeichen für Feldwerte. Der Default-Wert ist ein Semikolon “;”.

  • Mit Kopfzeile: Kennzeichen, ob die Upload-Datei eine Kopfzeile enthält.

Für die Upload-Datei wird eine Textdatei erwartet. Der Inhalt dieser Textdatei muss für Dateien ohne Kopfzeilen wie folgt aussehen. Die Datei enthält mehrere Zeilen, wobei pro Zeile genau 3 Werte erwartet werden, die mit dem Trennzeichen aus dem Selektionsbildschirm getrennt sind. Der erste Wert muss dabei die GUID oder die Objekt-ID des ChaRM Objekts sein, der zweite Wert die Externe ID und der dritte Wert ein Zeichen aus der Menge [“I”, “M”, “D”] für die Datenbankoperation. I steht für Einfügen, M für Ändern und D für Löschen.

Für Dateien mit Kopfzeile muss folgendes gelten. In der ersten Zeile befinden sich die technischen Spaltennamen der Tabelle /GAL/SM_CHARM_EX, die über die Datei gefüllt werden sollen, wobei deren Reihenfolge egal ist. Es müssen mindestens die Spaltennamen REF_GUID, EXTERRNAL_ID und OPERATION für die Datenbankoperation angegeben werden. Die kundeneigenen Felder mit Spaltennamen CUSTOM_FIELD1 - CUSTOM_FIELD8 sind optional.

Nach der Programmausführung wird ein Protokoll ausgegeben mit Fehlermeldungen und Information über die Anzahl eingefügter, geänderter oder gelöschter Einträge. Die Tabelle /GAL/SM_CHARM_EX wird nicht geändert, wenn bei der Programmausführung mindestens ein Fehler auftritt.

Initiale Synchronisation

Um erstmalig Werte aus Solution Manager mit migrierten externen Entitäten zu synchronisieren, kann die Transaktion /GAL/SM_CHARM_WHKM verwendet werden, um Webhooks für multiple ChaRM Objekte auszuführen. Es ist sinnvoll das Programm im Hintergrund auszuführen, wenn sehr viele Objekte auf einmal synchronisiert werden sollen.

Im Selektionsbildschirm stehen folgende Optionen zur Verfügung:

  • Objekt ID: Selektionsoption für ChaRM Objekt-IDs

  • Anfrageverzögerung in Sekunden: Verzögerung zwischen einzelnen Webhook-Aufrufen in Sekunden

  • BO Layer nicht verwenden: Kennzeichen, ob das ChaRM Objekt nicht via den BO Layer gelesen werden soll, sondern über normale Funktionsbausteine.