Como o ERP identifica as notas para numerar/enviar para o GRC/DRC?

Como o ERP identifica as notas para numerar/enviar para o GRC/DRC?
Essa pergunta veio do grupo do whatsapp do 2.0, um colega queria saber como surgem as notas a numerar/enviar na tabela J_1BNFERFCBATCH. É dessa tabela que o ERP sabe o que precisa ou não ser numerado/enviado via job para a mensageria.
Nesse caso o consultor falou que tinha procurado como elas eram criadas mas não sabia como elas chegavam por lá.
Nesse caso é meio “diferentão” mesmo o jeito que a informação é persistida, mas não tem um mistério, o código que faz a mágica está na imagem abaixo:

Como funciona esse código daí?
A informação é persistida na tabela do ERP pela função J_1B_NFE_UPDATE no momento que grava a nota fiscal, só precisar ter o CALLRFC configurado como 2 ou 3 para o formulário na visão J_1BB2V.
O curioso é que isso não é feito com um “INSERT” direto na tabela, ele é atribuído dinamicamente pelo comando MODIFY usando a referência para tabela de um field-symbol que tem o número do docnum. O porquê isso foi feito dessa maneira eu vou ficar devendo, normalmente isso é usado para casos em que são utilizadas
Acho que parte da dificuldade de achar esse código é porque quando você faz um where-used list na tabela o sistema não encontra essa referência porque ela está declarada como o valor de uma variável e não como uma tabela.
Um jeito de interessante de buscar esse caso (já que não aparece no where-used) é usar o programa RS_ABAP_SOURCE_SCAN e buscar pela string dentro dos pacotes de localização (os principais para NFE não J1BA e J1BNFE):

Nesse caso o programa encontra a string corretamente já que faz uma varredura no código inteiro do pacote:

Eu já tinha escrito uma parte desse uns 10 anos atrás, mas até hoje estava em rascunho e não foi publicado. Agora foi!
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.
Recurso técnico – Se usa Modify quando deseja alterar quando vem preenchido ou fazer o Insert quando vem em branco, com esse comando fica dinâmico.
“MODIFY checks for record existence then if it doesnt find any matching record then it INSERTs or it simply UPDATEs the existing record.”
Dicas relevantes.
Interessante, valeu pelo comentário, entendo que com o modify evita um dump por entrada duplicadas caso já existisse docnum igual na tabela, mas a minha curiosidade maior é em relação ao uso da referência com o “CREATE DATA” e montando um field-symbol dinâmico para uma estrutura de tabela que basicamente tem dois campos e nunca foi alterada. Será que eles previam que a estrutura podia mudar? Não sei, esse ponto acho que não conseguimos descobrir com certeza o porquê…
Olha o que eu achei aqui 😂
Nas classes mock de teste vale tudo né, não precisa se preocupar com outras entradas na tabela…