BDC Program to Upload Material Master Data (MM01)

REPORT  ZIMMC001.
************************************************************************
*  D A T A   D E C L A R A T I O N                                     *
************************************************************************
*------------------------------------
*  Type Declaration of the Structure.
*------------------------------------
TYPES:  BEGIN  OF  TY_SAVE_INDEX,
          IDNO  TYPE  I,                   "  SAVE Index
        END    OF  TY_SAVE_INDEX.
TYPES:  BEGIN  OF  TY_TABDATA,
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Create Material (Initial Screen).
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          MATNR(18)      TYPE    C,        "  Material Number.
          MBRSH(01)      TYPE    C,        "  Industry Sector.
          MTART(04)      TYPE    C,        "  Material Type.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Organizational Levels.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          WERKS(04)      TYPE    C,        "  Plant.
          LGORT(04)      TYPE    C,        "  Storage Location.
          VKORG(04)      TYPE    C,        "  Sales Organization.
          VTWEG(02)      TYPE    C,        "  Distribution Channel.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Sales Org. 1 : Tax Classification.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          TAXKM1(01)     TYPE    C,        "  Tax classification material 1.
          TAXKM2(01)     TYPE    C,        "  Tax classification material 2.
          TAXKM3(01)     TYPE    C,        "  Tax classification material 3.
          TAXKM4(01)     TYPE    C,        "  Tax classification material 4.
          TAXKM5(01)     TYPE    C,        "  Tax classification material 5.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Additional Data - UoM.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          UMREN1(06)     TYPE    C,        "  Denominator for Conversion to Base Units of Measure 1.
          MEINH1(03)     TYPE    C,        "  Alternative Unit of Measure for Stockkeeping Unit   1.
          UMREZ1(06)     TYPE    C,        "  Numerator for Conversion to Base Units of Measure   1.
*         ..........................................................................................
          UMREN2(06)     TYPE    C,        "  Denominator for Conversion to Base Units of Measure 2.
          MEINH2(03)     TYPE    C,        "  Alternative Unit of Measure for Stockkeeping Unit   2.
          UMREZ2(06)     TYPE    C,        "  Numerator for Conversion to Base Units of Measure   2.
*         ..........................................................................................
          UMREN3(06)     TYPE    C,        "  Denominator for Conversion to Base Units of Measure 3.
          MEINH3(03)     TYPE    C,        "  Alternative Unit of Measure for Stockkeeping Unit   3.
          UMREZ3(06)     TYPE    C,        "  Numerator for Conversion to Base Units of Measure   3.
*         ..........................................................................................
          UMREN4(06)     TYPE    C,        "  Denominator for Conversion to Base Units of Measure 4.
          MEINH4(03)     TYPE    C,        "  Alternative Unit of Measure for Stockkeeping Unit   4.
          UMREZ4(06)     TYPE    C,        "  Numerator for Conversion to Base Units of Measure   4.
