Acessar WebService TOTVS RM pelo JAVA.

Acessar WebService TOTVS RM pelo JAVA.

14 de novembro de 2020 Off Por willian

Neste tutorial vou demonstrar como acessar os webservices do TOTVS RM utilizando a linguagem de programação Java.

Entre em contato e faça um orçamento.

Após configurar seu ambiente de desenvolvimento crie um novo projeto java.

Em seguida, na pasta do seu projeto clique com o botão direito do mouse e em seguida vá em NEW > Other > Web Service Client.

criar novo > outro
web service client

Nesta janela inclua o endereço do seu webservice. Exemplo: http://localhost:8054/wsConsultaSQL/MEX?wsdl

Caso tenha dificuldades para entendimento desta URL, confira este artigo: Como configurar o webservice pelo RM Host ( Recomendado )

Configurar webservice.

Após o preenchimento clique em Finish.

Erros no Eclipse

Em meu ambiente aconteceram alguns erros, entre eles cito os dois abaixo:

The package javax.xml.namespace is accessible from more than one module: <unnamed>, java.xml

The type javax.xml.rpc.ServiceException cannot be resolved. It is indirectly referenced from required .class files

Para os erros citados acima a solução aplicada no meu ambiente foi remover o arquivo javaxrpc.jar e importar este: Javaxrpc-api-1.1

As etapas para este processo são: Clicar com botão direito do mouse nas propriedades do seu projeto, vá em java build path, remova o javaxrpc.jar e após baixar o arquivo indicado acima vá em add external Jar e importe o arquivo JAR que você baixou do repositório Maven.

wsConsSQL

Para realizar consultas SQL é necessário utilizar o webservice exclusivo para esta finalidade. Ele pode ser encontrado na sua url, conforme exemplo: http://localhost:8054/wsConsultaSQL/MEX?wsdl

Realize a primeira etapa, criando o webservice Client utilizando este endereço.

Em seguida, crie um novo arquivo java, chamado Principal, e inclua o seguinte código.

Atenção para dois itens, a variável endpoint deverá ser adaptada conforme seu ambiente foi configurado e o método realizarConsultaSQL recebe como parâmetro: sqlStub.realizarConsultaSQL(Código da Consulta SQL no RM, Código da Coligada de onde a Consulta foi Criada, Letra do Sistema onde a consulta foi criada, Parâmetros);

package br.eti.willian;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import com.totvs.www.RM_IRMSServerStub;
import com.totvs.www.RM_IwsConsultaSQLStub;

public class Principal {

	public static void main(String[] args) {
		
		String xml="";
		try {
	    	URL endpoint = new URL("http://localhost:8054/wsConsultaSQL/IwsConsultaSQL/");
	    	
	    			
	    	        RM_IRMSServerStub r = new RM_IRMSServerStub();      	        
	    	        
	    	        RM_IwsConsultaSQLStub sqlStub = new RM_IwsConsultaSQLStub(endpoint, r._getService());
	    	       sqlStub.setUsername("usuarioDoRm");
	    	       sqlStub.setPassword("senhaDoRm");
	    	        
			   xml = sqlStub.realizarConsultaSQL("teste", 1, "T", "");
			 
			
		} catch (RemoteException | MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		System.out.println(xml);
		
	}
}

Veja o tópico Conclusão deste artigo.

RMDataServer

Neste tópico será demonstrado como utilizar o RMDataServer implementado no Java.

Para realizar a leitura do DataServer com java é necessário utilizar o webservice exclusivo para esta finalidade. Ele pode ser encontrado na sua url, conforme exemplo: http://localhost:8054/wsDataServer/MEX?wsdl

Ajuste a variável endpoint, conforme seu endereço.

package br.eti.willian;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import com.totvs.www.RM_IRMSServerStub;
import com.totvs.www.RM_IwsDataServerStub;





public class Principal {

	public static void main(String[] args) {
		
		String xml = "";
		URL endpoint;
		try {
			endpoint = new URL("http://localhost:8054/wsDataServer/IwsDataServer");
			RM_IRMSServerStub r = new RM_IRMSServerStub();      	        
	       
			
			RM_IwsDataServerStub dataServerStub = new RM_IwsDataServerStub(endpoint, r._getService());
			dataServerStub.setUsername("usuarioDoRM");
			dataServerStub.setPassword("senhaDoRM");
			
			xml = dataServerStub.readView("MovTmvData", "TTMV.CODCOLIGADA=1", "CODCOLIGADA=1;CODSISTEMA=T");
		
			System.out.println(xml);
			
		} catch (MalformedURLException | RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	
        
       
		
		
		
	}
}

Conclusão

O TOTVS RM tem evoluído nas integrações REST, entretanto não consigo dizer se todos os recursos já são homologados neste método. O objetivo deste documento é demonstrar de forma prática como executar as rotinas de webservices do TOTVS RM através da linguagem de programação java e utilizando os webservices em XML.

Após concluir a integração com o RM você perceberá que o retorno das funções são registros, do tipo string, que contém o conteúdo em XML.

Caberá agora a você buscar meios de Converter este XML em um Objeto java e em seguida continuar com seu projeto.

Obrigado.

Entre em contato e faça um orçamento.