SOAPMessageV2 – Scoped, Global
Die SOAPMessageV2 -API bietet Methoden zum Senden einer ausgehenden SOAP-Nachricht mithilfe von JavaScript.
Verwenden Sie diese API, um die vom SOAP-Anbieter zurückgegebene Antwort zu verwalten.
Sie können diese API in bereichsbezogenen Anwendungen oder im globalen Bereich verwenden. Diese API wird im Namespace sn_ws ausgeführt.
SOAPMessageV2 – SOAPMessageV2()
Instantiiert ein leeres SOAPMessageV2-Objekt.
Wenn Sie ein Objekt verwenden, das auf diese Weise instantiiert wurde, müssen Sie manuell eine SOAP-Aktion und einen Endpunkt angeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
var sm = new sn_ws.SOAPMessageV2();
SOAPMessageV2 – SOAPMessageV2(String soapMessage, String soapFunction)
Instanziiert ein SOAPMessageV2-Objekt aus einem SOAP-Nachrichtendatensatz und einer diesem Datensatz zugeordneten Funktion.
Werte wie der Endpunkt, die Authentifizierung oder MID-Server die -Einstellungen aus dem SOAP-Nachrichtendatensatz gelten für dieses Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| soapMessage | Zeichenfolge | SOAP-Nachrichtendatensatz, den Sie als Basis für dieses Objekt verwenden möchten. |
| soapFunction | Zeichenfolge | SOAP-Funktion, die Sie ausführen möchten. Die verfügbaren SOAP-Funktionen hängen von der vom Webservice-Provider bereitgestellten WSDL ab. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
SOAPMessageV2 – execute()
Sendet die SOAP-Nachricht an den Endpunkt.
Diese Methode wird synchron aufgerufen, was bedeutet, dass die Skriptausführung wartet, bis der Aufruf abgeschlossen ist, bevor sie fortgesetzt wird.
- Verwenden Sie diese Methode nur für schnelle Serviceanrufe. Sie sollten diese Methode unabhängig von der Geschwindigkeit des Service nicht in einem hohen Volumen aufrufen.
- Verwenden Sie diese Methode nur, wenn die Zeitüberschreitung sehr kurz ist, andernfalls kann die Instanz stillgelegt werden. Es gibt zwei Eigenschaften, die die Zeitüberschreitung steuern, glide.http.timeout und glide.http.connection_timeout. Standardmäßig sind diese Zeitüberschreitungen auf 175 Sekunden bzw. 10 Sekunden festgelegt.
- Wenn die Anforderung MID-Serverdurchlaufen muss, sollten Sie diese Methode im Allgemeinen nicht verwenden. MID-Server Anforderungen müssen die ECC-Warteschlange (External Communication Channel) durchlaufen, die eine asynchrone Warteschlange ist. Der Thread wird nicht nur von der Anforderung selbst aufgehalten, sondern wartet auch auf die Antwort von MID-Server an die Instanz. Wenn MID Servers beteiligt sind, verwenden Sie asynchrone Aufrufe mit einer Sensor-Geschäftsregel.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| SOAPResponseV2 | Vom SOAP-Anbieter zurückgegebene Antwort |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var response = sm.execute(); //Might throw exception if http connection timed out or some issue with sending request itself because of encryption/decryption of password.
SOAPMessageV2 – executeAsync()
Sendet die SOAP-Nachricht an die ECC-Warteschlange (External Communication Channel).
SOAP-Nachrichten in der ECC-Warteschlange werden von der Business Rule SOAPClient verarbeitet.
Standardmäßig wird diese Business Rule nicht asynchron ausgeführt. Um diese Business Rule für die asynchrone Ausführung zu konfigurieren, legen Sie den Wert Wenn auf Async fest, und fügen Sie am Ende des Skriptscurrent.update()hinzu. Beim Senden einer Nachricht über die ECC-Warteschlange wartet die Instanz nicht auf eine Antwort des Webserviceanbieters.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| SOAPResponseV2 – Scoped, Global | Vom SOAP-Anbieter zurückgegebene Antwort Hinweis: Wenn Sie versuchen, das SOAP-Antwortobjekt zu verwenden, bevor die Antwort verarbeitet wurde, kann dies zu einem Zeitüberschreitungsfehler führen. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var response = sm.executeAsync();
SOAPMessageV2 – getEndpoint()
Ruft den Endpunkt für die SOAP-Nachricht ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | URL des SOAP Web Service Providers |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var endpoint = sm.getEndpoint();
SOAPMessageV2 – getRequestBody()
Gibt den Inhalt des SOAP-Nachrichtentexts zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | SOAP-Nachrichtentext. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","StockQuoteSoap.GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var response = sm.execute();
var requestBody = response.getRequestBody();
SOAPMessageV2 – getRequestHeader(String headerName)
Ruft den Wert für einen vom SOAP-Client angegebenen HTTP-Header ab.
Standardmäßig kann diese Methode den Wert für eine vom System automatisch festgelegte Kopfzeile nicht zurückgeben. Um dieser Methode Zugriff auf alle Kopfzeilen zu gewähren, setzen Sie die Eigenschaft „glide.http.log_debug“ auf „true“.
| Name | Typ | Beschreibung |
|---|---|---|
| headerName | Zeichenfolge | Anforderungsheader, für den Sie den Wert abrufen möchten. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert des angegebenen Headers. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var header = sm.getRequestHeader("Accept");
SOAPMessageV2 – getRequestHeaders()
Ruft HTTP-Header ab, die vom SOAP-Client festgelegt wurden, und die zugehörigen Werte.
Diese Methode gibt keine vom System automatisch festgelegten Kopfzeilen zurück. Um diese Methode so zu konfigurieren, dass alle Kopfzeilen zurückgegeben werden, setzen Sie die Eigenschaft „glide.http.log_debug“ auf „true“.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Objekt, das den Namen jedes Headers dem zugehörigen Wert zuordnet. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var requestHeaders = sm.getRequestHeaders();
SOAPMessageV2 – setAllowedRedirectURIs(Array-URIs)
Legt einen oder mehrere URIs fest, zu denen eine Umleitung zulässig ist. Die Kontrolle der zulässigen ausgehenden URIs verringert Sicherheitsbedenken und trägt zur Verhinderung von URL-Umleitungsangriffen bei, die Benutzer auf schädliche Websites leiten.
Eine umfassendere Methode zur Umleitung von URIs finden Sie unter UriMatcher : Bereichsbezogen.
| Name | Typ | Beschreibung |
|---|---|---|
| URIS | Array | Mindestens ein URI für die Umleitung zulässig Jeder URI muss im Zeichenfolgenformat angegeben werden. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie eine Liste von URLs hinzufügen, die für die Umleitung für eine SOAP-Nachrichtenfunktion zulässig sind.
// Redirection URI Allow list
try {
var sm = new sn_ws.SOAPMessageV2('TemperatureConvert', 'TempConvertHttpPost.FahrenheitToCelsius');
sm.setAllowedRedirectURIs(['https://www.w3schools.com/', 'https://www.google.com']);
sm.execute();
} catch(ex) {
var message = ex.getMessage();
}
SOAPMessageV2 – setBasicAuth(String userName, String userPass)
Legt Header für die Standardauthentifizierung für die SOAP-Nachricht fest.
Durch das Festlegen der Basic Authenticationkopfzeilen mit dieser Methode werden die im SOAP-Nachrichtendatensatz definierten Basic Authenticationwerte überschrieben.
| Name | Typ | Beschreibung |
|---|---|---|
| userName | Zeichenfolge | Bei der Authentifizierung der SOAP-Nachricht zu verwendender Anwendername. |
| userPass | Zeichenfolge | Passwort für den angegebenen Anwender. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setBasicAuth("username","password");
SOAPMessageV2 – setEccCorrelator(String correlator)
Ordnet ausgehende Anforderungen und den daraus resultierenden Antwortdatensatz in der ECC-Warteschlange zu.
Diese Methode gilt nur für SOAP-Nachrichten, die über einen MID-Server gesendet werden. Der bereitgestellte Korrelator füllt das Feld Agenten-Korrelator im ECC-Warteschlangendatensatz für die Antwort aus. Stellen Sie für jede ausgehende Anforderung einen eindeutigen Korrelator bereit, um die richtigen Ergebnisse in der ECC-Warteschlange mit der Anforderung zu verknüpfen, wenn Sie asynchrone Automatisierung über einen MID-Server entwerfen.
| Name | Typ | Beschreibung |
|---|---|---|
| Korrelator | Zeichenfolge | Eindeutiger Bezeichner |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setEccCorrelator("unique_id");
SOAPMessageV2 – setEccParameter(String name, String value)
Überschreibt einen Wert aus der Datenbank, indem in die Nutzlast der SOAP-Nachricht geschrieben wird.
Diese Methode gilt nur für SOAP-Nachrichten, die über MID-Servergesendet werden. Verwenden Sie diese Methode, wenn ein Wert aus der SOAP-Nachricht in der Datenbank ungültig ist, z. B. wenn die Endpunkt-URL länger als die maximale SOAP-Endpunkt-Feldlänge ist.
- source: Die Endpunkt-URL.
- name: Die auszuführende SOAP-Nachrichtenfunktion.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des ECC-Parameters. |
| Wert | Zeichenfolge | Wert, der dem angegebenen ECC-Parameter zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setEccParameter("source","http://very.long.endpoint");
SOAPMessageV2 – setEndpoint(String endpoint)
Legt den Endpunkt für die SOAP-Nachricht fest.
Standardmäßig verwendet die SOAP-Nachricht den im SOAP-Nachrichtendatensatz angegebenen Endpunkt. Verwenden Sie diese Methode, um die Standardeinstellung zu überschreiben. Sie müssen diese Methode bei Verwendung des Konstruktors SOAPMessageV2() ohne Parameter aufrufen.
| Name | Typ | Beschreibung |
|---|---|---|
| endpoint | Zeichenfolge | URL des SOAP Web Service Providers, mit dem Sie eine Schnittstelle herstellen möchten. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2();
sm.setEndpoint("http://web.service.endpoint");
SOAPMessageV2 – setFollowRedirect(Boolean FollowRedirect)
Legt den Parameter in der API fest, der die automatischen HTTP-Umleitungen steuert. Standardmäßig sind automatische Umleitungen deaktiviert.
Weitere Informationen zu HTTP-Umleitungen finden Sie unter Umleitungen in HTTP.
| Name | Typ | Beschreibung |
|---|---|---|
| FollowRedirect | Boolean | Kennzeichnung, die angibt, ob die API automatisch allen Umleitungen folgen soll, die bei der Ausführung des SOAPMessageV2- Aufrufs auftreten. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie Sie automatische Umleitungen auf festlegen und die API die Umleitung verarbeiten lassen.
var sMessage = new sn_ws.SOAPMessageV2(); //Create an empty SOAP message
sMessage.setBasicAuth('admin','admin');
sMessage.setSOAPAction('http://www.service-now.com/incident/insert'); //set the SOAP action to perform
sMessage.setEndpoint('http://<instance>.service-now.com/incident.do?SOAP'); //set the web service provider endpoint
sMessage.setRequestBody('<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:inc=\"http://www.service-now.com/incident\"><soapenv:Header/><soapenv:Body><inc:insert><short_description>Test Dynamic SOAP</short_description></inc:insert></soapenv:Body></soapenv:Envelope>');
sMessage.setFollowRedirect(true);
var response = sMessage.execute();
gs.info(response.getStatusCode());
Ausgabe:
200
Im folgenden Codebeispiel ist die automatische Umleitung auf „false“ festgelegt. Der zurückgegebene Statuscode ist ein Umleitungscode. In diesem Fall müssen Sie die Umleitung innerhalb Ihres Codes behandeln.
var sMessage = new sn_ws.SOAPMessageV2(); //Create an empty SOAP message
sMessage.setBasicAuth('admin','admin');
sMessage.setSOAPAction('http://www.service-now.com/incident/insert'); //set the SOAP action to perform
sMessage.setEndpoint('http://<instance>.service-now.com/incident.do?SOAP'); //set the web service provider endpoint
sMessage.setRequestBody('<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:inc=\"http://www.service-now.com/incident\"><soapenv:Header/><soapenv:Body><inc:insert><short_description>Test Dynamic SOAP</short_description></inc:insert></soapenv:Body></soapenv:Envelope>');
sMessage.setFollowRedirect(false);
var response = sMessage.execute();
gs.info(response.getStatusCode());
Ausgabe:
3xx // Redirect status code
SOAPMessageV2 – setHttpTimeout(Number timeoutMs)
Legt fest, wie lange die SOAP-Nachricht auf eine Antwort vom Webservice-Provider wartet, bevor die Anforderung abläuft.
| Name | Typ | Beschreibung |
|---|---|---|
| timeoutMs | Nummer | Wartezeit für eine Antwort vom Webdienstanbieter in Millisekunden. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setHttpTimeout(6000);
SOAPMessageV2 – setLogLevel(String level)
Legt die Protokollebene für diese Nachricht und die entsprechende Antwort fest.
Durch das Festlegen einer Protokollebene mithilfe der SOAPMessageV2-API wird die für den SOAP-Nachrichtendatensatz konfigurierte Protokollebene überschrieben. Diese Protokollebene gilt möglicherweise nicht, wenn die Endpunktdomäne ausgeschlossen ist oder wenn die Eigenschaft glide.outbound_http_log.override auf „wahr“ festgelegt ist. Um Protokolle für ausgehende Webservices anzuzeigen, navigieren Sie zu .
| Name | Typ | Beschreibung |
|---|---|---|
| level | Zeichenfolge | Protokollebene Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setLogLevel("all");
SOAPMessageV2 – setMIDServer(String midServerName)
Konfiguriert die SOAP-Nachricht, die über MID-Servergesendet werden soll.
Standardmäßig verwendet die SOAP-Nachricht den MID-Server, der im SOAP-Nachrichtendatensatz angegeben ist. Verwenden Sie diese Methode, um die Standardeinstellung zu überschreiben.
| Name | Typ | Beschreibung |
|---|---|---|
| midServerName | Zeichenfolge | Name von MID-Server, über den Sie die SOAP-Nachricht senden möchten. Ihre Instanz muss einen aktiven MID-Server mit dem angegebenen Namen haben. |
| Typ | Beschreibung |
|---|---|
| void |
SOAPMessageV2 – setMutualAuth(String profileName)
Legt das Protokollprofil der gegenseitigen Authentifizierung für die SOAP-Nachricht fest.
Durch das Festlegen eines Protokollprofils mit dieser Methode wird das für den SOAP-Nachrichtendatensatz ausgewählte Protokollprofil überschrieben.
| Name | Typ | Beschreibung |
|---|---|---|
| profileName | Zeichenfolge | Name des für die gegenseitige Authentifizierung zu verwendenden Protokollprofils. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setMutualAuth("auth_profile_name");
SOAPMessageV2 – setRequestBody(String requestBody)
Legt den Textinhalt fest, der an den Webdienstanbieter gesendet werden soll.
Wenn Sie den Textkörperinhalt mit dieser Methode festlegen, werden die Parameter aus dem SOAP-Nachrichtenfunktionsdatensatz nicht durch Variablen im Textkörper ersetzt. Sie müssen alle Werte innerhalb des SOAP-Nachrichtentexts explizit definieren.
| Name | Typ | Beschreibung |
|---|---|---|
| requestBody | Zeichenfolge | Textkörper der SOAP-Nachricht. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
var body = "<SOAP message body>";
sm.setRequestBody(body);
SOAPMessageV2 – setRequestHeader(String headerName, String headerValue)
Legt einen HTTP-Header in der SOAP-Nachricht auf den angegebenen Wert fest.
| Name | Typ | Beschreibung |
|---|---|---|
| headerName | Zeichenfolge | Name des Headers. |
| headerValue | Zeichenfolge | Wert, der dem angegebenen Header zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setRequestHeader("Accept","Application/json");
SOAPMessageV2 – setSOAPAction(String soapAction)
Definiert die SOAP-Aktion, die diese SOAP-Nachricht ausführt.
Die WSDL für Ihren Webservice-Provider listet die SOAP-Aktionen auf, die Sie ausführen können. Sie müssen diese Methode bei Verwendung des Konstruktors SOAPMessageV2() ohne Parameter aufrufen.
| Name | Typ | Beschreibung |
|---|---|---|
| soapAction | Zeichenfolge | SOAP-Aktion, die diese SOAP-Nachricht ausführt. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2();
sm.setSOAPAction("GetQuote");
//construct SOAP message by specifying endpoint and auth
sm.execute();
SOAPMessageV2 – setStringParameter(String name, String value)
Legt eine Variable mit dem angegebenen Namen aus dem SOAP-Nachrichtendatensatz auf den angegebenen Wert fest.
Reservierte XML-Zeichen im Wert werden in die entsprechenden Escape-Zeichen umgewandelt.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der SOAP-Nachrichtenvariablen. |
| Wert | Zeichenfolge | Wert, der der angegebenen Variablen zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setStringParameter("symbol","NOW");
SOAPMessageV2 – setStringParameterNoEscape(String name, String value)
Legt eine Variable mit dem angegebenen Namen aus dem SOAP-Nachrichtendatensatz auf den angegebenen Wert fest.
Diese Methode ist äquivalent zu setStringParameter, schließt reservierte XML-Zeichen jedoch nicht in Escape-Zeichen ein.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der SOAP-Nachrichtenvariablen. |
| Wert | Zeichenfolge | Wert, der der angegebenen Variablen zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setStringParameterNoEscape("symbol","NOW");
SOAPMessageV2 – setWSSecurity(String keystoreId, String keystoreAlias, String keystorePassword, String certificateId)
Legt Webservice-Sicherheitswerte für die SOAP-Nachricht fest.
Durch das Festlegen von Sicherheitswerten mit dieser Methode werden Webservice-Sicherheitswerte überschrieben, die für den SOAP-Nachrichtendatensatz definiert sind.
| Name | Typ | Beschreibung |
|---|---|---|
| keystoreId | Zeichenfolge | Sys_id des zu verwendenden Java- oder PKCS12-Schlüsselspeichers. |
| keystoreAlias | Zeichenfolge | Alias, der den öffentlichen und privaten Schlüssel identifiziert. |
| keystorePassword | Zeichenfolge | Passwort, das dem Schlüsselspeicher-Datensatz zugewiesen ist. |
| certificateId | Zeichenfolge | Sys_id des vertrauenswürdigen Serverzertifikats. |
| Typ | Beschreibung |
|---|---|
| void |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
sm.setWSSecurity("70d65e074f3812001f6eac118110c71a","Quote keys","UXr82cqX75Z7MaSa+EyjGA==","ba969a074f3812001f6eac118110c76d");