|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > Indonesia > Function Module Examples Code > Create BOM (Build of Material) |
Objective |
Pengetahuan menggunakan Function Module Standard SAP untuk membuat BOM (Build of Material) |
Support |
|
Contributor |
Albertus Reinandang ( reinandang@yahoo.com ) |
BAPI_MATERIAL_BOM_GROUP_CREATE : Creation of a Material BOM Group
Contoh :
REPORT ztest_fm701.
PARAMETERS : p_matnr LIKE mara-matnr DEFAULT '51200013',
p_werks LIKE marc-werks DEFAULT '5620',
p_stlan LIKE rc29n-stlan DEFAULT '1',
p_stlal LIKE rc29n-stlal DEFAULT '06',
p_datum LIKE sy-datum DEFAULT sy-datum.
PARAMETERS : p_mat01 LIKE mara-matnr DEFAULT '51300004',
p_quant1 LIKE rc29p-menge DEFAULT '10000',
p_mat02 LIKE mara-matnr DEFAULT '51300002',
p_quant2 LIKE rc29p-menge DEFAULT '1000'.
DATA:
gi_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,
gi_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,
gi_items LIKE bapi1080_itm_c OCCURS 0 WITH HEADER LINE,
gi_matrel LIKE bapi1080_mbm_c OCCURS 0 WITH HEADER LINE,
gi_itemas LIKE bapi1080_rel_itm_bom_c OCCURS 0 WITH HEADER LINE,
gi_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA : lw_return LIKE bapiret2.
DATA : fc_message LIKE sy-lisel.
START-OF-SELECTION.
* Fill the data
* Material BoM Group Header Data
CLEAR gi_bomgroup.
gi_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.
gi_bomgroup-object_type = 'BGR'.
gi_bomgroup-object_id = 'SIMPLE1'.
gi_bomgroup-created_in_plant = p_werks.
gi_bomgroup-bom_usage = p_stlan. " YOU COULD CHANGE THE BOM USAGE TO YOUR needs
gi_bomgroup-ltxt_lang = sy-langu.
gi_bomgroup-technical_type = ' '.
gi_bomgroup-bom_text = 'Simple BoM - FM'.
APPEND gi_bomgroup.
* Header Details of the different variants
CLEAR gi_variants.
gi_variants-bom_group_identification = 'BAPI_SMP_COL1'.
gi_variants-object_type = 'BOM'.
gi_variants-object_id = 'SIMPLE1'.
gi_variants-alternative_bom = p_stlal.
*gi_variants-bom_status = '01'.
*gi_variants-base_qty = '1.000'.
gi_variants-valid_from_date = p_datum.
gi_variants-function = 'NEW'.
APPEND gi_variants.
* Details of the materials of the different variants
CLEAR gi_matrel.
gi_matrel-bom_group_identification = 'BAPI_SMP_COL1'.
gi_matrel-material = p_matnr.
gi_matrel-plant = p_werks.
gi_matrel-bom_usage = p_stlan.
gi_matrel-alternative_bom = p_stlal.
APPEND gi_matrel.
* Details of the items of the variants
CLEAR gi_items.
gi_items-bom_group_identification = 'BAPI_SMP_COL1'.
gi_items-object_type = 'ITM'.
gi_items-object_id = 'SIMPLE1'.
gi_items-item_no = '0010'.
gi_items-item_cat = 'L'.
gi_items-component = p_mat01.
gi_items-comp_qty = p_quant1.
gi_items-valid_from_date = p_datum.
APPEND gi_items.
CLEAR gi_items.
gi_items-bom_group_identification = 'BAPI_SMP_COL1'.
gi_items-object_type = 'ITM'.
gi_items-object_id = 'SIMPLE1'.
gi_items-item_no = '0020'.
gi_items-item_cat = 'L'.
gi_items-component = p_mat02.
gi_items-comp_qty = p_quant2.
gi_items-valid_from_date = p_datum.
APPEND gi_items.
* Linking items to the corresponding variants
CLEAR gi_itemas.
gi_itemas-bom_group_identification = 'BAPI_SMP_COL1'.
gi_itemas-sub_object_type = 'ITM'.
gi_itemas-sub_object_id = 'SIMPLE1'.
gi_itemas-super_object_type = 'BOM'.
gi_itemas-super_object_id = 'SIMPLE1'.
gi_itemas-valid_from_date = p_datum.
gi_itemas-function = 'NEW'.
APPEND gi_itemas.
* Create variants
CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
EXPORTING
all_error = 'X'
TABLES
bomgroup = gi_bomgroup
variants = gi_variants
items = gi_items
materialrelations = gi_matrel
itemassignments = gi_itemas
return = gi_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
LOOP AT gi_return INTO lw_return.
CALL FUNCTION 'RPY_MESSAGE_COMPOSE'
EXPORTING
language = sy-langu
message_id = lw_return-id
message_number = lw_return-number
message_var1 = lw_return-message_v1
message_var2 = lw_return-message_v2
message_var3 = lw_return-message_v3
message_var4 = lw_return-message_v4
IMPORTING
message_text = fc_message.
WRITE:/ fc_message.
ENDLOOP.