Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice


       

Índice
exclude.*ndice:

Objetivo


       Este documento foi desenvolvido como guia para a integração do RM Reports x Protheus. O mesmo contempla os passos para a configuração do webservice RM, webservice Protheus e parametrização da comunicação entre ambos. Para seguir este manual faz-se necessário que os softwares RM e Protheus já estejam instalados e funcionando.

       Para o desenvolvimento do mesmo foram usados os seguintes softwares/versões:

  • Protheus 11.8
  • RM – Biblioteca 11.82.34

Introdução

 



  1. Pré-Requisitos:
  • Instalação do Protheus na versão 11 ou superior e configuração do webservice do Protheus.
  • Instalação da Biblioteca RM versão 11.80 ou superior. (Caso o cliente não utilize nenhum módulo da linha RM torna-se necessário uma base exemplo RM devidamente configurada).

Preparar Banco de Dados


       Para o correto funcionamento da integração é necessário que sejam executados alguns passos no Banco de Dados.

Informações

Recomendável que esta preparação do banco de dados seja realizada por alguém com conhecimento em Banco de Dados, preferencialmente um DBA.

Permissões na Base RM

Informações
iconfalse
Deck of Cards
idPermissões na base RM
Card
idPara Banco de Dados Microsoft SQL Server
labelPara Banco de Dados Microsoft SQL Server
titlePara Banco de Dados Microsoft SQL Server

Devem ser adicionados os seguintes Grants na base de dados RM:

Bloco de código
languagesql
linenumberstrue
GRANT SELECT,INSERT ON GDATALOG TO sysdba
GO
GRANT SELECT,INSERT, UPDATE ON RRPTREPORT TO sysdba
GO
GRANT SELECT,INSERT ON RRELTIP TO sysdba
GO
GRANT SELECT,INSERT ON GDIC TO sysdba
GO
GRANT SELECT,INSERT ON GIMAGEM TO sysdba
GO
GRANT SELECT,INSERT ON GFILTROS TO sysdba
GO
GRANT SELECT,INSERT ON GCONSSQL TO sysdba
GO
GRANT SELECT,INSERT ON GMOEDA TO sysdba
GO
GRANT SELECT,INSERT ON RRELTIPSCHEMA TO sysdba
GO
Card
idPara Banco de Dados Oracle
labelPara Banco de Dados Oracle
titlePara Banco de Dados Oracle

Devem ser adicionados os seguintes Grants e Sinônimos na base de dados RM:

Bloco de código
languagesql
linenumberstrue
GRANT SELECT,INSERT,UPDATE ON GDATALOG TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON RRPTREPORT TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON RRELTIP TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON GDIC TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON GIMAGEM TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON GFILTROS TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON GCONSSQL TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON GMOEDA TO ACESSO_RM;
GRANT SELECT,INSERT,UPDATE ON RRELTIPSCHEMA TO ACESSO_RM;
 
CREATE PUBLIC SYNONYM GDATALOG
FOR RM.GDATALOG
;
CREATE PUBLIC SYNONYM RRPTREPORT
FOR RM.RRPTREPORT
;
CREATE PUBLIC SYNONYM RRELTIP
FOR RM.RRELTIP
;
CREATE PUBLIC SYNONYM GDIC
FOR RM.GDIC
;
;CREATE PUBLIC SYNONYM GIMAGEM
FOR RM.GIMAGEM
;
CREATE PUBLIC SYNONYM GFILTROS
FOR RM.GFILTROS
;
CREATE PUBLIC SYNONYM GCONSSQL
FOR RM.GCONSSQL
;

Usuário no Banco de Dados

       É importante que exista um usuário igual em todas nas instâncias de banco de dados (RM e Protheus), ou seja, o mesmo nome de usuário e senha nas instâncias do RM e Protheus. É interessante também que estes usuários tenham permissão de SA ou DBA.

       É recomendável que este usuário seja utilizado na configuração da integração por parte do RM.

       No caso de bancos de dados MSSQL pode ser usado o usuário SA desde que o mesmo tenha as senhas iguais nas duas instâncias. Em caso de banco de dados Oracle, criar um usuário com prilégio DBA.

Passos - Lado RM


       Importante: Para que a integração funcione adequadamente é necessário que as fontes de dados RM e Protheus estejamdevidamente configuradas no servidor RM e Protheus. Ou seja, no caso de banco de dados SQL Server é necessário que o ODBC esteja apontando para os bancos de dados RM e Protheus, no caso de Oracle é necessário que o OracleClient esteja instalado no servidor e os serviços RM e Protheus configurados no mesmo.

