BOM批量查询

 1业务要求

1.当多层展开时:

根据"BOM应用程序"字段CAPID在TC04中取出"选择ID"TC04-CSLID;

再根据TCS41-CSLID= TC04-CSLID,取出"选择优先级"TCS41-CSLPR、"用途"TCS41-STLAN,按照"选择优先级"升序排序;

根据物料、工厂、上面排序的第一个用途、可选BOM 从MAST(BOM 链接物料)表查询记录,取物料MAST-MATNR、工厂MAST-WERKS、BOM用途MAST-STLAN、可选BOM MAST-STLAL、BOM编号MAST-STLNR;

如果有值,则结束取值,如果无值,则根据排序的第二个用途,其他条件都相同,取出数据。

2.但单层展开或多层有限展开等其他情况时:

只根据上述取MAST的逻辑取出相关数据即可,不需要取TC04和TCS41表。

最终,并根据单层展开、多层展开、多层有限展开、不显示虚拟件、不考虑替代组等按钮,调整传入BAPI的相关参数,当多层展开时,不传BOM用途字段,当其他情况时,传入BOM用途字段,并获取不同的返回结果。

2技术实现

2.1获取数据

根据逻辑获取TC04和MAST表中的数据,并根据优先级对TC04的数据进行排序。循环TC04,查找MAST,如果查找到就删除其他数据,否则继续循环。

单层展开,则参数MEHRS(多层展开)、BREMS(有限展开)不赋值;

多层展开,则参数MEHRS==X,参数BREMS不赋值;

多层有限展开,则参数MEHRS==X,BREMS==X;

不显示虚拟件,则从展开内表中排除虚拟件标识DUMPS==x(小写x)的记录;

不考虑替代组,则参数EHNDL==X 否则不赋值。

2.2 调用BAPI

调用BAPI:CS_BOM_EXPL_MAT_V2。

参数定义:

调用BAPI:

整合返回数据

抬头数据:

行项目:

 

定期更文,欢迎关注

posted @ 2020-05-12 13:56  斌将军  阅读(1506)  评论(0编辑  收藏  举报