*递归的方式实现
FUNCTION zbomexplode.
*"--------------------------------------------------------- *"
*"Local Interface:
*"IMPORTING
*"REFERENCE(MATNR) TYPE MATNR
*"REFERENCE(WERKS) TYPE WERKS_D
*"TABLES
*"PARENT STRUCTURE SBOM
*"CHILDREN STRUCTURE SBOM
*"EXCEPTIONS
*" NO_BOM_FOUND *"----------------------------------------------------------
DATA: it_a TYPE TABLE OF sbom.
DATA: it_b TYPE TABLE OF sbom.
IF parent[] IS INITIAL.
* first time that call to the FM
SELECT stpo~idnrk INTO TABLE it_a
FROM mast INNER JOIN stpo
ON mast~stlnr = stpo~stlnr
WHERE mast~matnr = matnr
AND mast~werks = werks.
IF it_a[] IS INITIAL.
RAISE no_bom_found.
ENDIF.
ELSE.
SELECT stpo~idnrk INTO TABLE it_a
FROM mast
INNER JOIN stpo ON mast~stlnr = stpo~stlnr
FOR ALL ENTRIES IN parent
WHERE mast~matnr = parent-matnr
AND mast
ABAP Bom按层展开的几种实现方法
最新推荐文章于 2024-05-20 17:31:16 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)