Produto:

Protheus

Ocorrência:

Como é utilizado o Engine de Regras, nas integrações do ERP Datasul com o SIGAGFE (Frete Embarcador) ?

Passo a passo:

Solução:

Quando é feita a integração do ERP Datasul com o SIGAGFE (Frete Embarcador) ou vice-versa, os seguintes pontos tem chamada para o Engine de Regras (CD0024).

  1. Notas Fiscais de saída (ERP Datasul para o SIGAGFE).
  2. Documentos de entrada (ERP Datasul para o SIGAGFE).
  3. Integração do Documento de Frete (SIGAGFE com o Fiscal do ERP Datasul).
  4. Integração do Documento de Frete (SIGAGFE com o Recebimento do ERP Datasul - "Apropriar Despesa").
  5. Tipo de Documento de Entrada (ERP Datasul para o SIGAGFE). NOTA: Funcionalidade disponível a partir da release 12.1.6 do ERP Datasul.
    A utilização da regra é opcional. Antes dessa implementação, para categorizar as notas fiscais de entrada do Datasul em tipos de documento de carga no SIGAFE utilizava-se apenas a espécie de documento correspondente à natureza de operação informada no cabeçalho do documento de entrada. Essas espécies de documento são códigos restritos a uma lista de opções bastante limitada, muito genérica para distinguir, por exemplo, uma nota fiscal de retorno de beneficiamento de uma nota fiscal de compra; nesse exemplo ambas são identificadas como NFE. Diante dessa limitação não possível diferenciar o frete de algumas operações entre despesa ou custo no SIGAGFE. Considerando essa necessidade, torna-se possível, com a utilização do Engine de Regras, configurar qual tipo de documento de carga deve ser atribuído ao documento de carga do SIGAGFE na integração do documento de entrada do recebimento do ERP Datasul.

Para utilizar o Engine de Regras, devemos primeiro cadastrar os tipos de operações pelo programa CD0025. Segue abaixo os 05 pontos de integração utilizados pelo SIGAGFE.

ATENÇÃO: Os cadastros dos Tipos de Operação devem estar com o código EXATAMENTE igual estão descritos abaixo.

  1. “gfe-nfs” (Nota Fiscal Saída - Engine GFE)

  2. “gfe-nfe” (Nota Fiscal Entrada - Engine GFE)


  3. “gfe-fiscal” (Documento Fiscal - Engine GFE - De-Para Natureza Operação)


  4. “gfe-re” (Apropriar Despesa Documento de Entrada - Engine GFE - De-Para Natureza Operação)


  5. “gfe-tipo-dc" (Alterar/Configurar o Tipo de Documento de Carga a ser atribuído ao documento de carga do SIGAGFE na integração do documento de entrada do recebimento do Datasul).


Em seguida cadastramos as regras no CD0024. Abaixo as variáveis usadas em cada ponto de integração.


1. Bloquear/Liberar Nota Fiscal de Saída

“GFE-NFS” - Faturamento - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
cod-estabelCaracterCódigo do Estabelecimento do Datasul
serieCaracterSérie da Nota Fiscal de Saída
nome-ab-cliCaracterNome Abreviado do Cliente
cod-emitenteCaracterCódigo do Cliente (Emitente)
ind-sit-notaInteiroSituação da Nota Fiscal (1-Calculada, 2-Impressa, 3-Confirmada, 4-Cancelada, 5-Atual CR, 6-Atual OF, 7-Atual Etat.)
cod-cond-pagCaracterCondição de Pagamento
esp-doctoInteiroInformar a espécie do documento conforme é gravado na nota fiscal do faturamento: NFD -  grava 20, NFE - grava 21, NFS - grava 22 e NFT - grava 23)
ind-tp-freteInteiroIndicador do Tipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.)
cidade-cifCaracterCampo Cidade CIF
nome-transpCaracterNome da Transportadora
nat-operacaoCaractereNatureza de Operação da Nota Fiscal
canal-vendaInteiroCanal de Venda da Nota Fiscal
estadoCaracterEstado do endereço do cliente da Nota Fiscal (aba Endereço FT0904)
cidadeCaracterCidade do endereço do cliente da Nota Fiscal (aba Endereço FT0904)
cod-modalid-frtCaracterModalidade de Frete da Nota Fiscal (Campo Modalid Frete da aba Endereço FT0904)

