从EWM到ECC的货物运输问题

2020-08-16 00:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在使用EWM...

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

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


专家们,

我们正在使用EWM系统中的功能模块/SCWM/STOCK_CHANGE从zreport进行货物移动,并且HU已成功过帐,但在ECC方面,仅更新了一个行项目(从质量检验到不受限制的货物移动 使用)进行批处理。

请提出该怎么做。

感谢和问候

Saurabh Marwaha

scwm_stock_change snippet.txt.zip (1.6 kb)
2条回答
Alawn_Xu
2020-08-16 01:11

我将复制我在此主题中给出的答案:

https: //answers.sap.com/questions/6174097/programming-posting-change-in-ewm.html?childToView=13085259#answer-13085259

我也遇到同样的问题,但是在收到商品时我专门更新了库存类型,这是功能模块/SCWM/STOCK_CHANGE和/SCWM/GM_POST,我可以根据需要提供用于修改的方法

如果以下代码无法满足您的要求,我建议您打开事务SAAB并激活断点/SCWM/GM,然后使用事务/n/SCWM/POST进行发布并找到功能模块/SCWM/STOCK_CHANGE,并查看有关示例的导入结构和表中传递的Standart代码,我相信,如果您更改为仅使用标准格式,就像我在我的案例中所做的那样,那么它将起作用。

祝你好运

亚历克斯。

 METHOD update_stock_type。
/scwm/aqua的数据lt_aqua类型标准表。
 数据it_item类型/scwm/tt_spitem。
 数据is_item类型/scwm/s_spitem。
 数据lt_bapiret类型TYPE bapiret2_t。
 数据lv_severity TYPE bapi_mtype。
 DATA is_quan TYPE/scwm/s_quan。
