SAP CS_BOM_EXPLOSION Function Module for General BOM explosion
CS_BOM_EXPLOSION is a standard cs bom explosion SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for General BOM explosion processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for cs bom explosion FM, simply by entering the name CS_BOM_EXPLOSION into the relevant SAP transaction such as SE37 or SE38.
Function Group: CSS4
Program Name: SAPLCSS4
Main Program: SAPLCSS4
Appliation area:
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function CS_BOM_EXPLOSION pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'CS_BOM_EXPLOSION'"General BOM explosion.
EXPORTING
* ACLAS = ' ' "Application class
* BEIKZ = ' ' "Material Provision Indicator
* BESSL = ' ' "Selection indicator part provided
* BGIXO = ' ' "Load assembly information for exploded assemblies only
* BREMS = ' ' "Limited explosion
* CAPID = 'STD1' "Application ID
* CHLST = ' ' "
* COSPR = ' ' "Internal: (CO) order-spec. MatPreRead
* CUOBJ = 000000000000000 "Object dependencies
* CUOVS = 0 "
* CUOLS = ' ' "Read item characteristic valuation_
* ALEKZ = ' ' "
* DATUV = 00000000 "Valid on
* DELNL = ' ' "Delete items not kept in stock from list
* DRSTP = ' ' "
* EHNDL = ' ' "Usage probability handling ' 'none, '1'mod. item quantity, '2' % req. qty_
* EMENG = 0 "Required quantity
* EQNRV = ' ' "Equipment
* ERSKZ = ' ' "Spare part indicator
* ERSSL = ' ' "Selection indicaor spare part
* FBSTP = ' ' "Limited multi-level - stop explosion at externally procured item
* KNFBA = ' ' "
* FTREL = ' ' "Limited multi-level - stop explosion for items not relevant to production
* KSBVO = ' ' "
* MBWLS = ' ' "Read Material Valuation
* MKTLS = 'X' "Read Material Description
* MDMPS = ' ' "Limited multi-level - explode phantom assemblies at least
* MEHRS = ' ' "Multi-level explosion
* MKMAT = ' ' "Limited multi-level; explode KMAT
* MMAPS = ' ' "Limited multi-level - explode at least M assemblies (MOrder)
* MMORY = ' ' "Memory Mgmt ('1'=On;'0'=Off;' '=No Reaction)
* MTNRV = ' ' "Material
* NESTP = ' ' "
* ALTVO = ' ' "Alternative priority
* NLINK = ' ' "
* NORVL = ' ' "
* NPSTP = ' ' "
* POSTP = ' ' "Item category
* PBSTP = ' ' "
* PSPNR = "
* RNDKZ = ' ' "Round off: ' '=always, '1'=never, '2'=only levels > 1
* RVREL = ' ' "Relevant to Sales and Distribution
* SANFR = ' ' "Production
* SANIN = ' ' "Plant maintenance
* AUFSW = ' ' "Determine and enter order level and order path
* SANKA = ' ' "Costing
* SANKO = ' ' "Engineering/design
* SANVS = ' ' "Shipping
* SCHGT = ' ' "Bulk material
* STKKZ = ' ' "PM assembly
* STLAL = ' ' "Alternative BOM
* STLAN = ' ' "BOM usage
* STPST = 0 "
* SVWVO = 'X' "
* SALWW = ' ' "
* AUMNG = 0 "Scrap quantity
* SPLWW = ' ' "
* TPNRV = ' ' "Functional location number
* WERKS = ' ' "Plant
* MDNOT = ' ' "Restriction on MDMPS: do not explode M phantom
* PANOT = ' ' "Restriction on MDMPS: no parallel discontinue
* QVERW = ' ' "
* VBELN = ' ' "Sales order number
* VBPOS = 0 "Item in sales order
* VERID = ' ' "Production version (global)_
* VRSVO = 'X' "
* AUSKZ = ' ' "Take scrap into account
* AMIND = ' ' "Scrap quantity indicator_
* BAGRP = ' ' "Assembly restriction
IMPORTING
TOPEQUI = "Data on the initial object (equipment)
TOPMAT = "Data on the initial object (material)
TOPTPL = "Data of start object (functional location)
DSTST = "Structure destroyed by filter
TABLES
STBD = "Addition to the item collective table (document data)
STBE = "Addition to the item collective table (equi data)
STBK = "Supplement to collective item table (class data)
STBM = "Addition to the item collective table (material data)
STBP = "Item collective table
STBT = "Supplement to collective item table (functional location data)
EXCEPTIONS
ALT_NOT_FOUND = 1 CALL_INVALID = 2 MISSING_AUTHORIZATION = 3 NO_BOM_FOUND = 4 NO_PLANT_DATA = 5 NO_SUITABLE_BOM_FOUND = 6 OBJECT_NOT_FOUND = 7 CONVERSION_ERROR = 8
IMPORTING Parameters details for CS_BOM_EXPLOSION
ACLAS - Application class
Data type: TAPPL-APPLCLASSDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BEIKZ - Material Provision Indicator
Data type: STPO-BEIKZDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BESSL - Selection indicator part provided
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BGIXO - Load assembly information for exploded assemblies only
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BREMS - Limited explosion
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CAPID - Application ID
Data type: TC04-CAPIDDefault: 'STD1'
Optional: Yes
Call by Reference: No ( called with pass by value option)
CHLST -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
COSPR - Internal: (CO) order-spec. MatPreRead
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CUOBJ - Object dependencies
Data type: MARC-CUOBJDefault: 000000000000000
Optional: Yes
Call by Reference: No ( called with pass by value option)
CUOVS -
Data type: IBVERSIONOptional: Yes
Call by Reference: No ( called with pass by value option)
CUOLS - Read item characteristic valuation_
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
ALEKZ -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
DATUV - Valid on
Data type: STKO-DATUVDefault: 00000000
Optional: Yes
Call by Reference: No ( called with pass by value option)
DELNL - Delete items not kept in stock from list
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
DRSTP -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EHNDL - Usage probability handling ' 'none, '1'mod. item quantity, '2' % req. qty_
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EMENG - Required quantity
Data type: STKO-BMENGOptional: Yes
Call by Reference: No ( called with pass by value option)
EQNRV - Equipment
Data type: EQUI-EQUNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
ERSKZ - Spare part indicator
Data type: STPO-ERSKZDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
ERSSL - Selection indicaor spare part
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
FBSTP - Limited multi-level - stop explosion at externally procured item
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
KNFBA -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
FTREL - Limited multi-level - stop explosion for items not relevant to production
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
KSBVO -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MBWLS - Read Material Valuation
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MKTLS - Read Material Description
Data type: CSDATA-XFELDDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
MDMPS - Limited multi-level - explode phantom assemblies at least
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MEHRS - Multi-level explosion
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MKMAT - Limited multi-level; explode KMAT
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MMAPS - Limited multi-level - explode at least M assemblies (MOrder)
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MMORY - Memory Mgmt ('1'=On;'0'=Off;' '=No Reaction)
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MTNRV - Material
Data type: MARA-MATNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
NESTP -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
ALTVO - Alternative priority
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
NLINK -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
NORVL -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
NPSTP -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
POSTP - Item category
Data type: STPO-POSTPDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
PBSTP -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
PSPNR -
Data type: PRST-PSPNROptional: Yes
Call by Reference: No ( called with pass by value option)
RNDKZ - Round off: ' '=always, '1'=never, '2'=only levels > 1
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
RVREL - Relevant to Sales and Distribution
Data type: STPO-RVRELDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SANFR - Production
Data type: STPO-SANFEDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SANIN - Plant maintenance
Data type: STPO-SANINDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
AUFSW - Determine and enter order level and order path
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SANKA - Costing
Data type: STPO-SANKADefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SANKO - Engineering/design
Data type: STPO-SANKODefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SANVS - Shipping
Data type: STPO-SANVSDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
SCHGT - Bulk material
Data type: STPO-SCHGTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
STKKZ - PM assembly
Data type: STPO-STKKZDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
STLAL - Alternative BOM
Data type: STKO-STLALDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
STLAN - BOM usage
Data type: STZU-STLANDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
STPST -
Data type: STPOX-STUFEOptional: Yes
Call by Reference: No ( called with pass by value option)
SVWVO -
Data type: CSDATA-XFELDDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
SALWW -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
AUMNG - Scrap quantity
Data type: STKO-BMENGOptional: Yes
Call by Reference: No ( called with pass by value option)
SPLWW -
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
TPNRV - Functional location number
Data type: IFLO-TPLNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
WERKS - Plant
Data type: MARC-WERKSDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
MDNOT - Restriction on MDMPS: do not explode M phantom
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
PANOT - Restriction on MDMPS: no parallel discontinue
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
QVERW -
Data type: TMQ2-USEQUDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
VBELN - Sales order number
Data type: KDST-VBELNDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
VBPOS - Item in sales order
Data type: KDST-VBPOSOptional: Yes
Call by Reference: No ( called with pass by value option)
VERID - Production version (global)_
Data type: MKAL-VERIDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
VRSVO -
Data type: CSDATA-XFELDDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
AUSKZ - Take scrap into account
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
AMIND - Scrap quantity indicator_
Data type: CSDATA-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BAGRP - Assembly restriction
Data type: MARA-MATNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for CS_BOM_EXPLOSION
TOPEQUI - Data on the initial object (equipment)
Data type: CSTEQUIOptional: No
Call by Reference: No ( called with pass by value option)
TOPMAT - Data on the initial object (material)
Data type: CSTMATOptional: No
Call by Reference: No ( called with pass by value option)
TOPTPL - Data of start object (functional location)
Data type: CSTTPLOptional: No
Call by Reference: No ( called with pass by value option)
DSTST - Structure destroyed by filter
Data type: CSDATA-XFELDOptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for CS_BOM_EXPLOSION
STBD - Addition to the item collective table (document data)
Data type: CSXDOCOptional: No
Call by Reference: No ( called with pass by value option)
STBE - Addition to the item collective table (equi data)
Data type: CSXEQUIOptional: No
Call by Reference: No ( called with pass by value option)
STBK - Supplement to collective item table (class data)
Data type: CSXKLAOptional: No
Call by Reference: No ( called with pass by value option)
STBM - Addition to the item collective table (material data)
Data type: CSXMATOptional: No
Call by Reference: No ( called with pass by value option)
STBP - Item collective table
Data type: CSXGENOptional: No
Call by Reference: No ( called with pass by value option)
STBT - Supplement to collective item table (functional location data)
Data type: CSXTPLOptional: No
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
ALT_NOT_FOUND - Alternative not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
CALL_INVALID - Incorrect parameter combination
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MISSING_AUTHORIZATION - No authorization (bill of material)
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_BOM_FOUND - There is no bill of materials for this material
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_PLANT_DATA - Material not maintained in plant
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_SUITABLE_BOM_FOUND - Bill of material does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OBJECT_NOT_FOUND - Object does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
CONVERSION_ERROR - Conversion error (units of measure)
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for CS_BOM_EXPLOSION Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lt_stbd | TYPE STANDARD TABLE OF CSXDOC, " | |||
| lv_aclas | TYPE TAPPL-APPLCLASS, " SPACE | |||
| lv_topequi | TYPE CSTEQUI, " | |||
| lv_alt_not_found | TYPE CSTEQUI, " | |||
| lv_beikz | TYPE STPO-BEIKZ, " SPACE | |||
| lv_bessl | TYPE CSDATA-XFELD, " SPACE | |||
| lv_bgixo | TYPE CSDATA-XFELD, " SPACE | |||
| lv_brems | TYPE CSDATA-XFELD, " SPACE | |||
| lv_capid | TYPE TC04-CAPID, " 'STD1' | |||
| lv_chlst | TYPE CSDATA-XFELD, " SPACE | |||
| lv_cospr | TYPE CSDATA-XFELD, " SPACE | |||
| lv_cuobj | TYPE MARC-CUOBJ, " 000000000000000 | |||
| lv_cuovs | TYPE IBVERSION, " 0 | |||
| lv_cuols | TYPE CSDATA-XFELD, " SPACE | |||
| lt_stbe | TYPE STANDARD TABLE OF CSXEQUI, " | |||
| lv_alekz | TYPE CSDATA-XFELD, " SPACE | |||
| lv_topmat | TYPE CSTMAT, " | |||
| lv_call_invalid | TYPE CSTMAT, " | |||
| lv_datuv | TYPE STKO-DATUV, " 00000000 | |||
| lv_delnl | TYPE CSDATA-XFELD, " SPACE | |||
| lv_drstp | TYPE CSDATA-XFELD, " SPACE | |||
| lv_ehndl | TYPE CSDATA-XFELD, " SPACE | |||
| lv_emeng | TYPE STKO-BMENG, " 0 | |||
| lv_eqnrv | TYPE EQUI-EQUNR, " SPACE | |||
| lv_erskz | TYPE STPO-ERSKZ, " SPACE | |||
| lv_erssl | TYPE CSDATA-XFELD, " SPACE | |||
| lv_fbstp | TYPE CSDATA-XFELD, " SPACE | |||
| lv_knfba | TYPE CSDATA-XFELD, " SPACE | |||
| lt_stbk | TYPE STANDARD TABLE OF CSXKLA, " | |||
| lv_ftrel | TYPE CSDATA-XFELD, " SPACE | |||
| lv_toptpl | TYPE CSTTPL, " | |||
| lv_missing_authorization | TYPE CSTTPL, " | |||
| lv_ksbvo | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mbwls | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mktls | TYPE CSDATA-XFELD, " 'X' | |||
| lv_mdmps | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mehrs | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mkmat | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mmaps | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mmory | TYPE CSDATA-XFELD, " SPACE | |||
| lv_mtnrv | TYPE MARA-MATNR, " SPACE | |||
| lv_nestp | TYPE CSDATA-XFELD, " SPACE | |||
| lt_stbm | TYPE STANDARD TABLE OF CSXMAT, " | |||
| lv_altvo | TYPE CSDATA-XFELD, " SPACE | |||
| lv_dstst | TYPE CSDATA-XFELD, " | |||
| lv_no_bom_found | TYPE CSDATA, " | |||
| lv_nlink | TYPE CSDATA-XFELD, " SPACE | |||
| lv_norvl | TYPE CSDATA-XFELD, " SPACE | |||
| lv_npstp | TYPE CSDATA-XFELD, " SPACE | |||
| lv_postp | TYPE STPO-POSTP, " SPACE | |||
| lv_pbstp | TYPE CSDATA-XFELD, " SPACE | |||
| lv_pspnr | TYPE PRST-PSPNR, " | |||
| lv_rndkz | TYPE CSDATA-XFELD, " SPACE | |||
| lv_rvrel | TYPE STPO-RVREL, " SPACE | |||
| lv_sanfr | TYPE STPO-SANFE, " SPACE | |||
| lv_sanin | TYPE STPO-SANIN, " SPACE | |||
| lt_stbp | TYPE STANDARD TABLE OF CSXGEN, " | |||
| lv_aufsw | TYPE CSDATA-XFELD, " SPACE | |||
| lv_no_plant_data | TYPE CSDATA, " | |||
| lv_sanka | TYPE STPO-SANKA, " SPACE | |||
| lv_sanko | TYPE STPO-SANKO, " SPACE | |||
| lv_sanvs | TYPE STPO-SANVS, " SPACE | |||
| lv_schgt | TYPE STPO-SCHGT, " SPACE | |||
| lv_stkkz | TYPE STPO-STKKZ, " SPACE | |||
| lv_stlal | TYPE STKO-STLAL, " SPACE | |||
| lv_stlan | TYPE STZU-STLAN, " SPACE | |||
| lv_stpst | TYPE STPOX-STUFE, " 0 | |||
| lv_svwvo | TYPE CSDATA-XFELD, " 'X' | |||
| lv_salww | TYPE CSDATA-XFELD, " SPACE | |||
| lt_stbt | TYPE STANDARD TABLE OF CSXTPL, " | |||
| lv_aumng | TYPE STKO-BMENG, " 0 | |||
| lv_no_suitable_bom_found | TYPE STKO, " | |||
| lv_splww | TYPE CSDATA-XFELD, " SPACE | |||
| lv_tpnrv | TYPE IFLO-TPLNR, " SPACE | |||
| lv_werks | TYPE MARC-WERKS, " SPACE | |||
| lv_mdnot | TYPE CSDATA-XFELD, " SPACE | |||
| lv_panot | TYPE CSDATA-XFELD, " SPACE | |||
| lv_qverw | TYPE TMQ2-USEQU, " SPACE | |||
| lv_vbeln | TYPE KDST-VBELN, " SPACE | |||
| lv_vbpos | TYPE KDST-VBPOS, " 0 | |||
| lv_verid | TYPE MKAL-VERID, " SPACE | |||
| lv_vrsvo | TYPE CSDATA-XFELD, " 'X' | |||
| lv_auskz | TYPE CSDATA-XFELD, " SPACE | |||
| lv_object_not_found | TYPE CSDATA, " | |||
| lv_amind | TYPE CSDATA-XFELD, " SPACE | |||
| lv_conversion_error | TYPE CSDATA, " | |||
| lv_bagrp | TYPE MARA-MATNR. " SPACE |
|   CALL FUNCTION 'CS_BOM_EXPLOSION' "General BOM explosion |
| EXPORTING | ||
| ACLAS | = lv_aclas | |
| BEIKZ | = lv_beikz | |
| BESSL | = lv_bessl | |
| BGIXO | = lv_bgixo | |
| BREMS | = lv_brems | |
| CAPID | = lv_capid | |
| CHLST | = lv_chlst | |
| COSPR | = lv_cospr | |
| CUOBJ | = lv_cuobj | |
| CUOVS | = lv_cuovs | |
| CUOLS | = lv_cuols | |
| ALEKZ | = lv_alekz | |
| DATUV | = lv_datuv | |
| DELNL | = lv_delnl | |
| DRSTP | = lv_drstp | |
| EHNDL | = lv_ehndl | |
| EMENG | = lv_emeng | |
| EQNRV | = lv_eqnrv | |
| ERSKZ | = lv_erskz | |
| ERSSL | = lv_erssl | |
| FBSTP | = lv_fbstp | |
| KNFBA | = lv_knfba | |
| FTREL | = lv_ftrel | |
| KSBVO | = lv_ksbvo | |
| MBWLS | = lv_mbwls | |
| MKTLS | = lv_mktls | |
| MDMPS | = lv_mdmps | |
| MEHRS | = lv_mehrs | |
| MKMAT | = lv_mkmat | |
| MMAPS | = lv_mmaps | |
| MMORY | = lv_mmory | |
| MTNRV | = lv_mtnrv | |
| NESTP | = lv_nestp | |
| ALTVO | = lv_altvo | |
| NLINK | = lv_nlink | |
| NORVL | = lv_norvl | |
| NPSTP | = lv_npstp | |
| POSTP | = lv_postp | |
| PBSTP | = lv_pbstp | |
| PSPNR | = lv_pspnr | |
| RNDKZ | = lv_rndkz | |
| RVREL | = lv_rvrel | |
| SANFR | = lv_sanfr | |
| SANIN | = lv_sanin | |
| AUFSW | = lv_aufsw | |
| SANKA | = lv_sanka | |
| SANKO | = lv_sanko | |
| SANVS | = lv_sanvs | |
| SCHGT | = lv_schgt | |
| STKKZ | = lv_stkkz | |
| STLAL | = lv_stlal | |
| STLAN | = lv_stlan | |
| STPST | = lv_stpst | |
| SVWVO | = lv_svwvo | |
| SALWW | = lv_salww | |
| AUMNG | = lv_aumng | |
| SPLWW | = lv_splww | |
| TPNRV | = lv_tpnrv | |
| WERKS | = lv_werks | |
| MDNOT | = lv_mdnot | |
| PANOT | = lv_panot | |
| QVERW | = lv_qverw | |
| VBELN | = lv_vbeln | |
| VBPOS | = lv_vbpos | |
| VERID | = lv_verid | |
| VRSVO | = lv_vrsvo | |
| AUSKZ | = lv_auskz | |
| AMIND | = lv_amind | |
| BAGRP | = lv_bagrp | |
| IMPORTING | ||
| TOPEQUI | = lv_topequi | |
| TOPMAT | = lv_topmat | |
| TOPTPL | = lv_toptpl | |
| DSTST | = lv_dstst | |
| TABLES | ||
| STBD | = lt_stbd | |
| STBE | = lt_stbe | |
| STBK | = lt_stbk | |
| STBM | = lt_stbm | |
| STBP | = lt_stbp | |
| STBT | = lt_stbt | |
| EXCEPTIONS | ||
| ALT_NOT_FOUND = 1 | ||
| CALL_INVALID = 2 | ||
| MISSING_AUTHORIZATION = 3 | ||
| NO_BOM_FOUND = 4 | ||
| NO_PLANT_DATA = 5 | ||
| NO_SUITABLE_BOM_FOUND = 6 | ||
| OBJECT_NOT_FOUND = 7 | ||
| CONVERSION_ERROR = 8 | ||
| . " CS_BOM_EXPLOSION | ||
ABAP code using 7.40 inline data declarations to call FM CS_BOM_EXPLOSION
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single APPLCLASS FROM TAPPL INTO @DATA(ld_aclas). | ||||
| DATA(ld_aclas) | = ' '. | |||
| "SELECT single BEIKZ FROM STPO INTO @DATA(ld_beikz). | ||||
| DATA(ld_beikz) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_bessl). | ||||
| DATA(ld_bessl) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_bgixo). | ||||
| DATA(ld_bgixo) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_brems). | ||||
| DATA(ld_brems) | = ' '. | |||
| "SELECT single CAPID FROM TC04 INTO @DATA(ld_capid). | ||||
| DATA(ld_capid) | = 'STD1'. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_chlst). | ||||
| DATA(ld_chlst) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_cospr). | ||||
| DATA(ld_cospr) | = ' '. | |||
| "SELECT single CUOBJ FROM MARC INTO @DATA(ld_cuobj). | ||||
| DATA(ld_cuobj) | = 000000000000000. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_cuols). | ||||
| DATA(ld_cuols) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_alekz). | ||||
| DATA(ld_alekz) | = ' '. | |||
| "SELECT single DATUV FROM STKO INTO @DATA(ld_datuv). | ||||
| DATA(ld_datuv) | = 00000000. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_delnl). | ||||
| DATA(ld_delnl) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_drstp). | ||||
| DATA(ld_drstp) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_ehndl). | ||||
| DATA(ld_ehndl) | = ' '. | |||
| "SELECT single BMENG FROM STKO INTO @DATA(ld_emeng). | ||||
| "SELECT single EQUNR FROM EQUI INTO @DATA(ld_eqnrv). | ||||
| DATA(ld_eqnrv) | = ' '. | |||
| "SELECT single ERSKZ FROM STPO INTO @DATA(ld_erskz). | ||||
| DATA(ld_erskz) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_erssl). | ||||
| DATA(ld_erssl) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_fbstp). | ||||
| DATA(ld_fbstp) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_knfba). | ||||
| DATA(ld_knfba) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_ftrel). | ||||
| DATA(ld_ftrel) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_ksbvo). | ||||
| DATA(ld_ksbvo) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mbwls). | ||||
| DATA(ld_mbwls) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mktls). | ||||
| DATA(ld_mktls) | = 'X'. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mdmps). | ||||
| DATA(ld_mdmps) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mehrs). | ||||
| DATA(ld_mehrs) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mkmat). | ||||
| DATA(ld_mkmat) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mmaps). | ||||
| DATA(ld_mmaps) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mmory). | ||||
| DATA(ld_mmory) | = ' '. | |||
| "SELECT single MATNR FROM MARA INTO @DATA(ld_mtnrv). | ||||
| DATA(ld_mtnrv) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_nestp). | ||||
| DATA(ld_nestp) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_altvo). | ||||
| DATA(ld_altvo) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_dstst). | ||||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_nlink). | ||||
| DATA(ld_nlink) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_norvl). | ||||
| DATA(ld_norvl) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_npstp). | ||||
| DATA(ld_npstp) | = ' '. | |||
| "SELECT single POSTP FROM STPO INTO @DATA(ld_postp). | ||||
| DATA(ld_postp) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_pbstp). | ||||
| DATA(ld_pbstp) | = ' '. | |||
| "SELECT single PSPNR FROM PRST INTO @DATA(ld_pspnr). | ||||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_rndkz). | ||||
| DATA(ld_rndkz) | = ' '. | |||
| "SELECT single RVREL FROM STPO INTO @DATA(ld_rvrel). | ||||
| DATA(ld_rvrel) | = ' '. | |||
| "SELECT single SANFE FROM STPO INTO @DATA(ld_sanfr). | ||||
| DATA(ld_sanfr) | = ' '. | |||
| "SELECT single SANIN FROM STPO INTO @DATA(ld_sanin). | ||||
| DATA(ld_sanin) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_aufsw). | ||||
| DATA(ld_aufsw) | = ' '. | |||
| "SELECT single SANKA FROM STPO INTO @DATA(ld_sanka). | ||||
| DATA(ld_sanka) | = ' '. | |||
| "SELECT single SANKO FROM STPO INTO @DATA(ld_sanko). | ||||
| DATA(ld_sanko) | = ' '. | |||
| "SELECT single SANVS FROM STPO INTO @DATA(ld_sanvs). | ||||
| DATA(ld_sanvs) | = ' '. | |||
| "SELECT single SCHGT FROM STPO INTO @DATA(ld_schgt). | ||||
| DATA(ld_schgt) | = ' '. | |||
| "SELECT single STKKZ FROM STPO INTO @DATA(ld_stkkz). | ||||
| DATA(ld_stkkz) | = ' '. | |||
| "SELECT single STLAL FROM STKO INTO @DATA(ld_stlal). | ||||
| DATA(ld_stlal) | = ' '. | |||
| "SELECT single STLAN FROM STZU INTO @DATA(ld_stlan). | ||||
| DATA(ld_stlan) | = ' '. | |||
| "SELECT single STUFE FROM STPOX INTO @DATA(ld_stpst). | ||||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_svwvo). | ||||
| DATA(ld_svwvo) | = 'X'. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_salww). | ||||
| DATA(ld_salww) | = ' '. | |||
| "SELECT single BMENG FROM STKO INTO @DATA(ld_aumng). | ||||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_splww). | ||||
| DATA(ld_splww) | = ' '. | |||
| "SELECT single TPLNR FROM IFLO INTO @DATA(ld_tpnrv). | ||||
| DATA(ld_tpnrv) | = ' '. | |||
| "SELECT single WERKS FROM MARC INTO @DATA(ld_werks). | ||||
| DATA(ld_werks) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_mdnot). | ||||
| DATA(ld_mdnot) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_panot). | ||||
| DATA(ld_panot) | = ' '. | |||
| "SELECT single USEQU FROM TMQ2 INTO @DATA(ld_qverw). | ||||
| DATA(ld_qverw) | = ' '. | |||
| "SELECT single VBELN FROM KDST INTO @DATA(ld_vbeln). | ||||
| DATA(ld_vbeln) | = ' '. | |||
| "SELECT single VBPOS FROM KDST INTO @DATA(ld_vbpos). | ||||
| "SELECT single VERID FROM MKAL INTO @DATA(ld_verid). | ||||
| DATA(ld_verid) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_vrsvo). | ||||
| DATA(ld_vrsvo) | = 'X'. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_auskz). | ||||
| DATA(ld_auskz) | = ' '. | |||
| "SELECT single XFELD FROM CSDATA INTO @DATA(ld_amind). | ||||
| DATA(ld_amind) | = ' '. | |||
| "SELECT single MATNR FROM MARA INTO @DATA(ld_bagrp). | ||||
| DATA(ld_bagrp) | = ' '. | |||
Search for further information about these or an SAP related objects