ABAP函数ROUTING_MAINTAIN组件分配幻像组件

2020-09-08 11:16发布

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

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


亲爱的社区,

由于升级到SAP EWM,我们必须在物料的工艺路线中为正确的操作分配组件。 可以在CA02中手动完成此操作,但是由于我们需要更新大量的路由,因此我们想使用函数routing_maintain。

它适用于0级组件,但我无法使其适用于幻影组件。

下面的函数/bapi ROUTING_MAINTAIN的代码适用于0级组件

'keyDate =" 20190514"
 'routingGroup =" 50018714"'
 'routingGroupCounter =" 01"'
 '材料=" 6425-1301-6601"'
 'plantt =" 2010"
 'maintainMode =" C"
 'flagBarPointer =" 0000000000"
 'sequenceNo =" 000000"
 '活动=" 0305"
 '操作=" 0305"
 'bomType =" M"'自动
 'BOMnumber =" 00236223"
 'AlternativeBOM =" 01"
 'itemID =" 00000006"
 'itemNo =" 0060"
 '数量=" 1"
 'qUnit =" EA"
 'bomTypeRoot =" M"'
 'bomNumberRoot =" 00236223"
 'AlternativeBOMRoot =" 01"

 设置bapi = r3.Add(" ROUTING_MAINTAIN")
     bapi.Exports(" KEY_DATE")= keyDate
     bapi.Exports(" TASK_LIST_GROUP")= routingGroup
     bapi.Exports(" GROUP_COUNTER")= routingGroupCounter
     bapi.Exports(" MATERIAL")=材质
     bapi.Exports(" PLANT")=植物

     MAINTAINCOMPONENT.Value(1," MAINTAIN_MODE")= maintenanceMode
     MAINTAINCOMPONENT.Value(1," FLAG_BAR_POINTER")= flagBarPointer
     MAINTAINCOMPONENT.Value(1," SEQUENCE_NO")= sequenceNo
     MAINTAINCOMPONENT.Value(1," ACTIVITY")=活动
     MAINTAINCOMPONENT.Value(1," OPERATION_ID")=操作
     MAINTAINCOMPONENT.Value(1," BOM_TYPE")= bomType
     MAINTAINCOMPONENT.Value(1," BOM_NO")= BOM号
     MAINTAINCOMPONENT.Value(1," ALTERNATIVE_BOM")= AlternativeBOM
     MAINTAINCOMPONENT.Value(1," ITEM_ID")= itemID
     MAINTAINCOMPONENT.Value(1," ITEM_NO")= itemNo
     MAINTAINCOMPONENT.Value(1," COMP_QTY")=数量
     MAINTAINCOMPONENT.Value(1," COMP_UNIT")= qUnit
     MAINTAINCOMPONENT.Value(1,"植物")=植物'植物
     MAINTAINCOMPONENT.Value(1," MATERIAL")=材料'材料
     MAINTAINCOMPONENT.Value(1," BOM_TYPE_ROOT")= bomTypeRoot
     MAINTAINCOMPONENT.Value(1," BOM_NO_ROOT")= bomNumberRoot
     MAINTAINCOMPONENT.Value(1," ALTERNATIVE_BOM_ROOT")= AlternativeBOMRoot

     MAINTAINCOMPONENT.Value(1," SEQUENCE_NO_OLD")=""
     MAINTAINCOMPONENT.Value(1," ACTIVITY_OLD")=""
     MAINTAINCOMPONENT.Value(1," OPERATION_ID_OLD")=""
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_DIVISOR")=" 00000"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_1")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_2")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_3")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_UNIT")=""
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_UNIT_ISO")=""
     MAINTAINCOMPONENT.Value(1," COMP_UNIT_ISO")=" EA"
     MAINTAINCOMPONENT.Value(1," BACKFLUSH")=""
     MAINTAINCOMPONENT.Value(1," ORDER_LVL")=" 00"
     MAINTAINCOMPONENT.Value(1," ORDER_PATH")=" 00"
     MAINTAINCOMPONENT.Value(1," PATH")=" 000000"
 

我为1级组件更改的是BOM号(BOM_NO),项目ID(ITEM_ID),项目号(ITEM_NO),ORDER_LVL(至01),ORDER_PATH(至01)和PATH(至000001)。

这将导致错误"找不到合适的对象"和"尚未完全指定要分配的组件"。

我还尝试将物料更改为幻影物料编号,将项目ID更改为CA02中的行/行号,并将其更改为00000001,因为它是幻影物料的BOM表中的第一项。 但是每次我遇到相同的错误。

简而言之:

有人可以帮我解决我需要在代码中更改的内容(哪些字段),以便能够使用ROUTING_MAINTAIN将级别1的组件(即幻影组件的组件)分配给路由中的操作吗?

提前谢谢!

汤姆

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

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


亲爱的社区,

由于升级到SAP EWM,我们必须在物料的工艺路线中为正确的操作分配组件。 可以在CA02中手动完成此操作,但是由于我们需要更新大量的路由,因此我们想使用函数routing_maintain。

它适用于0级组件,但我无法使其适用于幻影组件。

下面的函数/bapi ROUTING_MAINTAIN的代码适用于0级组件

