遇到用户要根据下层物料反查最上层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,可以实现多级查询。
来源:oschina
链接:https://my.oschina.net/u/4402847/blog/3606731