PW.SATI - INTEGRAÇÃO - Nota 013969

Módulo: INTEGRAÇÃO

Funcionalidade: Pacote Base

Data/Hora da Publicação: 20/07/2021 16:06:27

Data/Hora Última Alteração: 11/08/2021 09:18:23

Descrição da Nota: Componente Abap Extrator Indiretos - Trat. para somatório do FECP; Trat. no contador do Log; Vlr ICMS Desonerado no item; Verificação de permissões do RFC; Trat. no campo NUM_PARC_DUPLIC na tabela de Duplicatas de saída e entrada; Trat. na regra de ICMS e outras ICMS; Criação de novos campos; Aumento do tamanho dos campos ID_NF_ENTRADA e ID_NF_SERVICO; Componente Abap Extrator Diretos- Criação de novos campos; Componente Abap Extrator Exportação - Execução processo Normal

Sintoma

 

As Requests anexadas à essa Nota, são Pacotes bases, portanto contemplam os principais programas Extratores, tais como: Indiretos ZLFR000, Diretos ZLFR012 e ZLFR014, Inventário ZLFR007, Exportação ZLFR015 entre outras transações gerais.

 

Componente Abap Extrator Exportação:

  1. Processo de extração “Normal”. O tipo de processamento “Normal” não estava sendo corretamente executado pelo programa extrator, fazendo com que as informações extraídas não chegassem ao seu destino final.

 

Componente Abap Extrator Indiretos:

  1. Somatório do FECP. Em cenários de extração dos indiretos com range de muitas notas fiscais, o valor do imposto e alíquota estavam sendo processados em duplicidade para notas com FECP.

 

  1. Inconsistência no contador do Log. Após o processamento da interface Abap de indiretos, as notas estornadas (status 02) não eram registras no log, quando utilizada a solução DBLINK.

 

  1. Valor ICMS Desonerado no item. O valor do ICMS desonerado levado para os itens não era o existente no campo de origem.

 

  1. Campo NUM_PARC_DUPLIC na tabela de Duplicatas de saída (ZLFT_S_DUPL) e entrada (ZLFT_E_DUPL). saO campo ‘Número da parcela’ da tabela de Saída\Entrada duplicata estava com seu tipo igual a CHAR na tabela intermediária SAP (ZLFT_S_DUPL e ZLFT_E_DUPL), diferente das tabelas Oracle, causando assim falha na integração dos dados via RFC.NET, da intermediária SAP para intermediária SATI.

 

>> Error entry 2021-04-19 15:34:15.590 [Thread 4]

SAP.Middleware.Connector.RfcTypeConversionException: FIELD NUM_PARC_DUPLIC of STRUCTURE ZLFT_S_DUPL (GETTER): cannot convert CHAR2 into Decimal ---> SAP.Middleware.Connector.RfcTypeConversionException: CHAR cannot be converted into decimal
at SAP.Middleware.Connector.RfcScalarMetadata.GetDecimal(Object& value)
at SAP.Middleware.Connector.RfcDataContainer`1.GetDecimal(Int32 index)
--- End of inner exception stack trace ---
at SAP.Middleware.Connector.RfcDataContainer`1.GetDecimal(Int32 index)

  1. Perform Totaliza Imposto.  O perform estava comentado indevidamente, a partir da versão 1.52.06.

Solução

 

Componente Abap Extrator Exportação:

  1. Correção do processo de extração “Normal”. Os campos estavam sendo lidos na tabela de origem, porém não estavam inseridos corretamente nos campos correspondentes na tabela interna. Realizado ajuste no programa extrator para que os campos extraídos da tabela de exportação sejam corretamente inseridos na tabela interna do programa nos mesmos campos correspondentes.

 

