Testando os Eventos R-4000 do REINF no DRC
Testando os Eventos R-4000 do REINF no DRC
Neste momento ainda estou testando a solução para a geração dos eventos R-4000 e tal, mas já passei por alguns perrengues e quero compartilhar o que já vi pois até o momento não tem muita informação (ou documentação sobre o DRC) e a solução saiu MUITO depois da do TDF.
1- Notas
O sistema que tenho de exemplo é um S4CORE104 (1909) on-premise. Então o primeiro passo foi implementar aquele montão de notas normal de tudo que é projeto. Nesse caso implementou-se todas as notas de [DRC Brazil Statutory Reporting] até a 136.
Além disso mais umas notas que não fazem parte da sequência numerada, em especial as três abaixo:
3367797 -Statutory Reporting – Improvements in handling wait status for Electronic Submis
3354710 – [DRC Brazil Statutory Reporting] EFD-Reinf Layouts v2.1.1 and V2.1.2 Report Defi
3353618 – [DRC Brazil Statutory Reporting] EFD-Reinf: Correction of Conflicts of SAP Note
Isso criou os novos reports, as views, as definições de eventos bem como todo os ddics e classes/métodos necessários. Supomos que está OK, por enquanto.
Base pronta teoricamente.
2 – Definições e configurações
Olhando por exemplo a definição da categoria de relatório BR_REI_PER (Eventos periódicos) já dá para ver que há novas definições incluindo pré-processamento, INSS 2.1.2 e Outras retenções 2.1.2 (e 2.1.1 também):
Então, com toda a base técnica configurada então a próxima atividade que sugiro é ir na view cluster SRFVC_RPG_ENT e configurar as novas atividades *212* para os respectivos Report ID’s e Reporting Entities da empresa (a SAP entrega um BC-set com o template, bastaria copiar para a sua Reporting Entiry a definição e ajustar as datas).
OK. Reports teoricamente habilitados para as empresas, então acho que é hora de fazer a configuração funcional das visões abaixo para gerar os dados no pré-processmamento e para gerar os eventos:
/TMF/D_WH_TAXGRP
/TMF/D_WH_TX_CPL
/TMF/D_WHTX_TYPE
/TMF/D_R_NATREND
/TMF/D_R_FILTER
Tem algumas boas explicações sobre as configurações funcionais no post da SAP sobre TDF (a lógica funcional parece ser bem similar entre DRC e TDF, apesar da parte técnica ser diferente ). Recomendo esse blog daqui: https://blogs.sap.com/2023/03/16/tdf-efd-reinf-2.1.1-analysis-of-scenario/
Para DRC ainda não tem nenhum blog post da SAP que eu tenha visto, seria bom. Assim como seria bom ter mais informações no help do produto, implementar fazendo engenharia reversa é bem mais complicado ;D
3- Testando o pré-processamento e a geração dos eventos:
Vi que temos uma nova atividade dentro dos eventos periódicos, que é executar o pré-processamento. Esse pré-processamento entendi que preenche a tabela /TMF/D_LCTORENRT que é usada para geração dos eventos R-4***.
A minha primeira execução do pré-processamento ficou pendurada, aguardei vários minutos e nunca mudou o status. Testei mais algumas vezes e continuou ficando em processamento semore.
Tive que debugar o sistema e encontrei uma mensagem de erro SRF146 por causa do parametro “ReportingClient” faltando na tabela SRF_SYS_FIELD. Na minha versão SCORE104 tem um erro no processamento e essa mensagem não disparou exception e não alterou o estado do programa de “in process” para failed.
Abaixo tem o ponto do código onde achei esse problema:
Então, não achei nenhuma nota que criasse esse parâmetro nessa tabela, então adicionei manualmente o “ReportingClient” via SE16 no DEV e fiz um novo teste.
Dessa vez o programa executou com sucesso, eu acho, e gerou os dados. Abaixo tem um exemplo do app mostrando o preview do pré-processamento e o que foi gravado na shadow.
Após esse momento entendi que o próximo passo é executar a atividade para gerar os eventos R-4***. Na imagem abaixo isso seria a atividade Incoming Withholding Taxes Version 2.1.2.
Rodei e não gerou nada, mas não cheguei ainda ao ponto de analisar essa funcionalidade e ver porque não gerou os eventos. Vai ficar pra outro dia.
4- Desenvolvimentos e debugging
Um ponto que achei interessante de destacar é que existe uma badi BADI_FIBRREI_WHT com o método Change_wht onde é possível alterar os valores determinados pelo pré-processamento e também incluir uma lógica para preencher os cenários não suportados pelo standard da SAP.
E, por último, de brinde, a lógica do pré-processamento está em boa parte nessa classe CL_FIBRREI_WHT_MAIN que eu acabei debugando e já deixo documentada aqui:
Enfim, ainda estou testando e aprendendo (na marra) como funciona então o post não tem o objetivo de discutir tudo que existe mas apenas oferecer alguma luz para quem está na luta da implementação dos eventos R-4000 para atender esse requisito legal.
Se tiver alguma contribuição para ajudar sinta-se livre de deixar aí nos comentários e eu adiciono no texto também depois.
Um agradecimento especial ao Cleumar Gomes e a Priscila Lima, que também estão analisando a solução no DRC e trocando umas figurinhas comigo nessa jornada.
Valeu Gurizada,
Renan Correa
Quer ficar ligado nas novidades de localização? Entra no grupo da S4CN no Telegram e segue a gente no canal do Youtube
Mais infos sobre a localização Brasil no ERP, direto da sap, vocês podem conferir no SAP community na tag de S/4HANA logistics for Brazil
Outros posts sobre Localização você pode conferir filtrando pela categoria NFE/CTE ou Localização BR Geral.
Outros posts sobre TDF você pode conferir filtrando pela categoria TDF/DRR.
Muito e infelizmente como foi comentado não tem blog e estamos tendo que fazer a engenharia, debug para entender como a mesma funciona, não esta nada fácil com DRC Brasil para o Reinf, com prazo apertado.
Bom dia Renan,
Muito bom o seu post!
Por aqui estou tentando utilizar o Método Change_wht. Vi que o método recebe todo o conteúdo da shadow /TMF/D_LCTORENRT e que podemos alterar aí o código da natureza de rendimento.
Um problema que estou enfrentando é que por mais que coloque break-points no método ao executar o pré-processamento o break-point não surte efeito e o processamento não é interrompido.
Vejo o efeito do método na tabela /TMF/D_LCTORENRT após o processamento.
Pretendo ‘sofisticar’ a lógica de determinação do 1NATREND’ mas preciso do debug para isso!
Espero que tenha alguma dica para me ajudar nisso!
Obrigado,
Alencar
Oi Alencar,
Para debugar o pré-processamento é necessário um Breakpoint externo no código. Ainda vou escrever umas dicas de como debugar e analisar o DRC, como a solução do BR ficou metade em Classes ABAP e a outra metade em calculation views o troubleshooting é muito ruim e limitado.
att,
Renan Correa
Opa Renan,
Já consegui interromper o processo de transmissão do REINF com Break Points no S4HANA mas foi em outro sandbox.
Para o pré-processamento não estou conseguindo… estou vendo o efeito da BADI na tabela /TMF/D_LCTORENRT.
Criei uma tabela Parceiro/Cod LC116/Natureza Rendimento e vou utilizar para os casos em que o mapeamento baseado na standard /TMF/D_R_NATREND não nos atende.
Vou pedir uma ajuda ao lider de desenvelvedores para me ajudar nisso!!
Obrigado pelo suporte!
Alencar