Identity Manager 8.1 - Administrationshandbuch für das Verbinden mit ServiceNow

Anwendungsfallszenario mit One Identity Manager als Master

Anwendungsfallszenario mit One Identity Manager als Master

In diesem Anwendungsfallszenario wird ein Ticket in ServiceNow für jede Position erstellt, die im One Identity Manager Web Portal mit One Identity Manager als Master angefordert wird.

Dieses Szenario verwendet die folgenden Schritte:

Schritt 1: Servicekategorie aktivieren: Um die Funktionalität zum Erstellen eines ServiceNow-Tickets für eine Leistungsposition zu aktivieren, müssen Sie zuerst die Servicekategorie für ServiceNow aktivieren.

Schritt 2: Serviceanforderungsticket erstellen: Der Prozess SCN_Create ServiceNow ticket erstellt ein Ticket in ServiceNow, basierend auf den in der Prozessaufgabe konfigurierten Parametern. Nachdem ein Ticket erstellt wurde, muss es in ServiceNow aufgelöst werden, da ServiceNow der Master ist.

Schritt 3: Ticketstatus überprüfen: Sobald ein Ticket erstellt wurde, muss es den regulären Entscheidungsprozess durchlaufen, der für das Regal konfiguriert ist, das die Position enthält. Der Prozess SCN_Update 1IM status to ServiceNow wird ausgelöst, wenn eine Änderung am Status der Anforderung vorgenommen wird. Dieser Prozess gewährleistet, dass die JSON-Antwort an ServiceNow gesendet und das Ticket in ServiceNow aktualisiert wird.

HINWEIS: Wenn der Prozess SCN_Update 1IM status to ServiceNow fehlschlägt, wird empfohlen, einen neuen Prozessschritt MailComponent zu erstellen, der es Ihnen ermöglicht, eine E-Mail-Benachrichtigung an den Anforderer zu senden.

Im Falle eines Fehlers, wenn das Ticket für eine Anforderung nicht erstellt wird, wechselt die Anforderung in den Zustand „verweigert“, woraufhin dem Benutzer gestattet wird, erneut für dasselbe Produkt eine Anforderung zu stellen.

Anpassen des ServiceNow-Moduls

Das Anpassen des ServiceNow-Moduls umfasst folgende Schritte:

Erstellen eines ServiceNow-Tickets – Hinzufügen weiterer Attribute bei der Ticketerstellung

Erstellen eines ServiceNow-Tickets – Hinzufügen weiterer Attribute bei der Ticketerstellung

Die ServiceNow-Komponente CreateTicket ermöglicht Ihnen das Erstellen von Tickets.

So erstellen Sie Tickets

  1. Navigieren Sie im Designer zu Prozess-Orchestrierung | ProzesskomponentenSCNComponent | CreateTicket.

  2. Um einen Parameter für die CreateTicket-Aufgabe zu erstellen, klicken Sie mit der rechten Maustaste auf CreateTicket, und wählen Sie Neuer Parameter aus.

    Das Dialogfeld Eigenschaften des Parameters wird angezeigt.

    1. Geben Sie in das Feld Name einen Namen ein, der dem ServiceNow-Parameternamen entspricht. Dieser neue Parameter muss dem ServiceNow-Parameter entsprechen. Wenn Sie beispielsweise den ServiceNow-Parameter resolved_by hinzufügen möchten, geben Sie den Namen für den neuen One Identity Manager-Parameter als resolved_by an.
    2. Geben Sie in das Feld Wertvorlage die Wertvorlage mit folgender Syntax ein: Value = <Zu konfigurierender Wert>. Beispielsweise Value = "test".

Ein Prozessschritt mit der CreateTicket-Aufgabe sendet die konfigurierten Werte an ServiceNow, um ein Ticket zu erstellen. Der Create ServiceNow Ticket-Prozess verwendet diesen Prozessschritt, um ein Ticket zu erstellen.

Manipulieren der Antwort von ServiceNow

Manipulieren der Antwort von ServiceNow

Der Prozessschritt mit der GetTicketStatus-Aufgabe ruft den Status eines Tickets ab.

Der Prozess SCN_Create ServiceNow Ticket ermöglicht es, ein Ticket in ServiceNow zu erstellen und das Feld ServiceNowSystemID der Tabelle PersonWantsOrg zu aktualisieren. Das Feld wird im Prozess SCN_Check_status_of_the_ServiceNow_ticket verwendet, der im Laufe der Zeit aufgerufen wird. Dieser Prozess enthält einen Prozessschritt, der die GetTicketStatus-Aufgabe verwendet, die die ServiceNowSystemID als Verweis auf ServiceNow verwendet und den Status im Feld SNOW Response zurückgibt.