Arquivos de configuração

       1- Acesse o diretório da instação do RM, procure pela pasta RM.Net e busque todos os arquivos com extensão .config Obs.: Em uma instalação padrão do RM o caminho da pasta será: C:\totvs\CorporeRM\RM.Net.

        2- Abra os arquivos RM.Host.exe.config e RM.Host.Service.exe.config e adicione as linhas destacadas em vermelho no arquivo, para ficar com a mesma estrutura abaixo. Os campos em azul devem ser editados colocando suas respectivas informações:

Informações
iconfalse
Deck of Cards
idPasso2
Card
idPara Banco de Dados Microsoft SQL Server
labelPara Banco de Dados Microsoft SQL Server
titlePara Banco de Dados Microsoft SQL Server

Para banco de dados Microsoft SQL Server:

Bloco de código
languagexml
titleExpanda para copiar o código
collapsetrue
<?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="<Base de Dados do RM – Padrão: CorporeRM>" />
      <add key="HTTPPORT" value="8051" />
      <add key="RM_Lib_Protheus_Server_FWDictionary_FWDICTIONARY" value="http://<IP_do_webservice_Protheus>:<Porta_WS_Protheus>/wsdictionary/FWDICTIONARY.apw" />
      <add key="RM_Rpt_Lib_Server_FWDictionaryWS_FWDICTIONARY" value="http:// <IP_do_webservice_Protheus>:<Porta_WS_Protheus>/FWDICTIONARY.apw" />
      <add key="RM_Rpt_Lib_Protheus_Server_ConnectionString" value="Data Source=<Instância_SQLServer_Proheus>;Initial Catalog=<Base_Dados_Protheus>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>" />
   </appSettings>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true" />
   </runtime>
   <system.runtime.remoting>
      <customErrors mode="Off" />
   </system.runtime.remoting>
   <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
   </startup>
</configuration>
Card
idPara Banco de Dados Oracle
labelPara Banco de Dados Oracle
titlePara Banco de Dados Oracle

Para banco de dados Oracle:

Bloco de código
languagexml
titleExpanda para copiar o código
collapsetrue
<?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="<Base de Dados do RM – Padrão: CorporeRM>" />
      <add key="HTTPPORT" value="8051" />
      <add key="RM_Lib_Protheus_Server_FWDictionary_FWDICTIONARY" value="http://<IP_do_webservice_Protheus>:<Porta_WS_Protheus>/wsdictionary/FWDICTIONARY.apw" />
      <add key="RM_Rpt_Lib_Server_FWDictionaryWS_FWDICTIONARY" value="http:// <IP_do_webservice_Protheus>:<Porta_WS_Protheus>/FWDICTIONARY.apw" />
      <add key="RM_Rpt_Lib_Protheus_Server_ConnectionString" value="Data Source=<Nome_serviço_Oracle>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>;Unicode=True " />
   </appSettings>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true" />
   </runtime>
   <system.runtime.remoting>
      <customErrors mode="Off" />
   </system.runtime.remoting>
   <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
   </startup>
</configuration>

        3- Crie um arquivo com nome RM.Lib.Protheus.Server.dll.config dentro da pasta e copie o seguinte conteúdo dentro dele alterando as partes em azul com as respectivas informações:

Informações
iconfalse

Bloco de código
languagexml
titleExpanda para copiar o código
collapsetrue
<?xml version="1.0" encoding="utf-8" ?> 
   <configuration>
      <configSections>
         <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="RM.Lib.Protheus.Server.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </sectionGroup>
      </configSections>
      <applicationSettings>
         <RM.Lib.Protheus.Server.Properties.Settings>
            <setting name="RM_Lib_Protheus_Server_FWDictionary_FWDICTIONARY" serializeAs="String">
            <value>http://<IP_do_webservice_Protheus>:<Porta_WS_Protheus>/wsdictionary/FWDICTIONARY.apw</value> </setting>
         </RM.Lib.Protheus.Server.Properties.Settings>
      </applicationSettings>
</configuration>

        4- Crie um arquivo com nome RM.Rpt.Protheus.Server.dll.config dentro da pasta e copie o seguinte conteúdo dentro dele alterando as partes em azul com as respectivas informações:

Informações
iconfalse
Deck of Cards
idPasso4
Card
idPara Banco de Dados SQL Server
labelPara Banco de Dados SQL Server
titlePara Banco de Dados SQL Server

