Histórico da Página
Dica |
---|
Liberar na 1.5. Revisão Ok. |
Índice
Índice
...
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
Objetivo
Desenvolvendo a Widget
O objetivo deste guia é apresentar a forma de integração de widgets com serviços SOAP.
Desenvolvendo o widget
Antes de tudo, é necessário desenvolver o widget para, então, Após o desenvolvimento da widget, vamos realizar a integração com o ERP RM utilizando o protocolo SOAP.
Criando os arquivos para utilização SOAP
Primeiramente precisamos gerar os arquivos que iremos utilizar serão utilizados para consultar o serviço. Neste exemplo, utilizaremos os serviços do ERP RM para obter os dados de aniversariantes.
Para gerar os arquivos, basta executar o comando no console:
Bloco de código | ||
---|---|---|
| ||
wsimport -p pacote -Xnocompile http://endereco-do-server?WSDL Exemplo: wsimport -p com.fluig.kitintranet.proxy.soap -Xnocompile http://servidor-rm/web/wsGlbSSL.asmx?WSDL |
Onde:
- "servidor-rm": deve ser substituído pelo endereço do servidor onde se encontra o ERP RM
...
- ;
- "com.fluig.kitintranet.proxy.soap": deve ser
...
- substituído pelo pacote onde desejamos que o código seja gerado.
...
Após executado este a execução deste comando, os arquivos terão sido são gerados na estrutura de pastas conforme o pacote informado.
Conforme apresentado na imagem acima, podemos ver que foram gerados vários arquivos , arquivos estes que são necessários para a consulta de aniversariantes no ERP RM.
Neste caso, utilizaremos apenas uma classe chamada WsGlbSSL, conforme exemplificado na classe a seguir. :
Bloco de código | ||
---|---|---|
| ||
package com.fluig.kitintranet.proxy.rest; import com.fluig.kitintranet.proxy.soap.WsGlbSSL; import com.totvs.technology.wcm.sdk.rest.WCMRest; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path("/birthdays") @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) public class BirthdayProxy extends WCMRest { @GET @Path("today") @Produces(MediaType.APPLICATION_JSON) public Response today(@QueryParam("month") String month, @QueryParam("day") String day, @QueryParam("user") String user, @QueryParam("password") String password) { WsGlbSSL wsGlbSSL = new WsGlbSSL(); String param = "<PARAM><MES>" + month + "</MES><DIA>" + day + "</DIA></PARAM>"; String resultSQL = wsGlbSSL.getWsGlbSSLSoap().getResultSQL(user, password, 0, "V", "INTEGR_FLG.02", param, false); return buildJSONResponse(resultSQL); } } |
...
Esta classe BirthdayProxy.java deve ser chamada via javascript utilizando REST. Para saber como criar um serviço REST dentro de sua um widget, acesse este guia.
O resultado será o seguinte:
Bloco de código | ||
---|---|---|
| ||
getBirthdays: function(month, day, user, password) { WCMAPI.Read({ type: "GET", url: WCMAPI.getServerURL() + '/aniversariantes/api/rest/birthdays/today?month=' + month + "&day=" + day + "&user=" + user + "&password=" + password, async: false, success: function funcao(data) { // código }, error: function (msg){ // código } }); } |