Liberando o WebService da TOTVS

Este documento tem por objetivo demonstrar qual é o procedimento para configurar o Host para disponibilizar os WebServices responsáveis pela integração de aplicativos de terceiros com o RM.

Cada WebServices possui os seus métodos. O WebService indicado para consulta de cadastro e inclusão/alteração/exclusão de um cadastro é o wsDataServer. Já o indicado para executar um process (faturar movimento, cancelar movimento, cancelar lançamento, etc) é o wsProcess.

A notícia boa é que ativar os webservices é muito simples e você pode fazer isto via IIS ou via Host do RM. Aqui, nós trataremos apenas a utilização via Host do RM. Antes de qualquer coisa, você precisa se certificar que tenha acesso de administrador ao servidor e permissão de escrita no diretório de instalação do RM. O processo todo é feito em dois passos, mas atenção, é necessário reiniciar o Host do RM no final.

Para quem esta na versão 12.1.27 ou anterior, para a superior pode ir para o item 3)

1) Edite o arquivo RM.Host.Service.exe.config e RM.Host.exe.config, que estão na pasta <diretório de instalação do RM>\RM.Net:


2) Adicione as seguintes tags no bloco de instruções ...
            <add key="DEFAULTDB" value="CorporeRM" />
            <aadd key="HTTPPORT" value="8051" />
        
No value da tag DefaultDB deve ser informado o Alias, do arquivo Alias.dat que contém a base de dados que será utilizada. Na tag HTTPPORT informe a porta utilizada pelo Host para os serviços via (Geralmente é informado o padrão 8051).

Como exemplo abaixo, teremos um arquivo HOST.
            <?xml version="1.0"?>
            <configuration>
               <appSettings>
                    <add key="JobServer3Camadas" value="false" />
                    <add key="Port" value="8050" />
                    <add key="ActionsPath" value="C:\totvs\CorporeRM\RM.Net;C:\totvs\CorporeRM\Corpore.Net\Bin" />
                    <add key="EnableCompression" value="true" />
                    <add key="DEFAULTDB" value="CorporeRM" />
                    <add key="HTTPPORT" value="8051" />
               </appSettings>
               <runtime>
                    <gcServer enabled="true" />
               </runtime>
            </configuration>
        

Para quem esta na versão 12.1.28 ou posterior, pode começar aqui

3) Em alguns casos é necessário adicionar um endereço a reserva de portas dentro do sistema operacional Windows, para isto, abra o Promp de comandos e digite a seguinte informação:
netsh http add urlacl url=http://+:8051/ user=NetworkService

Será exibida uma mensagem de que a URL foi reservada com sucesso, conforme print abaixo:


Neste exemplo a porta utilizada é a 8051. Caso deseje adicionar mais serviços do Host com outras portas ou a porta utilizada seja diferente da padrão, deve-se executar o comando netsh para a(s) porta(s) desejada(s).

4) Por fim, abra o programa RM.Host.ServiceManager.exe e pare o serviço e reinicie ele novamente. Após ele reiniciar, os serviços estaram disponíveis. Para verificar se as configurações estão corretas, informe a URL abaixo no browser (Internet Explorer, Mozilla Firefox, etc):.
http://<IP ou HostName da máquina em que o Host está configurado>:<porta informada no arquivo de configuração do host, tag HTTPPORT>/wsPageIndex
ou o link abaixo, se executar ele dentro do próprio servidor do WebService.
http://localhost:8051/wsPageIndex
Para testar o mesmo na rede, troque LOCALHOST pelo IP do servidor e veja se a página aparece conforme imagem abaixo, e se o campo DEFAULTDB esta preenchido com o ALIAS que definiu no item 2) acima, tendo como exemplo:


5) Para expor o WebService a conexões externas, deve-se liberar a conexão externa para o servidor e redirecina-la para o servidor em questão. (Procure o pessoal de sua TI para fazer isto), e dentro dos arquivos HOST configurado no item 2) deve-se adicionar mais uma tag:
<add key="ServicesHostName" value="ip externo OU nome externo" />
Então, se a sua empresa liberar o acesso externo, no campo VALUE deve ser informado a URL ou então o IP externo. Vamos supor que o endereço do WebService, seguido da porta de comunicação seja http://webservice.minhaempresa.com.br:8051 então no exemplo acima vai ficar:
<add key="ServicesHostName" value="webservice.minhaempresa.com.br" />

6) O Totvs RM utiliza o padrão SOAP em todas as chamadas, ou seja, para construir integrações ou acessar dados, você precisará de um cliente que tenha suporte ao protocolo SOAP. Um dos clientes mais populares e utilizados para desenvolvimento e testes é o SoapUI, e para baixar o software, Clique Aqui para baixar o mesmo.