SOAPMessageV2 : dans le champ d’application, global
L’API SOAPMessageV2 fournit des méthodes pour envoyer un message SOAP sortant en utilisant JavaScript.
Utilisez cette API pour gérer la réponse renvoyée par le fournisseur SOAP.
Vous pouvez utiliser cette API dans des applications incluses dans le périmètre ou dans le périmètre global. Cette API s’exécute dans l’espace de noms sn_ws .
SOAPMessageV2 : SOAPMessageV2()
Instancie un objet SOAPMessageV2 vide.
Lorsque vous utilisez un objet instancié de cette façon, vous devez spécifier manuellement une action SOAP et un point de terminaison.
| Nom | Type | Description |
|---|---|---|
| Néant |
var sm = new sn_ws.SOAPMessageV2();
SOAPMessageV2 : SOAPMessageV2 (String soapMessage, String soapFunction)
Instancie un objet SOAPMessageV2 à partir d’un enregistrement de message SOAP et une fonction associée à cet enregistrement.
Les valeurs telles que le point de terminaison, l’authentification ou Serveur MID les paramètres de l’enregistrement du message SOAP s’appliquent à cet objet.
| Nom | Type | Description |
|---|---|---|
| soapMessage | Chaîne | Enregistrement de message SOAP que vous souhaitez utiliser comme base de cet objet. |
| soapFunction | Chaîne | Fonction SOAP que vous souhaitez exécuter. Les fonctions SOAP disponibles dépendent du WSDL fourni par le fournisseur de services Web. |
var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
SOAPMessageV2 - exécuter()
Envoie le message SOAP au point de terminaison.
Cette méthode appelle de manière synchrone, ce qui signifie que l’exécution du script attend la fin de l’appel avant de continuer.
- Utilisez cette méthode uniquement pour les appels de service rapides. Vous ne devez pas appeler cette méthode en grand volume, quelle que soit la rapidité du service.
- N’utilisez cette méthode que lorsque le délai d’expiration est très court, sinon l’instance peut être arrêtée. Deux propriétés contrôlent le délai glide.http.timeout d’expiration : et glide.http.connection_timeout. Par défaut, ces délais sont définis sur 175 secondes et 10 secondes respectivement.
- En règle générale, si la demande doit passer par le Serveur MID, vous ne devez pas utiliser cette méthode. Serveur MID les demandes doivent passer par la file d’attente ECC (External Communication Channel), qui est une file d’attente asynchrone. Le thread n’est pas seulement retardé par la requête elle-même, mais il est également retardé en attendant qu’il Serveur MID réponde à l’instance. Le cas échéant Serveurs MID , utilisez des appels asynchrones avec une règle métier de capteur.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| SOAPResponseV2 | Réponse renvoyée par le fournisseur SOAP. |
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()
Envoie le message SOAP à la file d’attente ECC (External Communication Channel).
Les messages SOAP de la file d’attente ECC sont traités par la règle métier SOAPClient.
Par défaut, cette règle métier ne s’exécute pas de façon asynchrone. Pour configurer l’exécution asynchrone de cette règle métier, définissez la valeur Quand sur Async et ajoutez current.update() à la fin du script. L’instance n’attend pas une réponse du fournisseur de service Web lors de l’envoi d’un message via la file d’attente ECC.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| SOAPResponseV2 : dans le champ d’application, global | Réponse renvoyée par le fournisseur SOAP. Remarque : Tenter d’utiliser l’objet de réponse SOAP avant que la réponse n’ait été traitée peut entraîner une erreur de délai d’expiration. |
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()
Obtient le point de terminaison du message SOAP.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | URL du fournisseur de service Web SOAP. |
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()
Renvoie le contenu du corps du message SOAP.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Corps du message SOAP. |
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)
Obtient la valeur d’un en-tête HTTP spécifié par le client SOAP.
Par défaut, cette méthode ne peut pas renvoyer la valeur d’un en-tête défini automatiquement par le système. Pour accorder l’accès à cette méthode à tous les en-têtes, définissez la propriété glide.http.log_debug sur vrai.
| Nom | Type | Description |
|---|---|---|
| headerName | Chaîne | En-tête de demande pour lequel vous souhaitez obtenir la valeur. |
| Type | Description |
|---|---|
| Chaîne | Valeur de l’en-tête spécifié. |
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()
Obtient les en-têtes HTTP définis par le client SOAP et les valeurs associées.
Cette méthode ne renvoie pas les en-têtes définis automatiquement par le système. Pour configurer cette méthode de retour de tous les en-têtes, définissez la propriété glide.http.log_debug sur vrai.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Objet qui mappe le nom de chaque en-tête à la valeur associée. |
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)
Définit un ou plusieurs URI pouvant être redirigés. Le contrôle des URI sortants autorisés réduit les problèmes de sécurité et permet d’éviter les attaques de redirection d’URL qui envoient les utilisateurs vers des sites malveillants.
Pour un moyen plus complet de rediriger les URI, reportez-vous à la section UriMatcher - Dans le champ d’application.
| Nom | Type | Description |
|---|---|---|
| Uri | Tableau | Un ou plusieurs URI autorisés pour la redirection. Chaque URI doit être répertorié au format « chaîne ». |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant montre comment ajouter une liste d’URL autorisées pour la redirection d’une fonction de message SOAP.
// 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)
Définit les en-têtes d’authentification de base pour le message SOAP.
La définition d’en-têtes d’authentification de base à l’aide de cette méthode remplace les valeurs d’authentification de base définies dans l’enregistrement du message SOAP.
| Nom | Type | Description |
|---|---|---|
| userName | Chaîne | Nom d’utilisateur à utiliser lors de l’authentification du message SOAP. |
| userPass | Chaîne | Mot de passe de l’utilisateur spécifié. |
| Type | Description |
|---|---|
| nul |
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(Corrélateur de chaîne)
Associe les demandes sortantes et l’enregistrement de réponse résultant dans la file d’attente ECC.
Cette méthode s’applique uniquement aux messages SOAP envoyés via un serveur MID. Le corrélateur fourni renseigne le champ Agent corrélateur sur l’enregistrement de file d’attente ECC pour la réponse. Fournissez un corrélateur unique pour chaque demande sortante afin d’associer les résultats corrects dans la file d’attente ECC à la demande lors de la conception d’une automatisation asynchrone via un serveur MID.
| Nom | Type | Description |
|---|---|---|
| corrélateur | Chaîne | Identificateur unique |
| Type | Description |
|---|---|
| nul |
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(nom de chaîne, valeur de chaîne)
Remplace une valeur de la base de données en écrivant dans la charge utile du message SOAP.
Cette méthode ne s’applique qu’aux messages SOAP envoyés par l’intermédiaire d’un Serveur MIDfichier . Utilisez cette méthode lorsqu’une valeur du message SOAP dans la base de données n’est pas valide, par exemple lorsque l’URL du point de terminaison est plus longue que la longueur maximale du champ du point de terminaison SOAP .
- source: URL du point de terminaison.
- name: fonction de message SOAP à exécuter.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du paramètre ECC. |
| valide | Chaîne | Valeur à affecter au paramètre ECC spécifié. |
| Type | Description |
|---|---|
| nul |
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(point de terminaison de chaîne)
Définit le point de terminaison du message SOAP.
Par défaut, le message SOAP utilise le point de terminaison spécifié dans l’enregistrement du message SOAP. Utilisez cette méthode pour remplacer la valeur par défaut. Vous devez appeler cette méthode lorsque vous utilisez le constructeur SOAPMessageV2() sans paramètres.
| Nom | Type | Description |
|---|---|---|
| endpoint | Chaîne | URL du fournisseur de service Web SOAP avec lequel vous souhaitez vous interfacer. |
| Type | Description |
|---|---|
| nul |
var sm = new sn_ws.SOAPMessageV2();
sm.setEndpoint("http://web.service.endpoint");
SOAPMessageV2 - setFollowRedirect(booléen followRedirect)
Définit le paramètre dans l’API qui contrôle les redirections HTTP automatiques. Par défaut, les redirections automatiques sont désactivées.
Pour plus d’informations sur les redirections HTTP, consultez Redirections dans HTTP.
| Nom | Type | Description |
|---|---|---|
| followRedirect | Booléen | Marqueur indiquant si l’API doit suivre automatiquement toutes les redirections qui surviennent lors de l’exécution de l’appel SOAPMessageV2 . Valeurs valides :
|
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre comment activer les redirections automatiques et faire en sorte que l’API gère la redirection.
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());
Sortie :
200
L’exemple de code suivant montre la redirection automatique définie sur false. Le code d’état renvoyé est un code de redirection. Dans ce cas, vous devez gérer la redirection dans votre code.
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());
Sortie :
3xx // Redirect status code
SOAPMessageV2 : setHttpTimeout(Number timeoutMs)
Définit le délai pendant lequel le message SOAP attend une réponse du fournisseur de service Web avant que la demande n’expire.
| Nom | Type | Description |
|---|---|---|
| timeoutMss | Numéro | Durée d’attente pour une réponse du fournisseur de service Web, en millisecondes. |
| Type | Description |
|---|---|
| nul |
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(niveau de chaîne)
Définit le niveau de journalisation de ce message et de la réponse correspondante.
La définition d’un niveau de journal à l’aide de l’API SOAPMessageV2 remplace le niveau de journal configuré sur l’enregistrement du message SOAP. Ce niveau de journal peut ne pas s’appliquer si le domaine du point de terminaison est exclu ou si la propriété glide.outbound_http_log.override est vraie. Pour afficher les journaux de service web sortants, accédez à .
| Nom | Type | Description |
|---|---|---|
| niveau | Chaîne | Niveau de journal. Valeurs valides :
|
| Type | Description |
|---|---|
| nul |
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)
Configure le message SOAP à envoyer via un Serveur MIDfichier .
Par défaut, le message SOAP utilise ce qui Serveur MID est spécifié dans l’enregistrement de la fonction de message SOAP. Utilisez cette méthode pour remplacer la valeur par défaut.
| Nom | Type | Description |
|---|---|---|
| midServerName | Chaîne | Nom par lequel Serveur MID vous souhaitez envoyer le message SOAP. Votre instance doit avoir un actif Serveur MID avec le nom spécifié. |
| Type | Description |
|---|---|
| nul |
SOAPMessageV2 : setMutualAuth(String profileName)
Définit le profil du protocole d’authentification réciproque pour le message SOAP.
La définition d’un profil de protocole à l’aide de cette méthode remplace le profil de protocole sélectionné pour l’enregistrement du message SOAP.
| Nom | Type | Description |
|---|---|---|
| profileName | Chaîne | Nom du profil de protocole à utiliser pour l’authentification réciproque. |
| Type | Description |
|---|---|
| nul |
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)
Définit le contenu du corps à envoyer au fournisseur de service web.
Lorsque vous définissez le contenu du corps à l’aide de cette méthode, les variables du corps ne remplacent pas les paramètres de l’enregistrement de la fonction de message SOAP. Vous devez définir explicitement toutes les valeurs dans le corps du message SOAP.
| Nom | Type | Description |
|---|---|---|
| requestbody | Chaîne | Corps du message SOAP. |
| Type | Description |
|---|---|
| nul |
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)
Définit un en-tête HTTP dans le message SOAP sur la valeur spécifiée.
| Nom | Type | Description |
|---|---|---|
| headerName | Chaîne | Nom de l’en-tête. |
| headerValue | Chaîne | Valeur à affecter à l’en-tête spécifié. |
| Type | Description |
|---|---|
| nul |
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(Chaîne soapAction)
Définit l’action SOAP que ce message SOAP effectue.
Le WSDL de votre fournisseur de service Web répertorie les actions SOAP que vous pouvez effectuer. Vous devez appeler cette méthode lorsque vous utilisez le constructeur SOAPMessageV2() sans paramètres.
| Nom | Type | Description |
|---|---|---|
| soapAction | Chaîne | Action SOAP que ce message SOAP effectue. |
| Type | Description |
|---|---|
| nul |
var sm = new sn_ws.SOAPMessageV2();
sm.setSOAPAction("GetQuote");
//construct SOAP message by specifying endpoint and auth
sm.execute();
SOAPMessageV2 : setStringParameter(nom de chaîne, valeur de chaîne)
Définit une variable portant le nom spécifié à partir de l’enregistrement du message SOAP sur la valeur spécifiée.
Les caractères réservés XML de la valeur sont convertis en caractères d’échappement équivalents.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la variable de message SOAP. |
| valide | Chaîne | Valeur à affecter à la variable spécifiée. |
| Type | Description |
|---|---|
| nul |
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(Nom de chaîne, Valeur de chaîne)
Définit une variable portant le nom spécifié à partir de l’enregistrement du message SOAP sur la valeur spécifiée.
Cette méthode est équivalente à setStringParameter mais n’échappe pas les caractères réservés XML.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la variable de message SOAP. |
| valide | Chaîne | Valeur à affecter à la variable spécifiée. |
| Type | Description |
|---|---|
| nul |
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)
Définit les valeurs de sécurité du service Web pour le message SOAP.
La définition de valeurs de sécurité à l’aide de cette méthode écrase les valeurs de sécurité de service Web définies pour l’enregistrement du message SOAP.
| Nom | Type | Description |
|---|---|---|
| keystoreId | Chaîne | Sys_id du magasin de clés Java ou PKCS12 à utiliser. |
| keystoreAlias | Chaîne | Alias qui identifie les clés publiques et privées. |
| mot de passe keystorePassword | Chaîne | Mot de passe affecté à l’enregistrement du magasin de clés. |
| ID de certificat | Chaîne | Sys_id du certificat de serveur approuvé. |
| Type | Description |
|---|---|
| nul |
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");