点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我需要删除旧的计...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我需要删除旧的计...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我需要删除旧的计划行并通过文件创建新的计划行。 我当时正在调频/SAPAPO/DM_PO_CHANGE。
当传递参数'Method'='D'" D进行删除时,计划行将通过FM删除。
但是,当我将文件参数映射到FM/SAPAPO/DM_PO_CHANGE的it_schedule参数时,使用" method"参数=" A"(表示添加的A)来创建新的计划行,则得到" LC_APP_ERROR"(sy-subrc = 3)。 我无法理解需要在it_schedule内部表中填充哪些参数才能创建新的计划行。
目前,我的代码如下所示-
<代码>
将lt_file循环到ls_file中。
ls_schedule -method ='A'。 " A代表添加
ls_schedule-orderid = ls_file-orderid。 "通过将ebeln(计划协议编号)转换为orderid来填充
ls_schedule-itemno = ls_file-itemno。
ls_schedule-schedno = ls_file-schedno。
通话功能'/SAPAPO/DATE_CONVERT_TIMESTAMP'
导出
iv_date = ls_file-avl_date
iv_time = sy-uzeit
导入
ev_timestamp = ls_schedule-avail_time。
通话功能'/SAPAPO/DATE_CONVERT_TIMESTAMP'
导出
iv_date = ls_file-ship_date
iv_time = sy-uzeit
导入
ev_timestamp = ls_schedule-gi_end_time。
ls_schedule-to_org_quantity = ls_file-sch_qty。
ls_schedule-to_ext_fixed = ls_file-fixed。
附加ls_schedule至lt_schedule。
ENDLOOP。
ls_gen_aprm-simversion ='000'。
通话功能'/SAPAPO/DM_PO_CHANGE'
导出
is_gen_params = ls_gen_parm
it_schedule = lt_schedule
导入
et_rc = lt_rc
et_sched_failures = lt_schd_fail
例外情况
lc_connect_failed = 1
lc_com_error = 2
lc_appl_error = 3
其他= 4。
我得到sy-subrc ='3'。
我想在这里添加的一件事是
我正在使用以下方法-
/SAPAPO/CMDS_TPSRC_GET-通过从文件传递EBELN来获取BZQID。
/SAPAPO/PWB_BZQID_GET_ORDER-通过传递从先前FM和IV_ORDER_TYPE ='16'接收的BZQID来获取结构ES_ORDKEY中的ORDERID。
如果我将iv_order_type传递为" 16"(用于调度协议),那么我会在FM/SAPPO/DM_PO_READ中获得日程表行的详细信息,但是如果我将iv_order_type传递为" 17"(发布计划),那么我将在FM/SAPAPO中获得发布日程表/DM_PO_READ。 类型" 16"的ORDERID与类型" 17"的ORDERID不同。
一旦我删除了订单类型" 16"的计划行,那么我就没有获得类型" 16"的订单号,而是只获得了订单类型" 17"的详细信息。
如果这是我无法添加新计划行的原因,那么有人可以建议一种更好的方法吗? 如何使用FM/Class方法删除旧的计划行并创建新的计划行?
致谢
Yayati Ekbote
已解决。 我使用了/SAPAPO/CL_TDL_LC_DS_DAO类的方法。
顺序使用的方法-
/SCMB/IF_TDL_DAO_GENERAL〜INIT
/SCMB/IF_TDL_DELIVERYSCHEDULE〜SET
/SCMB/IF_TDL_DAO_GENERAL〜SAVE_TO_DB
谢谢!
一周热门 更多>