Manual de integração com ERP Datasul
1. A integração
Para que a integração entre o DF-e com o Datasul ocorra de forma correta, se faz necessário o cadastro das rotinas de integração no ERP. Uma vez que são executadas, elas geram eventos (XML) em diretórios definidos pelo DF-e e é por onde elas serão lidas e importadas por ele.
Neste manual são descritos os procedimentos para a parametrização das rotinas, além de detalhes da função de cada uma.
2. Cadastro de UPCs
Para que todo o processo de integração e exportação e iimportação de dados possa ser realizado, é necessário disponibilizar os todos os programas necessários para esta operação. Com as programas salvos em um diretório de acesso do ERP, deve ser registrado no propath:
Com as rotinas salvas, o próximo passo é cadastrá-las no ERP para que sejam executadas junto com as rotinas padrão. Esse cadastro é feito através do programa men\men012aa.r.
2.1 Programa RE1005RP
O re1005rp-upc tem como função atualizar a situação do documento no Monitor DF-e e emitir uma mensagem referente ao evento realizado. Uma vez que essa rotina é executada na atualização do documento, será atualizado a situação da nota no DF-e com ícone
.
Caso a já exista uma UPC já cadastrada para o re1005rp, é necessário que essa upc possua no início de seu fonte a chamada para o re1005rp-upc:
/* Utilizado para receptor NFE */
RUN upc/re1005rp-upc.p (INPUT p-ind-event,
INPUT-OUTPUT TABLE tt-epc).
2.2 Programa RE1005C
O re1005c-upc tem a mesma função que o programa re1005rp-upc, atualizar a situação do documento para “Atualizado no ERP” no Monitor DF-e.
Caso já exista uma UPC cadastrada para o re1005c, é necessário que essa upc possua no início de seu fonte a chamada para o re1005c-upc:
/* Utilizado para receptor NFE */
RUN upc/re1005c-upc.p (INPUT p-ind-event,
INPUT-OUTPUT TABLE tt-epc).
2.3 Programa BOIN090
A boin090-upc é utilizada para validar documentos digitados manualmente no RE1001, ele registra eventos de inclusão que são importados pelo DF-e atualizando a nota nele com o ícone
(Recebido). A upc também é utilizada quando o documento é eliminado no recebimento fiscal, atualizando o documento no DF-e com o ícone
(Eliminado no ERP):
Caso o programa boin090 já possua uma UPC cadastrada, será necessário alterar o código fonte, e inserir o código abaixo no início do código atual:
/* Utilizado para receptor NFE */
RUN upc/boin090-upc.p (INPUT p-ind-event,
INPUT-OUTPUT TABLE tt-epc).
2.4 Programa RE2001Z
O re2001z-upc tem como objetivo buscar de forma automática a natureza de operação no caso de documentos provenientes do DF-e.
Caso a já exista uma UPC já cadastrada para o re2001z, é necessário que essa upc possua no início de seu fonte a chamada para o re2001z-upc:
/* Utilizado para receptor NFE */
RUN upc/re2001z-upc.p (INPUT p-ind-event,
INPUT p-ind-object,
INPUT p-wgh-object,
INPUT p-wgh-frame,
INPUT p-cod-table,
INPUT p-row-table).
2.4 Programa RE2005RP
O programa re2005rp é responsável por criar automaticamente o documento fiscal (re1001) a partir do documento físico (re2001).
Caso a já exista uma upc já cadastrada para o re2005rp, é necessário que essa upc possua no início de seu fonte a chamada para o re2005rp-upc conforme abaixo:
/* Utilizado para receptor NFE */
RUN upc/re2005rp-upc.p (INPUT p-ind-event,
INPUT-OUTPUT TABLE tt-epc).
2.5 Programa RE2001
O re2001-upc tem o objetivo desta UPC é enviar um evento ao DF-e notificando que o documento físico foi eliminado.
Caso o programa re2001 já possua uma UPC cadastrada, será necessário alterar o código fonte e inserir o código abaixo no início do código atual:
/* Utilizado para receptor NFE */
RUN upc/re2001-upc.p (INPUT p-ind-event,
INPUT p-ind-object,
INPUT p-wgh-object,
INPUT p-wgh-frame,
INPUT p-cod-table,
INPUT p-row-table).
2.6 Programa RE2001A
O re2001a-upc realiza a validação de documentos digitados manualmente no RE2001, ele registra eventos de inclusão que são importados pelo DF-e atualizando a nota nele com o ícone
(Recebido).
Caso o programa re2001a já possua uma UPC cadastrada, será necessário alterar o código fonte e inserir o código abaixo no início do código atual:
/* Utilizado para receptor NFE */
RUN upc/re2001a-upc.p (INPUT p-ind-event,
INPUT p-ind-object,
INPUT p-wgh-object,
INPUT p-wgh-frame,
INPUT p-cod-table,
INPUT p-row-table).
2.7 Programa RE0402RP
O re0402rp-upc tem como função gerar um evento para o DF-e registradando que a nota foi desatualizada e voltou a ficar disponível no recebimento fiscal (RE1001).
Caso o programa re0402rp já possua uma UPC cadastrada, será necessário alterar o código fonte e inserir o código abaixo no início do código atual:
/* Utilizado para receptor NFE */
RUN upc/re0402rp-upc.p (INPUT p-ind-event,
INPUT-OUTPUT TABLE tt-epc).
2.8 Programa OF0305
O of0305-upc tem como objetivo gerar um evento XML ao DF-e informando que o documento foi eliminado do modulo de Obrigações Fiscais (OF).
Caso o programa of0305 já possua uma upc cadastrada, será necessário alterar o código fonte e inserir o código abaixo no início do código atual:
/* Utilizado para receptor NFE */
RUN upc/of0305-upc.p (INPUT p-ind-event,
INPUT p-ind-object,
INPUT p-wgh-object,
INPUT p-wgh-frame,
INPUT p-cod-table,
INPUT p-row-table).
2.9 Programa OF0305a
O of0305a-upc realiza o registro de um evento para no DF-e informando que o documento foi digitado manualmente no modulo de Obrigações Fiscais (OF).
Caso a já exista uma upc já cadastrada para o of0305a, é necessário que essa upc possua no início de seu fonte a chamada para o of0305a-upc:
/* Utilizado para receptor NFE */
RUN upc/of0305a-upc.p (INPUT p-ind-event,
INPUT p-ind-object,
INPUT p-wgh-object,
INPUT p-wgh-frame,
INPUT p-cod-table,
INPUT p-row-table).
3. Cadastro de triggers de UPC
Além do cadastro das upcs nas rotinas do recebimento, para a integração é importante manter o cadastro de tradução atualizado. Por isso são cadastradas upcs de triggers nas tabelas emitente e item-fornec. Abaixo é possível verificar a função de cada uma e como é feito o cadastro no ERP.
3.1 Trigger da tabela Emitente
O objetivo da trigger de write da tabela emitente é registrar eventos sempre que um emitente é editado ou criado para que seja importado pelo DF-e e atualizado. Desta forma os dados de emitentes entre ERP e DF-e sempre ficam em concordância.
O cadastro da trigger é feito no ERP através da rotina btb\btb006aa.r:
Caso já exista uma upc de write para a tabela emitente é necessário inserir nela uma chamada no início do fonte para a upc twad098c-upc:
/* Utilizado para receptor NFE */
RUN upc/twad098-upc.p (BUFFER b-emitente,
BUFFER b-old-emitente).
3.2 Trigger da tabela Item-Fornec
O objetivo da trigger de write da tabela item-fornec é registrar eventos sempre que um registro de item x fornecedor é editado ou criado para que seja importado pelo DF-e e atualizado. Desta forma os dados de item x fornecedor entre ERP e DF-e se mantém em concordância para que a conversão unidade de medidas (quando necessária) no recebimento de notas ocorra corretamente.
O cadastro da trigger é feito no ERP através da rotina btb\btb006aa.r:
Caso já exista uma upc de write para a tabela emitente é necessário inserir nela uma chamada no início do fonte para a upc twin178-upc:
/* Utilizado para receptor NFE */
RUN upc/twin178-upc.p (BUFFER b-emitente,
BUFFER b-old-emitente).
4. Arquivo de Parâmetros de Integração
Para que as rotinas realizem todas as ações de integração corretamente, é necessário gerar e inserir o arquivo paramdfe.ini no propath do Datasul. O arquivo é responsável por criar um caminho com os principais diretórios de integração, que são os diretórios onde o ERP irá resgatar os arquivos XM's e realizar a importação.
O paramdfe.ini deverá ser gerado no DF-e, através do caminho Módulo Administrativo Parâmetros DF-e Estabelecimentos botão Gerar Paramdfe.ini.
Importante: os diretórios parametrizados no DFe geralmente são informados como diretórios locais (C:\ ou D:\). Todavia, é necessário que o paramdfe.ini possua os diretórios mapeados para que o mesmo seja acessado pelo programa de integração e seja possível realizar a leitura/integração do arquivo XML.
5. Acesso aos usuários
Outro ponto muito importante é quanto aos usuários que realizam o recebimento das notas. Quando o recebimento da nota no DF-e ocorre, o mesmo usuário que realiza o procedimento deve ser o que realiza a integração. Ou seja, quando o usuário possui um código re integração registrado (vide Administrativo -> Controle de Acesso -> Usuário), essa é informação é registrada no XML do documento traduzido e é com base nela que é realizado o filtro de notas na integração. Ou seja, se um usuário receber a nota no DF-e, mas outro executar as rotinas de integração (códigos de integração diferentes), a nota não será integrada.
Além disso, para que o usuário integre as notas e possa movimentar corretamente os XML's traduzidos e os eventos dos documentos, é necessário que ele tenha controle total nas pastas de XML do DF-e. Para identificar esses diretórios basta acessar o módulo de Administrativo, na aba parâmetros:
- DF-e -> Aplicação, aba Diretórios;
- DF-e -> Estabelecimento, abas NF-e, CT-e e NFS-e.