通过BOPF代码创建FWO。

2020-09-03 05:16发布

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

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


大家好,我正在使用/SCMTMS/CL_CPX_TPNRQ_REQ类通过代码创建FWO,

但是要填充参数非常困难。

我想知道是否还有其他课程可以更容易做到。

或其他方式。

谢谢。

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

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


大家好,我正在使用/SCMTMS/CL_CPX_TPNRQ_REQ类通过代码创建FWO,

但是要填充参数非常困难。

我想知道是否还有其他课程可以更容易做到。

或其他方式。

谢谢。

付费偷看设置
发送
2条回答
代楠1984
1楼-- · 2020-09-03 05:44

你好罗纳尔多,

保持简单,创​​建自己的类或报表以创建FWO,然后可以使用以下代码进行测试。

报告ztm_code。
 数据lt_trq_root类型/scmtms/t_trq_root_k。
 数据lt_trq_item类型/scmtms/t_trq_item_k。
 数据lr_trq_root类型参考/scmtms/s_trq_root_k。
 数据lr_trq_item类型参考/scmtms/s_trq_item_k。
 数据lt_modify TYPE/bobf/t_frw_modification。
 数据ls_modify TYPE/bobf/s_frw_modification。


 *获取BO服务管理器-/SCMTMS/TRQ业务对象
 DATA(lr_trq_srvmgr)=/bobf/cl_tra_serv_mgr_factory => get_service_manager(
                                 iv_bo_key =/scmtms/if_trq_c => sc_bo_key)。


 ***************************** 创造 ********************  ***************
 *&--->创建根节点实例


 *填充根数据
 创建数据lr_trq_root。
 lr_trq_root-> key = lr_trq_srvmgr-> get_new_key()。
 lr_trq_root-> trq_cat ='03'。 货运单
 lr_trq_root-> trq_type ='ZFWO'。
 *填写其他属性
 *


 *填充修改结构
 ls_modify-node =/scmtms/if_trq_c => sc_node-root。
 ls_modify-change_mode =/bobf/if_frw_c => sc_modify_create。
 ls_modify-data = lr_trq_root。
 ls_modify-key = lr_trq_root-> key。
 插入ls_modify插入表lt_modify。


 *&->创建项目节点实例(子节点)
 *填写项目数据
 创建数据lr_trq_item。
 lr_trq_item-> key = lr_trq_srvmgr-> get_new_key()。
 lr_trq_item-> item_cat ='PRD'。  "产品
 lr_trq_item-> item_descr ='演示'。
 *填写其他属性
 *


 *填充修改结构
 清除ls_modify。
 ls_modify-node =/scmtms/if_trq_c => sc_node-item。
 ls_modify-change_mode =/bobf/if_frw_c => sc_modify_create。
 ls_modify-source_node =/scmtms/if_trq_c => sc_node-root。
 ls_modify-association =/scmtms/if_trq_c => sc_association-root-item。
 ls_modify-source_key = lr_trq_root-> key。
 ls_modify-root_key = lr_trq_root-> root_key。
 ls_modify-data = lr_trq_item。
 ls_modify-key = lr_trq_item-> key。
 插入ls_modify插入表lt_modify。




 *修改
 如果lt_modify不是INITIAL。
   呼叫方法lr_trq_srvmgr->修改
     出口
       it_modification = lt_modify"更改
     输入
       eo_change = DATA(lo_change)"更改对象的接口
       eo_message = DATA(lo_message)。 消息对象的接口
 万一。


 *保存
 如果lo_change为BOUND并且lo_change-> has_failed_changes()EQ abap_false。
   DATA(lr_tra_mgr)=/bobf/cl_tra_trans_mgr_factory => get_transaction_manager()。


   呼叫方法lr_tra_mgr->保存
     出口
       iv_transaction_pattern =/bobf/if_tra_c => gc_tp_save_and_continue
     输入
       ev_rejected = DATA(lv_rejected)
       eo_change = lo_change
       eo_message = lo_message。
   lo_message-> get_messages(
     输入
       et_message = DATA(lt_message))。
 万一。
 
落灬小鱼
2楼-- · 2020-09-03 05:49

你好
感谢您的问题
并感谢前成员的回答

一周热门 更多>