Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Dúvida sobre J_1BNF_ADD_DATA (Additional Data BAdI)

Olá pessoal, boa tarde.

Estamos com uma dúvida na utilização da J_1BNF_ADD_DATA (BAdI Nova para NFe). O entendimento inicial era que a BAdI nova viria para substituir a antiga e que, uma vez ativada, o standard não realizaria a chamada dos desenvolvimentos presentes na CL_NFE_PRINT, e que deve-se iniciar uma migração dos desenvolvimentos. Porém, com as mudanças desenvolvidas pela nota 2112507 - Additional Data x Mapping BAdI Enablement, permite-se a chamada das BAdI simultaneamente, auxiliando na migração.

Imaginando uma situação onde nenhuma das BAdIs estão implementadas (instalação nova, por exemplo), o caminho natural seria a utilização da BAdI nova. Porém, apenas os campos adicionais estão disponíveis para modificação (parâmetro Changing). Como poderíamos modificar o conteúdo dos demais campos?

Por exemplo: EXTIPI. Neste caso, ele somente existe no XML, não foi incluído na estrutura de item da nota fiscal (J_1BNFLIN) tampouco na de Additional Item Fields. Entendo que ele está contemplado no próprio campo NCM, mas gostaríamos de usar outra regra para sua utilização.

Em outras situações, implementaria a CL_NFE_PRINT-FILL_ITEM conforme a necessidade, porém como pretendemos usar apenas a nova, como poderíamos fazer? Lembrando que a pergunta não é específica deste campo, mas para qualquer outro. Toda a ajuda ou exemplo será bem vinda.

Obrigado pela atenção.

replied

Alexandre,

Com a técnica do dirty-assign você consegue alterar a maioria das variaveis, estruturas ou tabelas do programa, basta você saber usá-la e encontrar o momento oportuno para isso.

Vamos ao seu exemplo: Campo EXTIPI - ele é preenchido no FORM map_xmli_tab. A tabela é a xmli_tab (guarde esse nome). Após esse form ser chamado, o FORM call_badis_310. é executado. PRONTO! Encontramos o momento oportuno.

Usando a BAdI nova ou velha, o método a ser implementado é o FILL_AUTXML.

Lá dentro, coloque o código abaixo:

FIELD-SYMBOLS: <fs_xmli_tab> TYPE j_1b_nf_xml_item_tab,

<fs_xmli> TYPE j_1b_nf_xml_item.

ASSIGN ('(SAPLJ_1B_NFE)XMLI_TAB') TO <fs_xmli_tab>.

IF <fs_xmli_tab> IS ASSIGNED.

LOOP AT <fs_xmli_tab> ASSIGNING <fs_xmli>.

<fs_xmli>-extipi = lv_valor.

ENDLOOP.

ENDIF.

Se mesmo assim você achar que não está de bom tamanho... Implicit Enhancement Point: How To Do Implicit Enhancement - ABAP Development - SCN Wiki

[]'s

JN

0 View this answer in context

Helpful Answer

by
Not what you were looking for? View more on this topic or Ask a question