'keyDate =" 20190514"
 'routingGroup =" 50018714"'
 'routingGroupCounter =" 01"'
 '材料=" 6425-1301-6601"'
 'plantt =" 2010"
 'maintainMode =" C"
 'flagBarPointer =" 0000000000"
 'sequenceNo =" 000000"
 '活动=" 0305"
 '操作=" 0305"
 'bomType =" M"'自动
 'BOMnumber =" 00236223"
 'AlternativeBOM =" 01"
 'itemID =" 00000006"
 'itemNo =" 0060"
 '数量=" 1"
 'qUnit =" EA"
 'bomTypeRoot =" M"'
 'bomNumberRoot =" 00236223"
 'AlternativeBOMRoot =" 01"

 设置bapi = r3.Add(" ROUTING_MAINTAIN")
     bapi.Exports(" KEY_DATE")= keyDate
     bapi.Exports(" TASK_LIST_GROUP")= routingGroup
     bapi.Exports(" GROUP_COUNTER")= routingGroupCounter
     bapi.Exports(" MATERIAL")=材质
     bapi.Exports(" PLANT")=植物

     MAINTAINCOMPONENT.Value(1," MAINTAIN_MODE")= maintenanceMode
     MAINTAINCOMPONENT.Value(1," FLAG_BAR_POINTER")= flagBarPointer
     MAINTAINCOMPONENT.Value(1," SEQUENCE_NO")= sequenceNo
     MAINTAINCOMPONENT.Value(1," ACTIVITY")=活动
     MAINTAINCOMPONENT.Value(1," OPERATION_ID")=操作
     MAINTAINCOMPONENT.Value(1," BOM_TYPE")= bomType
     MAINTAINCOMPONENT.Value(1," BOM_NO")= BOM号
     MAINTAINCOMPONENT.Value(1," ALTERNATIVE_BOM")= AlternativeBOM
     MAINTAINCOMPONENT.Value(1," ITEM_ID")= itemID
     MAINTAINCOMPONENT.Value(1," ITEM_NO")= itemNo
     MAINTAINCOMPONENT.Value(1," COMP_QTY")=数量
     MAINTAINCOMPONENT.Value(1," COMP_UNIT")= qUnit
     MAINTAINCOMPONENT.Value(1,"植物")=植物'植物
     MAINTAINCOMPONENT.Value(1," MATERIAL")=材料'材料
     MAINTAINCOMPONENT.Value(1," BOM_TYPE_ROOT")= bomTypeRoot
     MAINTAINCOMPONENT.Value(1," BOM_NO_ROOT")= bomNumberRoot
     MAINTAINCOMPONENT.Value(1," ALTERNATIVE_BOM_ROOT")= AlternativeBOMRoot

     MAINTAINCOMPONENT.Value(1," SEQUENCE_NO_OLD")=""
     MAINTAINCOMPONENT.Value(1," ACTIVITY_OLD")=""
     MAINTAINCOMPONENT.Value(1," OPERATION_ID_OLD")=""
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_DIVISOR")=" 00000"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_1")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_2")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_3")=" 0"
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_UNIT")=""
     MAINTAINCOMPONENT.Value(1," CUTTING_MEASURE_UNIT_ISO")=""
     MAINTAINCOMPONENT.Value(1," COMP_UNIT_ISO")=" EA"
     MAINTAINCOMPONENT.Value(1," BACKFLUSH")=""
     MAINTAINCOMPONENT.Value(1," ORDER_LVL")=" 00"
     MAINTAINCOMPONENT.Value(1," ORDER_PATH")=" 00"
     MAINTAINCOMPONENT.Value(1," PATH")=" 000000"
 

我为1级组件更改的是BOM号(BOM_NO),项目ID(ITEM_ID),项目号(ITEM_NO),ORDER_LVL(至01),ORDER_PATH(至01)和PATH(至000001)。

这将导致错误"找不到合适的对象"和"尚未完全指定要分配的组件"。

我还尝试将物料更改为幻影物料编号,将项目ID更改为CA02中的行/行号,并将其更改为00000001,因为它是幻影物料的BOM表中的第一项。 但是每次我遇到相同的错误。

简而言之:

有人可以帮我解决我需要在代码中更改的内容(哪些字段),以便能够使用ROUTING_MAINTAIN将级别1的组件(即幻影组件的组件)分配给路由中的操作吗?

提前谢谢!

汤姆

付费偷看设置
发送
3条回答
亦是此间程序员
1楼 · 2020-09-08 11:46.采纳回答

在OSS上进行一些搜索

提示:以注释 1933543-CPCC_S_TASK_LIST_MAINTAIN:幻像程序集出错("使用功能模块ROUTING_MAINTAIN时出现相同的症状")

派大星 ヾ
2楼-- · 2020-09-08 11:39

您是否在 您的代码,如第一个注释中所述?

'若要允许编辑这些类型的组件分配,必须输入一个应用程序(参数" APPLICATION")以启用根BOM的多级展开。  
风早神人
3楼-- · 2020-09-08 11:25
您是否按照第一个注释中的建议在代码中传递了参数应用程序?
 为了允许编辑这些类型的组件分配,必须输入一个应用程序(参数" APPLICATION")以启用根BOM的多级展开。
 

我以某种方式忽略了这一点,这确实解决了问题。

为了将来参考,我添加了bapi.Exports(" APPLICATION")=" PP01"(其中PP01是BOM应用程序)

非常感谢Raymond!

一周热门 更多>