*         ..........................................................................................
          UMREN5(06)     TYPE    C,        "  Denominator for Conversion to Base Units of Measure 5.
          MEINH5(03)     TYPE    C,        "  Alternative Unit of Measure for Stockkeeping Unit   5.
          UMREZ5(06)     TYPE    C,        "  Numerator for Conversion to Base Units of Measure   5.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Sales Org. 1
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          VRKME(03)      TYPE    C,        "  Sales unit.
          DWERK(04)      TYPE    C,        "  Delivering Plant (Own or External).
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Sales Org. 2
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          VERSG(01)      TYPE    C,        "  Material statistics group.
          KTGRM(02)      TYPE    C,        "  Account assignment group for this material.
          MTPOS(04)      TYPE    C,        "  Item category group from material master.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         General/Plant.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          BRGEW(17)      TYPE    C,        "  Gross weight.
          NTGEW(17)      TYPE    C,        "  Net weight.
          MTVFP(02)      TYPE    C,        "  Checking Group for Availability Check.
          TRAGR(04)      TYPE    C,        "  Transportation group
          LADGR(04)      TYPE    C,        "  Loading group.
          PRCTR(10)      TYPE    C,        "  Profit Center.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Foreign Trade Export.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          HERKL(03)      TYPE    C,        "  Country of origin of the material.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Purchasing.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          BSTME(03)      TYPE    C,        "  Order unit.
          KAUTB(01)      TYPE    C,        "  Indicator: "automatic purchase order allowed".
          XCHPF(01)      TYPE    C,        "  Batch management requirement indicator.
          EKGRP(03)      TYPE    C,        "  Purchasing Group.
          WEBAZ(03)      TYPE    C,        "  Goods receipt processing time in days.
          EKWSL(04)      TYPE    C,        "  Purchasing Value Key.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Purch.Order Text.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          PTEXT(40)      TYPE    C,        "  Purchase Order Text.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         MRP 1
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          DISGR(04)      TYPE    C,        "  MRP Group.
          DISMM(02)      TYPE    C,        "  MRP Type.
          MINBE(17)      TYPE    C,        "  Reorder point.
          DISPO(03)      TYPE    C,        "  MRP Controller.
          DISLS(02)      TYPE    C,        "  Lot size (materials planning).
          BSTFE(17)      TYPE    C,        "  Fixed lot size.
          BSTMI(17)      TYPE    C,        "  Minimum lot size.
          BSTMA(17)      TYPE    C,        "  Maximum lot size.
          AUSSS(06)      TYPE    C,        "  Assembly scrap in percent.
          BSTRF(17)      TYPE    C,        "  Rounding value for purchase order quantity.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         MRP 2
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          BESKZ(01)      TYPE    C,        "  Procurement Type.
          SOBSL(02)      TYPE    C,        "  Special procurement type.
          LGPRO(04)      TYPE    C,        "  Issue Storage Location.
          RGEKZ(01)      TYPE    C,        "  Indicator: Backflush.
          LGFSB(04)      TYPE    C,        "  Default storage location for external procurement.
          DZEIT(03)      TYPE    C,        "  In-house production time.
          PLIFZ(03)      TYPE    C,        "  Planned delivery time in days.
          MRPPP(03)      TYPE    C,        "  PPC planning calendar.
          FHORI(03)      TYPE    C,        "  Scheduling Margin Key for Floats.
          EISBE(17)      TYPE    C,        "  Safety stock.
          WEBAZ1(03)     TYPE    C,        "  Goods receipt processing time in days.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         MRP 3
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          STRGR(02)      TYPE    C,        "  Planning strategy group.
          VRMOD(01)      TYPE    C,        "  Consumption mode.
          VINT1(03)      TYPE    C,        "  Consumption period: backward.
          VINT2(03)      TYPE    C,        "  Consumption period: forward.
          MISKZ(01)      TYPE    C,        "  Mixed MRP indicator.
          MTVFP1(02)     TYPE    C,        "  Checking Group for Availability Check.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         MRP 4
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          ALTSL(01)      TYPE    C,        "  Method for Selecting Alternative Bills of Material.
          KAUSF(06)      TYPE    C,        "  Component scrap in percent.
          SBDKZ(01)      TYPE    C,        "  Dependent requirements ind. for individual and coll. reqmts.
          SAUFT(01)      TYPE    C,        "  Ind.: Repetitive mfg allowed.
          SFEPR(04)      TYPE    C,        "  Repetitive manufacturing profile.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Work Scheduling.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          FRTME(03)      TYPE    C,        "  Production unit.
          FEVOR(03)      TYPE    C,        "  Production scheduler.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Plant Data / Stor. 1
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          AUSME(03)      TYPE    C,        "  Unit of issue.
          MHDRZ(05)      TYPE    C,        "  Minimum remaining shelf life.
          MHDHB(05)      TYPE    C,        "  Total shelf life.
          IPRKZ(01)      TYPE    C,        "  Period indicator for shelf life expiration date.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Quality Management.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          WEBAZ2(03)     TYPE    C,        "  Goods receipt processing time in days.
          QMPUR(01)      TYPE    C,        "  QM in Procurement is Active.
          SSQSS(08)      TYPE    C,        "  Control Key for Quality Management in Procurement.
          QZGTP(04)      TYPE    C,        "  Certificate Type.
          QMATV(01)      TYPE    C,        "  Inspection Setup Exists for Material/Plant.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Inspection Setup Data.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          ART1(08)       TYPE    C,        "  Inspection Type 1.
          AKTIV1(01)     TYPE    C,        "  Inspection Type - Material Combination is Active 1.
          ART2(08)       TYPE    C,        "  Inspection Type 2.
          AKTIV2(01)     TYPE    C,        "  Inspection Type - Material Combination is Active 2.
          ART3(08)       TYPE    C,        "  Inspection Type 3.
          AKTIV3(01)     TYPE    C,        "  Inspection Type - Material Combination is Active 3.
          ART4(08)       TYPE    C,        "  Inspection Type 4.
          AKTIV4(01)     TYPE    C,        "  Inspection Type - Material Combination is Active 4.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Accounting 1.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          BKLAS(04)      TYPE    C,        "  Valuation Class.
          VPRSV(01)      TYPE    C,        "  Price Control Indicator.
          PEINH(06)      TYPE    C,        "  Price Unit.
          STPRS(15)      TYPE    C,        "  Standard Price.
          VERPR(15)      TYPE    C,        "  Moving Average Price/Periodic Unit Price.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*         Cost Estimate 1.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          EKALR(01)      TYPE    C,        "  Material Is Costed with Quantity Structure.
          HKMAT(01)      TYPE    C,        "  Material Origin.
          AWSLS(06)      TYPE    C,        "  Variance Key.
          PRCTR1(10)     TYPE    C,        "  Profit Center.
          LOSGR(17)      TYPE    C,        "  Lot Size for Product Costing.
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
          ROWCNT         TYPE    I,        "  Normal Row Count.
          ROW            TYPE    I,        "  Row Count --> Line Items
*         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        END  OF  TY_TABDATA.
*------------------------------------------------
*  Declaration of the Internal Table & Work Area.
*------------------------------------------------
DATA:   IT_SAVE_INDEX      TYPE  STANDARD  TABLE  OF  TY_SAVE_INDEX,
        WA_SAVE_INDEX      TYPE                       TY_SAVE_INDEX.
DATA:   IT_TABDATA         TYPE  STANDARD  TABLE  OF  TY_TABDATA,
        WA_TABDATA         TYPE                       TY_TABDATA.
*-------------------------------------------------------------------------------------
*  Declaration of the Internal Table with Header Line comprising of the uploaded data.
*-------------------------------------------------------------------------------------
DATA:  BEGIN  OF  IT_FILE_UPLOAD  OCCURS  0.
         INCLUDE  STRUCTURE  ALSMEX_TABLINE.  "  Rows for Table with Excel Data
DATA:  END  OF  IT_FILE_UPLOAD.
*-------------------------------
*  Global Variable Declarations.
*-------------------------------
DATA:  GV_ANS  TYPE  C.
*--------------------------------------------
*  Batch Input Data for a single Transaction.
*  Message of Call Transaction.
*--------------------------------------------
DATA:  BDCDATA  LIKE  BDCDATA     OCCURS  0  WITH  HEADER  LINE,
       MSGTAB   LIKE  BDCMSGCOLL  OCCURS  0  WITH  HEADER  LINE.
************************************************************************
*  S E L E C T I O N - S C R E E N                                     *
************************************************************************
  SELECTION-SCREEN:  BEGIN  OF  BLOCK  B1  WITH  FRAME,
                       BEGIN  OF  BLOCK  B2  WITH  FRAME.
  PARAMETERS:            P_FNAME  LIKE  RLGRAP-FILENAME  OBLIGATORY.
  SELECTION-SCREEN:    END  OF  BLOCK  B2,
                     END  OF  BLOCK  B1.
************************************************************************
*  E V E N T : AT    S E L E C T I O N - S C R E E N                   *
************************************************************************
AT  SELECTION-SCREEN  ON  VALUE-REQUEST  FOR  P_FNAME.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
     EXPORTING
*       PROGRAM_NAME        = SYST-REPID
*       DYNPRO_NUMBER       = SYST-DYNNR
*       FIELD_NAME          = ' '
       STATIC              = 'X'
