SOAPMessageV2 - com escopo, global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 12 min. de leitura
  • A API SOAPMessageV2 fornece métodos para enviar uma mensagem SOAP de saída usando JavaScript.

    Use esta API para gerenciar a resposta retornada pelo provedor SOAP.

    Você pode usar esta API em aplicações com escopo ou dentro do escopo global. Esta API é executada no namespace sn_ws.

    SOAPMessageV2 - SOAPMessageV2()

    Instancia um objeto SOAPMessageV2 vazio.

    Ao usar um objeto instanciado dessa forma, você deve especificar manualmente uma ação SOAP e um endpoint.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    var sm = new sn_ws.SOAPMessageV2();

    SOAPMessageV2 - SOAPMessageV2 (cadeia de caracteres soapMessage, cadeia de caracteres soapFunction)

    Instancia um objeto SOAPMessageV2 de um registro de mensagem SOAP e uma função associada a esse registro.

    Valores como endpoint, autenticação ou MID Server configurações do registro de mensagem SOAP se aplicam a este objeto.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    soapMessage Cadeia de caracteres Registro de mensagem SOAP que você deseja usar como base para este objeto.
    funçãosabão Cadeia de caracteres Função SOAP que você deseja executar. As funções SOAP disponíveis dependem do WSDL fornecido pelo provedor de serviço web.
    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.

    SOAPMessageV2 - execute()

    Envia a mensagem SOAP para o endpoint.

    Este método é chamado de forma síncrona, o que significa que a execução do script aguarda até que a chamada seja concluída antes de continuar.

    Coisas a considerar ao usar este método:
    • Use este método somente para chamadas de serviço rápido. Você não deve chamar este método em alto volume, independentemente da rapidez do serviço.
    • Use este método somente quando o tempo limite for muito curto, caso contrário, a instância poderá ser paralisada. Existem duas propriedades que controlam o período de tempo limite, glide.http.timeout e glide.http.connection_timeout. Por padrão, esses tempos limites são definidos como 175 segundos e 10 segundos, respectivamente.
    • Geralmente, se a solicitação precisar passar por MID Server, você não deve usar este método. MID Server solicitações devem passar pela fila do canal de comunicação externa (ECC), que é uma fila assíncrona. O thread não é apenas retido pela própria solicitação, mas também aguardando que MID Server responda à instância. Se MID Servers estiverem envolvidos, use chamadas assíncronas com uma regra de negócio de sensor.
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    SOAPResponseV2 Resposta retornada pelo provedor 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()

    Envia a mensagem SOAP para a fila do canal de comunicação externa (ECC).

    As mensagens SOAP na fila do ECC são processadas pela regra de negócio SOAPClient.

    Por padrão, esta regra de negócio não é executada de forma assíncrona. Para configurar esta regra de negócio para ser executada de forma assíncrona, defina o valor Quando como Assíncrono e adicione current.update() ao final do Script. A instância não espera por uma resposta do provedor de serviços Web ao enviar uma mensagem por meio da fila do ECC.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    SOAPResponseV2 - com escopo, global Resposta retornada pelo provedor SOAP.
    Nota:
    Tentar usar o objeto de resposta SOAP antes que a resposta tenha sido processada pode resultar em um erro de tempo limite.
    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()

    Obtém o endpoint da mensagem SOAP.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    Cadeia de caracteres URL do provedor de serviços 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()

    Retorna o conteúdo do corpo da mensagem SOAP.

    Nota:
    Antes de chamar o método getRequestBody(), você deve chamar o método execute() para obter o objeto de resposta.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Cadeia de caracteres Corpo da mensagem 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(cadeia de caracteres "headerName")

    Obtém o valor de um cabeçalho HTTP especificado pelo cliente SOAP.

    Por padrão, este método não pode retornar o valor de um cabeçalho definido automaticamente pelo sistema. Para conceder a este método acesso a todos os cabeçalhos, defina a propriedade glide.http.log_debug como verdadeira.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    headerName Cadeia de caracteres Cabeçalho da solicitação para o qual você deseja obter o valor.
    Tabela 12. Retornos
    Tipo Descrição
    Cadeia de caracteres Valor do cabeçalho especificado.
    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()

    Obtém cabeçalhos HTTP que foram definidos pelo cliente SOAP e os valores associados.

    Este método não retorna cabeçalhos definidos automaticamente pelo sistema. Para configurar este método para retornar todos os cabeçalhos, defina a propriedade glide.http.log_debug como verdadeira.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    Objeto Objeto que mapeia o nome de cada cabeçalho para o valor associado.
    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 (Uris de matriz)

    Define um ou mais URIs que podem ser redirecionados para. O controle dos URIs de saída permitidos reduz as preocupações com a segurança e ajuda a impedir ataques de redirecionamento de URL que enviam usuários para sites mal-intencionados.

    Para obter meios mais abrangentes de redirecionamento de URIs, consulte UriMatcher - com escopo.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    Uris Matriz Um ou mais URIs permitidos para redirecionamento. Cada URI deve ser listado no formato "cadeia de caracteres".
    Tabela 16. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como adicionar uma lista de URLs permitidos para redirecionamento para uma função de mensagem 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 (cadeia de caracteres userName, cadeia de caracteres userPass)

    Define cabeçalhos de autenticação básica para a mensagem SOAP.

    Definir cabeçalhos de autenticação básica usando este método substitui os valores de autenticação básica definidos no registro de mensagem SOAP.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    userName Cadeia de caracteres Nome de usuário a ser usado na autenticação da mensagem SOAP.
    userPass Cadeia de caracteres Senha do usuário especificado.
    Tabela 18. Retornos
    Tipo Descrição
    vazio
    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 - setEccCorrelato(cadeia de caracteres correlacionador)

    Associa solicitações de saída e o registro de resposta resultante na fila do ECC.

    Este método se aplica somente a mensagens SOAP enviadas por meio de um MID Server. O correlacionador fornecido preenche o campo de correlacionador do agente no registro da fila do ECC para a resposta. Forneça um correlacionador exclusivo para cada solicitação de saída para associar os resultados corretos na fila do ECC à solicitação ao projetar a automação assíncrona por meio de um MID Server.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    correlacionador Cadeia de caracteres Identificador único
    Tabela 20. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres nome, cadeia de caracteres valor)

    Substitui um valor do banco de dados gravando na carga da mensagem SOAP.

    Este método se aplica somente a mensagens SOAP enviadas por meio de um MID Server. Use este método quando um valor da mensagem SOAP no banco de dados for inválido, como quando a URL do endpoint for maior que o tamanho máximo do campo de endpoint SOAP.

    Esses são valores válidos para o parâmetro de nome.
    • source: a URL do endpoint.
    • name: a função de mensagem SOAP a ser executada.
    Tabela 21. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do parâmetro ECC.
    valor Cadeia de caracteres Valor a ser atribuído ao parâmetro ECC especificado.
    Tabela 22. Retornos
    Tipo Descrição
    vazio
    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(endpoint de cadeia de caracteres)

    Define o endpoint da mensagem SOAP.

    Por padrão, a mensagem SOAP usa o endpoint especificado no registro da mensagem SOAP. Use este método para substituir o padrão. Você deve chamar este método ao usar o construtor SOAPMessageV2() sem parâmetros.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    endpoint Cadeia de caracteres URL do provedor de serviços web SOAP com o qual você deseja fazer interface.
    Tabela 24. Retornos
    Tipo Descrição
    vazio
    var sm = new sn_ws.SOAPMessageV2();
    sm.setEndpoint("http://web.service.endpoint");

    SOAPMessageV2 - setFollowRedirect(Booliano sigaRedirecionamento)

    Define o parâmetro na API que controla os redirecionamentos HTTP automáticos. Por padrão, os redirecionamentos automáticos estão desativados.

    Para obter informações adicionais sobre redirecionamentos HTTP, consulte Redirecionamentos em HTTP.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    seguirRedirecionar Booliano Sinalizador que indica se a API deve seguir automaticamente todos os redirecionamentos que surgem ao executar a chamada SOAPMessageV2.
    Valores válidos:
    • verdadeiro: segue redirecionamentos automaticamente.
    • falso: não segue redirecionamentos automaticamente. Você deve lidar com todas as condições de redirecionamento em seu código.
    Tabela 26. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como definir redirecionamentos automáticos em e fazer com que a API lide com o redirecionamento.

    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());
    

    Saída:

    200

    O exemplo de código a seguir mostra o redirecionamento automático definido como falso. O código de status retornado é um código de redirecionamento. Nesse caso, você deve lidar com o redirecionamento em seu código.

    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());
    

    Saída:

    3xx  // Redirect status code

    SOAPMessageV2 - setHttpTimeout (Número de tempo limiteMs)

    Define a quantidade de tempo que a mensagem SOAP espera por uma resposta do provedor de serviços Web antes que a solicitação expire.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    tempo limiteMs Número Quantidade de tempo de espera por uma resposta do provedor de serviços web, em milissegundos.
    Tabela 28. Retornos
    Tipo Descrição
    vazio
    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(nível de cadeia de caracteres)

    Define o nível de log para esta mensagem e a resposta correspondente.

    Definir um nível de log usando a API SOAPMessageV2 substitui o nível de log configurado no registro de mensagem SOAP. Este nível de log pode não se aplicar se o domínio do endpoint for excluído ou se a propriedade glide.outbound_http_log.override for verdadeira. Para exibir logs de serviço web de saída, navegue até Logs do sistema > Solicitações de saída de HTTP.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    nível Cadeia de caracteres Nível de log.
    Valores válidos:
    • tudo
    • básico
    • elevado
    Tabela 30. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres midServerName)

    Configura a mensagem SOAP a ser enviada por meio de um MID Server.

    Por padrão, a mensagem SOAP usa o MID Server especificado no registro de função da mensagem SOAP. Use este método para substituir o padrão.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    midServerName Cadeia de caracteres Nome do MID Server por meio do qual você deseja enviar a mensagem SOAP. Sua instância deve ter um ativo MID Server com o nome especificado.
    Tabela 32. Retornos
    Tipo Descrição
    vazio

    SOAPMessageV2 – setMutualAuth(cadeia de caracteres profileName)

    Define o perfil do protocolo de autenticação mútua para a mensagem SOAP.

    Definir um perfil de protocolo usando este método substitui o perfil de protocolo selecionado para o registro de mensagem SOAP.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    profileName Cadeia de caracteres Nome do perfil de protocolo a ser usado para autenticação mútua.
    Tabela 34. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres requestBody)

    Define o conteúdo do corpo a ser enviado ao provedor de serviço web.

    Quando você define o conteúdo do corpo usando este método, as variáveis no corpo não são substituídas por parâmetros do registro de função da mensagem SOAP. Você deve definir explicitamente todos os valores no corpo da mensagem SOAP.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    requestBody Cadeia de caracteres Corpo da mensagem SOAP.
    Tabela 36. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres "headerName", cadeia de caracteres "headerValue")

    Define um cabeçalho HTTP na mensagem SOAP com o valor especificado.

    Tabela 37. Parâmetros
    Nome Tipo Descrição
    headerName Cadeia de caracteres Nome do cabeçalho.
    headerValue Cadeia de caracteres Valor a ser atribuído ao cabeçalho especificado.
    Tabela 38. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres soapAction)

    Define a ação SOAP que esta mensagem SOAP executa.

    O WSDL do seu provedor de serviço web lista as ações SOAP que você pode executar. Você deve chamar este método ao usar o construtor SOAPMessageV2() sem parâmetros.

    Tabela 39. Parâmetros
    Nome Tipo Descrição
    açãosabão Cadeia de caracteres Ação SOAP que esta mensagem SOAP executa.
    Tabela 40. Retornos
    Tipo Descrição
    vazio
    var sm = new sn_ws.SOAPMessageV2();
    sm.setSOAPAction("GetQuote");
    //construct SOAP message by specifying endpoint and auth
    sm.execute();

    SOAPMessageV2 – setStringParameter(cadeia de caracteres nome, cadeia de caracteres valor)

    Define uma variável com o nome especificado do registro de mensagem SOAP para o valor especificado.

    Os caracteres XML reservados no valor são convertidos para os caracteres de escape equivalentes.

    Tabela 41. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da variável da mensagem SOAP.
    valor Cadeia de caracteres Valor a ser atribuído à variável especificada.
    Tabela 42. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres nome, cadeia de caracteres valor)

    Define uma variável com o nome especificado do registro de mensagem SOAP para o valor especificado.

    Este método é equivalente a setStringParameter, mas não faz o escape de caracteres XML reservados.

    Tabela 43. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da variável da mensagem SOAP.
    valor Cadeia de caracteres Valor a ser atribuído à variável especificada.
    Tabela 44. Retornos
    Tipo Descrição
    vazio
    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(cadeia de caracteres keystoreId, cadeia de caracteres keystoreAlias, cadeia de caracteres keystorePassword, cadeia de caracteres certificateId)

    Define valores de segurança de serviço web para a mensagem SOAP.

    Definir valores de segurança usando este método substitui os valores de segurança do serviço web definidos para o registro de mensagem SOAP.

    Tabela 45. Parâmetros
    Nome Tipo Descrição
    keystoreId Cadeia de caracteres Sys_id do armazenamento de chaves Java ou PKCS12 a ser usado.
    keystoreAlias Cadeia de caracteres Alias que identifica as chaves públicas e privadas.
    keystoreSenha Cadeia de caracteres Senha atribuída ao registro de armazenamento de chaves.
    certificateId Cadeia de caracteres Sys_id do certificado de servidor confiável.
    Tabela 46. Retornos
    Tipo Descrição
    vazio
    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");