Componente Abap Extrator Indiretos:

  1. Tratamento para somatório do FECP. Foi inserido no programa o campo “ID_NF_ENTRADA” na condição para a busca dos valores, eliminando assim a geração em duplicidade.

 

  1. Tratamento no contador do Log. Alteração feita para que as notas fiscais estornadas sejam consideradas pelo contador do Log, totalizando corretamente a contagem quando utilizar a solução DBlink. 

 

  1. Valor ICMS Desonerado no item. Tratamento efetuado para que o valor do ICMS desonerado do item seja levado corretamente de acordo com o valor existente no campo de origem do SAP.

 

  1. Tratamento no campo NUM_PARC_DUPLIC na tabela de Duplicatas de saída\entrada (ZLFT_S_DUPL e ZLFT_E_DUPL). Alterado o tipo do campo NUM_PARC_DUPLIC da tabela de Saída\Entrada duplicata (ZLFT_S_DUPL e ZLFT_E_DUPL) de CHAR para NUMC (2), eliminando a falha na integração.  

 

  1. Tratamento na regra de ICMS e outras ICMS. Foi ajustado o seguinte trecho do código do programa de indiretos para leitura correta das exits customizadas por alguns clientes para tratamento dos impostos 01 (ICMS) e 03 (ST).

 

EVOLUÇÕES

Esta nota possui a(s) seguinte(s) melhoria(s):

 

Componente Abap Extrator de Impostos Diretos:

 

  1. Criação de quatro novos campos na tabela ZLFT_DIRETOS. Criação de novos campos na tabela ZLFT_DIRETOS, que no futuro serão integrados com  o CE+ para retenções de Impostos. Seguem abaixo os campos e suas respectivas características.

 

Campos

Tipo

Tam.

Descrição

FORMA_TRIB

CHAR

2

Forma de Tributação – Informação para Beneficiário do Exterior para Dirf e Reinf

FONTE_PAGD

CHAR

3

Relação da Fonte Pagadora – Informação para Beneficiário do Exterior para Dirf e Reinf

BENEF_REND

CHAR

3

Tipo de Rendimento – Informação para Beneficiário do Exterior para Dirf e Reinf

DOCTO_CE

CHAR

1

Documento Contabilizado de Retenção do CE. Módulo de Comércio Exterior.

 

Componente Abap Extrator Indiretos:

 

  1. Criação de 2 novos campos na tabela ZLFT_ENTRADA_ISS. Criação de novos campos na tabela ZLFT_ENTRADA_ISS. Foram criados os campos NUM_DOC_MUNIC e COD_VERIFICA_NFE. As origens para preenchimento dos novos campos são:
      • COD_VERIF_NFE = J_1BNFDOC-checod
      • NUM_DOC_MUNIC = J_1BNFDOC-prefno20

 

Obs: Caso o cliente queira utilizar outros campos como origem para o preenchimento, poderá utilizar a exit ZYLFPREFNO para o preenchimento dos seguintes campos:

  • NUM_DOC_MUNIC
  • COD_VERIF_NFE
  • NUM_NF
  1. Melhoria na verificação de permissões do usuário RFC. Ao executar o RFC, caso o usuário SAP utlizado não tenha as permissões necessárias para execução do processo de interface, será lançada na tela uma mensagem de aviso com o motivo do dump:

 

TABLE_NOT_FOUND_CR: Se utilizada como parâmetro uma tabela não tratada na função Z_SATI_RFC_CONTA_REG.

 

 AUTH_CHK_FAIL_CR: Sempre que houver um erro de autorização nas funções consumidas pelo RFC.

 

RFC_USER_NO_AUTHORITY: Usuário sem acesso a tabela.

  1. Aumento do tamanho dos campos ID_NF_ENTRADA e ID_NF_SERVICO. Tratamento realizado nos campos ID_NF_ENTRADA e ID_NF_SERVICO aumentando o tamanho do campo das atuais 08 posições para 15 posições:

 

