ERP - WebServices - Como funciona o controle de Exportação de registros através dos WebServices
Dúvida
Como funciona o controle de Exportação de registros através dos WebServices?
Solução
Importante
Esta solução também se aplica para rotinas do sistema que não tenham registros exportados por WebServices, mas que utilizam o mesmo processo de controle de pendências de exportação. Exemplo: Integração do Gestão Empresarial | ERP com WMS SILT, WMS Alcis e WMS WIS.
O Gestão Empresarial | ERP possui uma lógica para controle dos registros que devem ser exportados nos WebServices.
A tabela E000CIX armazena o controle dos registros que estão pendentes de exportação para o sistema de terceiros.
Essas pendências podem ser geradas:
- Em telas padrões do sistema (quando algum registro é alterado/criado/deletado);
- Através das funções GerarPendenciaExportacao e GerarPendenciaExportacaoRet;
- Através da execução de Carga Inicial pela tela F000CIV_SIS - Cadastros / Integrações (1) / Carga inicial ou pela chamada dos WebServices com o Tipo de Integração como T-Todos
Importante
Para que a pendência de algum tipo de informação seja gerada no sistema, é necessário que seja ativada a geração de pendência para a Empresa, Filial e Sistema Integrado na tela F000SXT - Cadastros / Integrações (1) / Configuração de Tipos de Informação.
A tabela E000CIX possui o alguns campos importantes para entendimento do conceito do processo:
- SeqInt: sequência do registro de integração (é um sequencial único para fazer referência em outras tabelas);
- CodInt: é o código do sistema de integração cadastrado na tela F000SIS - Cadastros / Integrações (1) / Cadastro de Sistemas Integrados. Lembrando que as requisições processadas via WebService tem a definição da Sigla do Sistema integrado e é através desta sigla (que é cadastrada na tela F000SIS) que o Gestão Empresarial | ERP localiza o código sistema integrado;
- IdeInt: identificação do tipo de informação ao qual se refere o registro. Clique aqui para acessar a documentação dos tipos de informação;
- SitIex: situação da pendência de integração, podendo ter os seguintes status:
- P - Pendente de exportação (quando a pendência do registro ainda não foi exportada pelo WebService);
- C - Pendente de Confirmação (quando ocorre a exportação do registro via WebService);
- E - Erro no processamento (quando o sistema integrado indicou ao Gestão Empresarial | ERP de que ocorreu erro na integração do registro. e indica, através do WebService com.senior.g5.co.int.geral.exportacao essa situação).
- S - Processado com Sucesso (quando o sistema integrado confirmou que o registro foi integrado através do WebService com.senior.g5.co.int.geral.exportacao)
A tabela E000CIX possui ligação com uma outra tabela, que serve como ligação entre o registro das pendências (E000CIX) e o registro do sistema de fato (exemplo: tabela de cadastro de Clientes - E085CLI).
Para melhor entendimento desse processo, veja abaixo um exemplo de processamento da pendência de exportação de um cadastro de Cliente já existente no Gestão Empresarial | ERP:
1. A partir do momento que é ligada a exportação de Clientes na tela F000SXT - Cadastros / Integrações (1) / Configuração de Tipos de Informação para um determinado sistema, ao ser realizada uma alteração de Cliente na tela F085CAD - Cadastros / Clientes e Fornecedores / Clientes / Cadastro o Gestão Empresarial | ERP gera uma pendência de exportação na tabela E000CIX;
2. A tabela E000CIX possui ligação com a tabela E000CLI através do campo SeqInt (sequencial do registro de integração);
3. O registro na tabela E000CIX possui o CodInt como código do sistema Integrado (E000SIS) e o IdeInt como 10 (que corresponde a registros de Clientes);
4. O registro na tabela E000CIX possuirá o campo SitIex definido como P- Pendente de Exportação;
5. A tabela E000CLI funciona como um índice para a tabela E085CLI, para saber de fato qual o registro da tabela E085CLI precisa ser exportado. Então temos: E000CIX (pendência de exportação) ligada à E000CLI (índice do registro que está pendente de exportação) que é ligada à E085CLI (tabela que possui de fato os dados completos do registro que será exportado);
6. Quando o WebService Com.senior.g5.co.int.varejo.cliente@Exportar_11 (por exemplo) é chamado com a opção de exportação A-Somente alterados, o WebService irá ler na tabela E000CIX quais são os registros de Clientes pendentes para exportação para a empresa, filial e Sistema integrado definido na requisição de entrada do WebService;
Observação
Para informações sobre os tipos de exportação (A-Somente Alterados, T-Todos e E-Específico), acesse o artigo ERP - WebServices - Quais os tipos de exportação de registros disponíveis nos WebServices (A-Somente Alterados, T-Todos e E-Específicos).
7. O Gestão Empresarial | ERP muda o status da pendência para C-Pendente de Confirmação (campo E000CIX.SitIex), define um número de lote para essa exportação (campo E000CIX.NumLot) e faz a exportação dos registros, indicando o número de lote de exportação. Para maiores informações sobre lote de registros, verifique o artigo ERP - WebServices - O que é um lote de registros exportados;
8. O sistema de terceiro faz a leitura dos registros e para haver confirmação de que ele realmente integrou os registros, o sistema de terceiros faz a chamada do WebService com.senior.g5.co.int.geral.exportacao, porta Confirmar para confirmar o lote de integração. Para maiores informações sobre esse processo, verifique o artigo ERP - WebServices - Como efetuar a confirmação de um lote de registros exportados e definir que eventualmente um registro não tenha sido integrado;
9. O Gestão Empresarial | ERP altera a situação dos registros exportados nesse lote para S-Sucesso (campo E000CIX.SitIex).
Importante
- Tome muito cuidado com a quantidade de registros que é solicitada a exportação a cada requisição ao WebService. Quanto maior a quantidade de registros, maior o tráfego de dados, e isso pode ocasionar timeouts de integração;
- Para maiores informações sobre a quantidade de registros exportados, acesse o artigo ERP - WebServices - Qual o quantidade de registros (tamanho do lote) deve ser definido na chamada a um WebService de exportação registros;
- Alguns WebServices possuem parâmetros para permitir a indicação se considera ou não a pendência gerada na tabela E000CIX (exemplo: parâmetro conPen do WebService com.senior.g5.co.cad.clientes, porta Exportar_X). Neste caso, você deve ficar atento para o preenchimento desse parâmetro que pode indicar que o WebService irá exportar registros sem considerar o controle das pendência gerados na tabela E000CIX.
Atenção
- Para informações sobre o término da exportação de registros, acesse o artigo ERP - WebServices - Como ocorre o controle da finalização de registros a serem exportados por um WebService;
-
Verifique também o artigo ERP - WebServices - Como garantir que um registro não integrado no sistema integrado seja reexportado pelo Gestão Empresarial | ERP que tem relação com esse processo.
Observação
Para mais informações sobre os WebServices do Gestão Empresarial | ERP, consulte o artigo ERP - WebServices - Onde é possível encontrar informações diversas sobre processo de integração via WebServices (índice).