Direkte Webservices

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Ein direkter Webservice ist für jede Tabelle im System verfügbar, wenn die richtige Zugriffssteuerungsliste konfiguriert ist.

    Das unterstützte Format der eingehenden Nachricht ist ein XML-SOAP-Dokument im Dokumenten-Stil „wörtlich“ (Document/Literal). Um eine WSDL-Beschreibung und ein XML-Schema für einen direkten Webservice abzurufen, zeigen Sie auf die relative URL <tablename>.do?WSDL . Um beispielsweise die WSDL für die Incident-Tabelle im Online-Demo-System abzurufen, verwenden Sie die folgende URL: https://<Instanzname>.service-now.com/incident.do?WSDL.

    Erweiterte Abfrageparameter

    Mit erweiterten Abfrageparametern können Sie die Rückgabeergebnisse einer SOAP-Abfrage filtern und ändern, wenn Sie verwenden Abrufen , GetKeys , Und GetRecords Funktionen.
    Hinweis:
    Namen von erweiterten Abfrageelementen sind zwei Unterstriche vorangestellt.
    Tabelle : 1. Verfügbare erweiterte Abfrageparameter
    Parameter Beschreibung Beispiel
    __encoded_query Geben Sie eine codierte Abfragezeichenfolge an, die zum Filtern der zurückgegebenen Ergebnisse verwendet werden soll. Das codierte Abfragezeichenfolgenformat ähnelt dem Wert, der in einem URL-Parameter sysparm_query angegeben werden kann. Siehe das Beispiel für die codierte Abfrageerstellung in den Beispielen für RSS-Feed-Generator. <__encoded_query>active=true^category='hardware'</__encoded_query>
    __order_by Weisen Sie die zurückgegebenen Ergebnisse an, nach dem angegebenen Feld sortiert zu werden. <__order_by>priority</__order_by>
    __order_by_desc Weisen Sie die zurückgegebenen Ergebnisse an, nach dem angegebenen Feld absteigender Reihenfolge sortiert zu werden. <__order_by_desc>opened_date</__order_by_desc>
    __exclude_columns Geben Sie eine Liste mit durch Kommas getrennten Feldnamen an, die aus der Ergebnismenge ausgeschlossen werden sollen. <__exclude_columns>sys_created_on,sys_created_by,caller_id,priority</__exclude_columns>
    __limit Begrenzen Sie die Anzahl der zurückgegebenen Datensätze. <__limit>100</__limit>
    __first_row Weisen Sie an, dass die Ergebnisse um diese Anzahl von Datensätzen ab Beginn des Satzes versetzt werden. Bei Verwendung mit __last_row wird ein Ergebnisfenster abgefragt. Die Ergebnisse sind einschließlich der ersten Zeilennummer. <__first_row>250</__first_row>
    __last_row Weisen Sie an, dass die Ergebnisse durch diese Anzahl von Datensätzen ab Beginn des Satzes oder des Werts __start_row begrenzt werden, falls angegeben. Bei Verwendung mit __first_row wird ein Ergebnisfenster abgefragt. Die Ergebnisse sind kleiner als die letzte Zeilennummer und enthalten nicht die letzte Zeile. <__last_row>500</__last_row>
    __use_view Geben Sie eine Formularansicht nach Namen an, um die zurückgegebenen Ergebnisse einzuschränken und zu erweitern. Wenn die Formularansicht tief referenzierte Felder enthält, wie caller_id.email, wird dieses Feld ebenfalls im Ergebnis zurückgegeben. <__use_view>soap_view</__use_view>

    Namespace für direkte Webservices

    Einen eindeutigen Namespace für jede Tabelle angeben

    Die glide.wsdl.definition.use_unique_namespaceDie Eigenschaft stellt sicher, dass die direkte Webservice-WSDL jeder Tabelle eine eindeutige hat targetNamespaceAttribut. Diese Eigenschaft ist Wahr Standardmäßig, was erfordert, dass die direkte Webservice-WSDL einer Tabelle verwendet targetNamespaceWert von http://www.service-now.com/ <table name>. Wenn Falsch (Oder wenn die Eigenschaft nicht vorhanden ist) verwenden alle Tabellen dasselbe targetNamespaceWert von http://www.service-now.com . Da alle Tabellen auch dieselben Vorgangsnamen haben, versucht ein Webservice-Client, mehr als eine zu verbrauchen ServiceNow Webservice kann nicht zwischen Anforderungen zwischen mehreren Tabellen unterscheiden. Mit einer eindeutigen targetNamespaceMit dem Wert können Webservice-Clients Anforderungen zwischen mehreren Tabellen unterscheiden.

    Beispiel: Die direkte Webservice-WSDL für die Incident-Tabelle verwendet dies targetNamepsaceWert:

    <wsdl:definitions xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/"xmlns:tns = "http://www.service-now.com/incident"xmlns:xsd = "http://www.w3.org/2001/XMLSchema"xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/"xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace = "http://www.service-now.com/incident" ><wsdl:types><xsd:schema elementFormDefault = "unqualified"targetNamespace = "http://www.service-now.com/incident" >

    Namespace-Anforderungen festlegen

    Das WSDL-Schema von ServiceNow deklariert standardmäßig ein Attribut von elementFormDefault="unqualified". Dieses Attribut gibt an, ob lokal deklarierte Elemente von qualifiziert werden müssen targetNamepsaceIn einem Instanzdokument. Wenn der Wert dieses Attributs ist Nicht qualifiziert , Dann sollten lokal deklarierte Elemente nicht von qualifiziert werden targetNamepsace. Wenn der Wert dieses Attributs ist Qualifiziert , Dann müssen lokal deklarierte Elemente von qualifiziert werden targetNamepsace.

    Dies ist jedoch nicht kompatibel mit der Art und Weise, wie aus WSDL (z. B. .NET, Axis2, webMethods) generierte Clients das eingebettete Schema verarbeiten. Dadurch wird der Schema-Namespace entfernt, wodurch die Webservice-Antwort nicht mehr analysiert werden kann.

    Um dieses Kompatibilitätsproblem zu beheben, wird eine boolesche Eigenschaft namens verwendet glide.wsdl.schema.UnqualifiedElementFormDefaultWird eingeführt. Der Wert der Eigenschaft ist standardmäßig true. Durch Einstellen auf false können aus WSDL generierte Clients den Rückgabewert des Webservice-Aufrufs analysieren. Sie können diese Eigenschaft auf der Seite „Webservices-Eigenschaften“ unter ändern Systemeigenschaften > Webservicesan.

    Doppelte Servicenamen zulassen

    Standardmäßig sind Servicenamen aus dynamisch generierten WSDLs eindeutig und haben folgendes Format:

    ServiceNow_<table name>

    Um doppelte Servicenamen zuzulassen, können Administratoren festlegen glide.wsdl.unique_service_nameEigenschaft bis Falsch . Erstellen Sie die Eigenschaft, falls sie nicht vorhanden ist.