*       MASK                = '.'
      CHANGING
        FILE_NAME           = P_FNAME
*     EXCEPTIONS
*       MASK_TOO_LONG       = 1
*       OTHERS              = 2
              .
    IF SY-SUBRC <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
************************************************************************
*  E V E N T : S T A R T - O F - S E L E C T I O N                     *
************************************************************************
START-OF-SELECTION.
* --------------------------------------
* Upload Excel file into Internal Table.
* --------------------------------------
  PERFORM  UPLOAD_EXCEL_FILE.
  IF  NOT  IT_FILE_UPLOAD  IS  INITIAL.
*   ----------------------------------------------------
*   Confirm whether you want to proceed with the Upload.
*   ----------------------------------------------------
    PERFORM  CONFIRM_UPLOAD.
    IF  GV_ANS  EQ  '1'.
*     -------------------------------------------------------
*     Organize the uploaded data into another Internal Table.
*     -------------------------------------------------------
      PERFORM  ORGANIZE_UPLOADED_DATA.
*     -----------------------------------
*     Modify Row No. for Line Item Count.
*     -----------------------------------
      PERFORM  MODIFY_ROW_NUMBER.
*     -----------------
*     Open BDC Session.
*     -----------------
*      PERFORM  OPEN_BDC_SESSION.
*     ------------------------
*     Kick-start BDC Operation
*     ------------------------
      PERFORM  BDC_OPERATION.
*     ------------------
*     Close BDC Session.
*     ------------------
*      PERFORM  CLOSE_BDC_SESSION.
    ENDIF.
  ENDIF.
************************************************************************
*  E V E N T : E N D - O F - S E L E C T I O N                         *
************************************************************************
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM UPLOAD_EXCEL_FILE .
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                      = P_FNAME
      I_BEGIN_COL                   = 1
      I_BEGIN_ROW                   = 4
      I_END_COL                     = 107
      I_END_ROW                     = 32000
    TABLES
      INTERN                        = IT_FILE_UPLOAD
    EXCEPTIONS
      INCONSISTENT_PARAMETERS       = 1
      UPLOAD_OLE                    = 2
      OTHERS                        = 3
            .
  IF SY-SUBRC <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " UPLOAD_EXCEL_FILE
*&---------------------------------------------------------------------*
*&      Form  CONFIRM_UPLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CONFIRM_UPLOAD .
  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      TITLEBAR                    = 'Pop-Up to Confirm'
*     DIAGNOSE_OBJECT             = ' '
      TEXT_QUESTION               = 'Do you like to proceed with the Upload ???'
*     TEXT_BUTTON_1               = 'Ja'(001)
*     ICON_BUTTON_1               = ' '
*     TEXT_BUTTON_2               = 'Nein'(002)
*     ICON_BUTTON_2               = ' '
*     DEFAULT_BUTTON              = '1'
*     DISPLAY_CANCEL_BUTTON       = 'X'
*     USERDEFINED_F1_HELP         = ' '
*     START_COLUMN                = 25
*     START_ROW                   = 6
*     POPUP_TYPE                  =
*     IV_QUICKINFO_BUTTON_1       = ' '
*     IV_QUICKINFO_BUTTON_2       = ' '
   IMPORTING
     ANSWER                       = GV_ANS
*   TABLES
*     PARAMETER                   =
   EXCEPTIONS
     TEXT_NOT_FOUND              = 1
     OTHERS                      = 2.
  IF SY-SUBRC <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " CONFIRM_UPLOAD