Der Wert von SNOW Response ist eine JSON-Antwort, die dann analysiert wird, um alle gewünschten Felder des ServiceNow-Antwortschemas abzurufen. Diese Felder können später genutzt werden, um den Status des zugeordneten PersonWantsOrg-Eintrags entsprechend zu ändern.

Dieser SNOW Response-Wert wird in dem Skript SCN_UpdatingOneIMTicketStatus verwendet. Dieser wird zuerst in einen NewtonSoft-Objekttyp analysiert, und anschließend werden Werte mithilfe der SelectToken-Funktion entnommen. Weiter unten finden Sie weitere Erläuterungen.

Das Antwortwertskript ist im Folgenden dargestellt:

#If Not SCRIPTDEBUGGER
References Newtonsoft.Json.dll
#End If
'This script is used for updating the status from the ServiceNow ticket to the corresponding PersonWantsOrg entry in OneIM.
'Dieses Skript wird zum Aktualisieren des Status vom ServiceNow-Ticket zum entsprechenden PersonWantsOrg-Eintrag in OneIM verwendet.
Public Overridable Function SCN_UpdatingOneIMTicketStatus( ByVal statusResultsData As String , ByVal UID_PWO As String) As Boolean
Dim PWO As ISingleDbObject = Connection.CreateSingle("PersonWantsOrg", UID_PWO)
Dim snowResponse As Newtonsoft.Json.Linq.JObject = Nothing
Try
snowResponse = Newtonsoft.Json.Linq.JObject.Parse(statusResultsData)
'We can retrieve any value from the ServiceNow Response JSON.
'In this script, we are getting the values for "sys_id", "number", "state", etc.
'A detailed sample of a JSON response can be found in the OneIM Administration Guide.
'Wir können jeden Wert aus dem ServiceNow-Antwort-JSON abrufen.
'In diesem Skript erhalten wir die Werte für "sys_id", "number", "state" usw.
'Ein detailliertes Beispiel einer JSON-Antwort finden Sie im OneIM-Administrationshandbuch.
'Syntax to get a value from the json : snowResponse.SelectToken("<variable name>").ToString()
'Syntax, um einen Wert aus dem json: snowResponse.SelectToken ("<Variablenname>") . ToString ()
 
'Example : snowResponse.SelectToken("sys_id").ToString()
'Beispiel: snowResponse.SelectToken ("sys_id"). ToString ()
 
'Any internal fields or nested fields can be queried in the format:
'Alle internen Felder oder verschachtelten Felder können im folgenden Format abgefragt werden:
'snowResponse.SelectToken("<parent1 variable name>").SelectToken("<Parent2 Or internal field name>")....ToString()
'Example:" snowResponse.SelectToken("resolved_by").SelectToken("link").ToString()
'Beispiel: "snowResponse.SelectToken (" resolved_by "). SelectToken (" link "). ToString ()
 
Dim sysID As String = snowResponse.SelectToken("sys_id").ToString()
Dim incnumber As String = snowResponse.SelectToken("number").ToString()
Dim status As String = snowResponse.SelectToken("state").ToString()
Dim ownerID As String = snowResponse.SelectToken("sys_updated_by").ToString()
Dim close_code As String = snowResponse.SelectToken("close_code").ToString()
Dim close_notes As String = snowResponse.SelectToken("close_notes").ToString()
Dim resolved_at As String = snowResponse.SelectToken("resolved_at").ToString()
 
'The value for the status variable should be modified to the value as configured at the ServiceNow End
'Der Wert für die Statusvariable sollte auf den Wert geändert werden, der im ServiceNow-Ende konfiguriert wurde
 
If status = "6" Then
'On the basis of the state, we can make the necessary decision on the PersonWantsOrg entry.
'Auf der Grundlage des Staates können wir die notwendige Entscheidung über den Eintrag PersonWantsOrg treffen.
'Deutsche Übersetzung des folgenden Anrufs
'Beispiel: PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket 123 wurde erfolgreich vom Benutzer admin geschlossen")
 
PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket#" + incnumber + " was closed successfully by " + ownerID + " " + sysID +"")
PWO.PutValue("SNOWExt",True)
PWO.Save()
End If
Return True
Catch ex As Exception
Return False
End Try
End Function
 

