弄了差不多一个多星期,把BOM导入程序完成,心得颇多,在此分享给大家。
首先,我们先对导入整个过程先认清一下。BOM就是树结构,因此导入前对excel格式有要求,必须按照指定的格式进行数据采集,导入的bapi(函数)是: TEXT_CONVERT_XLS_TO_SAP 。内表字段严格与excel表字段按顺序一一对应。
导入成功后,接下来就要为指导作准备,填写BOM表头数据(表BICSK)、BOM子物料数据(表BICSP)、BOM子项目数据(表BICSU即子物料的子物料数据)。数据填装完以后,检查BOM是否存在,存在则删除( CSAP_MAT_BOM_DELETE ),否则开始批导( ZCS_BI_BOM_CREATE_BATCH_INPUT1 )。
那么我们还有一个疑问,那就是BICSP与BICSU到底是怎样参照呢?这里就是一个大大的陷阱,特别是做程序开发的,绝对掉入此坑,BICSP与BICSU参照是通过XLINE字段参照,可是并不是相同参照,而是由函数内部完成关联,因此如果在程序中把这两个字段相等起来,永远不会成功(这里花了我3天时间,后来转换思维才发现此坑)。那么到底要怎样把BOM子物料与子项目关联起来呢,经过实际测试,这种关联是根据BOM结构关联起来的,比如子物料1的子项目参照xline = 1 的值,下一个子物料的子项目参照xline = 2 ,如此类推。
大概就这么多,如果有什么不明白或者有不同见解欢迎分享:)