原文链接:https://www.shuzhiduo.com/A/kmzLGGXEdG/
遇到用户要根据下层物料反查最上层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 = '' " 物料清单用途
werks = werks " 工厂
TABLES
wultb = lt_wultb
equicat = lt_equicat
kndcat = lt_kndcat
matcat = lt_matcat
stdcat = lt_stdcat
tplcat = lt_tplcat
EXCEPTIONS
call_invalid =
material_not_found =
no_where_used_rec_found =
no_where_used_rec_selected =
no_where_used_rec_valid =
OTHERS = .
或者可以参考SAP程序 RCS15001,可以实现多级查询。