SOAPMessageV2 : dans le champ d’application, global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 12 minutes de lecture
  • 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.

    Tableau 1. Paramètres
    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.

    Tableau 2. Paramètres
    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.

    Éléments à prendre en compte lors de l’utilisation de cette méthode :
    • 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.
    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    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.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    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.

    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    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.

    Remarque :
    Avant d’appeler la méthode getRequestBody(), vous devez appeler la méthode execute() pour obtenir l’objet de réponse.
    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    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.

    Tableau 11. Paramètres
    Nom Type Description
    headerName Chaîne En-tête de demande pour lequel vous souhaitez obtenir la valeur.
    Tableau 12. Renvoie
    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.

    Tableau 13. Paramètres
    Nom Type Description
    Aucun
    Tableau 14. Renvoie
    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.

    Tableau 15. Paramètres
    Nom Type Description
    Uri Tableau Un ou plusieurs URI autorisés pour la redirection. Chaque URI doit être répertorié au format « chaîne ».
    Tableau 16. Renvoie
    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.

    Tableau 17. Paramètres
    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é.
    Tableau 18. Renvoie
    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.

    Tableau 19. Paramètres
    Nom Type Description
    corrélateur Chaîne Identificateur unique
    Tableau 20. Renvoie
    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 .

    Il s’agit de valeurs valides pour le paramètre name.
    • source: URL du point de terminaison.
    • name: fonction de message SOAP à exécuter.
    Tableau 21. Paramètres
    Nom Type Description
    nom Chaîne Nom du paramètre ECC.
    valide Chaîne Valeur à affecter au paramètre ECC spécifié.
    Tableau 22. Renvoie
    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.

    Tableau 23. Paramètres
    Nom Type Description
    endpoint Chaîne URL du fournisseur de service Web SOAP avec lequel vous souhaitez vous interfacer.
    Tableau 24. Renvoie
    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.

    Tableau 25. Paramètres
    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 :
    • true : suit automatiquement les redirections.
    • faux : Ne suivez pas automatiquement les redirections. Vous devez gérer toutes les conditions de redirection au sein de votre code.
    Tableau 26. Renvoie
    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.

    Tableau 27. Paramètres
    Nom Type Description
    timeoutMss Numéro Durée d’attente pour une réponse du fournisseur de service Web, en millisecondes.
    Tableau 28. Renvoie
    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 à Journaux système > Demandes HTTP sortantes.

    Tableau 29. Paramètres
    Nom Type Description
    niveau Chaîne Niveau de journal.
    Valeurs valides :
    • tous
    • Élémentaire
    • élevé
    Tableau 30. Renvoie
    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.

    Tableau 31. Paramètres
    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é.
    Tableau 32. Renvoie
    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.

    Tableau 33. Paramètres
    Nom Type Description
    profileName Chaîne Nom du profil de protocole à utiliser pour l’authentification réciproque.
    Tableau 34. Renvoie
    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.

    Tableau 35. Paramètres
    Nom Type Description
    requestbody Chaîne Corps du message SOAP.
    Tableau 36. Renvoie
    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.

    Tableau 37. Paramètres
    Nom Type Description
    headerName Chaîne Nom de l’en-tête.
    headerValue Chaîne Valeur à affecter à l’en-tête spécifié.
    Tableau 38. Renvoie
    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.

    Tableau 39. Paramètres
    Nom Type Description
    soapAction Chaîne Action SOAP que ce message SOAP effectue.
    Tableau 40. Renvoie
    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.

    Tableau 41. Paramètres
    Nom Type Description
    nom Chaîne Nom de la variable de message SOAP.
    valide Chaîne Valeur à affecter à la variable spécifiée.
    Tableau 42. Renvoie
    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.

    Tableau 43. Paramètres
    Nom Type Description
    nom Chaîne Nom de la variable de message SOAP.
    valide Chaîne Valeur à affecter à la variable spécifiée.
    Tableau 44. Renvoie
    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.

    Tableau 45. Paramètres
    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é.
    Tableau 46. Renvoie
    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");