SOAPMessageV2 – Scoped, Global
Die SOAPMessageV2 Die API stellt Methoden zum Senden einer ausgehenden SOAP-Nachricht mit JavaScript bereit.
Verwenden Sie diese API, um die vom SOAP-Provider zurückgegebene Antwort zu verwalten.
Sie können diese API in bereichsbezogenen Anwendungen oder innerhalb des globalen Bereichs verwenden. Diese API wird in ausgeführt sn_WS Namespace.
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 Endpunkt, Authentifizierung oder MID-Server 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 fortgefahren wird.
- Verwenden Sie diese Methode nur für schnelle Serviceanrufe. Sie sollten diese Methode nicht in großem Umfang aufrufen, egal wie schnell der Service ist.
- Verwenden Sie diese Methode nur, wenn die Zeitüberschreitung sehr kurz ist, andernfalls kann die Instanz zum Stillstand gebracht werden. Es gibt zwei Eigenschaften, die den Zeitüberschreitungszeitraum steuern: glide.http.timeoutUnd glide.http.connection_timeout. Standardmäßig sind diese Zeitüberschreitungen auf 175 Sekunden bzw. 10 Sekunden festgelegt.
- Im Allgemeinen, wenn die Anforderung durchlaufen muss MID-Server, Sie sollten diese Methode nicht verwenden. MID-Server Anforderungen müssen die Warteschlange für den externen Kommunikationskanal (ECC) durchlaufen, bei der es sich um eine asynchrone Warteschlange handelt. Der Thread wird nicht nur von der Anforderung selbst aufgehalten, sondern auch beim Warten auf den MID-Server Um zurück auf die Instanz zu antworten. Wenn MID Servers Sind beteiligt, verwenden Sie asynchrone Aufrufe mit einer Sensor-Business-Regel.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| SOAPResponseV2 | Antwort, die vom SOAP-Provider zurückgegeben wird. |
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-Regel nicht asynchron ausgeführt. Um diese Business-Regel so zu konfigurieren, dass sie asynchron ausgeführt wird, legen Sie fest Wenn Wert bis Asynchron Und hinzufügen Aktuell.Update() Bis zum Ende von Skript . Die Instanz wartet nicht auf eine Antwort des Webservice Providers, wenn eine Nachricht über die ECC-Warteschlange gesendet wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| SOAPResponseV2 – Scoped, Global | Antwort, die vom SOAP-Provider zurückgegeben wird. 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-Webservice-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 HTTP-Header ab, der vom SOAP-Client angegeben wird.
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 und den zugehörigen Werten festgelegt wurden.
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 mindestens einen URIs fest, zu dem umgeleitet werden darf. Die Steuerung der zulässigen ausgehenden URIs reduziert Sicherheitsbedenken und hilft, URL-Umleitungsangriffe zu verhindern, die Anwender auf schädliche Websites senden.
Eine umfassendere Methode zur Umleitung von URIs finden Sie unter UriMatcher – Umfang.
| Name | Typ | Beschreibung |
|---|---|---|
| Uris | Array | Mindestens ein URIs für die Umleitung zulässig. Jeder URI muss im Format „Zeichenfolge“ aufgeführt werden. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie eine Liste von URLs hinzugefügt wird, die für die Weiterleitung 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 die Header der 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 | Anwendername, der bei der Authentifizierung der SOAP-Nachricht verwendet werden soll. |
| 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 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 SOAP-Nachrichtennutzlast geschrieben wird.
Diese Methode gilt nur für SOAP-Nachrichten, die über einen gesendet werden MID-Server. 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-Webservice-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(boolescher Folgeredirect)
Legt den Parameter in der API fest, der automatische HTTP-Umleitungen steuert. Standardmäßig sind automatische Umleitungen deaktiviert.
Weitere Informationen zu HTTP-Umleitungen finden Sie unter Umleitungen in HTTP .
| Name | Typ | Beschreibung |
|---|---|---|
| Folgeumleitung | Boolean | Kennzeichnung, die angibt, ob die API automatisch Umleitungen folgen soll, die bei der Ausführung von auftreten SOAPMessageV2 Rufen Sie an. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie Sie automatische Umleitungen für festlegen und die API die Umleitung verarbeiten lässt.
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
Das folgende Codebeispiel zeigt, dass die automatische Umleitung auf „falsch“ festgelegt ist. Der zurückgegebene Statuscode ist ein Umleitungscode. In diesem Fall müssen Sie die Umleitung innerhalb Ihres Codes verarbeiten.
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 des Webservice Providers wartet, bevor die Anforderung abläuft.
| Name | Typ | Beschreibung |
|---|---|---|
| timeoutMs | Anzahl | Wartezeit in Millisekunden auf eine Antwort des Webservice Providers. |
| 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 oder die Eigenschaft ausgeschlossen ist glide.outbound_http_log.overrideIst „wahr“. Um Protokolle ausgehender Webservices anzuzeigen, navigieren Sie zu an.
| 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 einen gesendet werden soll MID-Server.
Standardmäßig verwendet die SOAP-Nachricht MID-Server Im Datensatz der SOAP-Nachrichtenfunktion angegeben. Verwenden Sie diese Methode, um die Standardeinstellung zu überschreiben.
| Name | Typ | Beschreibung |
|---|---|---|
| midServerName | Zeichenfolge | Name des MID-Server Sie möchten die SOAP-Nachricht über senden. Ihre Instanz muss einen aktiven haben MID-Server Mit dem angegebenen Namen. |
| Typ | Beschreibung |
|---|---|
| void |
SOAPMessageV2 – setMutualAuth(String profileName)
Legt das Protokoll für die gegenseitige 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 Protokollprofils, das für die gegenseitige Authentifizierung verwendet 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.setMutualAuth("auth_profile_name");
SOAPMessageV2 – setRequestBody(String requestBody)
Legt den Textkörper fest, der an den Webservice-Provider 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 | Text 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 Variable 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 Variable 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 die ö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");