JSON-Datenabruf-API

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Abfragen von Daten durch Ausgabe einer HTTPS-GET-Anforderung an die Instanz.

    Standardmäßig wird eine GET-Anforderung als get-Funktion interpretiert, wenn ein sysparm_sys_id -Parameter vorhanden ist. Andernfalls wird sie als Funktion „getRecords“ interpretiert. Sie können auch einen URL-Parameter sysparm_action=getangeben. Abfrageantworten werden immer durch einen Datensatz-Hash von Datensätzen gekapselt, wobei die Werte jedes einzelnen Datensatzes nach Feldnamen gehasht werden.

    Rückgabewert für Referenzvariablen

    Wenn Sie einen Datensatz von einer Funktion „get“ oder „getRecords“ erhalten, werden alle mit diesem Datensatz verknüpften Felder zurückgegeben. Die Felder sind häufig Referenzfelder, die eine sys_id für eine andere Tabelle enthalten. Das grundlegende Systemverhalten ist das Zurückgeben des sys_id-Werts für diese Felder. Verwenden Sie eine der folgenden Optionen, um den Anzeigewert für das Feld zurückgeben zu lassen:
    • Fügen Sie die Eigenschaft „glide.json.return_displayValue“ zu den Systemeigenschaften hinzu. Jede JSON-Anforderung gibt einen Anzeigewert für ein Referenzfeld zurück.
    • Fügen Sie den Parameter displayvalue=true der JSON-Anforderungs-URL hinzu, und JSON-Anforderungen mit diesem Parameter geben einen Anzeigewert anstelle der sys_id für ein Referenzfeld zurück. Die JSON-URL würde folgendermaßen aussehen:
      https://<instance name>.service-now.com/incident.do?JSON&sysparm_action=getRecords&sysparm_query=active=true^category=hardware&displayvalue=true
      
    • Fügen Sie den Parameter displayvalue=all der JSON-Anforderungs-URL hinzu, und JSON-Anforderungen mit diesem Parameter geben einen Anzeigewert und die sys_id für ein Referenzfeld zurück. Dem Antwortelementnamen für das Anzeigewertfeld wird das Präfix dv_ vorangestellt, zum Beispiel dv_caller_id.

    Ruft Variablen ab

    Verwenden Sie den Abfrageparameter displayvariables, um ein Array von Variablen zurückzugeben, die einem Elementdatensatz Servicekatalog zugeordnet sind. Um Variablen abzurufen, fügen Sie der JSON-Anforderungs-URL den Parameter displayvariables=true hinzu. Hier ist beispielsweise eine URL zum Abrufen eines Datensatzes im JSON-Format, das Servicekatalog -Variablen enthält:

    https://<your-instance>.servicenow.com/sc_req_item.do?JSONv2&sysparm_action=getRecords&sysparm_query=sys_id=5018da81742bd410f8771974894916fe&displayvariables=true
    Hier ist die Beispielantwort, die einen mehrzeiligen Variablensatz aus dem Datensatz anzeigt:
    {
       "records":[
          {
             …
             "variables":[
                {
                   "display_value":[
                      {
                         "quantity":"1",
                         "color":"Black",
                         "device_type":"Apple iPhone 8",
                         "storage":"64GB"
                      },
                      {
                         "quantity":"1",
                         "color":"Black",
                         "device_type":"Apple iPhone 8",
                         "storage":"64GB"
                      }
                   ],
                   "columns_meta":[
                      {
                         "name":"device_type",
                         "label":"Device Type",
                         "id":"da7d3f3241411300964ff05369414eca",
                         "type":5,
                         "order":"0"
                      },
                      {
                         "name":"storage",
                         "label":"Storage",
                         "id":"691e337241411300964ff05369414e31",
                         "type":5,
                         "order":"1"
                      },
                      {
                         "name":"color",
                         "label":"Color",
                         "id":"e89fb77241411300964ff05369414e74",
                         "type":5,
                         "order":"2"
                      },
                      {
                         "name":"quantity",
                         "label":"Quantity",
                         "id":"2d5f737241411300964ff05369414eaf",
                         "type":5,
                         "order":"3"
                      }
                   ],
                   "max_rows":50,
                   "name":"mobile_devices_set",
                   "id":"e84d3f3241411300964ff05369414e3e",
                   "type":"one_to_many",
                   "value":[
                      {
                         "quantity":"1",
                         "color":"black",
                         "device_type":"iphone8",
                         "storage":"64GB"
                      },
                      {
                         "quantity":"1",
                         "color":"black",
                         "device_type":"iphone8",
                         "storage":"64GB"
                      }
                   ],
                   "row_count":2
                },
                {
                   "question_text":"Department",
                   "name":"department",
                   "type":8,
                   "value":"Development",
                   "order":100
                },
                {
                   "question_text":"Who is this request for?",
                   "name":"requested_for",
                   "type":8,
                   "value":"System Administrator",
                   "order":100
                },
                {
                   "question_text":"When do you need this?",
                   "name":"needed_by",
                   "type":5,
                   "value":"Today",
                   "order":200
                },
                {
                   "question_text":"Business Justification",
                   "name":"business_justification",
                   "type":2,
                   "value":"Example justification",
                   "order":200
                }
             ],
           …
          }
       ]
    }

    Die Schlüssel in der Antwort sind wie folgt definiert:

    Schlüssel Beschreibung
    display_value Anzeigewert der mehrzeiligen Variablensatzfrage. Wird nur bei mehrzeiligen Variablensätzen zurückgegeben.
    columns_meta Array von mehrzeiligen Variablensatz-Metadaten, z. B. sys_id und Name des Felds. Wird nur zurückgegeben, wenn die Variable mehrere Felder enthält.
    max_rows Maximal zulässige Zeilen im mehrzeiligen Variablensatz. Wird nur bei mehrzeiligen Variablensätzen zurückgegeben.
    Name Name der Frage.
    id Sys_id des mehrzeiligen Variablensatzes. Wird nur bei mehrzeiligen Variablensätzen zurückgegeben.
    type Typ der Frage.
    Wert Fragewert.
    row_count Aktuelle Anzahl der Zeilen im mehrzeiligen Variablensatz. Wird nur bei mehrzeiligen Variablensätzen zurückgegeben.
    Fragetext Fragebezeichnung. Wird nur bei einzeiligen Variablensätzen zurückgegeben.
    Bestellen Reihenfolge der Frage.

    Die Reihenfolge der Datensätze steuern

    Sie können die Reihenfolge festlegen, in der die Datensätze in der JSON-Antwort angezeigt werden. Um eine Reihenfolge festzulegen, verwenden Sie die Klauseln ORDERBY oder ORDERBYDESC in der URL-kodierten Abfrage. Beispiel:

    sysparm_query=active=true^ORDERBYnumber^ORDERBYDESCcategory

    filtert alle aktiven Datensätze, und sortiert die Ergebnisse zuerst in aufsteigender Reihenfolge nach Nummer und dann in absteigender Reihenfolge nach Kategorie. Weitere Informationen finden Sie unter Codierte Abfragezeichenfolgen.

    getKeys

    Ruft die sys_id von mehreren Datensätzen ab, indem eine codierte Abfragezeichenfolge im Parameter sysparm_query angegeben wird.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getKeys&sysparm_query=active=true^category=hardware
    

    get

    Rufen Sie einen Datensatz direkt ab, indem Sie die sys_id in einem Parameter sysparm_sys_id angeben.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_sys_id=9d385017c611228701d22104cc95c371
    
    Optional können Sie auch den Parameter sysparm_action angeben:
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=get&sysparm_sys_id=9d385017c611228701d22104cc95c371
    

    getRecords

    Ruft alle Datensätze ab, indem eine codierte Abfragezeichenfolge im Parameter sysparm_query angegeben wird.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getRecords&sysparm_query=active=true^category=hardware