*&---------------------------------------------------------------------*
*&      Form  ORGANIZE_UPLOADED_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ORGANIZE_UPLOADED_DATA .
  DATA:  LV_ROW_CNT  TYPE  I.
  CLEAR: LV_ROW_CNT.
  SORT  IT_FILE_UPLOAD  BY  ROW
                            COL.
  LOOP  AT  IT_FILE_UPLOAD.
    CASE  IT_FILE_UPLOAD-COL.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Create Material (Initial Screen).
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  1.
                WA_TABDATA-MATNR        =  IT_FILE_UPLOAD-VALUE.
      WHEN  2.
                WA_TABDATA-MBRSH        =  IT_FILE_UPLOAD-VALUE.
      WHEN  3.
                WA_TABDATA-MTART        =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Organizational Levels.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  4.
                WA_TABDATA-WERKS        =  IT_FILE_UPLOAD-VALUE.
      WHEN  5.
                WA_TABDATA-LGORT        =  IT_FILE_UPLOAD-VALUE.
      WHEN  6.
                WA_TABDATA-VKORG        =  IT_FILE_UPLOAD-VALUE.
      WHEN  7.
                WA_TABDATA-VTWEG        =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Sales Org. 1 : Tax Classification.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  8.
                WA_TABDATA-TAXKM1       =  IT_FILE_UPLOAD-VALUE.
      WHEN  9.
                WA_TABDATA-TAXKM2       =  IT_FILE_UPLOAD-VALUE.
      WHEN  10.
                WA_TABDATA-TAXKM3       =  IT_FILE_UPLOAD-VALUE.
      WHEN  11.
                WA_TABDATA-TAXKM4       =  IT_FILE_UPLOAD-VALUE.
      WHEN  12.
                WA_TABDATA-TAXKM5       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Additional Data - UoM.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  13.
                WA_TABDATA-UMREN1       =  IT_FILE_UPLOAD-VALUE.
      WHEN  14.
                WA_TABDATA-MEINH1       =  IT_FILE_UPLOAD-VALUE.
      WHEN  15.
                WA_TABDATA-UMREZ1       =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  16.
                WA_TABDATA-UMREN2       =  IT_FILE_UPLOAD-VALUE.
      WHEN  17.
                WA_TABDATA-MEINH2       =  IT_FILE_UPLOAD-VALUE.
      WHEN  18.
                WA_TABDATA-UMREZ2       =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  19.
                WA_TABDATA-UMREN3       =  IT_FILE_UPLOAD-VALUE.
      WHEN  20.
                WA_TABDATA-MEINH3       =  IT_FILE_UPLOAD-VALUE.
      WHEN  21.
                WA_TABDATA-UMREZ3       =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  22.
                WA_TABDATA-UMREN4       =  IT_FILE_UPLOAD-VALUE.
      WHEN  23.
                WA_TABDATA-MEINH4       =  IT_FILE_UPLOAD-VALUE.
      WHEN  24.
                WA_TABDATA-UMREZ4       =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  25.
                WA_TABDATA-UMREN5       =  IT_FILE_UPLOAD-VALUE.
      WHEN  26.
                WA_TABDATA-MEINH5       =  IT_FILE_UPLOAD-VALUE.
      WHEN  27.
                WA_TABDATA-UMREZ5       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Sales Org. 1
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  28.
                WA_TABDATA-VRKME        =  IT_FILE_UPLOAD-VALUE.
      WHEN  29.
                WA_TABDATA-DWERK        =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Sales Org. 2
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  30.
                WA_TABDATA-VERSG        =  IT_FILE_UPLOAD-VALUE.
      WHEN  31.
                WA_TABDATA-KTGRM        =  IT_FILE_UPLOAD-VALUE.
      WHEN  32.
                WA_TABDATA-MTPOS        =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     General/Plant.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  33.
                WA_TABDATA-BRGEW        =  IT_FILE_UPLOAD-VALUE.
      WHEN  34.
                WA_TABDATA-NTGEW        =  IT_FILE_UPLOAD-VALUE.
      WHEN  35.
                WA_TABDATA-MTVFP        =  IT_FILE_UPLOAD-VALUE.
      WHEN  36.
                WA_TABDATA-TRAGR        =  IT_FILE_UPLOAD-VALUE.
      WHEN  37.
                WA_TABDATA-LADGR        =  IT_FILE_UPLOAD-VALUE.
      WHEN  38.
                WA_TABDATA-PRCTR        =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Foreign Trade Export.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  39.
                WA_TABDATA-HERKL       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Purchasing.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  40.
                WA_TABDATA-BSTME       =  IT_FILE_UPLOAD-VALUE.
      WHEN  41.
                WA_TABDATA-KAUTB       =  IT_FILE_UPLOAD-VALUE.
      WHEN  42.
                WA_TABDATA-XCHPF       =  IT_FILE_UPLOAD-VALUE.
      WHEN  43.
                WA_TABDATA-EKGRP       =  IT_FILE_UPLOAD-VALUE.
      WHEN  44.
                WA_TABDATA-WEBAZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  45.
                WA_TABDATA-EKWSL       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Purch.Order Text.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  46.
                WA_TABDATA-PTEXT       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     MRP 1
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  47.
                WA_TABDATA-DISGR       =  IT_FILE_UPLOAD-VALUE.
      WHEN  48.
                WA_TABDATA-DISMM       =  IT_FILE_UPLOAD-VALUE.
      WHEN  49.
                WA_TABDATA-MINBE       =  IT_FILE_UPLOAD-VALUE.
      WHEN  50.
                WA_TABDATA-DISPO       =  IT_FILE_UPLOAD-VALUE.
      WHEN  51.
                WA_TABDATA-DISLS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  52.
                WA_TABDATA-BSTFE       =  IT_FILE_UPLOAD-VALUE.
      WHEN  53.
                WA_TABDATA-BSTMI       =  IT_FILE_UPLOAD-VALUE.
      WHEN  54.
                WA_TABDATA-BSTMA       =  IT_FILE_UPLOAD-VALUE.
      WHEN  55.
                WA_TABDATA-AUSSS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  56.
                WA_TABDATA-BSTRF       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     MRP 2
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  57.
                WA_TABDATA-BESKZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  58.
                WA_TABDATA-SOBSL       =  IT_FILE_UPLOAD-VALUE.
      WHEN  59.
                WA_TABDATA-LGPRO       =  IT_FILE_UPLOAD-VALUE.
      WHEN  60.
                WA_TABDATA-RGEKZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  61.
                WA_TABDATA-LGFSB       =  IT_FILE_UPLOAD-VALUE.
      WHEN  62.
                WA_TABDATA-DZEIT       =  IT_FILE_UPLOAD-VALUE.
      WHEN  63.
                WA_TABDATA-PLIFZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  64.
                WA_TABDATA-MRPPP       =  IT_FILE_UPLOAD-VALUE.
      WHEN  65.
                WA_TABDATA-FHORI       =  IT_FILE_UPLOAD-VALUE.
      WHEN  66.
                WA_TABDATA-EISBE       =  IT_FILE_UPLOAD-VALUE.
      WHEN  67.
                WA_TABDATA-WEBAZ1      =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     MRP 3
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  68.
                WA_TABDATA-STRGR       =  IT_FILE_UPLOAD-VALUE.
      WHEN  69.
                WA_TABDATA-VRMOD       =  IT_FILE_UPLOAD-VALUE.
      WHEN  70.
                WA_TABDATA-VINT1       =  IT_FILE_UPLOAD-VALUE.
      WHEN  71.
                WA_TABDATA-VINT2       =  IT_FILE_UPLOAD-VALUE.
      WHEN  72.
                WA_TABDATA-MISKZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  73.
                WA_TABDATA-MTVFP1      =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     MRP 4
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  74.
                WA_TABDATA-ALTSL       =  IT_FILE_UPLOAD-VALUE.
      WHEN  75.
                WA_TABDATA-KAUSF       =  IT_FILE_UPLOAD-VALUE.
      WHEN  76.
                WA_TABDATA-SBDKZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  77.
                WA_TABDATA-SAUFT       =  IT_FILE_UPLOAD-VALUE.
      WHEN  78.
                WA_TABDATA-SFEPR       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Work Scheduling.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  79.
                WA_TABDATA-FRTME       =  IT_FILE_UPLOAD-VALUE.
      WHEN  80.
                WA_TABDATA-FEVOR       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Plant Data / Stor. 1
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  81.
                WA_TABDATA-AUSME       =  IT_FILE_UPLOAD-VALUE.
      WHEN  82.
                WA_TABDATA-MHDRZ       =  IT_FILE_UPLOAD-VALUE.
      WHEN  83.
                WA_TABDATA-MHDHB       =  IT_FILE_UPLOAD-VALUE.
      WHEN  84.
                WA_TABDATA-IPRKZ       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Quality Management.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  85.
                WA_TABDATA-WEBAZ2      =  IT_FILE_UPLOAD-VALUE.
      WHEN  86.
                WA_TABDATA-QMPUR       =  IT_FILE_UPLOAD-VALUE.
      WHEN  87.
                WA_TABDATA-SSQSS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  88.
                WA_TABDATA-QZGTP       =  IT_FILE_UPLOAD-VALUE.
      WHEN  89.
                WA_TABDATA-QMATV       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Inspection Setup Data.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  90.
                WA_TABDATA-ART1        =  IT_FILE_UPLOAD-VALUE.
      WHEN  91.
                WA_TABDATA-AKTIV1      =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  92.
                WA_TABDATA-ART2        =  IT_FILE_UPLOAD-VALUE.
      WHEN  93.
                WA_TABDATA-AKTIV2      =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  94.
                WA_TABDATA-ART3        =  IT_FILE_UPLOAD-VALUE.
      WHEN  95.
                WA_TABDATA-AKTIV3      =  IT_FILE_UPLOAD-VALUE.
