SOAPMessageV2: Umfang, Global
Die SOAPMessageV2 Die API stellt Methoden zum Senden einer ausgehenden SOAP-Nachricht mit JavaScript bereit.
Verwenden Sie diese API, um die vom SOAP-Anbieter 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()
Instanziiert ein leeres SOAPMessageV2-Objekt.
Wenn Sie ein auf diese Weise instanziiertes Objekt verwenden, müssen Sie eine SOAP-Aktion und einen Endpunkt manuell angeben.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
var sm = new sn_ws.SOAPMessageV2();
SOAPMessageV2 – SOAPMessageV2(Zeichenfolge soapMessage, Zeichenfolge soapFunction)
Instanziiert ein SOAPMessageV2-Objekt aus einem SOAP-Nachrichtendatensatz und einer Funktion, die diesem Datensatz zugeordnet ist.
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. Verfügbare SOAP-Funktionen hängen von der WSDL ab, die vom Webservice Provider bereitgestellt wird. |
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, d. h. 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 hohem Volumen 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 ECC-Warteschlange (External Communication Channel) durchlaufen, bei der es sich um eine asynchrone Warteschlange handelt. Der Thread wird nicht nur von der Anforderung selbst aufgehalten, sondern auch auf warten auf MID-Server Um auf die Instanz zurückzuantworten. Wenn MID Servers Sind beteiligt, verwenden Sie asynchrone Aufrufe mit einer Sensor-Business-Regel.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| SOAPResponseV2 | Vom SOAP-Provider 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 SOAPClient-Business-Regel 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 Wann 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: Bereichsbezogen, global | Vom SOAP-Provider zurückgegebene Antwort. Hinweis: Der Versuch, das SOAP-Antwortobjekt zu verwenden, bevor die Antwort verarbeitet wurde, kann 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(Zeichenfolge 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 einen automatisch vom System festgelegten Header nicht zurückgeben. Um dieser Methode Zugriff auf alle Header zu gewähren, legen Sie die Eigenschaft „Glide.http.log_debug“ auf „wahr“ fest.
| 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 nicht automatisch vom System festgelegte Header zurück. Um diese Methode so zu konfigurieren, dass alle Header zurückgegeben werden, legen Sie die Eigenschaft „Glide.http.log_debug“ auf „wahr“ fest.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Objekt, das den Namen jedes Headers dem zugeordneten 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, an die 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 (Zeichenfolgenname, Zeichenfolge userPass)
Legt Header für Standardauthentifizierung für die SOAP-Nachricht fest.
Das Festlegen von Headern für Standardauthentifizierung mit dieser Methode überschreibt die im SOAP-Nachrichtendatensatz definierten Standardauthentifizierungswerte.
| 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 |
|---|---|
| Ungültig |
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 (Zeichenfolgenkorrelator)
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 angegebene Korrelator füllt aus Agent-Korrelator Feld im ECC-Warteschlangendatensatz für die Antwort. Geben Sie für jede ausgehende Anforderung einen eindeutigen Korrelator an, um die richtigen Ergebnisse in der ECC-Warteschlange der Anforderung zuzuordnen, wenn Sie die asynchrone Automatisierung über einen MID-Server entwerfen.
| Name | Typ | Beschreibung |
|---|---|---|
| Korrelator | Zeichenfolge | Eindeutiger Bezeichner |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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 (Zeichenfolgenname, Zeichenfolgenwert)
Überschreibt einen Wert aus der Datenbank, indem in die SOAP-Nachrichtennutzlast geschrieben wird.
Diese Methode gilt nur für SOAP-Nachrichten, die über 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 der Höchstwert ist SOAP-Endpunkt Feldlänge.
- 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 |
|---|---|
| Ungültig |
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 (Zeichenfolgenendpunkt)
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 den Standard zu überschreiben. Sie müssen diese Methode aufrufen, wenn Sie verwenden SOAPMessageV2() Konstruktor ohne Parameter.
| Name | Typ | Beschreibung |
|---|---|---|
| endpoint | Zeichenfolge | URL des SOAP-Webservice Providers, mit dem Sie eine Schnittstelle herstellen möchten. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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 |
|---|---|---|
| Follow-Weiterleitung | 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 automatische Umleitungen für festgelegt werden und die API die Umleitung verarbeiten kann.
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(Anzahl Zeitüberschreitungen)
Legt fest, wie lange die SOAP-Nachricht auf eine Antwort des Webservice Providers wartet, bevor die Anforderung abläuft.
| Name | Typ | Beschreibung |
|---|---|---|
| Zeitüberschreitungen | Nummer | Wartezeit auf eine Antwort des Webservice Providers in Millisekunden. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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 (Zeichenfolgenebene)
Legt die Protokollebene für diese Nachricht und die entsprechende Antwort fest.
Das Festlegen einer Protokollebene mithilfe der SOAPMessageV2-API überschreibt die im SOAP-Nachrichtendatensatz konfigurierte Protokollebene. Diese Protokollebene gilt möglicherweise nicht, wenn die Endpunktdomäne oder die Eigenschaft ausgeschlossen ist glide.outbound_http_log.overrideIst „wahr“. Navigieren Sie zum Anzeigen ausgehender Webserviceprotokolle zu an.
| Name | Typ | Beschreibung |
|---|---|---|
| level | Zeichenfolge | Protokollebene. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Ungültig |
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(Zeichenfolge midServerName)
Konfiguriert die SOAP-Nachricht, die über eine gesendet werden soll MID-Server.
Standardmäßig verwendet die SOAP-Nachricht MID-Server Im Datensatz der SOAP-Nachrichtenfunktion angegeben. Verwenden Sie diese Methode, um den Standard zu überschreiben.
| Name | Typ | Beschreibung |
|---|---|---|
| Mid-Servername | Zeichenfolge | Name von MID-Server Sie möchten die SOAP-Nachricht über senden. Ihre Instanz muss aktiv sein MID-Server Mit dem angegebenen Namen. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
SOAPMessageV2 – setMutualAuth(Zeichenfolge profileName)
Legt das Protokoll-Profil für die gegenseitige Authentifizierung für die SOAP-Nachricht fest.
Das Festlegen eines Protokollprofils mit dieser Methode überschreibt das für den SOAP-Nachrichtendatensatz ausgewählte Protokollprofil.
| Name | Typ | Beschreibung |
|---|---|---|
| profileName | Zeichenfolge | Name des Protokollprofils, das für die gegenseitige Authentifizierung verwendet werden soll. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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(Zeichenfolge requestBody)
Legt den Textkörper fest, der an den Webservice-Provider gesendet werden soll.
Wenn Sie den Textinhalt mit dieser Methode festlegen, werden Variablen im Textkörper nicht durch Parameter aus dem SOAP-Nachrichtenfunktionsdatensatz ersetzt. Sie müssen explizit alle Werte im SOAP-Nachrichtentext definieren.
| Name | Typ | Beschreibung |
|---|---|---|
| requestBody | Zeichenfolge | Textkörper der SOAP-Nachricht. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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(Zeichenfolge headerName, Zeichenfolge 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 |
|---|---|
| Ungültig |
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 (Zeichenfolge soapAction)
Definiert die SOAP-Aktion, die diese SOAP-Nachricht ausführt.
Die WSDL für Ihren Webservice Provider listet SOAP-Aktionen auf, die Sie ausführen können. Sie müssen diese Methode aufrufen, wenn Sie verwenden SOAPMessageV2() Konstruktor ohne Parameter.
| Name | Typ | Beschreibung |
|---|---|---|
| SOAPAktion | Zeichenfolge | SOAP-Aktion, die diese SOAP-Nachricht ausführt. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
var sm = new sn_ws.SOAPMessageV2();
sm.setSOAPAction("GetQuote");
//construct SOAP message by specifying endpoint and auth
sm.execute();
SOAPMessageV2 – setStringParameter (Zeichenfolgenname, Zeichenfolgenwert)
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 Zeichen mit Escape-Zeichen konvertiert.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der SOAP-Nachrichtenvariablen. |
| Wert | Zeichenfolge | Wert, der der angegebenen Variable zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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 (Zeichenfolgenname, Zeichenfolgenwert)
Legt eine Variable mit dem angegebenen Namen aus dem SOAP-Nachrichtendatensatz auf den angegebenen Wert fest.
Diese Methode entspricht „setStringParameter“, weist jedoch keine reservierten XML-Zeichen auf.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der SOAP-Nachrichtenvariablen. |
| Wert | Zeichenfolge | Wert, der der angegebenen Variable zugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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 (Zeichenfolge KeystoreId, Zeichenfolge KeystoreAlias, Zeichenfolge KeystorePassword, Zeichenfolge 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. |
| Schlüsselalias | Zeichenfolge | Alias, der die öffentlichen und privaten Schlüssel identifiziert. |
| KeystorePassword | Zeichenfolge | Passwort, das dem Schlüsselspeicher-Datensatz zugewiesen ist. |
| Zertifikat-ID | Zeichenfolge | SYS_ID des vertrauenswürdigen Serverzertifikats. |
| Typ | Beschreibung |
|---|---|
| Ungültig |
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");