Variáveis de Retorno - "GFE-NFS"

VariávelTipo de DadosSignificado / Origem Informação
 GFE-NFSCaracter

O retorno desta regra de engine deverá sempre ser realizado a partir de uma variável com o mesmo nome do tipo de operação “GFE-NFS”.

Quando esta regra tiver o retorno igual a “no” a Nota Fiscal de Venda não será integrada ao SIGAGFE,

Quando esta regra tiver o retorno igual a “yes” a Nota Fiscal de Venda será integrada ao SIGAGFE,


2. Bloquear/Liberar Nota Fiscal de Recebimento

 “GFE-NFE” - Recebimento - Bloquear ou Liberar Nota Fiscal de Entrada (Recebimento) - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
cod-emitente CaracterCódigo do Emissor da Nota de Entrada (docum-est.cod-emitente)
tipo-freteCaracterTipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.) (docum-est.mod-frete)
ind-tip-notaCaracterTipo da Nota Fiscal (1-Compra, 2-Devolução, 3-Transferência, 4-Entrada Benef, 5-Retorno Benef, 6-Entrada Consig, 7-Fatura Consig, 8-Devolução Consig, 9-Nota de Rateio, 10-Rem. Entrega Futura, 11-Rem. Fat. Antecipado) (docum-est.tipo-nota)
nat-oper
CaracterCódigo da Natureza de Operação (docum-est.nat-operacao)
nome-transpCaracterNome da Transportadora (docum-est.nome-transp)
esp-doctoCaracterEspécie da Nota de Entrada (NFD -  grava 20, NFE - grava 21, NFS - grava 22 e NFT - grava 23) (docum-est.esp-docto)
cod-modalid-frtCaracterModalidade de Frete da Nota Fiscal (Campo Modalid Frete da aba Transp do programa RE0701)
cod-cfopCaracterCódigo da CFOP vinculado a natureza de operação utilizada para a Nota Fiscal de Entrada (Este campo está disponível para consulta através do programa CD0606 - Cadastro de Natureza de Operação)

Variáveis de Retorno - "GFE-NFE"

VariávelTipo de DadosSignificado / Origem Informação
 GFE-NFE


Caracter

O retorno desta regra de engine deverá sempre ser realizado a partir de uma variável com o mesmo nome do tipo de operação “GFE-NFE”.

Quando esta regra tiver o retorno igual a “no” a Nota Fiscal de Entrada não será integrada ao SIGAGFE,

Quando esta regra tiver o retorno igual a “yes” a Nota Fiscal de Entrada será integrada ao SIGAGFE,


3. Definição de alguns pontos referente à integração do Datasul com o SIGAGFE referente a Nota Fiscal de Venda ou Entrada conforme Significado da segunda Grid

“GFE-NFE” - Recebimento ou "GFE-NFS" - Faturamento - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
it-codigoCaracter

Código do Item da Nota de Entrada ou Venda.

Obs: Esta variável não poderá ser utilizada para filtrar as notas que devem ser integradas ao GFE, pois está disponível apenas para os retornos descritos logo abaixo.

nat-operacaoCaracterNatureza de Operação do Item da Nota de Entrada ou Venda

Variáveis de Retorno - “GFE-NFE” ou "GFE-NFS"

VariávelTipo de DadosSignificado / Origem Informação

l-rateio

Caracter

Define se o determinado Item/Natureza de Operação será integrado ao SIGAGFE com ou sem Rateio no campo "Rateio Ctb" (GW8_RATEIO).

Quando esta regra tiver o retorno igual a “no” significa que não haverá rateio. Se estiver igual a "yes" haverá rateio.

Lembrando que o valor padrão deste campo "Rateio Ctb" (GW8_RATEIO) é "1-Sim" sendo necessário criar as regras apenas para os que não forem sofrer rateio.

