点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我正在尝试开发报告以修改决策点的状态。
我尝试使用标准函数/RPM/DECISION_POINT_MODIFY,并且尝试了标准类CL_RPM_DECISION的set_attributes方法。
在两种情况下,返回码都可以,并且状态显然已更改(在调试模式下查看变量),但是一旦报告结束,旧状态仍保留在数据库中(表/RMP/DECISION)。
我尝试通过更改DP状态粘贴两个ABAP代码。
请,你能告诉我我错过了什么还是有什么问题吗?
非常感谢。
奥帕。
ABAP代码:
当我调用函数/RPM/DECISION_POINT_MODIFY时,我会这样做:
ls_context-object_guid = wa_decision-guid。
ls_context-portfolio_guid = lv_porf_guid。
ls_context-parent_guid = wa_decision-guid。
通话功能'/RPM/DECISION_POINT_MODIFY'
导出
is_context = ls_context
iv_language = lv_lang
iv_change_mode = lv_chg_mode
it_comments = it_item_desc_comments
导入
ev_rc = lv_rc
表格
it_attributes = it_item_desc_attr_ins
et_msg = lt_msg。
并且当我尝试使用标准类时,我会这样做:
数据:lr_decision类型参考cl_rpm_decision,
ls_attributes类型rpm_ts_decision_int,
ls_decision_int类型rpm_ts_decision_int,
lv_rc类型i。
数据:lr_object_manager类型参考cl_rpm_obj_manager,
lr_common类型参考if_rpm_common。
lr_object_manager = cl_rpm_obj_manager => get_instance()。
调用方法lr_object_manager-> get_appl_object
导出
iv_project_guid = i_item_guid
iv_appl_obj_id = i_decision_id
-
iv_appl_obj_guid = i_decision_guid
iv_appl_obj_ot ='EPO'
接收
rr_object = lr_common。
lr_decision?= lr_common。
呼叫方法lr_decision-> get_attributes
导入
es_attributes = ls_attributes。
-
确保决策点处于编辑模式
lv_rc = lr_decision-> if_rpm_entity〜set_edit_mode(
cl_rpm_co => sc_edit_mode_change)。
如果lv_rc不是INITIAL。
RAISE错误。
ENDIF。
-
更新状态
ls_decision_int = ls_attributes。
ls_decision_int-status = i_status。
ls_decision_int-active ='X'。
-
设置DP属性
lr_decision-> set_attributes(ls_decision_int)。
-
阅读新的咒语
清除ls_decision_int。
呼叫方法lr_decision-> get_attributes
导入
es_attributes = ls_decision_int。
e_status = ls_decision_int-status。
使用功能模块更改决策点状态时,必须在/RPM/DECISION_POINT_MODIFY功能模块之后使用/RPM/SAVE_CHANGES功能模块,否则更改将不会提交到数据库。
何时 您正在使用这些类,则应使用对象管理器(cl_rpm_obj_manager)实例方法do_save。
嗨,
有人可以建议如何使用类获取项目属性,然后更改其状态。 我使用功能模块来执行此操作,但是这些功能模块未发布。 那就是我要使用类的原因。
任何建议都是可取的。
谢谢
Salil
请使用/RPM/SAVE_CHANGES。
需要将更改提交给数据库,并且可以通过功能模块/RPM/SAVE_CHANGES来实现。
一周热门 更多>