15408 - Identificador para manipular informações do XML na execução do WebService
Problema: Descrição do Problema: Existe algum exemplo de regra de utilização dos identificadores CPR-000INECM01 e CPR-000INECM02.
Quando ocorre / onde se aplica: F000INE
Solução: Solução 15408: Segue abaixo exemplo de utilização dos identificadores de regras CPR-000INECM01 e CPR-000INECM02.
/*******************************************************************************
Regra vinculada ao identificador CPR-000INECM01.
Nessa regra são definidos os campos do XML que poderão ser alterados no
momento de gravar as informações nas tabelas intermediárias E000NFC, E000IPC,
E000ISC, E000PAR e E000EXF
******************************************************************************/
Definir alfa CPRATIPDEC; @ TIPO DE DECLARAÇÃO (N - NF-e / C - CT-e) @
Definir alfa CPRATAGNFC; @ Lista de campos a serem alterados, dos dados gerais @
Definir alfa CPRATAGIPC; @ Lista de campos a serem alterados, E000IPC @
Definir Alfa CPRATAGISC; @ Lista os campos a serem alterados, E000ISC @
Definir alfa CPRATAGEXF; @ Lista de campos a serem alterados, E000EXF @
Definir alfa CPRATAGPAR; @ Lista de campos a serem alterados, E000PAR @
Definir alfa CPRATAGDLS; @ Lista de campos a serem alterados, E000DLS @
se (CPRATIPDEC = N) @ N - CORRESPONDE A NOTA FISCAL @
{
CPRATAGNFC = transp|vol|pesoB,ide|dSaiEnt,compra|xPed;
CPRATAGIPC = transp|vol|pesoB,compra|xPed,prod|cProd,prod|cEAN,prod|uCom,prod|uTrib,prod|xPed,prod|nItemPed,PIS|PISAliq|pPIS,PIS|PISOutr|pPIS,;
CPRATAGIPC = CPRATAGIPC + COFINS|COFINSAliq|pCOFINS,COFINS|COFINSOutr|pCOFINS,prod|CFOP;
CPRATAGIPC = CPRATAGIPC + ICMS|ICMS60|vBCSTRet,ICMS,;
CPRATAGIPC = CPRATAGIPC + ICMS|ICMS60|vICMSSTRet,ICMS;
CPRATAGPAR = total|ICMSTot|vNF,cobr|dup|dVenc,cobr|dup|vDup;
CPRATAGDLS = ide|serie;
}
/*******************************************************************************
Regra ligada ao identificador CPR-000INECM01
A finalidade dessa regra é verificar a informação da tag xPed do item da NF
e caso nessa tag existam valores diferentes números, faz o tratamento
para deixar apenas os números contidos na tag para gravação na tabela E000IPC
no campo NumOcp.
********************************************************************************/
Definir Alfa CPRATABELA; @ Tabela que está sendo processada @
Definir alfa CPRA_prod_xPed; @ Tag do XML que será tratada que neste caso é o xPed do item do produto @
Definir Alfa aNumOcp1;
Definir Alfa aNfeNumOcp;
se (CPRATABELA = E000IPC)
aNumOcp1 = CPRA_prod_xPed;
{
estanulo(CPRA_prod_xPed, nRet);
se (nRet = 0)
{
DeixaNumeros(aNumOcp1);
AlfaParaInt(aNumOcp1,nNfeNumOcp);
E000IPC.NUMOCP = nNfeNumOcp;
}
fim;
IMPORTANTE: Os identificadores são executados no momento em que o WebService (com.senior.g5.co.int.eletronicos.documentos@Receber) irá gravar os dados nas tabelas intermediárias (E000NFC, E000IPC, E000ISC, E000PAR, E000DLS e E000EXF) processo esse realizado pelo WebService, que interpreta os dados do XML e grava nas tabelas intermediárias, portanto qualquer erro que for retornado pelo WebService impedindo a gravação irá abortar o processo e a NF não será importada. Esses identificadores não serão executados no processar da tela F000INE.
Quando ocorre / onde se aplica: F000INE
Solução: Solução 15408: Segue abaixo exemplo de utilização dos identificadores de regras CPR-000INECM01 e CPR-000INECM02.
/*******************************************************************************
Regra vinculada ao identificador CPR-000INECM01.
Nessa regra são definidos os campos do XML que poderão ser alterados no
momento de gravar as informações nas tabelas intermediárias E000NFC, E000IPC,
E000ISC, E000PAR e E000EXF
******************************************************************************/
Definir alfa CPRATIPDEC; @ TIPO DE DECLARAÇÃO (N - NF-e / C - CT-e) @
Definir alfa CPRATAGNFC; @ Lista de campos a serem alterados, dos dados gerais @
Definir alfa CPRATAGIPC; @ Lista de campos a serem alterados, E000IPC @
Definir Alfa CPRATAGISC; @ Lista os campos a serem alterados, E000ISC @
Definir alfa CPRATAGEXF; @ Lista de campos a serem alterados, E000EXF @
Definir alfa CPRATAGPAR; @ Lista de campos a serem alterados, E000PAR @
Definir alfa CPRATAGDLS; @ Lista de campos a serem alterados, E000DLS @
se (CPRATIPDEC = N) @ N - CORRESPONDE A NOTA FISCAL @
{
CPRATAGNFC = transp|vol|pesoB,ide|dSaiEnt,compra|xPed;
CPRATAGIPC = transp|vol|pesoB,compra|xPed,prod|cProd,prod|cEAN,prod|uCom,prod|uTrib,prod|xPed,prod|nItemPed,PIS|PISAliq|pPIS,PIS|PISOutr|pPIS,;
CPRATAGIPC = CPRATAGIPC + COFINS|COFINSAliq|pCOFINS,COFINS|COFINSOutr|pCOFINS,prod|CFOP;
CPRATAGIPC = CPRATAGIPC + ICMS|ICMS60|vBCSTRet,ICMS,;
CPRATAGIPC = CPRATAGIPC + ICMS|ICMS60|vICMSSTRet,ICMS;
CPRATAGPAR = total|ICMSTot|vNF,cobr|dup|dVenc,cobr|dup|vDup;
CPRATAGDLS = ide|serie;
}
/*******************************************************************************
Regra ligada ao identificador CPR-000INECM01
A finalidade dessa regra é verificar a informação da tag xPed do item da NF
e caso nessa tag existam valores diferentes números, faz o tratamento
para deixar apenas os números contidos na tag para gravação na tabela E000IPC
no campo NumOcp.
********************************************************************************/
Definir Alfa CPRATABELA; @ Tabela que está sendo processada @
Definir alfa CPRA_prod_xPed; @ Tag do XML que será tratada que neste caso é o xPed do item do produto @
Definir Alfa aNumOcp1;
Definir Alfa aNfeNumOcp;
se (CPRATABELA = E000IPC)
aNumOcp1 = CPRA_prod_xPed;
{
estanulo(CPRA_prod_xPed, nRet);
se (nRet = 0)
{
DeixaNumeros(aNumOcp1);
AlfaParaInt(aNumOcp1,nNfeNumOcp);
E000IPC.NUMOCP = nNfeNumOcp;
}
fim;
IMPORTANTE: Os identificadores são executados no momento em que o WebService (com.senior.g5.co.int.eletronicos.documentos@Receber) irá gravar os dados nas tabelas intermediárias (E000NFC, E000IPC, E000ISC, E000PAR, E000DLS e E000EXF) processo esse realizado pelo WebService, que interpreta os dados do XML e grava nas tabelas intermediárias, portanto qualquer erro que for retornado pelo WebService impedindo a gravação irá abortar o processo e a NF não será importada. Esses identificadores não serão executados no processar da tela F000INE.