Implementar métodos de SOAP implementing-soap-methods
Introdução introduction
É possível criar métodos de SOAP no JavaScript. Essa função simplesmente habilita processos aplicativos, pode evitar o desenvolvimento de JSPs e sua chamada nos formulários.
Esses métodos de SOAP se comportam da mesma forma que os definidos nativamente na aplicação. 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) no JavaScript.
Declaração declaration
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 "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>
Definição definition
Os métodos SOAP são implementados na forma de função JavaScript agrupada em um script que representa uma biblioteca.
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 "Código JavaScript" 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 de 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]
}