遇到用户要根据下层物料反查最上层BOM物料是什么。
试了一下,通过函数 CS_WHERE_USED_MAT 来查询,但是只能往上查询一层,类似事务码CS15的效果。如果要找最上层物料,需要自己写迭代进行查询。
DATA: lt_wultb TYPE TABLE OF stpov, lt_equicat TYPE TABLE OF cscequi, lt_kndcat TYPE TABLE OF cscknd, lt_matcat TYPE TABLE OF cscmat, lt_stdcat TYPE TABLE OF cscstd, lt_tplcat TYPE TABLE OF csctpl.
" 单层反查BOM CALL FUNCTION 'CS_WHERE_USED_MAT' EXPORTING datub = sy-datum datuv = sy-datum matnr = matnr " 物料 stlan = '1' " 物料清单用途 werks = werks " 工厂 TABLES wultb = lt_wultb equicat = lt_equicat kndcat = lt_kndcat matcat = lt_matcat stdcat = lt_stdcat tplcat = lt_tplcat EXCEPTIONS call_invalid = 1 material_not_found = 2 no_where_used_rec_found = 3 no_where_used_rec_selected = 4 no_where_used_rec_valid = 5 OTHERS = 6.
或者可以参考SAP程序 RCS15001,可以实现多级查询。