2017-03-08 5 views
1

Innerhalb unserer ServiceNow-Installation haben wir ein einfaches neues Anforderungsformular mit zwei Texteingabewerten erstellt. Das Formular sieht wie folgt aus:Abrufen von Anforderungsinformationen von ServiceNow über API

+--------------------------------------------------------+ 
| Get new Computer-request        | 
+--------------------------------------------------------+ 
| model: <text input field>        | 
+--------------------------------------------------------+ 
| organization: <text input field>      | 
+--------------------------------------------------------+ 

Wenn eine neue Anfrage wurde dieses Formular erstellt wurde, können wir alle relevanten Informationen mit der ServiceNow Tabelle API abrufen, indem Sie die folgenden Tabellen abfragt:

  • sc_req_item
  • sc_item_option_mtm
  • sc_item_option
  • sc_cat_item

Beim Ausgeben dieser REST-Aufrufe müssen wir mehrere Filter verwenden, um von einer Tabelle zu einer anderen zu navigieren und nur die neuesten Artikel und nur die Anfrageartikel innerhalb unserer Servicekatalogkategorie zu erhalten.

Idealerweise möchten wir die gesamte Anfrage (Zeitstempel, Benutzer, Eingabewerte) als JSON String in einer einzigen Tabelle speichern. Auf diese Weise müssten wir nur diese einzelne Tabelle abfragen, um alle relevanten Informationen für eine Anfrage abzurufen.

Unterstützt ServiceNow das Generieren/Speichern einer einzelnen JSON-Datei aus dem Anforderungsformular?

Jede Hilfe wird sehr geschätzt.

Antwort

3

Wenn es Ihr Ziel ist, eine einzige Anfrage an die Instanz zu senden, die Ihnen alle Details der Anfrage (über Tabellen) liefert, können Sie besser eine benutzerdefinierte Scripted REST api definieren.

Sie würden ein Skript schreiben, um die gewünschte JSON-Antwort zu definieren, und dann einfach diese API anstelle der Standardtabellenabfrage-APIs aufrufen.

+0

Danke für die Antwort. Das hört sich nach einer realisierbaren Lösung an. Aber wie funktioniert das im Hintergrund? Führt die REST-API mit Skript selbst mehrere Aufrufe an die Tabelle api, um die Informationen dann dem Verbraucher zu präsentieren? Würde dies auch ermöglichen, ein einzelnes JSON-Objekt für eine Anfrage in der CMDB zu speichern? – user152468

+1

Sie führen einen einzelnen Aufruf für Ihren REST-Endpunkt mit benutzerdefinierten Skripts durch und geben eine einzelne Nutzlast zurück, die vollständig darauf basiert, wie Sie Ihre benutzerdefinierte skriptgesteuerte REST-Konfiguration schreiben. In Ihrem Skript würden Sie wahrscheinlich mehrere GlideRecord-Aufrufe machen, die an das "response" -Objekt anhängen, um Ihre JSON-Antwort zu erstellen. Hier ist ein Beispiel: https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/integrate/custom-web-services/reference/r_ScriptedRESTExampleStreamVsLO.html – Joey

+0

Danke @Joey, folgte Ihrem Rat und schrieb eine Antwort mit der Code. – user152468

Verwandte Themen