Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revertida da versão 13

Índice

 

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

 exclude.*ndice

Desenvolvendo a Widget

Objetivo

O objetivo deste guia é apresentar a forma de integração de widgets com serviços SOAP.

 

Pré-requisitos

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
languagebash
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
languagejava
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 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
languagejs
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
		}
	});
}