Show Menu
TÓPICOS×

Implementação de métodos SOAP

Introdução

É possível criar métodos SOAP no JavaScript. Essa função simplesmente permite processos aplicáveis, 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: estático, apenas chave e const.

Definição de uma biblioteca de métodos

A criação de uma biblioteca de métodos envolve duas etapas:
  • A declaração do método SOAP,
  • Definição (ou implementação) em JavaScript.

Declaração

Comece declarando os métodos nos esquemas (para obter mais informações sobre como criar e editar esquemas, consulte esta seção ).
A declaração é semelhante à dos métodos nativos, exceto que é necessário adicionar o atributo 'library' especificando o nome da biblioteca de métodos na qual 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:customer
<method name="testLog" static="true" library="cus:test">
     <parameters>
       <param name="message" type="string" inout="in"/>
     </parameters>
   </method>

O namespace e o nome usados para a biblioteca são independentes do namespace e do nome do esquema onde a declaração é encontrada.

Definição

Métodos SOAP são implementados na forma da função JavaScript agrupados em um script que representa uma biblioteca.
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 o 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 JavaScript é a implementação do método descrito acima. Ela será definida na entidade do tipo "Código JavaScript" usando 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 do tipo 'xml' (E4X).
  • Métodos do tipo "chave somente": a função deve incluir um argumento adicional primeiro, coincidindo com a chave transmitida na forma de strings de caracteres.
3. Valores retornados
A função deve retornar um valor para cada parâmetro do 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 devem ser retornados, eles devem ser exibidos em uma tabela.
Exemplo:
function nms_recipient_getKey(self)
 {
   return [self.@firstName, self.@lastName]
 }