Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

BOM Creation with SubItem

Does anyone has readymade code for creating Material BOM with SubItems.

I have this sample code (I got this from web and changed to add subitem logic) which is creating subitems.

but I have 2 problems.

1. The Subitems get created for all the components.

2. The code is written to create multiple subitems but only create 1 subitem.

I am new to ABAP, just stared a month back. Any help is appreciated.

My Sample Code:

REPORT y_bapi3.

  • This code will create a material BoM for the material

  • LSMWTEST12 with the components LSMWTEST14 and LSMWTEST50.

  • Data Declaration

DATA:

it_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,

it_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,

it_items LIKE bapi1080_itm_c OCCURS 0 WITH HEADER LINE,

it_subitems LIKE bapi1080_sui_c OCCURS 0 WITH HEADER LINE,

it_matrel LIKE bapi1080_mbm_c OCCURS 0 WITH HEADER LINE,

it_itemas LIKE bapi1080_rel_itm_bom_c OCCURS 0 WITH HEADER LINE,

it_subitemas LIKE BAPI1080_REL_SUI_ITM_C OCCURS 0 WITH HEADER LINE,

it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

  • Fill the data

  • Material BoM Group Header Data

CLEAR it_bomgroup.

it_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.

it_bomgroup-object_type = 'BGR'.

it_bomgroup-object_id = 'SIMPLE1'.

it_bomgroup-CREATED_IN_PLANT = '1000'.

it_bomgroup-bom_usage = '1'. "YOU COULD CHANGE THE BOM USAGE TO YOUR

it_bomgroup-ltxt_lang = sy-langu.

it_bomgroup-technical_type = ' '.

it_bomgroup-bom_text = 'Simple BoM - FM'.

APPEND it_bomgroup.

  • Header Details of the different variants

CLEAR it_variants.

it_variants-bom_group_identification = 'BAPI_SMP_COL1'.

it_variants-object_type = 'BOM'.

it_variants-object_id = 'SIMPLE1'.

it_variants-alternative_bom = '01'.

it_variants-bom_status = '01'.

it_variants-base_qty = '1.000'.

it_variants-valid_from_date = sy-datum.

it_variants-function = 'NEW'.

APPEND it_variants.

  • Details of the items of the variants

CLEAR it_items.

it_items-bom_group_identification = 'BAPI_SMP_COL1'.

it_items-object_type = 'ITM'.

it_items-object_id = 'SIMPLE1'.

it_items-item_no = '0010'.

it_items-item_cat = 'L'.

it_items-component = 'LSMWTEST14'.

it_items-comp_qty = '2.00'.

it_items-valid_from_date = sy-datum.

APPEND it_items.

CLEAR it_items.

it_items-bom_group_identification = 'BAPI_SMP_COL1'.

it_items-object_type = 'ITM'.

it_items-object_id = 'SIMPLE1'.

it_items-item_no = '0020'.

it_items-item_cat = 'L'.

it_items-component = 'LSMWTEST50'.

it_items-comp_qty = '3.00'.

it_items-valid_from_date = sy-datum.

APPEND it_items.

*Details of the subitems of the variants

CLEAR it_subitems.

it_subitems-bom_group_identification = 'BAPI_SMP_COL1'.

it_subitems-object_type = 'SUI'.

it_subitems-object_id = 'SIM1'.

it_subitems-subitem_no = '0001'.

it_subitems-INSTALLATION_POINT = 'ab1'.

it_subitems-subitem_qty = '1'.

APPEND it_subitems.

CLEAR it_subitems.

it_subitems-bom_group_identification = 'BAPI_SMP_COL1'.

it_subitems-object_type = 'SUI'.

it_subitems-object_id = 'SIM1'.

it_subitems-subitem_no = '0002'.

it_subitems-INSTALLATION_POINT = 'ab2'.

it_subitems-subitem_qty = '1'.

APPEND it_subitems.

  • Details of the materials of the different variants

CLEAR it_matrel.

it_matrel-bom_group_identification = 'BAPI_SMP_COL1'.

it_matrel-material = 'LSMWTEST12'.

it_matrel-plant = '1000'.

it_matrel-bom_usage = '1'.

it_matrel-alternative_bom = '01'.

APPEND it_matrel.

  • Linking items to the corresponding variants

CLEAR it_itemas.

it_itemas-bom_group_identification = 'BAPI_SMP_COL1'.

it_itemas-sub_object_type = 'ITM'.

it_itemas-sub_object_id = 'SIMPLE1'.

it_itemas-super_object_type = 'BOM'.

it_itemas-super_object_id = 'SIMPLE1'.

it_itemas-valid_from_date = sy-datum.

it_itemas-function = 'NEW'.

APPEND it_itemas.

  • Linking subitems to the corresponding variants

CLEAR it_subitemas.

it_subitemas-bom_group_identification = 'BAPI_SMP_COL1'.

it_subitemas-sub_object_type = 'SUI'.

it_subitemas-sub_object_id = 'SIM1'.

it_subitemas-super_object_type = 'ITM'.

it_subitemas-super_object_id = 'SIMPLE1'.

APPEND it_subitemas.

  • Create variants

CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'

EXPORTING

all_error = 'X'

TABLES

bomgroup = it_bomgroup

variants = it_variants

items = it_items

subitems = it_subitems

materialrelations = it_matrel

itemassignments = it_itemas

subitemassignments = it_subitemas

return = it_return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

LOOP AT it_return.

WRITE:/ it_return-type, it_return-id, it_return-number,

it_return-message.

ENDLOOP.

-Uday Malgundkar

Former Member
Not what you were looking for? View more on this topic or Ask a question