Observação: É importante salientar que os campos, nos quais citamos, são muito importantes para relações entre as informações de Capa e suas respectivas filiações, tais como item, imposto, duplicata, entre outras, por se tratar de um campo de chave primária (Notas de Entrada - ZLFR000 e Entradas com ISS - ZLFR100). Logo, caso tenha um programa Z especifico em processo de Exit nos Extratores, é necessário que ele seja revisado e retestado, para que não hajam impactos no processo de extração.

 

Segue abaixo as regras de preenchimento adotadas:

 

Apenas para clientes na Versão 4.7 ou  superior do SAP:

 

1º Nível: Até o valores dos campos ID_NF_ENTRADA e ID_NF_SERVICO atingirem de forma singular o número 9999999 (9.999.999) o programa sequencia os campos citados como um contador numérico incremental gravado para cada capa de nota de entrada processada. No campo das tabelas de entrada mercantil o valor é gravado do mesmo modo que está parametrizado no campo ID NF de Entrada na transação ZLFM000. Quanto as notas fiscais de serviço o último ID gravado para o campo ID_NF_SERVICO pode ser verificado na tabela ZLFT_PARAMETROS (somente via tabela).

 

2º Nível: Quando o ID de um dos campos atingir o valor de 10000000 (10.000.000) o campo em questão passará a ter o dado convertido de decimal para hexadecimal. Para identificar que a conversão foi realizada a letra H é adicionada ao valor do campo, independente da parametrização de SYSID (ZLFM079) ser utilizada ou não pelo cliente. Exemplo de número hexadecimal: H0989680 = “H” acrescentado pelo programa + 0989680 (Hexadecimal)

 

A partir da nota 013537, criamos uma proteção para quando o cliente atingir o número máximo de ID_NF_ENTRADA travar a extração gerando um DUMP e assim evitando uma duplicidade de IDs, portanto seguem abaixo as regras:

 

Quando a transação ZLFM079 (SYSID) não é utilizada, o valor máximo para o campo ID_NF_ENTRADA e para o campo ID_NF_SERVICO de forma singular, será igual a 999999999999999 (999.999.999.999.999). Caso o valor a ser gerado para o campo seja maior do que o número acima citado ocorrerá o DUMP CX_SY_CONVERSION_NO_NUMBER.

 

 

O último ID que pode ser gerado para os campos no formato Hexadecimal a ser convertido pelo sistema nessa modalidade será o 038D7EA4C67FFF, correspondente ao valor máximo 999999999999999. Exemplo:

 

3º Nível: Parametrização do SYSID (adição de uma letra ao contator), através da transação ZLFM079

 

Quando houver a parametrização no cliente do SYSID, a letra indicada na parametrização por si só já ocupa uma casa decimal utilizada para geração do ID_NF_ENTRADA e do ID_NF_SERVICO, conforme já ocorre atualmente. Exemplos:

 

 

Quando é necessário utilizar a parametrização de SYSID, o valor máximo que ambos os campos citados podem alcançar é 281474976710655 (281.474.976.710.655). Caso o sistema tente gerar um valor maior que o citado acima será gerado o DUMP do tipo CX_ID_NF_LETRA_OVERFLOW, conforme exemplo abaixo:

 

 

Apenas para os cliente na Versão 4.6 do SAP:

 

1º Nível: Até o valores dos campos ID_NF_ENTRADA e ID_NF_SERVICO atingirem de forma singular o número 9999999 (9.999.999) o programa sequencia os campos citados como um contador numérico incremental gravado para cada capa de nota de entrada processada. No campo das tabelas de entrada mercantil o valor é gravado do mesmo modo que está parametrizado no campo ID NF de Entrada na transação ZLFM000. Quanto as notas fiscais de serviço o último ID gravado para o campo ID_NF_SERVICO pode ser verificado na tabela ZLFT_PARAMETROS (somente via tabela).

 