*     ...........................................................
      WHEN  96.
                WA_TABDATA-ART4        =  IT_FILE_UPLOAD-VALUE.
      WHEN  97.
                WA_TABDATA-AKTIV4      =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Accounting 1.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  98.
                WA_TABDATA-BKLAS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  99.
                WA_TABDATA-VPRSV       =  IT_FILE_UPLOAD-VALUE.
      WHEN  100.
                WA_TABDATA-PEINH       =  IT_FILE_UPLOAD-VALUE.
      WHEN  101.
                WA_TABDATA-STPRS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  102.
                WA_TABDATA-VERPR       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*     Cost Estimate 1.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
      WHEN  103.
                WA_TABDATA-EKALR       =  IT_FILE_UPLOAD-VALUE.
      WHEN  104.
                WA_TABDATA-HKMAT       =  IT_FILE_UPLOAD-VALUE.
      WHEN  105.
                WA_TABDATA-AWSLS       =  IT_FILE_UPLOAD-VALUE.
      WHEN  106.
                WA_TABDATA-PRCTR1      =  IT_FILE_UPLOAD-VALUE.
      WHEN  107.
                WA_TABDATA-LOSGR       =  IT_FILE_UPLOAD-VALUE.
*     :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ENDCASE.
    AT  END  OF  ROW.
      LV_ROW_CNT          =  LV_ROW_CNT  +  1.
      WA_TABDATA-ROWCNT   =  LV_ROW_CNT.
      APPEND  WA_TABDATA  TO  IT_TABDATA.
      CLEAR:  WA_TABDATA.
    ENDAT.
  ENDLOOP.
ENDFORM.                    " ORGANIZE_UPLOADED_DATA
*&---------------------------------------------------------------------*
*&      Form  MODIFY_ROW_NUMBER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY_ROW_NUMBER .
  DATA:  LV_ROW  TYPE  I.
  LOOP  AT  IT_TABDATA  INTO  WA_TABDATA.
    IF  WA_TABDATA-MATNR  NE  SPACE.
      CLEAR: LV_ROW.
    ENDIF.
    LV_ROW          =  LV_ROW  +  1.
    WA_TABDATA-ROW  =  LV_ROW.
    MODIFY  IT_TABDATA  FROM  WA_TABDATA
                        TRANSPORTING  ROW.
  ENDLOOP.
ENDFORM.                    " MODIFY_ROW_NUMBER
*&---------------------------------------------------------------------*
*&      Form  OPEN_BDC_SESSION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM OPEN_BDC_SESSION .
  DATA:  LV_SESSION  TYPE  APQ_GRPN.
  LV_SESSION  =  'MATMAST_1'.
  CALL FUNCTION 'BDC_OPEN_GROUP'
   EXPORTING
     CLIENT                    = SY-MANDT
*     DEST                      = FILLER8
     GROUP                     = LV_SESSION
*     HOLDDATE                  = FILLER8
     KEEP                      = 'X'
     USER                      = SY-UNAME
*     RECORD                    = FILLER1
*     PROG                      = SY-CPROG
*   IMPORTING
*     QID                       =
   EXCEPTIONS
     CLIENT_INVALID            = 1
     DESTINATION_INVALID       = 2
     GROUP_INVALID             = 3
     GROUP_IS_LOCKED           = 4
     HOLDDATE_INVALID          = 5
     INTERNAL_ERROR            = 6
     QUEUE_ERROR               = 7
     RUNNING                   = 8
     SYSTEM_LOCK_ERROR         = 9
     USER_INVALID              = 10
     OTHERS                    = 11.
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " OPEN_BDC_SESSION
*&---------------------------------------------------------------------*
*&      Form  BDC_OPERATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BDC_OPERATION .
  LOOP  AT  IT_TABDATA  INTO  WA_TABDATA.
    IF  WA_TABDATA-MATNR  NE  ''.
*     ------------------------------------------------------------
*     Transaction Code - MM01    Create Material : Initial Screen.
*     ------------------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'               '0060'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'             'RMMG1-MTART'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'             '=ENTR'.
      PERFORM  BDC_FIELD   USING  'RMMG1-MATNR'            WA_TABDATA-MATNR.
      PERFORM  BDC_FIELD   USING  'RMMG1-MBRSH'            WA_TABDATA-MBRSH.
      PERFORM  BDC_FIELD   USING  'RMMG1-MTART'            WA_TABDATA-MTART.
      IF  WA_TABDATA-MTART  NE  'ROH'.
*       ------------------------------------------------------------
*       Transaction Code - MM01    Views Selection Screen (not ROH).
*       ------------------------------------------------------------
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '0070'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MSICHTAUSW-DYTXT(17)'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=P+'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(04)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(05)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(06)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(07)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(09)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(11)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(12)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(13)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(14)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(15)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(16)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(17)'  'X'.
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '0070'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MSICHTAUSW-DYTXT(07)'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=ENTR'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(04)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(05)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(07)'  'X'.
      ELSE.
