BADI_UJJ_CALCULATED_AMOUNT没有显示正确的日记帐ID

2020-09-09 16:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我已经实现了BADI_U...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我已经实现了BADI_UJJ_CALCULATED_AMOUNT。 在调试日记帐ID 153时,字段IT_JOURNALS-JRN_ID继续显示1。 这样可以防止我撤消 BADI 以前更新的条目。 是否可以在此BADI中获取正确的日记ID?

rgds

6条回答
Aaron 3364
2020-09-09 16:50

嗨,瓦迪姆,

以下是示例代码。如果您看到以下调试屏幕,内部表IT_JOURNALS-JRN_ID始终显示1,而不是日记ID513。要求是用户输入备注时,我需要通过BADI撤回金额80。 仅当IT_JOURNALS-JRN_ID显示日记帐ID 513时,我才能这样做。

BADI编码:

方法IF_UJJ_CALCULATED_AMOUNT〜CALCULATE_AMOUNTS。
字段符号: TYPE STANDARD TABLE,
TYPE ANY, TYPE ANY,
TYPE。
-符号:
类型ujj_s_keymem,
类型ujj_s_keymem,
类型ujj_s_keymem,
类型uj_value,
类型ujj_s_badi_ca_journal。 dim_flow类型uj_dim_name值'FLOW',
lo_exception类型对cx_root的引用,ET_MESSAGE类型UJ0_T_MESSAGE,对
lox_ex_handler类型对cx_uj_static_check,
lo_static_check类型对cx_static_check,
的引用

常量:闭合流类型uj_dim_name值'F_175'。
DATA:lv。
lv =1。
try.IF sy-uname EQ'ESTER'。",当(lv = 1)时。 清除ls_journal_amounts。
清除ls_journal_amounts-journal_id = -jrn_id。
清除处的ls_amount-members.loop-分配的量。 >

ls_amount-amount =80。
-members分配的情况下清除ls_amount-members.loop。 fs_member>到ls_amount-members.endif.endloop。
将ls_amount附加到ls_journal_amounts-amounts。


endloop。
如果line(ls_journal_amounts-amounts)> 0.将ls_journal_ulated量追加到et。 endif.endloop。
" ENDWHILE.ENDIF。
将cx_root捕获到lo_exception.raise异常类型cx_ujj_exceptionexporting
previous = lo_exception
textid = cx_ujj_exception => ex_badi_exception。
endtry。
endmethod。

一周热门 更多>