Home > ABAP, API > CS_BOM_EXPL_MAT_V2

CS_BOM_EXPL_MAT_V2

April 10th, 2010 Leave a comment Go to comments

Application Area – ERP-PP

Description

Function module CS_BOM_EXPL_MAT_V2 is used for BOM explosion for a given material. It belongs to function group CSS4 – BOM explosions. This function module can explose multi-level BOM with a given validation date.

You need to specify necessary input parameters to call this function module, such as CAPID – App ID, DATUV – Validation date, MEHRS – Multi-level, MTNRV – Material number, STLAL – alternate, STLAN – BOM usage.

Some useful tables are also listed here.

TABLES: MARA,                               "Master Data
        MAKT,                               "Matl Desc.
        MARC,                               "Plant Data for Matl.
        MAST,                               "Bom to material link
        STKO,                               "Bom Header
        STPO.                               "Bom Item


Code Snippet

Below report has a selection screen to allow user enter the necessary information and display the BOM details using ABAP List.

REPORT ZBOMSTAT  LINE-SIZE 132 LINE-COUNT 65.
************************************************************************
*      Multilevel BOM Check and transfer to correct report             *
*                                                                      *
************************************************************************
*                         Change History                               *
************************************************************************
*  CTS#       |   Date   | Userid   | Description                      *
* ---------------------------------------------------------------------*
*             |          |         | Initial Creation of Program       *
*                                                                      *
************************************************************************
 
TABLES: MARA,                               "Master Data
        MAKT,                               "Matl Desc.
        MARC,                               "Plant Data for Matl.
        MAST,                               "Bom to material link
        STKO,                               "Bom Header
        STPO.                               "Bom Item
 
DATA: BEGIN OF LTAB OCCURS 0.               "table for comp detail
        INCLUDE STRUCTURE STPOX.
DATA: END OF LTAB.
 
DATA: BEGIN OF MTAB OCCURS 0.               "table for assy detail
        INCLUDE STRUCTURE CSCMAT.
DATA: END OF MTAB.
 
************************************************************************
*                         SELECTION SCREEN                             *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_MATNR LIKE MARA-MATNR ,                    "material #
            P_WERKS LIKE MARC-WERKS MEMORY ID WRK OBLIGATORY,  "plant
            P_DATUV LIKE STPOX-DATUV DEFAULT SY-DATUM,   "valid from
            P_STLAN LIKE MAST-STLAN DEFAULT '1',         "usage
            P_STLAL LIKE MAST-STLAL DEFAULT '01',        "alternate
            P_SPRAS LIKE MAKT-SPRAS DEFAULT SY-LANGU.    "Language
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 1(79) TEXT-004.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BL1.
START-OF-SELECTION.
PERFORM EXPLODE_BOM.
END-OF-SELECTION.
 
    CLEAR LTAB.
    CLEAR MTAB.
      LOOP AT LTAB.
          SELECT SINGLE * FROM MAST WHERE WERKS EQ LTAB-WERKS AND
                                          STLNR EQ LTAB-STLNR AND
                                          STLAN EQ LTAB-STLAN.
          CHECK SY-SUBRC EQ '0000'.
          SELECT SINGLE * FROM MARC WHERE MATNR EQ LTAB-IDNRK AND
                                          WERKS EQ LTAB-WERKS.
          CHECK SY-SUBRC EQ '0000'.
          SELECT SINGLE * FROM MAKT WHERE MATNR EQ LTAB-IDNRK AND
                                          SPRAS EQ P_SPRAS.
          CHECK SY-SUBRC EQ '0000'.
         IF LTAB-MSTAE NE '00' .
            FORMAT COLOR 3 INTENSIFIED.
         ELSE.
          FORMAT COLOR 2.
         ENDIF.
         WRITE :/ LTAB-STUFE,
                  MAST-MATNR , LTAB-IDNRK , MAKT-MAKTX,
                                            MARC-EKGRP , LTAB-MATKL,
                  LTAB-MSTAE ,  LTAB-MMSTA , LTAB-DISMM ,LTAB-SOBSL,
                  LTAB-MSCHG , LTAB-MMEIN , LTAB-MTART, LTAB-REVLV.
         HIDE : LTAB-IDNRK , MARC-WERKS.
       ENDLOOP.
  SKIP 3.
  WRITE : /20 TEXT-P03.
AT LINE-SELECTION.
  IF NOT MARC-WERKS IS INITIAL.
    PERFORM CALL_MM02(ZMMR0004) USING LTAB-IDNRK  MARC-WERKS.
    CLEAR MARC-WERKS.
  ELSE.
    MESSAGE W500(CY). "Place the cursor on valid line or field
  ENDIF.
 
* *********************** EXPLODE BOM **********************************
* Call Bom Explosion function and do a multi-level explosion using     *
* the given date.                                                      *
FORM EXPLODE_BOM.
  REFRESH LTAB.
  REFRESH MTAB.
  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
       EXPORTING
            FTREL                 = ' '
            AUFSW                 = ' '
            BREMS                 = ' '
            CAPID                 = 'PP01'                "App ID
            DATUV                 = P_DATUV
            EHNDL                 = '1'
            MBWLS                 = ' '
            MKTLS                 = 'X'
            MEHRS                 = 'X'                   " Multi-level
            MTNRV                 = P_MATNR
            STLAL                 = P_STLAL
            STLAN                 = P_STLAN
            WERKS                 = P_WERKS
       TABLES
            STB                   = LTAB
            MATCAT                = MTAB
       EXCEPTIONS
            ALT_NOT_FOUND         = 1
            CALL_INVALID          = 2
            MATERIAL_NOT_FOUND    = 3
            MISSING_AUTHORIZATION = 4
            NO_BOM_FOUND          = 5
            NO_PLANT_DATA         = 6
            NO_SUITABLE_BOM_FOUND = 7
            OTHERS                = 8.
 
  IF SY-SUBRC = '7'.
    WRITE: /1 TEXT-I11, P_MATNR.
  ELSEIF SY-SUBRC NE 0.
    WRITE: /1 TEXT-I12, P_MATNR.
  ENDIF.
 
ENDFORM.

Reference

N/A

  1. No comments yet.
  1. No trackbacks yet.