l-crdicmCaracter

Define se o determinado Item/Natureza de Operação será integrado ao SIGAGFE com ou sem Crédito de ICMS no campo "Credita ICMS" (GW8_CRDICM).

Quando esta regra tiver o retorno igual a “no” significa que não haverá crédito. Se estiver igual a "yes" haverá crédito.

Lembrando que o valor padrão deste campo "Credita ICMS" (GW8_CRDICM) é "1-Sim" sendo necessário criar as regras apenas para os que não forem sofrer rateio.

envia-simulacaoCaracter

Define se a simulação da nota fiscal de saída será levada ao GFE. Lembrando que o padrão para esta situação é que a simulação seja levada ao GFE, sendo apenas necessário cadastrar uma regra quando a simulação não deva ser levada ao GFE.

Quando esta regra tiver o retorno igual a “no” significa que a simulação não será levada para o GFE. Se estiver igual a "yes" a simulação será levada.


4. Realizar o De-Para do CFOP do Documento de Frete para a Natureza de Operação do Fiscal do Datasul

“GFE-FISCAL” - Integração Fiscal - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
cod-estabelCaracterCódigo da Filial no GFE (GW3_FILIAL) – Documento de Frete
cod-emitenteInteiroCódigo da Transportadora (GW3_EMISDF) – Documento de Frete
cidadeCaracterCódigo da Cidade no EMS relacionado à Transportadora "cod-emitente"
estadoCaracterCódigo da UF no EMS relacionado à Transportadora "cod-emitente"
nat-operacaoCaracterCódigo do CFOP no GFe (GW3_CFOP) – Documento de Frete
cod-acesso-cteCaracterChave do CTe no GFe (GW3_CTE) – Documento de Frete
l-cteYES/NOIndicador se a Chave do CTe no GFE está ou não preenchida “cod-acesso-cte”
it-cd-trib-issInteiro

Tipo de Tributação no GFE quando o imposto for do tipo ICMS (GW3_TRBIMP) – Documento de Frete

Se GFE = "1-Tributado" no EMS "1-Tributado"

Se GFE = "2-Isento/Não-trib." no EMS "2-Isento/Não-tributado"

Se GFE = "3-Subst. Tribut." no EMS "3-Outros"

Se GFE = "4-Diferido" no EMS "3-Outros"

Se GFE = "5-Reduzido" no EMS "1-Tributado"

Se GFE = "6-Outros" no EMS "3-Outros"

Se GFE = "7-Presumido" no EMS "3-Outros"
it-aliquota-issDecimalAlíquota de Imposto no GFE quando o imposto for do tipo ISS (GW3_PCIMP) – Documento de Frete
it-cd-trib-icmInteiro

Tipo de Tributação no GFE quando o imposto for do tipo ICMS (GW3_TRBIMP) – Documento de Frete

Se GFE = "1-Tributado" no EMS "1-Tributado"

Se GFE = "2-Isento/Não-trib." no EMS "2-Isento/Não-tributado"

Se GFE = "3-Subst. Tribut." no EMS "3-Outros"

Se GFE = "4-Diferido" no EMS "3-Outros"

Se GFE = "5-Reduzido" no EMS "1-Tributado"

Se GFE = "6-Outros" no EMS "3-Outros"

Se GFE = "7-Presumido" no EMS "3-Outros"
it-aliquota-icmDecimalAlíquota de Imposto no GFE quando o imposto for do tipo ICMS (GW3_PCIMP) – Documento de Frete
vl-cofinsDecimalValor do Imposto de PIS no GFE (GW3_VLPIS) – Documento de Frete
vl-pisDecimalValor do Imposto de COFINS no GFE (GW3_VLCOF) – Documento de Frete
tipoInteiro

Tipo do Imposto relacionado à Espécie do Documento de Frete (GVT_TPIMP) – Documento de Frete – Espécie Doc. Frete

Se GFE = “1-ICMS” no EMS “1-Entrada”

Se GFE = “2-ISS” no EMS “3-Serviço”
trib-imp-gfeInteiro