Bloco de código
languagexml
titleExpanda para copiar o código
collapsetrue
<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
   <configSections>
      <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
         <section name="RM.Rpt.Protheus.Server.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </sectionGroup>
   </configSections>
   <connectionStrings>
      <add name="RM.Rpt.Lib.Server.Properties.Settings.DefaultConnection"
         connectionString="Data Source=<Instância_SQLServer_Proheus>;Initial Catalog=<Base_Dados_Protheus>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>"
         providerName="System.Data.SqlClient" />
      <add name="RM.Rpt.Protheus.Server.Properties.Settings.DefaultConnection"
         connectionString=" Data Source=<Instância_SQLServer_Proheus>;Initial Catalog=<Base_Dados_Protheus>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>"
         providerName="System.Data.SqlClient" />
   </connectionStrings>
   <applicationSettings>
      <RM.Rpt.Protheus.Server.Properties.Settings>
         <setting name="RM_Rpt_Protheus_Server_FWDictionaryWS_FWDICTIONARY" serializeAs="String">
            <value>
               http://
               <IP_do_webservice_Protheus>
               :
               <Porta_WS_Protheus>
               /wsdictionary/FWDICTIONARY.apw
            </value>
         </setting>
      </RM.Rpt.Protheus.Server.Properties.Settings>
   </applicationSettings>
</configuration>
Card
idPara Banco de Dados Oracle
labelPara Banco de Dados Oracle
titlePara Banco de Dados Oracle

Bloco de código
titleExpanda para copiar o código
collapsetrue
<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
   <configSections>
      <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
         <section name="RM.Rpt.Protheus.Server.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </sectionGroup>
   </configSections>
   <connectionStrings>
      <add name="RM.Rpt.Lib.Server.Properties.Settings.DefaultConnection"
         connectionString=" Data Source=<Nome_Serviço_Oracle>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>;Unicode=True"
         providerName="System.Data.OracleClient.OracleConnection" />
      <add name="RM.Rpt.Protheus.Server.Properties.Settings.DefaultConnection"
         connectionString=" Data Source=<Nome_Serviço_Oracle>;Persist Security Info=True;User ID=<usuário_acesso_base_Protheus>;Password=<Senha_acesso_base_Protheus>;Unicode=True"
         providerName="System.Data.OracleClient.OracleConnection" />
   </connectionStrings>
   <applicationSettings>
      <RM.Rpt.Protheus.Server.Properties.Settings>
         <setting name="RM_Rpt_Protheus_Server_FWDictionaryWS_FWDICTIONARY" serializeAs="String">
            <value>
               http://
               <IP_do_webservice_Protheus>
               :
               <Porta_WS_Protheus>
               /FWDICTIONARY.apw
            </value>
         </setting>
      </RM.Rpt.Protheus.Server.Properties.Settings>
   </applicationSettings>
</configuration>