Basierend auf der Konfiguration von Werten auf der Seite von ServiceNow kann sich der Wert des Bestellzustands ändern. Beispielsweise:

If status = "6" Then
'On the basis of the state, we can make the necessary decision on the PersonWantsOrg entry.
'Auf der Grundlage des Staates können wir die notwendige Entscheidung über den Eintrag PersonWantsOrg treffen.
'Deutsche Übersetzung des folgenden Anrufs
'Beispiel: PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket 123 wurde erfolgreich vom Benutzer admin geschlossen")
 
PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket#" + incnumber + " was closed successfully by " + ownerID + " " + sysID +"")
PWO.PutValue("SNOWExt",True)
PWO.Save()
End If

Hier wird nun für eine ServiceNow-Instanz der Zustand 6 als „close“ (schließen) konfiguriert und in ServiceNow zugewiesen. Danach wird der benutzerdefinierte Aufruf „PWO.Custom.CallMethod(“MakeDecision”,””, True,”Message”)“ auf true festgelegt.

Wird von ServiceNow eine Anforderung verweigert, ändert sich der der benutzerdefinierte Aufruf in „PWO.Custom.CallMethod(“MakeDecision”,””, True,”Message”)“ und wird auf false festgelegt.

Stellen Sie nach jedem Entscheidungsschritt sicher, dass die Anweisung PWO.PutValue(“SNOWExt”,True) vorhanden ist, weil ihr Wert in anderen Prozessen verwendet wird.

Die SNOW-Antwort kann verwendet werden, um jedes Feld der ServiceNow-Antwort abzurufen. Diese abgerufenen Werte können verwendet werden, um die Variablen eines Tickets festzulegen. Beispiel:

If status = 6 Then
'On the basis of the state, we can make the necessary decision on the PersonWantsOrg entry.
'Auf der Grundlage des Staates können wir die notwendige Entscheidung über den Eintrag PersonWantsOrg treffen.
'Deutsche Übersetzung des folgenden Anrufs
'Beispiel: PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket 123 wurde erfolgreich vom Benutzer admin geschlossen")
 
PWO.Custom.CallMethod("MakeDecision", "", True, "Ticket#" + incnumber + " was closed successfully by " + ownerID + " " + sysID +"")
PWO.PutValue("SNOWExt",True)
PWO.Save()
End If
 

In diesem Skript kann der Meldungsteil des benutzerdefinierten Aufrufs konfiguriert werden. Wir haben die Meldung so konfiguriert, dass sie Text und Werte der Felder „sys_udpated_by“ und „sys_id“ anzeigt. Diese Werte werden, wie unten gezeigt, vor diesem If-Block abgerufen:

Dim sysID As String = snowResponse.SelectToken("sys_id").ToString()

Dim ownerID As String = snowResponse.SelectToken("sys_updated_by").ToString()

Auf ähnliche Weise können weitere Werte mit folgender Syntax abgerufen werden:

Dim testPropName As type = snowResponse.SelectToken(“ServiceNow field name”).ToString()

Für interne, untergeordnete Felder:

Dim testPropName As type = snowResponse.SelectToken(“ServiceNow parent name”).SelectToken(child1)….ToString()

Diese abgerufenen Werte können auch verwendet werden, um ein Feld des Eintrags „PersonWantsOrg“ festzulegen, z. B. „ReasonHead“.

Allgemeine Syntax: PWO.PutValue(“<PersonWantsOrg field name>”,testPropName)

Beispiel:

Dim closenotes As String = snowResponse.SelectToken(“close_notes”)

PWO.PutValue(“ReasonHead”, closenotes )

HINWEIS:

  • PWO.PutValue ist nur nach der Initialisierung in dem Skript anwendbar.
  • Das Skript SCN_UpdatingOneIMTicketStatus kann nicht direkt geändert werden. Wenn weitere Anpassungen an diesem Skript erforderlich sind, müssen neue benutzerdefinierte Skripte erstellt werden, indem Sie den Inhalt dieses Skripts kopieren. und Änderungen müssen an dem neuen Skript vorgenommen werden. Ändern Sie den Namen der Funktion, und verwenden Sie denselben Namen für das benutzerdefinierte Skript in dem Prozessschritt. Die Prozesskette, die auf dieses Skript verweist, ist SCN_Check status of the ServiceNow ticket. Ändern Sie den Skriptnamen in dem folgenden internen Prozessschritt: Aktualisieren von One Identity Manager mit dem Status behobener Tickets.
Verwandte Dokumente