点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们需要为触摸用户 SU01时找...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们需要为触摸用户 SU01时找...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们需要为"触摸用户" SU01时找到一个增强点/用户出口,以便在工作中心区域下的功能和部门字段中输入我们的要求(我们的要求基于 用户HR记录的派生/串联字段)。
我们希望BADI_IDENTITY_UPDATE将提供此功能,但遗憾的是不提供。 由于以下两个值均为" X",因此在以下位置失败。 该注释似乎暗示您不能使用set方法,而我们正尝试使用set_workplacedata方法,如下所示。 "在保存期间:如果gv_active_badi_identity_update eq if_identity => co_true,则BADI_IDENTITY_UPDATE不得调用任何SET方法。
macro_raise_internal_error.endif。
SAP Note 1750161中包含以下注释:"您不能再更改要保存的用户数据。" 我们已经尝试了各种方法,但似乎无济于事,Google也不提供任何答案。 我们知道我们可以使用功能'BAPI_USER_CHANGE',但是如果这样做,那么我们仍然需要知道将其挂在哪里,以便它在用户退出/增强时跳闸-使它像abap作业一样无法运行 为我们。 任何人都知道,只要任何程序"触摸"此记录,我们如何才能为SU01中的"功能和部门"字段输入自己的要求/数据?
如果是IF_BADI_IDENTITY_UPDATE〜SAVE,我们的代码:
在it_badi_identity_update处循环播放。请参考lr_identity_update。
在NEW bname处。 "新用户" 尝试方法lr_identity_update-> idref-> if_identity_person〜get_workplacedataIMPORTING
es_workplace = ls_workplace
eo_msg_buffer = lo_msg_buffer.CATCH cx_suid_identity.ENDTRY。
只是看看它是否可以工作
ls_workplace-department ='KH_DEPT2'。
ls_workplace-function ='KH_FUNCTION2'。
ls_change_fields ='DEPARTMENT'。APPENDls_change_fields至lt_change_fields。
ls_change_fields ='FUNCTION'.APPEND将ls_change_fields转换为lt_change_fields。 > eo_msg_buffer = lo_msg_buffer.CATCH cx_suid_identity.ENDTRY。
ENDAT。
ENDLOOP
在执行BADI_IDENTITY_UPDATE时,更改该事务中的用户数据已经为时已晚。
但是您可以使用此BAdI调用启用RFC的FM IN背景单元/任务,以便在提交和数据库更新后执行。 在此包装RFC FM中,您可以使用BAPI_USER_CHANGE和BAPI_TRANSACTION_COMMIT更新用户数据并提交更改。 另外,在BAdI实施中,还需要避免一次又一次地触发FM(例如,在Abap堆栈中查找RFC FM)
一周热门 更多>