Configurando o Serviço

       Após configurar todos os arquivos acima, faz-se necessária a configuração do serviço da RM.

       Por padrão o mesmo está configurado para “logar” como Network Service, porém é necessário que o mesmo esteja como LocalSystem. Para tal siga os passos abaixo:

  1.  Na pasta RM.Net busque o aplicativo RM.Host.exe
  2.  Execute o aplicativo como Administrador (clique como botão direto do mouse > Executar como Administrador
  3.  Será aberto um aplicativo minimizado na Aréa de Notificação, clique com o botão direito do mouse sobre ele > Configurar > Configurar Serviço

4. Na janela que se abriu, clique em Desinstalar:

5.  Em seguida selecione o usuário LocalSystem na lista de contas do sistema e clique em Instalar

6.  Se estiver tudo correto ficará como abaixo. Pode fechar a janela.

7. Teste o WebService acessando o endereço http://127.0.0.1:8051/rptwebservicesserver/mex?wsdl dentro do servidor. Caso tudo dê certo, deverá aparecer um schema XML no browser.

Disponibilizar a fonte de dados no RM

       Após toda a configuração é necessário habilitar a fonte de dados Protheus para a geração de relatórios.

  1. Acesse o RM e o ambiente Serviços Globais:
  2. Dentro de Serviços Globais, acesse a pasta (aba) Ambientes, menu Parâmetros e opção Globais:
  3. Na janela que se abriu, vá na pasta Gerador de Relatórios, busque o Provedor Protheus e clique duas vezes sobre ele:
  4. Na nova janela marque o checkbox Ativo e clique em Ok e na janela anterior clique em Ok também:

Passos - Lado Protheus


       Para a integração com o RM Reports não é necessário um Web Service específico, em testes realizados um Web Service convencional do Protheus foi o suficiente para suprir as necessidades do RM. Para fins deste material será demonstrado a criação do Web Service dedicado a integração.

Informações

É altamente recomendável criar um serviço exclusivo para “subir” o Web Service, isso evita perdas de desempenho na operação normal do sistema e em casos de manutenção ou parada no Web Service, não prejudica o restante da operação.

Criando o WebService

  1. Nos Parâmetros Iniciais do smartclient do Protheus, coloque as informações referentes a comunicação e ambiente do servidor que irá hospedar o webservice do RM e acesse o programa Server Wizard:
  2. Dentro do Wizard, clique uma vez com cima de Módulos Web e em sequida clique na opção incluir na barra superior da janela:
  3. Na janela que abriu preencha as informações conforme indicado abaixo e clique em Avançar:
  • Módulo Web: WSR: Web Service Integração Totvs Reports
  • Nome da Instância: Nome do WebService – O padrão adotado é WSR
  • Diretório Raiz das Imagens: É o diretório onde o Web Service irá usar para armazenar imagens e outros arquivos – É recomendável deixar o padrão que é preenchido automaticamente
  • Selecione o Enviroment: Ambiente do servidor onde irá “subir” o Web Service
  • Habiliar processos na Inicialização do Servidor: Define se o job do Web Service irá iniciar junto com o serviço do appserver ou o mesmo deverá ser chamado manualmente – Altamente recomendável deixar marcado como habilitado.

4. No campo Host preencha com IP do servidor e porta do WebService (por padrão a porta adotada é 8090, porém pode ser mudada desde que seja atualizada no arquivo de configuração do RM), em seguida clique sobre a filial que irá ser amarrada a este endereço, clique em Relacionar e por fim Avançar:

5. Na tela seguinte preencha com 1 o campo Mínimo de Usuários e 999999 o campo Máximo de Usuários:

6. Na mensagem de confirmação que será exibida, confirme clicando em Sim.

7. Para finalizar a instalação reinicie o serviço do appserver onde o Web Service está instalado.

Configurando a Comunicação

  1. Acesse o configurador do Protheus
  2.  Dentro do configurador acesse o caminho Ambiente > Parâmetros:

 

3. Busque os parâmetros a seguir e preencha com as respectivas informações:

  • MV_RMWSPRT: Porta do Web Service RM (Padrão é 8051) – Neste campo preencha somente com o número, exemplo: 8051
  • MV_RMWSURL: Endereço do Web Service RM – Neste campo preencha somente com o IP ou nome do servidor RM, exemplo:192.168.0.21

Chamar o Relatório RM no Protheus

       Esta etapa consiste em criar o atalho no menu do Protheus para chamar o relatório do RM.

  1. Dentro do configurador abra o caminho Ambiente > Menus:

2. Desmaque o checkbox Todos os Menus, marque o checkbox do Menu desejado e clique em Ok:

3. Clique uma vez em cima do nome do menu escolhido e em seguida Adicionar:

4. Navegue na janela do lado direito até encontrar a pasta desejada para alocar o relatório, em seguida dê um clique simples no nome desta pasta e clique em Novo Item: 

5. Preencha os campos Descrição, em seguida Módulo (módulo onde será executado o relatório), Tipo (Totvs Report) e por último clique no botão ... na opção Programa:

6. Na janela que se abriu marque o checkbox com o relatório desejado, clique em Confirmar e na janela anterior clique em Ok:

7. Terminada a inclusão dos relatórios, salve as alterações do menu clicando em Gerar na tela anteior, preenchendo com o nome do menu e em seguida Gerar novamente:

Obs.: As nomenclaturas padrões (“original” da Totvs e sem customização) de menus dos principais módulos do Protheus são:

  •  Ativo Fixo - SIGAATF
  • Compras – SIGACOM
  • Contabilidade – SIGACTB
  • Estoque - SIGAEST
  • Faturamento – SIGAFAT
  • Financeiro – SIGAFIN

 


Gerar Relatório no Protheus 


Tela Principal

       Após “chamar” o relatório desejado será exibida a tela a seguir:

       O grupo Tipo corresponde ao formato de arquivo que será gerado.

       O Local corresponde ao local onde o arquivo gerado será salvo.

Filtros

Clique sobre o grupo Filtro, preencha o filtro desejado e clique em Ok

Exemplo da composição de um filtro:

Desejado:

  • Todos os Pedidos de Compra entre 01/01/2014 e 01/05/2014
  • Fornecedor 000002 e 000040

Estrutura do filtro:

(DT Emissão Maior ou Igual a 01/01/2014 e DT Emissão Menor ou Igual a 01/05/2014) e (Fornecedor Igual a 000002 ou Fornecedor Igual a 000040)

 

 



Informações
titlePara maiores informações:

@FRAMEWORK

Canais de Atendimento

Chamado: Através do Portal TOTVS - www.suporte.totvs.com.br

Telefônico: 4003-0015 Escolhendo as opções 2-2-3-9-5 (Framework) ou 2-2-3-9-4 (BI)


Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 11.80.XX

Informações
iconfalse

Processo: Totvs Reports

Informações
iconfalse

Subprocesso: Integração RM Reports X Protheus

Informações
iconfalse
Informações
iconfalse

Status: Em andamento Finalizado

Informações
iconfalse

Data:26  

Informações
iconfalse

Autores:

Douglas Maxwell de Oliveira

Karina Dos Santos Costa

Stella Gleyse Macedo Vilaca

Wesley Avelino De Carvalho