Tipo de Tributação no GFE quando sem tradução para o EMS

1-Tributado;

2-Isento/Não Tributado

3-Subs Tributária

4-Diferido

5-Reduzido

6-Outros

7-Presumido

 esp-docto-frete Caracter

Espécie do Documento de Frete no SIGAGFE (GW3_CDESP)

 trib-pis-cofinsInteiro

Se toma crédito de pis/cofins no Documento de Frete vai receber 1.

Se não toma crédito de pis/cofins no Documento de Frete vai receber 2.

 trib-IPI Caracter

Tributação do IPI para o Documento de Frete. Vai receber "ISENTO" ou "OUTROS".

Se o tipo de imposto do Documento de Frete for "ISS", vai receber "ISENTO".

Se o tipo de imposto do Documento de Frete for "ICMS", vai receber  "OUTROS".

Variáveis de Retorno - “GFE-FISCAL”

VariávelTipo de DadosSignificado / Origem Informação
nat-operacaoCaracterCódigo do CFOP no GFe (GW3_CFOP) – Documento de Frete
item


Caracter

Item do Documento parametrizado pelo Parâmetros do Módulo, Aba “Integrações Datasul”, Campo “Código Item Documento Fiscal” (MV_DSOFIT).

É possível alterar este item que é enviado pelo SIGAGFE por outro utilizando esta variável como retorno.


5. Realizar o De-Para do CFOP do Documento de Frete para a Natureza de Operação do Recebimento do Datasul

“GFE-RE” - Nota Fiscal de Rateio (Apropriação de Despesa) - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
nat-operacaoCaracterCódigo do CFOP no GFE (GW3_CFOP) – Documento de Frete
cod-servicoInteiroCódigo tributação de ICMS GFE
cd-trib-icmInteiroCódigo tributação de ICMS GFE
aliquota-icmDecimalAlíquota de ICMS do documento de frete no GFE
nf-nat-operCaracterNatureza de operação da nota de entrada
l-issYES/NOIndica se o conhecimento tem ISS
l-ativoYES/NOIndica se a NF Entrada é uma nota de ativo imobilizado
l-cons-finalYES/NOIndica se a NF Entrada é uma nota para uso e consumo
l-crdicmsYES/NOIndica se a NF Entrada se creditou de ICMS
l-difaliqYES/NOIndica se a NF Entrada teve cálculo de ICMS Compl.
l-nat-entradaYES/NOIndicar que as NF rateio serão geradas com a natureza da NF entrada

uforigem

CaracterEstado de origem do fornecedor da nota de entrada
ufdestinoCaracterEstado do estabelecimento que recebeu a mercadoria
l-trib-pcYES/NOIndicador se Tributa ou não PIS/COFINS no Documento de Frete do GFE.
UFtranspCaracterUF do Emitente do Documento de Frete

Variáveis de Retorno - “GFE-RE”

VariávelTipo de DadosAção

nat-operacao ou

natur-oper ou

natureza

CaracterNatureza de operação resultante, com a qual será gerada a nota de rateio.
cod-servicoInteiroCódigo do serviço da nota de rateio
l-nat-entradaYES/NOIndica se utiliza a natureza da NF entrada para a natureza de rateio


6. Realizar a alteração do Tipo do Documento de Carga quando o Documento de Entrada for integrado ao SIGAGFE. Este procedimento é necessário quando deseja que determinadas Notas de Entrada seja contabilizado de forma diferente (com ou sem apropriação de despesa). Exemplo: Nota de Entrada de Embalagem.

“GFE-TIPO-DC” - Nota Fiscal Entrada/Tipo - Engine SIGAGFE - Variáveis utilizar para criação das condições.

VariávelTipo de DadosSignificado / Origem Informação
esp-doctoCaracterEspécie de Documento de Entrada
nat-operCaracterNatureza de operação da nota de entrada
cfopCaracterCFOP
tipo-doctoCaracterTipo de Documento de Entrada.

“1” para Entrada

"2” para Saída

cod-observaCaracter

“1” para Indústria

“2” para Comércio

