Implementação de métodos SOAP

Introdução

É possível criar métodos SOAP em JavaScript. Essa função simplesmente habilita 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, somente 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) no JavaScript.

Declaração

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

A declaração deles é 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:recipient

<method name="testLog" static="true" library="cus:test">
     <parameters>
       <param name="message" type="string" inout="in"/>
     </parameters>
   </method>
OBSERVAÇÃO

O namespace e o nome usado para a biblioteca são independentes do namespace e do nome do schema, onde a declaração é encontrada.

Definição

Métodos SOAP são implementados no formato de função JavaScript agrupada em um script que representa uma biblioteca.

OBSERVAÇÃO

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

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

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. Ele deve ser definido na entidade do tipo "JavaScript Code" 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 no formato de um objeto do tipo 'xml' (E4X).
  • Métodos do tipo "somente chave": a função deve incluir um argumento adicional primeiro, coincidindo com a chave transmitida no formato das 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 qualquer um dos atributos 'static', 'key only' ou 'const', o primeiro valor retornado deverá coincidir com a entidade modificada. É possível retornar um novo objeto ou 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]
 }

Nesta página