*       ------------------------------------------------------------
*       Transaction Code - MM01    Views Selection Screen ( = ROH).
*       ------------------------------------------------------------
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '0070'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MSICHTAUSW-DYTXT(16)'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=P+'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(04)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(05)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(06)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(07)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(09)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(11)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(12)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(13)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(14)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(15)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(16)'  'X'.
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '0070'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MSICHTAUSW-DYTXT(07)'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=ENTR'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(03)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(04)'  'X'.
        PERFORM  BDC_FIELD   USING  'MSICHTAUSW-KZSEL(06)'  'X'.
      ENDIF.
*     --------------------------------------------------------
*     Transaction Code - MM01    Organizational Levels Screen.
*     --------------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '0080'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'RMMG1-VTWEG'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=ENTR'.
      PERFORM  BDC_FIELD   USING  'RMMG1-WERKS'           WA_TABDATA-WERKS.
      PERFORM  BDC_FIELD   USING  'RMMG1-LGORT'           WA_TABDATA-LGORT.
      PERFORM  BDC_FIELD   USING  'RMMG1-VKORG'           WA_TABDATA-VKORG.
      PERFORM  BDC_FIELD   USING  'RMMG1-VTWEG'           WA_TABDATA-VTWEG.
*     ---------------------------------------------------------------------
*     Transaction Code - MM01    Sales Organization 1 - Tax Classification.
*     ---------------------------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MG03STEUER-TAXKM(02)'.
      PERFORM  BDC_FIELD   USING  'MG03STEUER-TAXKM(01)'  WA_TABDATA-TAXKM1.
      PERFORM  BDC_FIELD   USING  'MG03STEUER-TAXKM(02)'  WA_TABDATA-TAXKM2.
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4200'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MG03STEUER-TAXKM(05)'.
      PERFORM  BDC_FIELD   USING  'MG03STEUER-TAXKM(03)'  WA_TABDATA-TAXKM3.
      PERFORM  BDC_FIELD   USING  'MG03STEUER-TAXKM(04)'  WA_TABDATA-TAXKM4.
      PERFORM  BDC_FIELD   USING  'MG03STEUER-TAXKM(05)'  WA_TABDATA-TAXKM5.
*     -------------------------------------------------
*     Transaction Code - MM01    Additional Data - UoM.
*     -------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=ZU01'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MAKT-MAKTX'.
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4300'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=ZU02'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'RMMG1-MATNR'.
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4300'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'SMEINH-UMREZ(06)'.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREN(02)'      WA_TABDATA-UMREN1.
      PERFORM  BDC_FIELD   USING  'SMEINH-MEINH(02)'      WA_TABDATA-MEINH1.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREZ(02)'      WA_TABDATA-UMREZ1.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREN(03)'      WA_TABDATA-UMREN2.
      PERFORM  BDC_FIELD   USING  'SMEINH-MEINH(03)'      WA_TABDATA-MEINH2.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREZ(03)'      WA_TABDATA-UMREZ2.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREN(04)'      WA_TABDATA-UMREN3.
      PERFORM  BDC_FIELD   USING  'SMEINH-MEINH(04)'      WA_TABDATA-MEINH3.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREZ(04)'      WA_TABDATA-UMREZ3.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREN(05)'      WA_TABDATA-UMREN4.
      PERFORM  BDC_FIELD   USING  'SMEINH-MEINH(05)'      WA_TABDATA-MEINH4.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREZ(05)'      WA_TABDATA-UMREZ4.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREN(06)'      WA_TABDATA-UMREN5.
      PERFORM  BDC_FIELD   USING  'SMEINH-MEINH(06)'      WA_TABDATA-MEINH5.
      PERFORM  BDC_FIELD   USING  'SMEINH-UMREZ(06)'      WA_TABDATA-UMREZ5.
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4300'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=MAIN'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MAKT-MAKTX'.
*     ------------------------------------------------
*     Transaction Code - MM01    Sales Organization 1.
*     ------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MVKE-DWERK'.
      PERFORM  BDC_FIELD   USING  'MVKE-VRKME'            WA_TABDATA-VRKME.
      PERFORM  BDC_FIELD   USING  'MVKE-DWERK'            WA_TABDATA-DWERK.
*     ------------------------------------------------
*     Transaction Code - MM01    Sales Organization 2.
*     ------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MVKE-MTPOS'.
      PERFORM  BDC_FIELD   USING  'MVKE-VERSG'            WA_TABDATA-VERSG.
      PERFORM  BDC_FIELD   USING  'MVKE-KTGRM'            WA_TABDATA-KTGRM.
      PERFORM  BDC_FIELD   USING  'MVKE-MTPOS'            WA_TABDATA-MTPOS.
*     -------------------------------------------
*     Transaction Code - MM01    General / Plant.
*     -------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'MARA-BRGEW'            WA_TABDATA-BRGEW.
      PERFORM  BDC_FIELD   USING  'MARA-NTGEW'            WA_TABDATA-NTGEW.
      PERFORM  BDC_FIELD   USING  'MARC-MTVFP'            WA_TABDATA-MTVFP.
      PERFORM  BDC_FIELD   USING  'MARA-TRAGR'            WA_TABDATA-TRAGR.
      PERFORM  BDC_FIELD   USING  'MARC-LADGR'            WA_TABDATA-LADGR.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-PRCTR'.
      PERFORM  BDC_FIELD   USING  'MARC-PRCTR'            WA_TABDATA-PRCTR.
*     ------------------------------------------------
*     Transaction Code - MM01    Foreign Trade Export.
*     ------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4004'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-HERKL'.
      PERFORM  BDC_FIELD   USING  'MARC-HERKL'            WA_TABDATA-HERKL.
*     --------------------------------------
*     Transaction Code - MM01    Purchasing.
*     --------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-EKGRP'.
      PERFORM  BDC_FIELD   USING  'MARA-BSTME'            WA_TABDATA-BSTME.
      PERFORM  BDC_FIELD   USING  'MARC-KAUTB'            WA_TABDATA-KAUTB.
      PERFORM  BDC_FIELD   USING  'MARC-XCHPF'            WA_TABDATA-XCHPF.
      PERFORM  BDC_FIELD   USING  'MARC-EKGRP'            WA_TABDATA-EKGRP.
      PERFORM  BDC_FIELD   USING  'MARC-WEBAZ'            WA_TABDATA-WEBAZ.
      PERFORM  BDC_FIELD   USING  'MARA-EKWSL'            WA_TABDATA-EKWSL.
