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:
整合返回数据
抬头数据:
行项目:
定期更文,欢迎关注