Home

Linha Microsiga Protheus

Páginas filhas
  • Engine de Regras (CD0024) no SIGAGFE

Causa:

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

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").

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

  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)

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/Recebimento


“GFE-NFS” - Faturamento:

"cod-estabel"
"serie"
"nome-ab-cli"
"cod-emitente"
"ind-sit-nota" - Situação da Nota Fiscal (1-Calculada, 2-Impressa, 3-Confirmada, 4-Cancelada, 5-Atual CR, 6-Atual OF, 7-Atual Etat.)
"cod-cond-pag"
"esp-docto" - Informar 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-frete" - Indicador do Tipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.)
"cidade-cif"
"nome-transp"


(itens)
"it-codigo"
"cod-ean"
"nat-operacaoitem"

Obs: 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” com o retorno igual a “no” quando não for para integrar ou “yes” quando for para integrar.


“GFE-NFE” - Recebimento:

"cod-emitente"
"tipo-frete" - Tipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.)
"ind-tip-nota" - Tipo 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)
"nat-oper"

Obs: 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” com o retorno igual a “no” quando não for para integrar ou “yes” quando for para integrar.

 

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


“GFE-FISCAL” - Integração Fiscal:

VariávelTipo de DadoSignificado / 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

itemCaracter

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

Apenas variável de retorno não sendo possível utilizar como condição.

 

“GFE-RE” - Nota Fiscal de Rateio (Apropriação de Despesa):

VariávelTipo de dadoSignificado/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.

 

Variáveis de Retorno

RetornoTipo de dadoAçã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

 

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.