É 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.
A criação de uma biblioteca de métodos envolve duas etapas:
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>
O namespace e o nome usado para a biblioteca são independentes do namespace e do nome do schema, onde a declaração é encontrada.
Métodos SOAP são implementados no formato de função JavaScript agrupada em um script que representa uma biblioteca.
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:
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]
}