“3” para Devolução Cliente

“4” para Serviço

ge-codigoCaracterGrupo de Estoque

Variáveis de Retorno - “GFE-TIPO-DC”

RetornoTipo de DadosAção
tipo-dcCaracterCódigo do tipo de documento de carga resultante, com a qual será utilizada na criação do documento de carga.
cdtpdcCaracterCódigo do tipo de documento de carga resultante, com a qual será utilizada na criação do documento de carga.


Segue abaixo um exemplo de uma regra que deverá Bloquear a integração de Nota Fiscal de Saída com frete do tipo FOB


Segue abaixo um exemplo de uma regra que deverá alterar a CFOP 2353 para a Natureza de Operação 235305 quando o tipo de imposto for Tributado e a alíquota de ICMS igual a 12%


Dica 01:  Simulador de Configurador de Regras(CD0026)

Podemos utilizar o CD0026 para simular as regras cadastradas.

Neste exemplo abaixo estamos testando a regra da Natureza de Operação 2353, alíquota de 12% e Tipo de ICMS Tributado

Neste exemplo abaixo estamos testando a regra de Nota Fiscal de Saída com frete do tipo FOB


Dica 02:  Uso do Clientlog durante a investigação de algum incidente


Durante a execução das integrações do SIGAGFE que utilizam-se de conceito de engine de regras,  há a execução da API cdp/cdapi034 responsável em executar o cadastro da regra, sendo possível consultar alguns parâmetros no clientlog:


     RUN cdp/cdapi034.p (<empresa do usuário, visível>,

                                        <temp-table, não é visível>,

                                       <código da operação, visível>,

                                       <temp-table, não e visível>,

                                       <código da regra encontrada e que foi aplicada, visível. Quando não for encontrada a regra, o conteúdo será zero(0)>,

                                       <temp-table, não e visível>,

                                       <temp-table, não e visível>,

                                       <temp-table, não e visível>).


Dica 03:  Arquivo de log da API cdp/cdapi034


Durante a execução das integrações do SIGAGFE que utilizam-se de conceito de engine de regras,  há a execução da API cdp/cdapi034 responsável em executar o cadastro da regra. Esta API, gera no diretório temporário da sessão Progress (comando session:temp-directory), um arquivo de log onde é possível comparar o cadastro das variáveis da condição(cdp/cd0024) com os valores recebidos.


Segue exemplo de como interpretar o conteúdo apresentado neste arquivo. No arquivo cdapi034.txt consta as seguintes linhas:

Regra: 20

if ('2352'='2352')AND (LOGICAL('yes')=LOGICAL('yes'))AND (INTEGER('1')=INTEGER('1'))AND (LOGICAL('no')=LOGICAL('yes')) then YES else NO


Para a interpretação recomenda-se que seja também executado o programa de Cadastro de Engine de Regras(CD0024), consultando-se a regra (no exemplo é a regra 20) onde se tem a sequencia das variaveis utilizadas com o respectivo cadastro. Para cada condição existente, no log é apresentado primeiramente o conteúdo recebido e depois o conteúdo cadastrado na condição onde então, pode-se conferir se a condição é verdadeira ou não.

Ilustrando:

nat-operacao: 2352(RECEBIDO) = 2352(CONDIÇAÕ) AND * satisfaz a condição

l-trib-pc...: yes(RECEBIDO) = yes(CONDIÇÃO) AND * satisfaz a condição

cb-trib-icm.: 1(RECEBIDO) = 1(CONDIÇÃO) AND * satisfaz a condição

l-crdicms...: no(RECEBIDO) = YES(CONDIÇÃO) * como está sendo enviado NO e esta condição espera YES, fará com que esta regra não seja aplicada.

Observações:

Essa informação também esta disponível na Centrar de Atendimento através do link: https://centraldeatendimento.totvs.com/hc/pt-br/articles/236099388/preview/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjM2MDk5Mzg4LCJleHAiOjE1NDAyNDUxMzN9.8P9WN6KHpZoZ57b9eyBxD9Ty7bOwB2TvtJxpS7L-fnI