FavoriteLoading
0

[代码]修改订单BOM(Order BOM)以及相关长文本[CSAP_ORD_BOM_MAINTAIN]

[隐藏]

1, 介绍

下面介绍一个修改订单BOM(Order BOM)的函数CSAP_ORD_BOM_MAINTAIN。通过这个函数不仅能修改订单BOM还能直接创建相关的长文本。

在前台是可以通过CS61 CS62 CS63来创建,修改,显示订单BOM.

其他:如果要创建一个新的订单BOM,可以通过函数CSAP_ORD_BOM_CREATE,参数和CSAP_ORD_BOM_MAINTAIN的差不多。

2, 例子代码

写了一个简单的修改订单BOM的程序,逻辑如下:

1,调用 CS_BOM_EXPL_MAT_V2 展开一个物料BOM,

2,将物料BOM中的class K转换成L,

3,调用CSAP_ORD_BOM_MAINTAIN修改订单BOM和相关长文本

完整代码如下:

上面代码上关于长文创建需要特别注意的是OBJECT_ID和IDENTIFIER两个字段:

  • identifier 是用来标识长文本是创建在哪个BOM item上的字段,也就是代码中的 lwa_stpo-identifier 和 lwa_line-identifier这两个字段
  • object_id是用来标识长文的是创建在抬头上还是行项目上

‘2’:BOM行项目STPO上

‘1’:BOM抬头STKO上

‘0’:STZU上。

3, 代码运行

选择画面输入物料BOM和订单BOM相关条件。

运行后订单BOM就创建完毕了。。。很简陋,,,,也没个弹出消息,,

CS63,输入刚才在选择画面上输入的订单,行项目,物料,工厂和BOM usage,然后回车

双击BOM item号

长文本也创建成功,如下:

发现一个小问题,就是前两行的长文本与代码中的不一致,代码中是line1 line12,如下:

这是由于lit_line中的长文本不能覆盖STPO中的item_text1 和 item_text2,相关代码如下:

以上。