/scwm/ordim_c的数据lt_ordim_c类型标准表。
 数据lv_cat类型/lime/stock_category。


 "对于我的情况,有必要存在一个我们要更新的HU的内部表,并且为了仅显示示例,请考虑它是lt_hus

 "获取有关水上HU的信息
 选择 *
 从/scwm/aqua
 进入表lt_aqua
 对于lt_hus中的所有条目
 在哪里lgnum EQ lv_lgnum
 和huident EQ lt_hus-huident。

 如果sy-subrc <> 0。
 "如果找不到数据,请执行您自己的逻辑

 万一。

 "获取更新的物品信息
 选择 *
 从/scdl/db_proci_i
 插入表@DATA(lt_proci_update)
 docid EQ @ gs_screen_items-proci-docid。

 如果sy-subrc <> 0。
 清除lt_proci_update。

 "如果找不到数据,请执行您自己的逻辑

 万一。

 "通过发布获取为HU创建的任务
 选择 *
 从/scwm/ordim_c
 进入表lt_ordim_c
 对于lt_ewmt021中的所有条目
 在哪里lgnum EQ gs_screen_header-lgnum
 和dguid_hu EQ lt_ewmt021-guid_hu。

 如果sy-subrc <> 0。
 清除:lt_ewmt021,lt_proci_update,lt_ordim_c。

 "如果找不到数据,请执行您自己的逻辑

 万一。

 循环至lt_hus ASSIGNING FIELD-SYMBOL()。

 使用键huident =  -huident ASSIGNING FIELD-SYMBOL()读取表lt_aqua。

 如果未分配。
 继续。
 万一。

 读取表lt_proci_update WITH KEY docid =  -docid
 itemid =  -itemid分配字段符号()。

 如果未分配。
 继续。
 万一。

 使用键dguid_hu =  -guid_hu ASSIGNING FIELD-SYMBOL()读取表lt_ordim_c。

 如果未分配。
 继续。
 万一。

 "在这种情况下,更新将是将库存类型从冻结改为未冻结
 "要更新的库存类型
 将 -cat移动到lv_cat。
 将lv_cat中所有'B'事件替换为'F'。

 "获取QUAN信息
 单选*
 从/scwm/quan
 INTO @DATA(ls_quan)
 guid_stock EQ @  -guid_stock在哪里
 和guid_parent EQ @  -guid_parent。

 "使用当前的行迭代器设置ID
 is_item-id = sy-tabix。
 is_item-id_group = sy-tabix + 1。
 is_item-direction ='T'。
 is_item-squant_set = abap_true。
 is_item-procty = -/scwm/procty。
 is_item-guid_hu =  -guid_hu。
 is_item-huident =  -huident。

 " HU节省的库存数量
 is_quan-unit =  -uom。
 is_quan-quan = -数量。
 APPEND is_quan TO is_item-t_quan。

 "有关Wharehouse中HU的信息
 is_item-loc-lgnum = gs_screen_header-lgnum。
 is_item-loc-lgtyp =  -lgtyp。
 is_item-loc-lgpla =  -lgpla。

 "传递HU的当前信息
 is_item-source_s-idx_stock = ls_quan-idx_stock。
 is_item-source_s-guid_stock =  -guid_stock。
 is_item-source_s-matid =  -matid。
 is_item-source_s-cat =  -cat。
 is_item-source_s-owner = -所有者。
 is_item-source_s-owner_role =  -owner_role。
 is_item-source_s-titled =  -titled。
 is_item-source_s-entitled_role =  -entitled_role。
 is_item-source_s-qdoccat =  -doccat。
 is_item-source_s-qdocid =  -docid。
 is_item-source_s-qitmid =  -itemid。

 "通过信息传递我们想要对库存进行的修改
 is_item-dest_s-matid =  -matid。
 is_item-dest_s-cat = lv_cat。  "我们将要修改的内容
 is_item-dest_s-matid =  -matid。
 is_item-dest_s-qdoccat =  -doccat。
 is_item-dest_s-qdocid =  -docid。
 is_item-dest_s-qitmid =  -itemid。
 is_item-dest_s-owner = -所有者。
 is_item-dest_s-owner_role =  -owner_role。
 is_item-dest_s-titled =  -titled。
 is_item-dest_s-entitled_role =  -entitled_role。

 APPEND is_item至it_item。
 清除is_item。

 结局。

 "调用库存变更功能模块以继续更新HU
 通话功能'/SCWM/STOCK_CHANGE'
 出口
 is_header = VALUE/scwm/s_gmheader(lgnum = gs_screen_header-lgnum
 created_by =  -created_by
 created_at =  -created_at
 代码='/SCWM/POST')
 it_item = it_item
 输入
 et_bapiret = lt_bapiret
 ev_severity = lv_severity。

 在lt_bapiret分配字段符号()处循环播放。

 IF 类型的EQ'E'。
 通话功能" YOUR_MESSAGE_FUNCTION"
 出口
 iv_id =  -id
 iv_number = -编号
 iv_typ = -类型
 iv_var1 = -消息_v1
 iv_var2 = -消息_v2
 iv_var3 = -消息_v3
 iv_var4 = -消息_v4。
 清除:lt_proci_update,lt_ordim_c。
 "实施罗蒂娜·德埃罗
 万一。

 结局。

 "将尝试发布更改,为此功能模块将生成一个新任务
 尝试。
 数据lv_tanum TYPE/scwm/tanum。
 通话功能'/SCWM/GM_POST'
 输入
 ev_tanum = lv_tanum
 et_bapiret = lt_bapiret
 ev_severity = lv_severity。
 捕获/scwm/cx_core。

 循环lt_bapiret分配。

 IF 类型的EQ'E'。
 通话功能" YOUR_MESSAGE_FUNCTION"
 出口
 iv_id =  -id
 iv_number = -编号
 iv_typ = -类型
 iv_var1 = -消息_v1
 iv_var2 = -消息_v2
 iv_var3 = -消息_v3
 iv_var4 = -消息_v4。
 清除:lt_proci_update,lt_ordim_c。
 "在出现错误时实施自己的逻辑
 万一。

 结局。

 ENDTRY。

 提交工作并等待。

 ENDMETHOD。

一周热门 更多>