Depois de implementado as notas parou de passar pela BADI CL_NFE_PRINT, no meu post anterior falei sobre a BADI ...ADD_DATA que marca o flag na J_1BFNDOC, eis que fui verificar e após aplicação das notas essa campo IND_BADI_CTRL da .j_1bnfdoc começou a ficar marcado, aí fui debugar e vi que mesmo não alterando nada na BADI ...ADD_DATA, a nota ficava como tivesse sido modificada na BADI marcando o campo.
Aí vi que após a ADD_DATA tem um método novo para o técnico responsável.(abaixo)
" Technical responsible has only the DocNum as Primary Key.
" Therefore it should be a structure during the badi fields editing (there will be only 1 entry per document)
lo_nfe_persist_badi->tec_resp_move_str_to_table( "2747190
EXPORTING "2747190
is_tec_resp = ls_tec_resp "2747190
IMPORTING "2747190
et_tec_resp = wnftec_resp[] "2747190
). "2747190
Dentro desse método mesmo que a estrutura LS_TEC_RESP estiver vazia ele grava em branco na tabela interna WNFTEC_RESP, aí fudeu !!! logo depois qdo ele compara a estrutura.
"Check if BAdI is active. "2112507
CALL METHOD "2112507
lo_nfe_persist_badi->is_add_data_changed "2112507
....
p_tec_resp = wnftec_resp[] "2747190
Fica como se tivesse sido modificado pq tem uma linha em branco na tabela interna.
Acho q a SAP deve corrigir, a principio coloquei um enhancement para resolver por hora.
METHOD tec_resp_move_str_to_table.
ENHANCEMENT 1 ZSD_NFE_TEC_RESP. "active version
CHECK is_tec_resp IS NOT INITIAL.
ENDENHANCEMENT.
" Method delivered by note 2747190
CLEAR et_tec_resp[].
APPEND is_tec_resp TO et_tec_resp.
ENDMETHOD.
ENHANCEMENT 1 ZSD_NFE_TEC_RESP. "active version
CHECK is_tec_resp IS NOT INITIAL.
ENDENHANCEMENT.
" Method delivered by note 2747190
CLEAR et_tec_resp[].
APPEND is_tec_resp TO et_tec_resp.
ENDMETHOD.
Suzuki, parabéns pelo seu blog cara, sensacional! rsrsrs... Sou um Consultor MM que gosta de dar uma fuçada nos códigos ABAPs (já fui programador COBOL) e com suas dicas você me deu uma baita luz sobre esse tema... Além de parabenizá-lo pelo blog, gostaria de informar que a SAP já lançou uma nota pra corrigir o defeito que você mencionou acima (nota SAP 2781881). Abraços! Eder Rodrigues
ResponderExcluir