SAP-PP 批量修改BOM组件自定义程序FS

需求:开发一个程序,可以批量修改BOM组件,需要包含如下三个功能

1新增组件

2删除组件

3 修改组件数量(不支持修改组件物料号码,只能修改组件数量)

方案:

程序提供两个按钮,一个按钮可以下载如下上传模板,另外一个按钮可以上传如下模板,上传时用户可以选择上传文件路径。

 

用户选择上传文件执行后,需要有输出界面,将excel中用户所填信息显示在输出界面中,同时需要对用户所填信息进行数据校验,如果如下校验不通过,则报错。在输出界面中最后有一列“信息”,显示对应消息。

1,子件物料和上阶物料在对应的工厂物料主数据(表MARC)必须存在,否则报错“物料在工厂中不存在!”

2,  上阶物料的BOM必须已经存在,否则报错“上阶物料BOM不存在“。

3,要添加的子件物料不能在上阶物料的BOM中已经存在,否则报错“子件物料在头件物料BOM中已存在!”。

4,要删除/修改组件数量的子件物料必须在上阶物料的BOM中存在,否则报错“子件物料在头件物料BOM中不存在!”

5,添加或者修改子件时,需要判断子件物料和上阶物料在对应的工厂中物料不能处于冻结状态(物料状态06,88),否则报错“物料已经冻结!”冻结状态取值MARA-MSTAE,MARC-MMSTA。

6,如果同一组件在上阶物料的BOM中存在多行,不允许删除或者修改组件数量。系统报错“物料在BOM中存在多行!”

7,Excel中“功能”列,用户可以填写ADD,DEL或者UPDATE,分别代表添加组件,删除组件,更新组件数量的意思。用户如果填写了其他值,系统报错“功能列只能填写ADD,DEL或者UPDATE”。

8,工厂列只能填写某个工厂名,否则系统报错“工厂列只能填写。。”。

9,   用户可以填写ECN更改编号,如果填写的话需要校验填写的ECN更改编号是否有效,即在表AENR 中存在(AENR-AENNR),并且状态(AENR-AENST)为01。

10, BOM有效起始日期用户可以不填写,如果不填写的话默认当前日期减去7天显示在输出屏幕,如果用户填写的话,则需要校验填写的日期是否为有效日期格式,YYYYMMDD。否则报错“无法识别日期”

11,数量列不能为空,或者0,用户需要填写数字。否则报错“数量列不能为空,请输入数字”

12,单位列可以为空,如果为空的话在程序输出界面从下阶物料号码的物料主数据取基本计量单位(MARA-MEINS)。如果用户填写了单位的话,需要根据下阶物料号码,检查该单位转换成大写后在表(T006A- MSEH3)中必须存在,否则报错“子件物料号码单位非法”。

如果Excel中所有数据校验都没有问题,用户可以保存,系统进行后台批量修改BOM。需要将用户上传的信息保存在日志表中,日志表中需要记录调用SAP修改BOM后的返回消息,和导入数据的用户账号,供后续查询。

FM: CSAP_MAT_BOM_READ,CSAP_MAT_BOM_MAINTAIN

CSAP_BOM_ITEM_MAINTAIN

BAPI_MAT_BOM_EXISTENCE_CHECK --Check whether BOM for material exists

BOM抬头表:MAST  根据上阶物料号码,工厂,BOM用途,查询到BOM号码(字段MAST-STLNR)。

BOM行项目表:STPO, 根据BOM号码,到表STOP中查询到BOM的下阶物料信息。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雁初飞~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值