2º Nível: Quando o ID de um dos campos atingir o valor de 10000000 (10.000.000) o campo em questão passará a ter o dado convertido de decimal para hexadecimal. Para identificar que a conversão foi realizada a letra H é adicionada ao valor do campo, independente da parametrização de SYSID (ZLFM079) ser utilizada ou não pelo cliente. Exemplo de número hexadecimal: H0989680 = “H” acrescentado pelo programa + 0989680 (Hexadecimal)

 

Desde da nota 013537, criamos uma proteção para quando o cliente atingir o número máximo de ID_NF_ENTRADA travar a extração gerando um DUMP e assim evitando uma duplicidade de IDs, portanto seguem abaixo as regras:

 

Quando a transação ZLFM079 (SYSID) não é utilizada, o valor máximo para o campo ID_NF_ENTRADA e para o campo ID_NF_SERVICO de forma singular, será igual a 000000235558530 (235.558.530). Caso o valor a ser gerado para o campo seja maior do que o número acima citado ocorrerá o DUMP CX_SY_CONVERSION_NO_NUMBER.

 

 

O último ID que pode ser gerado para os campos no formato Hexadecimal a ser convertido pelo sistema nessa modalidade será o HE0A5682, correspondente ao valor máximo 235.558.530. Exemplo:

 

3º Nível: Parametrização do SYSID (adição de uma letra ao contator), através da transação ZLFM079

 

Quando houver a parametrização no cliente do SYSID, a letra indicada na parametrização por si só já ocupa uma casa decimal utilizada para geração do ID_NF_ENTRADA e do ID_NF_SERVICO, conforme já ocorre atualmente. Exemplos:

 

 

Quando é necessário utilizar a parametrização de SYSID, o valor máximo que ambos os campos citados podem alcançar é 16777215 (16.777.215). Caso o sistema tente gerar um valor maior que o citado acima será gerado o DUMP do tipo CX_ID_NF_LETRA_OVERFLOW, conforme exemplo abaixo:

 

 

Versões Tratadas

1.52.0000


Pré-Requisitos

Produto:

Nota

Descrição

Componente Oracle Dados de Exportação - Ajuste na trigger de exportação para que a interface possa identificar atualização de dados no item.

Componente Oracle Extrator Indiretos - Disponibilização do campo na view e a movimentação do mesmo no objeto Oracle, pertinente ao Indicador do IPI Atacadista, para atender ao SPED Fiscal.

Componente Oracle Carga de saldos de Inventário - Criação de novo campo para atendimento do Sped Fiscal - campo Motivo do inventário.

Componente Oracle Extrator Diretos - Criação de novo campo para atendimento da REINF - campo Código Natureza de Rendimento.

Componente Oracle Extrator Indiretos - Disponibilização do campo 'Número do item externo' na View e movimentação de dados para atender ao SPED Fiscal.

Componente Oracle Interface Indiretos - Alteração no processar dados para atualizar o preenchimento do campo COD_SIT nas informações complementares do SPED Fiscal para o cenário de Nota Fiscal de Saída mercantil, cancelada.

Componente Oracle Interface Indiretos - Inclusão dos campos NUM_DOC_MUNIC, COD_VERIF_NFE na R3_ZLFT_ENTRADA_ISS; - Tratamento no Processar Dados para os campos novos e revisão do tamanho campo ID_NF_ENTRADA

Componente Oracle Interface Diretos - Inclusão do campo IND_INTERFACE na view R3_ZLFT_DIRETOS.

Componente Oracle Extrator Indiretos - Disponibilização de movimentação de dados (Processar Dados) para atender as notas de energia, eletrônica - campos FINALIDADE_EMISSAO e INDICADOR_DESTINATARIO.

Componente Oracle Extrator Indiretos - Ajuste realizado na procedure de serviços para o Dump ORA 06511- PL\SQL: cursor already open. ORA 06512: at LF.P_INTERFACE_NF_SERVICOS, line 568.

