Identificador de Regra
CPR-000INECM01
Módulo: CPR - Compras.
Finalidade: retornar ao sistema quais as tags do .XML que serão disponibilizadas para consulta de seus valores originais, durante a execução do identificador de regras CPR-000INECM02.
Caso haja um leiaute importado e ativo na tela Configuração de leiaute (F017LRE) para documentos recebidos através do web service com.senior.g5.co.int.eletronicos.documentos, porta Receber, a regra do identificador não é executada.
Características: como a execução do identificador CPR-000INECM02 será realizada a cada gravação dos registros das tabelas intermediárias, há uma variável para cada tabela, onde o usuário poderá definir quais tags ele deseja visualizar naquele momento. Para declarar uma tag do .XML nas variáveis disponibilizadas, é necessário informar o caminho da tag junto com o campo requerido, utilizando o caractere "|" para divisão dos nós "," em cada campo requerido.
Exemplos:
Exemplo 1:
Dados Gerais (E000NFC)
Retorno: ide|natOp
ide – caminho da tag
natOp – campo, informação requerida
Exemplo 2:
Itens de Produto (E000IPC)
Retorno: prod|xProd
prod – caminho da tag
xProd – campo, informação requerida
Exemplo 3:
Parcelas (E000PAR)
Retorno: cobr|dup|nDup
cobr|dup – caminho da tag
nDup – campo, informação requerida
Exemplo 4:
Controle Lote e Série (E000DLS)
Retorno: med|nLote
med – caminho da tag
nLote – campo, informação requerida
Exemplo 5:
Ligação Notas de Frete (E000EXF)
Retorno: rem|infNfe|chave
rem|infNfe| – caminho da tag
chave – campo, informação requerida
Exemplo 6:
Volumes (E000VOL)
Retorno: vol|pesoL
vol – caminho da tag
pesoL – campo, informação requerida
Exemplo de retorno: CPRATAGIPC = "prod|cProd,prod|xProd".
Observação
Para tags que se repetem, como por exemplo as tags de produto, serão disponibilizados apenas os valores de acordo com o registro corrente na execução do identificador CPR-000INECM02. Portanto, ao processar o primeiro item de produto da nota, as tags referentes a produto terão apenas os valores referentes ao primeiro produto.
Regra:
definir alfa CPRATAGNFC;
definir alfa CPRATAGIPC;
definir alfa CPRATAGEXF;
definir alfa CPRATIPDEC;
CPRATAGNFC = "ide|natOp,ide|dSaiEnt";
Se (CPRATIPDEC = "N") @Quando for NF-e @
CPRATAGIPC = "ide|natOp, prod|cProd, prod|xProd";
Se (CPRATIPDEC = "C") @Quando for CT-e @
CPRATAGEXF = "ide|nNF,rem|infNfe|chave,InfDoc|infNfe|chave";
Regra com valores de serviços 1:
Quando um .XML for importado, o sistema vai verificar a existência da tag <vPrest|Comp> e preencher uma lista interna com os valores das tags <xNome> e <vComp>.
/******************************************************************************* Declarar os campos que poderão ser alterados no recebimento da nota fiscal *******************************************************************************/ Definir alfa CPRATIPDEC; @ TIPO DE DECLARAÇÃO (N - NF-e / C - CT-e) @ Definir alfa CPRATAGVPR; @ Lista de campos a serem alterados - E000VPR (Tabela Fictícia) @ se (CPRATIPDEC = "C") { /* Declara as variáveis CPRA_VPREST_COMP_XNOME e CPRA_VPREST_COMP_VCOMP para o identificador CPR-000INECM02 */ CPRATAGVPR = "vPrest|Comp|xNome,vPrest|Comp|vComp"; }
Na regra acima, foi requisitado acesso aos campos xNome e vComp, presentes no .XML e relacionados à tabela E000VPR. Com isso, duas variáveis vão ficar disponíveis no identificador CPR-000INECM02:
- CPRA_VPREST_COMP_XNOME
- CPRA_VPREST_COMP_VCOMP
Regra com valores de serviços 2:
@#CPR-000INECM01#@ definir alfa CPRATIPDEC; @ Tipo do Documento. N(NF-e) ou C(CT-e) N @ definir alfa CPRATAGNFC; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000NFC. S @ definir alfa CPRATAGIPC; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000IPC. S @ definir alfa CPRATAGISC; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000ISC. S @ definir alfa CPRATAGPAR; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000PAR. S @ definir alfa CPRATAGDLS; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000DLS. S @ definir alfa CPRATAGEXF; @ Tags do xml para consulta no identificador CPR000INECM02, tabela E000EXF. S @ definir alfa CPRATAGVOL; @ Tags do xml referente a volumes, para consulta no identificador CPR000INECM02, tabela E000VOL (fictícia). S @ definir alfa CPRATAGVPR; @Tags do xml referente a serviços (Frete, GRIS, Pedágio, IMP Repassado), para consulta no identificador CPR-000INECM02, tabela Valores do Serviço (E000VPR).@ @---[ Se for nota fiscal ]---@ se (CPRATIPDEC = "N"){ CPRATAGNFC = "ide|natOp,ide|finNFe,emit|CNPJ,transp|modFrete,transporta|CNPJ,transporta|CPF,dest|IE"; CPRATAGIPC = "ide|finNFe,emit|CNPJ,dest|CNPJ,prod|cProd,prod|cEAN,prod|NCM,prod|CFOP,prod|uCom,prod|qCom,prod|vUnCom,prod|xPed,prod|nItemPed,compra|xPed,prod|CNPJFab"; CPRATAGISC = "ide|natOp"; CPRATAGPAR = "cobr|dup|nDup"; } @------- [Quando for NFs-e]----------- @ Se (CPRATIPDEC = "S") { CPRATAGNFC = "rps|numero"; CPRATAGISC = "item|aliquota,item|iss"; } x=y; |
Regra quando tratar-se de uma importação de NFS-e:
Se (CPRATIPDEC = "S") { @Quando for NFs-e @ CPRATAGNFC = "rps|numero"; CPRATAGISC = "item|aliquota,item|iss"; }
Variáveis disponibilizadas:
Verifique os exemplos de regras para saber como as variáveis devem ser passadas.
Nome | Tipo | Observações | Retorna valor |
---|---|---|---|
CPRATIPDEC | ALFA | Tipo do Documento:
|
N |
CPRATAGPCD | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000PCD | S |
CPRATAGNFC | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000NFC | S |
CPRATAGIPC | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000IPC | S |
CPRATAGISC | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000ISC | S |
CPRATAGPAR | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000PAR | S |
CPRATAGDLS | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000DLS | S |
CPRATAGEXF | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000EXF | S |
CPRATAGVOL | ALFA | Tags do xml referente a volumes, para consulta no identificador CPR-000INECM02, tabela E000VOL (fictícia) | S |
CPRATAGVPR | ALFA | Tags do xml referente a serviços (Frete, GRIS, Pedágio, IMP Repassado), para consulta no identificador CPR-000INECM02, tabela Valores do Serviço (E000VPR) | S |
CPRATAGLNP | ALFA | ags do xml para consulta no identificador CPR000INECM02, tabela E000LNP | S |
CPRATAGLNS | ALFA | Tags do xml para consulta no identificador CPR000INECM02, tabela E000LNS | s |
Exemplo de retorno da variável CPRATAGVPR:
- Retorno: vPrest|Comp|xNome
- vPrest|Comp – caminho da tag
- xNome – campo; informação requerida
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.