Implementar métodos SOAP implementing-soap-methods

Introdução introduction

É possível criar métodos SOAP em JavaScript. Essa função simplesmente habilita processos aplicativos, pode evitar o desenvolvimento de JSPs e sua chamada nos formulários.

Esses métodos SOAP se comportam da mesma forma que os definidos nativamente no aplicativo. Os mesmos atributos são suportados: static, key only e const.

Definir uma biblioteca de métodos defining-a-method-library

A criação de uma biblioteca de métodos envolve dois estágios:

  • A declaração do método SOAP,
  • Definição (ou implementação) em JavaScript.

Declaração declaration

Comece declarando os métodos nos schemas (para obter mais informações sobre como criar e editar schemas, consulte nesta seção).

A declaração deles é semelhante à dos métodos nativos, exceto que é necessário adicionar o atributo "biblioteca" especificando o nome da biblioteca de métodos onde a definição está localizada.

Esse nome coincide com o nome (com o namespace) da entidade do tipo "Código JavaScript".

Exemplo:

O método testLog(msg) é declarado em uma extensão nms:recipient

<method name="testLog" static="true" library="cus:test">
     <parameters>
       <param name="message" type="string" inout="in"/>
     </parameters>
   </method>
NOTE
O namespace e o nome usado para a biblioteca são independentes do namespace e do nome do esquema em que a declaração é encontrada.

Definição definition

Os métodos SOAP são implementados na forma de função JavaScript agrupada em um script que representa uma biblioteca.

NOTE
Uma biblioteca de métodos pode agrupar funções para vários esquemas, ou vice-versa. As funções de um esquema podem ser definidas em bibliotecas separadas.

O script pode conter código a ser executado durante o carregamento inicial da biblioteca.

1. Nome

O nome da função deve estar em conformidade com o seguinte formato:

 <schema-namespace>_<schema-name>_<method-name>

Exemplo:

A seguinte função do JavaScript é a implementação do método descrito acima. Deve ser definida na entidade de tipo "JavaScript Code" utilizando o nome "cus:test".

function nms_recipient_testLog(message)
 {
   logInfo("*** " + message)
 }

2. Assinatura

A assinatura da função deve incluir um argumento para cada parâmetro 'in' ou 'inout' da declaração.

Casos específicos:

  • métodos não estáticos: a função deve incluir um argumento adicional primeiro, coincidindo com a entidade XML transmitida na forma de um objeto de tipo "xml" (E4X).
  • métodos do tipo "somente chave": a função deve incluir um argumento adicional primeiro, coincidindo com a chave transmitida na forma de cadeias de caracteres.

3. Valores retornados

A função deve retornar um valor para cada parâmetro de tipo 'out' ou 'inout'. Caso específico: se o método for declarado sem nenhum dos atributos "static", "key only" ou "const", o primeiro valor retornado deverá coincidir com a entidade modificada. É possível retornar um novo objeto ou retornar o primeiro parâmetro modificado.

Por exemplo:

function nms_recipient_setLastName(self, name)
 {
   self.@lastName = name
   return self
 }

Quando vários valores forem retornados, eles deverão ser exibidos em uma tabela.

Exemplo:

function nms_recipient_getKey(self)
 {
   return [self.@firstName, self.@lastName]
 }
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1