Interface do PW.SATI - RFCInterface.Net - Tratamento realizado no RFC.NET, disponibilizando novo parâmetro 'rfc_snc_lib' para habilitar a conexão automatizada.

Componente Oracle Extrator Indiretos - Criação de novos campos no processar dados para atendimento aos Itens Farma - campos Código produto ANVISA e Código agregação ANVISA.

Componente Oracle Extrator Indiretos - Melhorias durante a execução do Processar Dados: - na mensagem de erro quando CFOP estiver cadastrado no SATI com vigência finalizada; - na performance para cliente que utiliza o parâmetro de checagem de nota fiscal de entrada pela chave de NF-e; - Tratamento no Processar Dados ao realizar o cadastro do produto durante de carga.

Componente Oracle Extrator Indiretos - Disponibilização de novas view's para atender as notas de energia, eletrônica - campos FINALIDADE_EMISSAO e INDICADOR_DESTINATARIO.

Componente Oracle Interface Diretos - Inclusão dos campos FORMA_TRIB, FONTE_PAGD, BENEF_REND, DOCTO_CE na view R3_ZLFT_DIRETOS.

Componente Oracle Extrator Indiretos - Movimentação de dados do campo de Descrição do item da nota após alteração de tamanho.

Componente Oracle Extrator Indiretos - Criação dos campos 'Finalidade de emissão do documento eletrônico' e 'Indicador do destinatário/ acessante' na View e movimentação de dados para atender ao SPED Fiscal.

Componente Oracle Extrator Indiretos - Criação das Views, para atendimento aos Itens Farma - campos Código produto ANVISA e Código agregação ANVISA.


Pacotes de Atualização

Versão - 1.52.0000

Informações Complementares

 

Procedimentos e Pacotes de Atualização

 

  1. Recomendação que seja aplicado primeiramente em ambiente de Homologação/Qualidade os procedimentos: “Procedimentos e Pacotes de Atualização” “Procedimento de Homologação” descritos nesta nota antes de aplicar no ambiente produtivo;

 

  1. Existe aplicações de pré-requisitos que são premissas para atualização na interface SAP. Devem ser seguida(s) da seguinte forma:
  • Para o pacote da versão 1.52.08.00 é necessário conter os seguintes pre-requisito:
    • Pacote Oracle = Notas 012156, 012167, 012199, 012486, 012491, 012550, 012601, 012604, 012665, 012688, 012689, 012848, 012895, 013008, 013081, 013084 e 013282, 013945, 013966.

 

  • Verificar a versão SAP utilizada no ambiente: SAP 4.6C ou SAP 4.7 ou superior;

 

  1. Realizar a leitura do Procedimento de Implementação referente a aplicação da request SAP, documento dentro do pacote ‘Pacote Base - 1.52.08.00’

 

  1. Verificar a documentação pertinente a permissão do usuário RFC com a nomenclatura 'pw SATI_Manual Tecnico_Perfil Usuario RFC LF'.

 

  1. De acordo com a versão do ambiente:
    • Aplicar a request F6QK915256 em ambientes SAP 4.6C.

OU

    • Aplicar a request F9DK903619 ambientes SAP 4.7 ou superior.

 

  1. Na importação da request marque as seguintes opções:
  • Importar de novo ordem de transporte;
  • Sobregravar originais;
  • Sobregravar objetos em reparações não confirmadas;
  • Ignorar tp. transporte não permitido;
  • Ignorar ctg. tabela não permitida;
  • Ignorar relações de precedentes.

 

  1. Para elaboração de encapsulamento de request:

Para clientes que utilizam o controle de encapsulamento de request é necessário alterar a camada de transporte para a camada própria do ambiente do cliente. 

 

 

  1. Para clientes que utilizam a Extração com DBLINK, os arquivos de ajuste de Sinomimos, dos campos novos apresentados nesta nota, encontram-se junto ao zip da Request SAP.