*     -----------------------------------------------
*     Transaction Code - MM01    Purchase Order Text.
*     -----------------------------------------------
*      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4040'.
*      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=LTEX'.
*
*      PERFORM  BDC_DYNPRO  USING  'SAPLSTXX'              '1100'.
*      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'RSTXT-TXLINE(02)'.
*      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=TXBA'.
*      PERFORM  BDC_FIELD   USING  'RSTXT-TXLINE(02)'      WA_TABDATA-PTEXT.
*
*      PERFORM  BDC_DYNPRO  USING  'SAPLSPO1'              '0100'.
*      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=YES'.
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4040'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=SP12'.
*     ---------------------------------
*     Transaction Code - MM01    MRP 1.
*     ---------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'MARC-DISGR'            WA_TABDATA-DISGR.
      PERFORM  BDC_FIELD   USING  'MARC-DISMM'            WA_TABDATA-DISMM.
      PERFORM  BDC_FIELD   USING  'MARC-MINBE'            WA_TABDATA-MINBE.
      PERFORM  BDC_FIELD   USING  'MARC-DISPO'            WA_TABDATA-DISPO.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-BSTRF'.
      PERFORM  BDC_FIELD   USING  'MARC-DISLS'            WA_TABDATA-DISLS.
      PERFORM  BDC_FIELD   USING  'MARC-BSTFE'            WA_TABDATA-BSTFE.
      PERFORM  BDC_FIELD   USING  'MARC-BSTMI'            WA_TABDATA-BSTMI.
      PERFORM  BDC_FIELD   USING  'MARC-BSTMA'            WA_TABDATA-BSTMA.
      PERFORM  BDC_FIELD   USING  'MARC-AUSSS'            WA_TABDATA-AUSSS.
      PERFORM  BDC_FIELD   USING  'MARC-BSTRF'            WA_TABDATA-BSTRF.
*     ---------------------------------
*     Transaction Code - MM01    MRP 2.
*     ---------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            'SP14'.
      PERFORM  BDC_FIELD   USING  'MARC-BESKZ'            WA_TABDATA-BESKZ.
      PERFORM  BDC_FIELD   USING  'MARC-SOBSL'            WA_TABDATA-SOBSL.
      PERFORM  BDC_FIELD   USING  'MARC-LGPRO'            WA_TABDATA-LGPRO.
      PERFORM  BDC_FIELD   USING  'MARC-RGEKZ'            WA_TABDATA-RGEKZ.
      PERFORM  BDC_FIELD   USING  'MARC-LGFSB'            WA_TABDATA-LGFSB.
      PERFORM  BDC_FIELD   USING  'MARC-DZEIT'            WA_TABDATA-DZEIT.
      PERFORM  BDC_FIELD   USING  'MARC-PLIFZ'            WA_TABDATA-PLIFZ.
      PERFORM  BDC_FIELD   USING  'MARC-MRPPP'            WA_TABDATA-MRPPP.
      PERFORM  BDC_FIELD   USING  'MARC-FHORI'            WA_TABDATA-FHORI.
      PERFORM  BDC_FIELD   USING  'MARC-EISBE'            WA_TABDATA-EISBE.
      IF  WA_TABDATA-WEBAZ  EQ  ''.
        PERFORM  BDC_FIELD   USING  'MARC-WEBAZ'            WA_TABDATA-WEBAZ1.
      ENDIF.
*     ---------------------------------
*     Transaction Code - MM01    MRP 3.
*     ---------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            'SP15'.
      PERFORM  BDC_FIELD   USING  'MARC-STRGR'            WA_TABDATA-STRGR.
      PERFORM  BDC_FIELD   USING  'MARC-VRMOD'            WA_TABDATA-VRMOD.
      PERFORM  BDC_FIELD   USING  'MARC-VINT1'            WA_TABDATA-VINT1.
      PERFORM  BDC_FIELD   USING  'MARC-VINT2'            WA_TABDATA-VINT2.
      PERFORM  BDC_FIELD   USING  'MARC-MISKZ'            WA_TABDATA-MISKZ.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-MTVFP'.
      IF  WA_TABDATA-MTVFP  EQ  ''.
        PERFORM  BDC_FIELD   USING  'MARC-MTVFP'            WA_TABDATA-MTVFP1.
      ENDIF.
*     ---------------------------------
*     Transaction Code - MM01    MRP 4.
*     ---------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'MARC-ALTSL'            WA_TABDATA-ALTSL.
      PERFORM  BDC_FIELD   USING  'MARC-KAUSF'            WA_TABDATA-KAUSF.
      PERFORM  BDC_FIELD   USING  'MARC-SBDKZ'            WA_TABDATA-SBDKZ.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-SFEPR'.
      PERFORM  BDC_FIELD   USING  'MARC-SAUFT'            WA_TABDATA-SAUFT.
      PERFORM  BDC_FIELD   USING  'MARC-SFEPR'            WA_TABDATA-SFEPR.
      IF  WA_TABDATA-MTART  NE  'ROH'.
*       -------------------------------------------
*       Transaction Code - MM01    Work Scheduling.
*       -------------------------------------------
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-FEVOR'.
        PERFORM  BDC_FIELD   USING  'MARC-FRTME'            WA_TABDATA-FRTME.
        PERFORM  BDC_FIELD   USING  'MARC-FEVOR'            WA_TABDATA-FEVOR.
      ENDIF.
*     ------------------------------------------------
*     Transaction Code - MM01    Plant Data / Stor. 1.
*     ------------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'MARC-AUSME'            WA_TABDATA-AUSME.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARA-IPRKZ'.
      PERFORM  BDC_FIELD   USING  'MARA-MHDRZ'            WA_TABDATA-MHDRZ.
      PERFORM  BDC_FIELD   USING  'MARA-MHDHB'            WA_TABDATA-MHDHB.
      PERFORM  BDC_FIELD   USING  'MARA-IPRKZ'            WA_TABDATA-IPRKZ.
