EWM报废撤销-/SCWM/ADGI

2020-09-20 03:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我的问题是关于T代码...

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

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


大家好,

我的问题是关于T代码/SCWM/ADGI中的抓取功能。

报废工作正常-我们已经有了新的"移动原因"配置,以便完成回发到ERP的工作。

但是SAP如何期望将处理任何冲销?

如果将GI流程设置为" CANC",则可以输入先前创建的物料凭证,但移动的原因不是强制性的,因此回发到ERP失败。

如果我们将GI过程设置为'SCRP',那么当我们处理部分数量时,我们可以输入一个负数(例如-10),这实际上会进行逆转。 但这仅在垃圾箱中还有剩余库存的情况下有效。

如果用户错误地报废了整个垃圾箱数量,他们将如何撤消呢?

我已经对此进行了详尽的研究,找不到任何指南。

感谢任何提示或技巧。

致谢

1条回答
My梦
2020-09-20 04:04

希瑟,

"如果将GI流程设置为'CANC',那么我们可以输入先前创建的物料凭证,但是移动的原因不是强制性的,因此回发到ERP失败。

是的,对于" CANC"选项,"移动原因"不是强制性的,即使您写了任何移动原因也不会影响仓库任务文档。 但是,我已经进行了改进以解决此问题。

示例代码;

包括"/img/SCWM/RGI_SCRAPF01"," cancel_document"格式的开头;

增强功能1 ZEWM_ENH_RGI_SCRAPF01。  "活动版本

   数据:lt_ordim_c_temp TYPE/scwm/tt_ordim_c,

         lt_guid_coll_group_temp TYPE/lime/t_guid_coll_group,

         lt_coll_w2im_temp TYPE/lime/t_coll_w2im。

   数据:ls_cancel_reason的开始,

         old_tanum TYPE/SCWM/TANUM,

         TYPE/SCWM/DE_REASON的原因,

         ls_cancel_reason的结尾。

     字段符号:

        TYPE/lime/s_coll_w2im,

       类型/scwm/ordim_c。



   "材料文件的取消

   "运动改进的原因



     通话功能'/SCWM/TO_READ_SINGLE'

       出口

         iv_lgnum = p_lgnum

         iv_tanum = p_tanum

       输入

         et_ordim_c = lt_ordim_c_temp

       例外情况

         错误输入= 1

         not_found = 2

         foreign_lock = 3

         错误= 4

         其他= 5。



     循环lt_ordim_c_temp分配。

 *填写guid_coll_group以收集LIME

       将 -guid_append到lt_guid_coll_group_temp。

     结局。



 *阅读LIME收藏

     通话功能'/LIME/COLL_MONITOR'

       出口

         i_coll_type ='W2IM'

         it_guid_coll_group = lt_guid_coll_group_temp

       输入

         et_coll_w2im = lt_coll_w2im_temp。



     读取表lt_coll_w2im_temp索引1分配。

     如果sy-subrc = 0。

       IF  -reason ='SCRP'。



           清除:ls_cancel_reason。

           免费内存ID" FROM_ZEWM_ENH_RGI_SCRAPF01_TO_ZEWM_ENH_GM_POST"。



           读取表lt_ordim_c_temp分配

                                      使用键tanum =  -tanum

                                               tapos =  -tapos。

           如果sy-subrc = 0并且 -reason不是INITIAL。

             如果P_REASON不是INITIAL。

               邮件ID'ZEWM'类型'I'999

                     WITH'不填写-运动原因-字段,因为它已经存在'

                     显示" E"。

               返回。

             万一。

             P_REASON = -原因。

             "hazır-原因ıyaz

             ls_cancel_reason-old_tanum =  -tanum。

             ls_cancel_reason-reason = -原因。



             将ls_cancel_reason导出到内存ID'FROM_ZEWM_ENH_RGI_SCRAPF01_TO_ZEWM_ENH_GM_POST'。

           ELSEIF sy-subrc = 0且P_REASON不是INITIAL。

             "hazırP_REASONıyaz

             ls_cancel_reason-old_tanum =  -tanum。

             ls_cancel_reason-reason = P_REASON。



             将ls_cancel_reason导出到内存ID'FROM_ZEWM_ENH_RGI_SCRAPF01_TO_ZEWM_ENH_GM_POST'。

           其他。

               邮件ID'ZEWM'类型'I'999

                     使用"填充-运动原因"字段显示类似" E"。

               返回。

           万一。

       万一。

     万一。

 增强。

FM"/img/SCWM/GM_POST"," gm_post"格式的开头;

增强功能1 ZEWM_ENH_GM_POST。  "活动版本

   数据:ls_cancel_reason的开始,

         old_tanum TYPE/SCWM/TANUM,

         TYPE/SCWM/DE_REASON的原因,

         ls_cancel_reason的结尾。



   导入ls_cancel_reason来自

   内存ID'FROM_ZEWM_ENH_RGI_SCRAPF01_TO_ZEWM_ENH_GM_POST'。



   如果ls_cancel_reason不是INITIAL。

     在gt_ordim_c ASSIGNING FIELD-SYMBOL()中循环。

       如果ls_cancel_reason-old_tanum =  -orig_to。

         -原因= ls_cancel_reason-原因。

       万一。

     结局。

   万一。



   免费内存ID" FROM_ZEWM_ENH_RGI_SCRAPF01_TO_ZEWM_ENH_GM_POST"。

   清除:ls_cancel_reason。



 增强。

"如果用户错误地报废了整个垃圾箱数量,他们将如何撤消呢?"

我已经尝试过这种情况,但它确实有效。

问候。

一周热门 更多>