2020-09-28 06:15发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
在创建材料的情况下(对于 WF-BATCH 用户),从方法 SAVE 的类 CL_MDG_BS_MAT_API 中调用此BADI,但在 对于材料变更,我们希望在工厂扩展的材料变更中使用此 MDG_BS_MAT_API_ENRICH_BADI BADI。
请对此问题提出您的建议。
致谢
穆罕默德·萨吉德
嗨,应该调用BAdI进行创建和更新。
您可以在类CL_MDG_BS_MAT_API => SAVE中通过断点来调试它,方法是在调用rich_custom_segments时设置断点。
如果这不起作用,则可能是要出票的原因。
关于IngoBruß,
对此
嗨Ingo Bruss,
感谢您的答复,我尝试调试此方法CL_MDG_BS_MAT_API =>调用此方法当我们在创建材料MAT01和WF-BATCH用户的导入参数IV_TEST_MODE = abap_false时激活材料时,这就是BADI的原因 叫
如果iv_test_mode为INITIAL。
尝试。
获取BADI lo_enrich_badi。
致电BADI lo_enrich_badi-> enrich
导入et_message = lt_message
更改cs_data = ls_data。
将lt_message的行追加到et_message。
捕获cx_badi_not_implemented。 "没有BADI实现CATCH cx_root。
ENDTRY。
ENDIF。
但是,如果材料更改为MAT02,则WF-BATCH用户不会调用此方法。 但是对于最终批准用户,当我们激活材料时,此方法参数将填充IV_TEST_MODE = abap_true。
请为这个问题提供帮助。
Sajid
嗨,
我不确定您要实现什么,但是在CREATE或CHANGE中,很简单,只有在激活CR之前才调用badi。 如果我的理解是正确的,则仅在CR最终批准流程完成之前才调用BADi。 如果进行更改,则可能会尝试创建并将其另存为草稿版本。 我建议检查是否通过使用MAT02 CR类型更改了现有资料并保存了BADI,但不提交或完成该过程。 在这种情况下,我猜它应该触发BADI>
我想知道的另一点是,如何以及为什么在用户WF-BATCH上创建断点。 通常,WF-BATCH用户是非对话框用户,这使该用户无权在调试模式下执行。 请就此向您的基础团队咨询
谢谢,帕万(Pavan)
当用户在最后的批准过程中单击"激活"按钮时,系统将通过在测试模式下创建材料进行检查,即iv_test_mode = abap_true。 如果有任何错误,则用户将在UI中因该错误而停止。 如果一切正常,系统将在iv_test_mode = abap_false中调用save方法进行最终保存。 这是创建,更改或删除材料的正常过程。 如果未在更改材料中调用save方法,则最好举个标签。 还要确保正确提到了BADI的过滤器名称,请在调试模式下进行检查。
感谢和问候,
Logan.D
最多设置5个标签!
嗨,应该调用BAdI进行创建和更新。
您可以在类CL_MDG_BS_MAT_API => SAVE中通过断点来调试它,方法是在调用rich_custom_segments时设置断点。
如果这不起作用,则可能是要出票的原因。
关于IngoBruß,
对此
嗨Ingo Bruss,
感谢您的答复,我尝试调试此方法CL_MDG_BS_MAT_API =>调用此方法当我们在创建材料MAT01和WF-BATCH用户的导入参数IV_TEST_MODE = abap_false时激活材料时,这就是BADI的原因 叫
如果iv_test_mode为INITIAL。
尝试。
获取BADI lo_enrich_badi。
致电BADI lo_enrich_badi-> enrich
导入et_message = lt_message
更改cs_data = ls_data。
将lt_message的行追加到et_message。
捕获cx_badi_not_implemented。 "没有BADI实现CATCH cx_root。
ENDTRY。
ENDIF。
但是,如果材料更改为MAT02,则WF-BATCH用户不会调用此方法。 但是对于最终批准用户,当我们激活材料时,此方法参数将填充IV_TEST_MODE = abap_true。
请为这个问题提供帮助。
致谢
Sajid
嗨,
我不确定您要实现什么,但是在CREATE或CHANGE中,很简单,只有在激活CR之前才调用badi。 如果我的理解是正确的,则仅在CR最终批准流程完成之前才调用BADi。 如果进行更改,则可能会尝试创建并将其另存为草稿版本。 我建议检查是否通过使用MAT02 CR类型更改了现有资料并保存了BADI,但不提交或完成该过程。 在这种情况下,我猜它应该触发BADI>
我想知道的另一点是,如何以及为什么在用户WF-BATCH上创建断点。 通常,WF-BATCH用户是非对话框用户,这使该用户无权在调试模式下执行。 请就此向您的基础团队咨询
谢谢,帕万(Pavan)
嗨,
当用户在最后的批准过程中单击"激活"按钮时,系统将通过在测试模式下创建材料进行检查,即iv_test_mode = abap_true。 如果有任何错误,则用户将在UI中因该错误而停止。 如果一切正常,系统将在iv_test_mode = abap_false中调用save方法进行最终保存。 这是创建,更改或删除材料的正常过程。 如果未在更改材料中调用save方法,则最好举个标签。 还要确保正确提到了BADI的过滤器名称,请在调试模式下进行检查。
致电BADI lo_enrich_badi-> enrich
感谢和问候,
Logan.D
一周热门 更多>