*     ----------------------------------------------
*     Transaction Code - MM01    Quality Management.
*     ----------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=PB01'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-QZGTP'.
      PERFORM  BDC_FIELD   USING  'MARC-WEBAZ'            WA_TABDATA-WEBAZ2.
      PERFORM  BDC_FIELD   USING  'MARA-QMPUR'            WA_TABDATA-QMPUR.
      PERFORM  BDC_FIELD   USING  'MARC-SSQSS'            WA_TABDATA-SSQSS.
      PERFORM  BDC_FIELD   USING  'MARC-QZGTP'            WA_TABDATA-QZGTP.
      IF  WA_TABDATA-QMATV  EQ  'X'.
*       -------------------------------------------------
*       Transaction Code - MM01    Inspection Setup Data.
*       -------------------------------------------------
        PERFORM  BDC_DYNPRO  USING  'SAPLQPLS'              '0100'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'RMQAM-ARGUMENT'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=NEU'.
        PERFORM  BDC_DYNPRO  USING  'SAPLQPLS'              '0100'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'RMQAM-AKTIV(04)'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=WEIT'.
        PERFORM  BDC_FIELD   USING  'RMQAM-ART(01)'         WA_TABDATA-ART1.
        PERFORM  BDC_FIELD   USING  'RMQAM-AKTIV(01)'       WA_TABDATA-AKTIV1.
        PERFORM  BDC_FIELD   USING  'RMQAM-ART(02)'         WA_TABDATA-ART2.
        PERFORM  BDC_FIELD   USING  'RMQAM-AKTIV(02)'       WA_TABDATA-AKTIV2.
        PERFORM  BDC_FIELD   USING  'RMQAM-ART(03)'         WA_TABDATA-ART3.
        PERFORM  BDC_FIELD   USING  'RMQAM-AKTIV(03)'       WA_TABDATA-AKTIV3.
        PERFORM  BDC_FIELD   USING  'RMQAM-ART(04)'         WA_TABDATA-ART4.
        PERFORM  BDC_FIELD   USING  'RMQAM-AKTIV(04)'       WA_TABDATA-AKTIV4.
        PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
        PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
        PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MAKT-MAKTX'.
      ENDIF.
*     ----------------------------------------
*     Transaction Code - MM01    Accounting 1.
*     ----------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '=SP26'.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MBEW-BKLAS'.
      PERFORM  BDC_FIELD   USING  'MBEW-BKLAS'            WA_TABDATA-BKLAS.
      PERFORM  BDC_FIELD   USING  'MBEW-VPRSV'            WA_TABDATA-VPRSV.
      PERFORM  BDC_FIELD   USING  'MBEW-PEINH'            WA_TABDATA-PEINH.
      PERFORM  BDC_FIELD   USING  'MBEW-STPRS'            WA_TABDATA-STPRS.
      PERFORM  BDC_FIELD   USING  'MBEW-VERPR'            WA_TABDATA-VERPR.
*     -------------------------------------------
*     Transaction Code - MM01    Cost Estimate 1.
*     -------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLMGMM'              '4000'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'            '/00'.
      PERFORM  BDC_FIELD   USING  'MBEW-EKALR'            WA_TABDATA-EKALR.
      PERFORM  BDC_FIELD   USING  'MBEW-HKMAT'            WA_TABDATA-HKMAT.
      IF  WA_TABDATA-MTART  NE  'ROH'.
        PERFORM  BDC_FIELD   USING  'MARC-AWSLS'            WA_TABDATA-AWSLS.
      ENDIF.
      PERFORM  BDC_FIELD   USING  'MARC-PRCTR'            WA_TABDATA-PRCTR1.
      PERFORM  BDC_FIELD   USING  'BDC_CURSOR'            'MARC-LOSGR'.
      PERFORM  BDC_FIELD   USING  'MARC-LOSGR'            WA_TABDATA-LOSGR.
*     ------------------------------------------
*     Transaction Code - MM01    Saving of Data.
*     ------------------------------------------
      PERFORM  BDC_DYNPRO  USING  'SAPLSPO1'           '0300'.
      PERFORM  BDC_FIELD   USING  'BDC_OKCODE'         '=YES'.
*     ------------------------------------------
*     Call Transaction - MM01 to create Routing.
*     ------------------------------------------
      CALL  TRANSACTION  'MM01'  USING  BDCDATA
                                 MODE   'E'
                                 UPDATE 'A'
                                 MESSAGES  INTO  MSGTAB.
      CLEAR:   BDCDATA.
      REFRESH  BDCDATA.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " BDC_OPERATION
*&---------------------------------------------------------------------*
*&      Form  CLOSE_BDC_SESSION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CLOSE_BDC_SESSION .
  CALL FUNCTION 'BDC_CLOSE_GROUP'
   EXCEPTIONS
     NOT_OPEN          = 1
     QUEUE_ERROR       = 2
     OTHERS            = 3.
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " CLOSE_BDC_SESSION
*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM   text
*      -->DYNPRO    text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO  USING    PROGRAM
                          DYNPRO.
  CLEAR:  BDCDATA.
  BDCDATA-PROGRAM   =  PROGRAM.
  BDCDATA-DYNPRO    =  DYNPRO.
  BDCDATA-DYNBEGIN  =  'X'.
  APPEND  BDCDATA.
ENDFORM.                    " BDC_DYNPRO
*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->FNAM   text
*      -->FVAL   text
*----------------------------------------------------------------------*
FORM BDC_FIELD  USING    FNAM
                         FVAL.
  CLEAR:  BDCDATA.
  BDCDATA-FNAM  =  FNAM.
  BDCDATA-FVAL  =  FVAL.
  APPEND  BDCDATA.
ENDFORM.                    " BDC_FIELD 

source url:https://www.sdn.sap.com/irj/sdn/wiki?path=/display/Snippets/Home&

posted on 2007-10-05 19:17  毛小娃  阅读(305)  评论(0编辑  收藏  举报

导航