LINGUAGEM SPEL: Como executar funções SPEL por meio de Webservices
Hoje li um artigo muito legal disponível na comunidade CA que ensina como executar funções SPEL por meio de Webservices (SOAP).
Basicamente funciona assim:
1) O método precisa ser registrado em um arquivo .MAJ na pasta $NX_ROOT/site/mods/majic. Exemplo:
// FILENAME: z_api.maj
OBJECT api {
FACTORY {
METHODS {
z_echo(...);
};
};
};
2) O método precisa ser criado em um arquivo .SPL na mesma pasta Majic informada no passo anterior. Exemplo:
// FILENAME: z_api.spl
api::z_echo(...) {
int i;
for (i=0;i<argc;i++) {
set_return_data(i, argv[i]);
}
}
3) A chamada SOAP é feita utilizando o seguinte formato de envelope:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.ca.com/UnicenterServicePlus/ServiceDesk">
<soapenv:Header/>
<soapenv:Body>
<ser:callServerMethod>
<sid>1141608663</sid>
<methodName>z_echo</methodName>
<factoryName>api</factoryName>
<formatList></formatList>
<parameters>
<string>Hello</string>
<string>World</string>
<string>!!!</string>
</parameters>
</ser:callServerMethod>
</soapenv:Body>
</soapenv:Envelope>
4) A resposta é dada no formato abaixo:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<callServerMethodResponse xmlns="http://www.ca.com/UnicenterServicePlus/ServiceDesk">
<callServerMethodReturn xmlns=""><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<ServerReturn>
<Param0>Hello</Param0>
<Param1>World</Param1>
<Param2>!!!</Param2>
</ServerReturn>]]></callServerMethodReturn>
</callServerMethodResponse>
</soapenv:Body>
</soapenv:Envelope>
Neste exemplo de função "z_echo", todos os parametros informados na chamada são devolvidos da mesma forma.
Agora é só usar a imaginação... :)
Mais informações no link abaixo:
SPEL: How to call SDM method using WebServies
Abraço a todos!
publish originally: May 20 of 2016
From: CA SDM Brasil
criada Por: Daniel Bighelini