1. INFORMAÇÕES PROPRIETÁRIA
Este documento é de propriedade da Wealth Systems Informática Ltda. Todas as informações contidas aqui são confidenciais e não devem ser copiadas ou divulgadas para quaisquer terceiros sem antes um consentimento formal, por escrito, da Wealth Systems, podendo somente ser divulgada dentro do Cliente para os seus funcionários que estiverem diretamente envolvidos no projeto, o qual este documento relata.
A empresa Cliente será solenemente responsável por assegurar que todos seus funcionários envolvidos estejam de acordo e acatem estas condições e ainda, está intitulado para usar as informações contidas neste documento, somente para propósitos de avaliação. Este documento é versionado e sua estrutura não poderá ser alterada sem o consentimento do Gerente de Projetos da Wealth Systems.
2. HISTÓRICO DE REVISÃO
| DATA | VERSÃO | MODIFICADO POR | DESCRIÇÃO DA MUDANÇA |
|---|---|---|---|
| 31/01/2020 | 8.0.2 | Fábio Ancioto | Fechamento de versão. |
3. INTEGRAÇÃO DE DADOS
A integração de dados entre TOTVS CRM | SFA e Protheus se dá através de uma API (Application Programming Interface) que utiliza web services com arquitetura REST (Representation State Transfer) para importação de dados (Protheus → TOTVS CRM | SFA) e SOAP (Simple Object Access Protocol) para a exportação de pedidos (TOTVS CRM | SFA → Protheus).
3.1 Horários de execução padrões
Todas as rotinas de integração são executadas conforme um agendamento, que determina os horários em que as rotinas serão executadas. Em servidores Windows, o agendamento é feito através da ferramenta Agendador de Tarefas, que é nativa do sistema operacional, enquanto em servidores Linux o agendamento é feito através de um arquivo Cron, que é o equivalente do agendador de tarefas para sistemas Unix.
Por padrão, os agendamentos de execução das rotinas standard são feitos da seguinte forma: Importação Geral (BLOCO_ALL): Inicia a execução às 6h, repete a cada intervalo de 1h, encerrando as execuções as 20h (expressão cron: 0 4-20 * * *);
Exportação Pedido: Inicia a execução às 6h, repete a cada intervalo de 5min, encerrando as execuções as 20h (expressão cron: */5 4-20 * * *);
Exportação Clientes: Inicia a execução às 6h, repete a cada intervalo de 5min, encerrando as execuções as 20h (expressão cron: */5 4-20 * * *).
Ao ser feito o agendamento, deve ser levado em consideração os recursos de cada servidor, para entender se o agendamento padrão é ou não aderente, e ajustar conforme as necessidades.
3.2 Execuções fora do agendamento:
É possível executar os serviços de integração manualmente, caso necessário, tanto em servidores windows como em servidores linux.
Windows: Como todos os agendamentos são feitos através do Agendador de Tarefas do Windows (Task Scheduler), é possível executá-los a partir do mesmo. É possível também executar o arquivo .bat da integração desejada diretamente da pasta da integração;
Linux: É necessário executar o arquivo .sh da rotina desejada na pasta da integração.
3.3 Importação de dados
A importação de dados do Protheus para o TOTVS CRM | SFA é realizada através de requisições ao método getgenerico presente na API de integração REST.
Este método retorna os registros de uma única tabela do banco de dados do Protheus de forma genérica através de parâmetros enviados na sua requisição.
Método de requisição: GET
URL base: IP e Porta
Nome do método: GETGENERICO
Autenticação: BASIC (se habilitada) ou NO AUTH (se não habilitada)
Exemplo: http://10.50.100.1:8036/rest/wssim3g/getgenerico
Header:
| CHAVE | VALOR | OBSERVAÇÃO |
|---|---|---|
| Content-Type | application/json | Formato do conteúdo: JSON |
| TenantId | EMP,FIL | Código da empresa e filial do Protheus |
| Authorization | Basic <usuario:senha> | Usuário e senha do ERP criptografado em Base64 |
Body (Request): Vazio
Result: Objeto JSON contendo os dados do retorno da consulta
Parâmetros (Querystring):
| NOME | TIPO | OBRIGATÓRIO | DESCRIÇÃO |
|---|---|---|---|
| TABLE | Texto | Sim | "Alias" ou "nome" da tabela do Protheus (obrigatório). Se informar o "Alias", retornará a tabela conforme a "Empresa" configurada na instância do web service |
| FIELD | Texto | Não | Lista de campos da tabela para retornar. Se não informado, retornará todos. |
| FILTER | Texto | Não | Expressão de filtro sobre os campos da tabela em sintaxe SQL. |
| ORDER | Texto | Não | Lista de campos da tabela para ordenar os registros em sintaxe SQL. Se não informado, será ordenado pelo campo R_E_C_N_O_. |
| LIMIT | Inteiro | Não | Quantidade de registros para retornar a cada chamada do método. |
| PAGE | Inteiro | Não | Número da página para retornar se informado o parâmetro LIMIT. |
Exemplo de requisição:
http://10.50.100.1:8036/rest/WSSIM3G/getgenerico?table=CC2&field=CC2_CODMU
N,CC2_MUN&limit=100&page=1&order=CC2_EST,CC2_MUN&filter=CC2_EST='PR'
Exemplo de retorno:
{
"result":
{"CC2_EST": "PR","CC2_CODMUN": "00608","CC2_MUN": "ALTO PARANA"},
{"CC2_EST": "PR","CC2_CODMUN": "00905","CC2_MUN": "AMAPORA"},
{"CC2_EST": "PR","CC2_CODMUN": "06704","CC2_MUN": "CRUZEIRO DO SUL"},
{"CC2_EST": "PR","CC2_CODMUN": "07108","CC2_MUN": "DIAMANTE DO NORTE"},
{"CC2_EST": "PR","CC2_CODMUN": "08908","CC2_MUN": "GUAIRACA"},
{"CC2_EST": "PR","CC2_CODMUN": "10300","CC2_MUN": "INAJA"},
{"CC2_EST": "PR","CC2_CODMUN": "11308","CC2_MUN": "ITAUNA DO SUL"},
{"CC2_EST": "PR","CC2_CODMUN": "12603","CC2_MUN": "JARDIM OLINDA"},
{"CC2_EST": "PR","CC2_CODMUN": "13502","CC2_MUN": "LOANDA"},
{"CC2_EST": "PR","CC2_CODMUN": "15002","CC2_MUN": "MARILENA"}
],
"count": 10,
"page": 1
}
3.4 Blocos de execução
A importação de dados é dividida em blocos, cada blocos contendo uma série de rotinas que giram em torno do mesmo módulo ou tipo de informação, e todos estes blocos por sua vez são contidos em um bloco geral, chamado de BLOCO_ALL, que é executado periodicamente como uma carga geral de informações.
Blocos:
Bloco Commons: Composto de rotina que importam informações mais estáticas, que não dependem de muitos vínculos e não tendem a mudar com frequência, sendo de certa forma informações generalistas no sistema. Exemplo: entidade país, unidade federativa, cidade, tipo parceiro etc.
Bloco Filial: Possui apenas a rotina GETFILIAL, que faz a importação de filiais para o TOTVS CRM | SFA;
Bloco TES: Realiza a importação das informações de TES, com base no tipo de TES utilizado (inteligente ou padrão);
Bloco Vendedor: Importa as informações pertinentes aos usuários e seus vínculos (usuário filia, usuário e-mail etc.);
Bloco Parceiro: É composto das rotinas de integração de transportadoras e de clientes, assim como seus vínculos;
Bloco Produto: Integra todas as informações com relação aos produtos e seus vínculos, assim como informações de tipo de produto, grupo de produto, unidade de medida e embalagem;
Bloco Estoque: Realiza a integração de informações de estoque por produto;
Bloco Preço: Importa as informações de tabelas de preços e as vincula com produtos e locais de clientes.
3.5 Entidades da importação de dados
Abaixo estão descritas todas as entidades que são importadas na integração standard entre Protheus e TOTVS CRM | SFA.
PAIS (Tablea PAIS)
Retorna todos os países cadastrados no Protheus na tabela SYA.