CEWB:Inspection Plan upload

Hi! Experts,
We are having a requirement wherein we need to upload mass number of Inspection Plans.
Currently, we are thinking of using LSMW.
Can anybody also explore on the possibilities of using Engineering Workbench tool.
(i)Steps involved in CEWB--- (T-code wise)
(ii)Feasibility as compared to LSMW/BDC.
Thanks in advance,
Rishi

Hi,
Find information on CEWB here:
http://help.sap.com/saphelp_erp2005/helpdata/en/73/517c3545413671e10000009b38f889/frameset.htm
Regards
R.Brahmankar

Similar Messages

  • How to create inspection plan in mass for material

    Dear Guru,
                    How to create inpection plan for material in MASS, usually we will create inspection plan in QP01 but in mass for more than one material how to maintaain? Please help
    Regards
    Karthik.

    Hi raja
    refer following lonks
    QM- LSMW FOR INSPECTION PLAN
    Re: CEWB:Inspection Plan upload
    bapi for qm inspection plan
    Regards
    Sujit

  • Long text problem while uploading Inspection plan through BDC.

    Hi,
    I am facing some problem while uploading the inspection plan. There are few MICs for which we are having long text, while uploading the inspection plan through BDC - some other long text is getting copied into the MIC's long text. After checking I came to know that in function module, read_text - some text which is stored in ABAP memory is getting copied into the inspection plan.
    I am working in SAP release 4.7. I have checked with SAP notes: 97419, but it is also not satisfying.
    Waiting for quick solution.
    Thanks in advance.
    Fahié

    Hi a®s,
    Thanks a lot for your kind reply.
    My requirement is I want to maintain long text for few MICs (which are not having long texts at MIC level) in inspection plan (QP01).
    When I am trying to manually assign the MIC's to inspection plan (QP01), long text is copied whereas I am not clicking the long text icon in (QP01). Long text is not maintained in MIC level, still some long text is copied to this MIC. This was also happening while uploading the inspection plan thro' BDC.
    I believe what you have mentioned about function module SAVE_TEXT cannot be used here since long text is already copied before we pass the long text. Also if we pass some long text, still apart from the long text what we have passed there is some other long text copied (extra long text).
    Waiting for quick solution.
    Thanks in advance.
    Fahié

  • Error in LSMW in Uploading Inspection Plan in QP01

    Hi All,
    I am facing problem when executing LSMW, I am Uploading Inspection Plan in QP01 transaction using Direct Input methos. The problem is on 13th step :Error that I get is 'No profile with entry tool for task list / / / in session INSPECTION_OBJ', here INSPECTION_OBJ is the name of the session. I have given the constant value of field profile (BIPKO-PROFIDNETZ) in mapping step and also activated check box 'entry tool' under profile to remove this error. But in  that case i can pass only the header data while processing the session and control does not get into Operation and characteristic screen.
    Can anyone pls help me..
    Thanks in advance...

    You might need to redo the recording all over again, BDC has plentty of scenario for screen selection to go wrong, so can't really tell what cause your problem based on your desc.  I have been stop using BDC to uplaod material since 5 years ago, I always use Direct input in LSMW and it works much better. I recomend you try the Direct input method instead of BDC if still getting problem.

  • Lsmw by bapi for qm to upload inspection plan qp01

    I want to upload Inspection plan by Transaction qp01
    <Edited by Moderator - Bhavesh Kantilal. Removed all Capitals post. User has been warned and request to move this thread to the appropriate forum has been raised.>
    Edited by: Bhavesh Kantilal on Dec 20, 2008 1:50 AM

    Post it here:
    ABAP Connectivity
    Also, Please do not use all CAPS.
    It is understood as shouting at people.
    Regards,
    Ravi

  • Best Way to upload Inspection plan

    Dear all,
         Which is best way to upload inspection plan.
    Thanx & Regards,
    Harish Parab.

    Hi Harish,
    The Best Method is BDC as posted by others in the thread.
    Please also go through the below thread for approach for Master Data Migration as discussed earlier.
    [Link|Extension of Quality/Inspection Plan;
    Thanks,
    RKM.

  • Error while uploading Inspection plan

    Dear Friends,
    I am creating inspection plans using BDC. The MIChas 2 versions. When i am using version 1, the inspection plan is created. Whereas when i am using MIC version 2 i am getting error "error occured while checking type group".Kindly let me know how do i resolve this.
    Regards
    Vivek

    Hi,
    Thanks for the reply. when i am trying to create a inspection plan in other plant, we have 4-5 sampling procesures to select from. But for this perticular plant where we are having problem, its showing only one. How do i get more options?How do i extend a sampling procedure to a new plant.
    Vivek
    Edited by: vivek mankad on Feb 23, 2010 7:57 AM

  • Errors while creating Inspection plan using BAPI_INSPECTIONPLAN_CREATE

    Hi All,
    I am writing an upload tool for inspection plans. In this program I use bapi: BAPI_INSPECTIONPLAN_CREATE.
    I made an extraction of a excisting inspection plan with SXDA_TOOLS which uses the same bapi and filled the bapi structures with the similar data. Now I am getting strange messeges in the return structure as below.
    1. Material is not maintained for plant NNNN. But the material is mainained for that plant.
    2. Consistency check not successful when creating operation
    3. Inspection characteristic cannot be uniquely assigned to one operation
    Let me know your suggestions
    Thanks,
    Sabu

    Hi All,
    Have any one used this BAPI, BAPI_INSPECTIONPLAN_CREATE to create Inspection Plan ?
    Can you help me on above errors?
    Thanks in advance,
    Sabu

  • QM Inspection Plans migration - How to migrate deleted plans.

    Hello All,
    I'm currently working on a migration project from 4.7 to 6.0.
    Our customer wants to migrate all QM inspection plans, including those are marked as deleted (PLKO-LOEKZ = 'X').
    I'm using BAPI_INSPECTIONPLAN_CREATE. The BAPI works fine when the inspection plan which is being loaded is not marked as deleted. But when I try to upload another one which is mark as deleted (BAPI1191_TSK_C-DEL_IND = 'X'), I get the following error from BAPIRETURN: "The object does not exist for scheduled deletion time" (Message class CPCC_DT, number 214).
    Does anybody knows if it is possible to load inspection plans marked as deleted using this BAPI?

    C N,
    The principal Idea is to migrate either
    - the original amounts, the installment plan and last the latest payments (you migrate payment history)
    - or to migrate the still open amount as one or more open items and subsequently an installment based on that amount.
    Kind regards,
    Fritz

  • Inspection Plan

    I am creating the  Inspection Plans by using the BAPI_INSPECTIONPLAN_CREATE.
    I got the below errors please provide the solution for this.
    1)The valid-from data has been set from today's date
    2)Enter another operation number
    3)Enter another operation number

    hi rk.....
    First One is just a Information message and last two is because of invalid activity or operation id entered wrongly...
    Also u can have a look at my code for uploading inspection plan using bapi....
    [Click here to view code...|https://wiki.sdn.sap.com/wiki/display/Snippets/ABAPProgramtouploadQMInspectionPlanUsingBAPI]
    Also take a look at the template and sample data file attached at the given link...
    Regards
    KArthik D

  • QP01 Inspection Plans

    Hi,
    I am trying to upload inspection plan master data in QP01 tcode.
    I was given a program in BDC which does the same. but the problem with this program is that....its not updating inspection characteristics after 13th record. line is not getting incremented. Below is my code .plz help
    page_count is initialized to zero.
    IF WRK-NUMB_LOOP > 1.
            PERFORM F_DYNPRO USING:
                                 ' '     TRQPAS_SEL_FLG  ' '.
         ENDIF.
    (This below part is branced out when 13 records are processed....otherwise it skips this and does the normal process)
         IF WRK-NUMB_LOOP > 13.
             PAGE_COUNT = INCR + ( WRK-NUMB_LOOP * 10 ).              
             INCR = PAGE_COUNT.                                        
            MOVE 2 TO WRK-NUMB_LOOP.
            PERFORM F_DYNPRO USING:
                                 'X'    'SAPLQPAA'    '0150',
                                  ' '    'RQPAS-AB_MKNR' INCR,
                                 'X'    'SAPLQPAA'    '0150'.
         ENDIF.
         TRQPAS_SEL_FLG+14(2) = WRK-NUMB_LOOP.
         TPLMKB_VERWMERKM+16(2) = WRK-NUMB_LOOP.
         TRQPAS_QUANTITAT+16(2) = WRK-NUMB_LOOP.
         TRQPAS_QUALITAT+15(2) = WRK-NUMB_LOOP.
         PERFORM F_DYNPRO USING:
                 ' '     TRQPAS_SEL_FLG  'X',
                 ' '    TPLMKB_VERWMERKM   INTQPMK-MKMNR.
    (few more performs are here)(when branced out for 13 records...its not performing the below dynpro performs..)
    IF PAGE_COUNT > 0.
            SUBTRACT 1 FROM WRK-NUMB_LOOP.            "TLDD
            TRQPAS_SEL_FLG+14(2) = WRK-NUMB_LOOP.
         ENDIF.
         CLEAR PAGE_COUNT.  
    wrk-numb_loop increments after one record is completely processed.
    After getting to 13th line my program is not reading the perform dynpro.....code ...
    any help is appreciated.

    There is no such direct mapping table, cross-table or Function module that describes how the Qualitative/Quantative fields are populated.
    SAP follows certain mapping to populate the values for these fields this can be cheked in SCN for Qualitative and Quantitative control indicators mapping.
    Secondly to update these indicators in Inspection plan load, you can use the STEUERKZ field value from QPMK table.
    This field is concatenation of the 28 control indicators (QMKST structure for Quali/Quantitative fields).
    So while uploading the data for Inspection plan, Inspection chracteristics are updated in system first where STEUERKZ can be updated.
    Vice versa to know what each indicator value signifies in
    the field QPMK-STEUERKZ, we can use the function module QSS0_QMKST_RQMST.
    Regards,
    Nidhi

  • LSMW for Quality Inspection Plan

    Dear All,
    I am in process of uploading Quality Inspection Plans through process of LSMW with standard object 0240 (Inspection Plans) with batch input method. With this when I am trying to create Batch Input Session, system is throwing me error as 'Characteristics is not yet created' (Message Number - QS 320). I have maintained all the relevant master data before going to upload Q Inspection Plan.
    Could any one pl. throw light on this issue?
    Regards,
    Prashant

    Depending on what control indicator key for master inspection characteristics have you implemented in the operations within the plan, the system checks if the characteristics are completely maintained.
    This has nothing to do with LSMW, it's just a normal message,.....what I find estrange is that the message you're saying is a warning message not an ERROR message.

  • LSMW for Inspection Plan

    Hi Sapiens,
    I am a requirement to upload the Quality Management data through LSMW.
    1) Quality Info Recrod
    2) Inspection Plan
    For the first one, I could able to create Project in LSMW and successfully do for over 200 customers.
    I am saying problem in creating and uploading the Inspection Plan data.
    I created one inspection plan with a material in QP01 (Tcode), and assigned one customer in "Material Assignment".
    We have only hand full of materials (6-10 max) with MICs (10 - 15 max). So I using the same Inspection plan for material and I want to assign all the customer in Inspection plan at "Material Assignment". But at "Run Batch Input Record" in LSMW, it is failing. due to the below errors.
    1) Field MAPL-PLNAL(2) is not an input field
    2) Field MAPL-MATNR(2) is not an input field
    3) Field MAPL-WERKS(2) is not an input field
    I understand that these fields are repeating, as these fields are required in "Material Assignment" tab, where I will mention Counter, Matl, Plant and Customer. but it is saying these fields are not for input. If I dont use these fields in Field mapping then it will throw an error during actual recording.
    So, I need some inputs on it and all of your suggestions will be valuable.
    Awaiting of your reply on this soon.
    thanks,
    Mukesh

    Hi Mukesh,
    I would suggest to go for BAPI instead of LSMW for the inspection plans, if possible.
    Regards,
    Rahul

  • Inspection plan BDC reg

    Hello friends,
    We have writting one BDC for creating and changing the inspection plan, In this, the plan creation is successfully done.
    when we go for change, the system throws the error "task list is invalid create task list".
    once we log out the session and login again that uploaded inspection plan is shown with out any error.
    we can't address this issue?  Kindly help us to fix this....
    regards,
    sathes

    Hi,
    Please clarify that uploaded inspection plan is created one or changed one. To execute the changes for inspection plan the criteria in task list might be inavalid. Hence triggering the error. Please create new task list group in IA05. Thanking you.

  • QP01 - To Create a Inspection Plan

    Hi Associates and Consultants,
    Have any one worked on T-Code QP01 to create a Inspection Plan Using BDC's or BAPI's.
    If so please try to ping me.
    Regards,
    sg

    *& Report  ZQMB_QP01_INSP_PLAN_NEW
    REPORT  ZQMB_QP01_INSP_PLAN_NEW
           NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN_NEW.
    D A T A   D E C L A R A T I O N                                     *
    TYPES: BEGIN OF TY_TABDATA,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
           KTEXT TYPE PLKOD-KTEXT, "Task list description
           VERWE TYPE PLKOD-VERWE, "Task list usage
           STATU TYPE PLKOD-STATU, "Status
           SLWBEZ TYPE PLKOD-SLWBEZ, "Identification for the Inspection Point Field Combination
           QPRZIEHVER TYPE PLKOD-QPRZIEHVER, "Sample-Drawing Procedure
           END OF TY_TABDATA.
    TYPES: BEGIN OF TY_TBCTRL1,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
           ARBPL TYPE PLPOD-ARBPL, "Work center
           STEUS TYPE PLPOD-STEUS, "Control key
           LTXA1 TYPE PLPOD-LTXA1, "Operation short text
           END OF TY_TBCTRL1.
    TYPES: BEGIN OF TY_TBCTRL2,
           MATNR TYPE RC27M-MATNR, "Material No
           WERKS TYPE RC27M-WERKS, "Plant
           PLNNR TYPE RC271-PLNNR, "Key for Task List Group
          AENNR TYPE RC271-AENNR, "Change Number
          ARBPL TYPE PLPOD-ARBPL, "Work center
          STEUS TYPE PLPOD-STEUS, "Control key
           VERWMERKM TYPE PLMKB-VERWMERKM, "Master Inspection Characteristics
           PMETHODE TYPE PLMKB-PMETHODE, "Inspection Method
         PMTVERSION TYPE PLMKB-PMTVERSION, "Version Number of the Inspection Method
           STICHPRVER TYPE PLMKB-STICHPRVER, "Sampling Procedure in Inspection Characteristic
          PRUEFEINH(7)," TYPE PLMKB-PRUEFEINH, " Value
          PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH, "Unit
           STELLEN(3), "TYPE PLMKB-STELLEN, "Number of Places to the Right of a Decimal Point (Accuracy)
           MASSEINHSW TYPE RQPAS-MASSEINHSW, "Measurement Unit in Which Quantitative Data Is Maintained
           SOLLWERT TYPE QFLTP-SOLLWERT, "Target Value for a Quantitative Characteristic
           TOLERANZUN TYPE QFLTP-TOLERANZUN, "Lower Specification Limit
           TOLERANZOB TYPE QFLTP-TOLERANZOB, "Upper Specification Limit
           DUMMY10 TYPE PLMKB-DUMMY10,  "Info Field1
           DUMMY20 TYPE PLMKB-DUMMY20,  "Info Field2
           DUMMY40 TYPE PLMKB-DUMMY40,  "Info Field3
           END OF TY_TBCTRL2.
    TYPES: BEGIN OF TY_CHECK,
            MATNR TYPE RC27M-MATNR,   "Material No
            WERKS TYPE RC27M-WERKS,   "Plant
            PLNNR TYPE RC271-PLNNR,   "Key for Task List Group
           AENNR TYPE RC271-AENNR,   "Change Number
           END OF TY_CHECK.
    Declaration of the Internal Table & Work Area.
    DATA:   ITST_TABDATA TYPE SORTED  TABLE OF TY_TABDATA WITH
                        UNIQUE KEY  MATNR WERKS PLNNR, " AENNR,
                                                " Internal table for Non-Table Control Records
            WA_TABDATA TYPE TY_TABDATA,
            ITST_TABCTRL1 TYPE TABLE OF TY_TBCTRL1 ,  " Internal table for the First Screen with Table Control
            WA_TABCTRL1 TYPE TY_TBCTRL1,
            ITST_TABCTRL2 TYPE TABLE OF TY_TBCTRL2, " Internal table for the Second Screen with Table Control
            WA_TABCTRL2 TYPE TY_TBCTRL2,
            ITST_CHECK TYPE TABLE OF TY_CHECK, " Internal table to check if record already exists
            WA_CHECK TYPE TY_CHECK.
    Constants
    CONSTANTS: C_QP01 TYPE CHAR4 VALUE 'QP01', " Transaction Name
               C_A TYPE CHAR1 VALUE 'A',       " Mode
               C_S TYPE CHAR1 VALUE 'S'.       " Status
       Global data Declaration
    DATA: GV_YEAR(4) TYPE C, " Year part for Date
          GV_MNTH(2) TYPE C, " Month part for Date
          GV_DATE(2) TYPE C, " Day part for Date
          GV_DATUM(10) TYPE C, " Concatenated Date in dd.mm.yyyy Format
          GV_ANS TYPE C, " Answer to Continue
          GV_FLAG_NEW(1) TYPE N VALUE 0. " Flag to set if Inspection Plan exists.
    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.
    Batch Input Data for a single Transaction.
    Message of Call Transaction.
    DATA:  ITST_BDCDATA  LIKE  BDCDATA     OCCURS  0  WITH  HEADER  LINE,  " BDC Table
           ITST_MSGTAB   LIKE  BDCMSGCOLL  OCCURS  0  WITH  HEADER  LINE.  " BDC Messages
    S E L E C T I O N - S C R E E N                                     *
    SELECTION-SCREEN:  BEGIN  OF  BLOCK  B1  WITH  FRAME TITLE TEXT-001,
                           BEGIN  OF  BLOCK  B2  WITH  FRAME TITLE TEXT-004.
    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
          STATIC    = 'X'
        CHANGING
          FILE_NAME = P_FNAME.
    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.                      " To Upload the 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.
    Validate if already some Inspection Plan exists for that Material Plant
          IF ITST_TABDATA[] IS NOT INITIAL.
            SELECT MATNR
                   WERKS
                   PLNNR
            FROM MAPL
            INTO TABLE ITST_CHECK
            FOR ALL ENTRIES IN ITST_TABDATA
            WHERE MATNR = ITST_TABDATA-MATNR AND WERKS = ITST_TABDATA-WERKS AND
                                      PLNNR = ITST_TABDATA-PLNNR
                                      AND PLNTY = 'Q' AND LOEKZ <> 'X'.
          ENDIF.
          LOOP AT ITST_CHECK INTO WA_CHECK .
            LOOP AT ITST_TABDATA INTO WA_TABDATA WHERE MATNR = WA_CHECK-MATNR
                                                  AND WERKS = WA_CHECK-WERKS AND PLNNR = WA_CHECK-PLNNR.
                                                 AND AENNR = WA_CHECK-AENNR.
              IF SY-SUBRC = 0.                 " If exists SET FLAG = 1.
               GV_FLAG_NEW = 1.
                DELETE ITST_TABDATA WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                 AND PLNNR = WA_CHECK-PLNNR.
                                                                AND AENNR = WA_CHECK-AENNR.
                DELETE  ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                   AND PLNNR = WA_CHECK-PLNNR.
                                                                  AND AENNR = WA_CHECK-AENNR.
                DELETE  ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
                                                                   AND PLNNR = WA_CHECK-PLNNR.
                                                                  AND AENNR = WA_CHECK-AENNR.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
        Kick-start BDC Operation
          PERFORM  F_START_BDC.    " If answer is YES, then start BDC Operations
        ENDIF.
      ELSE.
        LEAVE PROGRAM.           " If answer is NO or CANCEL then leave program
      ENDIF.
    *&      Form  F_START_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM F_START_BDC .
      DATA :  LV_FNAM(20) TYPE C, " Concatenated field name
              LV_IDX1(3) TYPE  N VALUE 1, " Index For Table Control 1
              LV_IDX2(3) TYPE N VALUE 1, " Index For Table Control 2
              LV_GOTO(4) TYPE N ,  " Index for GoTo Line No incase of Page Down
              LV_PG(3) TYPE N VALUE 1, " Index for Page No
              LV_IDX(3) TYPE N VALUE 1.
      IF ITST_TABDATA[] IS INITIAL.
        MESSAGE E000.              " If Inspection Plan exists for all items in file, show error message
      ENDIF.
      LOOP AT ITST_TABDATA INTO WA_TABDATA.
        LV_IDX2 = '1'.
        CLEAR ITST_BDCDATA.
        REFRESH ITST_BDCDATA.
        GV_YEAR = SY-DATUM+0(4).
        GV_MNTH = SY-DATUM+4(2).
        GV_DATE = SY-DATUM+6(2).
        CONCATENATE GV_DATE '.' GV_MNTH '.' GV_YEAR  INTO GV_DATUM.
        PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '8010'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RC27M-MATNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RC27M-MATNR'
                                      WA_TABDATA-MATNR.         " 'kiz0006c'
        PERFORM BDC_FIELD       USING 'RC27M-WERKS'
                                      WA_TABDATA-WERKS.         " 'B001'
        PERFORM BDC_FIELD       USING 'RC271-PLNNR'
                                      WA_TABDATA-PLNNR.         " 60000000-99999999
        PERFORM BDC_FIELD       USING 'RC271-STTAG'
                                      GV_DATUM.                 " '16.01.2008'
       PERFORM BDC_FIELD       USING 'RC271-AENNR'
                                     WA_TABDATA-AENNR.         " CHANGE NUMBER
       IF GV_FLAG_NEW = 1.        " If Exists then diff screen for clicking NEW ENTRIES tab
         PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
         PERFORM BDC_FIELD USING  'BDC_CURSOR'
                                   'RC27X-ENTRY_ACT'.
         PERFORM BDC_FIELD USING 'BDC_OKCODE'
                                 '=ANLG'.
         PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
                                 '1'.
         PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                     '/00'.
       ELSE.
        PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
       ENDIF.
        IF WA_TABDATA-KTEXT <> SPACE.
          PERFORM BDC_FIELD       USING 'PLKOD-KTEXT'
                                        WA_TABDATA-KTEXT.        " 'ZOLMITRIPTAN STAGE C1111'
        ENDIF.
        PERFORM BDC_FIELD       USING 'PLKOD-VERWE'
                                      WA_TABDATA-VERWE.         " '5'
        PERFORM BDC_FIELD       USING 'PLKOD-STATU'
                                      WA_TABDATA-STATU.         " '4'
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'PLKOD-QPRZIEHVER'.
        PERFORM BDC_FIELD       USING 'PLKOD-SLWBEZ'
                                      WA_TABDATA-SLWBEZ.        " '200'
        PERFORM BDC_FIELD       USING 'PLKOD-QPRZIEHVER'
                                      WA_TABDATA-QPRZIEHVER.    " 'ACTIVE'
       PERFORM BDC_FIELD       USING 'PLKOD-CHRULE'
                                      '1'.                     " With change number
       PERFORM BDC_FIELD       USING 'PLKOD-CCOAA'
                                      '1'.                     " Change Type for all objects
        PERFORM BDC_DYNPRO      USING 'SAPLCPDA' '1200'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=VOUE'.
        LOOP AT ITST_TABCTRL1 INTO WA_TABCTRL1 WHERE MATNR = WA_TABDATA-MATNR
                                                     AND WERKS = WA_TABDATA-WERKS
                                                     AND PLNNR = WA_TABDATA-PLNNR.
                                                    AND AENNR = WA_CHECK-AENNR.
          ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR." OR WA_TABCTRL1-AENNR.
            PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '1400'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'PLPOD-LTXA1(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '/00'.
            CONCATENATE 'PLPOD-ARBPL(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-ARBPL.    " 'qc01'
            CONCATENATE 'PLPOD-STEUS(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-STEUS.    " 'qm01'
            CONCATENATE 'PLPOD-LTXA1(' LV_IDX1 ')' INTO LV_FNAM.
            PERFORM BDC_FIELD       USING LV_FNAM
                                          WA_TABCTRL1-LTXA1.       " 'opearation1'
            PERFORM BDC_DYNPRO      USING 'SAPLCPDI' '1400'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'PLPOD-VORNR(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                          '=QMUE'.
            PERFORM BDC_FIELD       USING 'RC27X-ENTRY_ACT'
                                          '1'.
            PERFORM BDC_FIELD       USING 'RC27X-FLG_SEL(01)'
                                          'X'.
            PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'PLMKB-STELLEN(01)'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                            '/00'.
            LOOP AT ITST_TABCTRL2 INTO WA_TABCTRL2 WHERE MATNR = WA_TABCTRL1-MATNR AND
                                                         WERKS = WA_TABCTRL1-WERKS AND
                                                         PLNNR = WA_TABCTRL1-PLNNR.
                                                     AND   AENNR = WA_TABCTRL1-AENNR.
                                                      AND ARBPL = WA_TABCTRL1-ARBPL AND
                                                        STEUS = WA_TABCTRL1-STEUS.
              LV_GOTO = LV_PG * 140.  " For Page Down on Second Table Control
              IF LV_IDX2 >= 14.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'RQPAS-AB_MKNR'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '/00'.
                PERFORM BDC_FIELD       USING 'RQPAS-AB_MKNR'
                                               LV_GOTO .
                LV_IDX2 = 2.
                LV_PG = LV_PG + 1.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                               '/00'.
              ELSE.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-STELLEN(01)'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '/00'.
              ENDIF.
              CONCATENATE 'PLMKB-VERWMERKM(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-VERWMERKM.              " 'MIC00001'/ ' MIC00050'
              IF WA_TABCTRL2-PMETHODE <> SPACE.
                CONCATENATE 'PLMKB-PMETHODE(' LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-PMETHODE.               " 'met00001'
             CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
             PERFORM BDC_FIELD       USING LV_FNAM
                                           WA_TABCTRL2-PMTVERSION.              " '1'
                CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STICHPRVER." 'APIFX1'
              CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PRUEFEINH.               " '20'
              CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PROBEMGEH.               " 'G'
              IF WA_TABCTRL2-STELLEN <> SPACE.
                CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STELLEN." '2'
              ENDIF.
              IF WA_TABCTRL2-MASSEINHSW <> SPACE.
                CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-MASSEINHSW.             " '%'
              ENDIF.
              IF WA_TABCTRL2-SOLLWERT <> SPACE.
                CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-SOLLWERT." '10'
              ENDIF.
              IF WA_TABCTRL2-TOLERANZUN <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZUN." '5'
              ENDIF.
              IF WA_TABCTRL2-TOLERANZOB <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZOB." '15'
              ENDIF.
              IF WA_TABCTRL2-DUMMY10 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY10." Info Field 1
              ENDIF.
              IF WA_TABCTRL2-DUMMY20 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY20." Info Field 2
              ENDIF.
              IF WA_TABCTRL2-DUMMY40 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY40." Info Field 3
              ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1501'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-VERWMERKM'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1502'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-PMETHODE'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1502'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-PMETHODE'.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                              '=QMAM'.
                PERFORM BDC_FIELD       USING 'RQPAS-ENTRY_ACT'
                                              '1'.
                IF LV_IDX2 = 1.          " If only one entry then select it
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                        'X'.
                ELSE.
                  LV_IDX = LV_IDX2 - 1. " Deselect previous entry and select current one
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                           'X'.
                ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0160'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=QMBW'.
               PERFORM BDC_FIELD       USING 'PLMKB-KURZTEXT'
                                          'Description'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'PLMKB-QERGDATH'.
                PERFORM BDC_FIELD       USING 'PLMKB-QERGDATH'
                                          '01'.  " Quality Certificate
              ELSE.
             CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
             PERFORM BDC_FIELD       USING LV_FNAM
                                           WA_TABCTRL2-PMTVERSION.               " '1'
                CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STICHPRVER." 'APIFX1'
              CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PRUEFEINH.                " '20'
              CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
              PERFORM BDC_FIELD       USING LV_FNAM
                                            WA_TABCTRL2-PROBEMGEH.                " 'G'
                IF WA_TABCTRL2-STELLEN <> SPACE.
                CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-STELLEN." '2'
                ENDIF.
                IF WA_TABCTRL2-MASSEINHSW <> SPACE.
                CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-MASSEINHSW.                " '%'
                ENDIF.
                IF WA_TABCTRL2-SOLLWERT <> SPACE.
                CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-SOLLWERT." '10'
                ENDIF.
                IF WA_TABCTRL2-TOLERANZUN <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZUN." '5'
                ENDIF.
                IF WA_TABCTRL2-TOLERANZOB <> SPACE.
                CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-TOLERANZOB." '15'
                ENDIF.
                IF WA_TABCTRL2-DUMMY10 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY10." Info Field 1
                ENDIF.
                IF WA_TABCTRL2-DUMMY20 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY20." Info Field 2
                ENDIF.
                IF WA_TABCTRL2-DUMMY40 <> SPACE.
                CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING LV_FNAM
                                              WA_TABCTRL2-DUMMY40." Info Field 3
                ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '1501'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                             '=ENT1'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              'PLMKB-QMTB_WERKS'.
                PERFORM BDC_FIELD       USING 'PLMKB-VERWMERKM'
                                               WA_TABCTRL2-VERWMERKM.
                PERFORM BDC_FIELD       USING 'PLMKB-QPMK_WERKS'
                                               WA_TABCTRL2-WERKS.
                PERFORM BDC_FIELD       USING 'PLMKB-QMTB_WERKS'
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
                CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                              LV_FNAM.
                PERFORM BDC_FIELD      USING 'BDC_OKCODE'
                                             '=QMAM'.
                 PERFORM BDC_FIELD      USING 'RQPAS-ENTRY_ACT'
                                             '1'.
                  IF LV_IDX2 = 1. " If first entry select it
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                        'X'.
                  ELSE.
                  LV_IDX = LV_IDX2 - 1. " Deselect Previous entry ans select current one
                  CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                 CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
                  PERFORM BDC_FIELD       USING LV_FNAM
                                           'X'.
                 ENDIF.
                PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0160'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=QMBW'.
               PERFORM BDC_FIELD       USING 'PLMKB-KURZTEXT'
                                          'Description'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'PLMKB-QERGDATH'.
                PERFORM BDC_FIELD       USING 'PLMKB-QERGDATH'
                                          '01'. " Quality Certificate
              ENDIF.
              LV_IDX2 = LV_IDX2 + 1.
            ENDLOOP.
          ENDON.
        ENDLOOP.
        PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RQPAS-ENTRY_ACT'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=QMBU'.
        PERFORM BDC_FIELD       USING 'RQPAS-ENTRY_ACT'
                                      '1'.
        CALL TRANSACTION  C_QP01 USING ITST_BDCDATA
                    MODE  C_A UPDATE C_S
                    MESSAGES INTO ITST_MSGTAB.               "#EC CI_CALLTA
      ENDLOOP.
    ENDFORM.                    " F_START_BDC
    *&      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 = 2
          I_END_COL   = 24
          I_END_ROW   = 9999
        TABLES
          INTERN      = IT_FILE_UPLOAD.
    ENDFORM.                    " UPLOAD_EXCEL_FILE
    *&      Form  CONFIRM_UPLOAD
          text
    -->  p1        text
    <--  p2        text
    FORM CONFIRM_UPLOAD .
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
          TITLEBAR       = TEXT-002
          TEXT_QUESTION  = TEXT-003
        IMPORTING
          ANSWER         = GV_ANS
        EXCEPTIONS
          TEXT_NOT_FOUND = 1
          OTHERS         = 2.
    ENDFORM.                    " CONFIRM_UPLOAD
    *&      Form  BDC_DYNPRO
          text
         -->P_0589   text
         -->P_0590   text
    FORM BDC_DYNPRO  USING    PROGRAM
                              DYNPRO.
      CLEAR:  ITST_BDCDATA.
      ITST_BDCDATA-PROGRAM   =  PROGRAM.
      ITST_BDCDATA-DYNPRO    =  DYNPRO.
      ITST_BDCDATA-DYNBEGIN  =  'X'.
      APPEND  ITST_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
          text
         -->P_0729   text
         -->P_0730   text
    FORM BDC_FIELD  USING    FNAM
                             FVAL.
      CLEAR:  ITST_BDCDATA.
      ITST_BDCDATA-FNAM  =  FNAM.
      ITST_BDCDATA-FVAL  =  FVAL.
      APPEND  ITST_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  ORGANIZE_UPLOADED_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM ORGANIZE_UPLOADED_DATA .
      DATA : LV_TOTROW TYPE I, " Total Records
             LV_ROW TYPE I.    " Row No
      LV_TOTROW = 1.
      SORT  IT_FILE_UPLOAD  BY  ROW
                                COL.
      LOOP AT IT_FILE_UPLOAD.
        LV_TOTROW = IT_FILE_UPLOAD-ROW.        " To find total rows
      ENDLOOP.
      LV_ROW = 1.
      WHILE LV_ROW <= LV_TOTROW.
        LOOP  AT  IT_FILE_UPLOAD WHERE ROW = LV_ROW.
          CASE  IT_FILE_UPLOAD-COL.
            WHEN '0001'.                                                       " Material
              TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
              WA_TABDATA-MATNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-MATNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-MATNR = IT_FILE_UPLOAD-VALUE.
            WHEN '0002'.                                                       " Plant
              TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
              WA_TABDATA-WERKS = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-WERKS = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-WERKS = IT_FILE_UPLOAD-VALUE.
            WHEN '0003'.                                                       " Group Key
              WA_TABDATA-PLNNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL1-PLNNR = IT_FILE_UPLOAD-VALUE.
              WA_TABCTRL2-PLNNR = IT_FILE_UPLOAD-VALUE.
           WHEN '0004'.                                                       " Change Number
             WA_TABDATA-AENNR = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL1-AENNR = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-AENNR = IT_FILE_UPLOAD-VALUE.
            WHEN '0004'.                                                      " Group Counter Desc
              WA_TABDATA-KTEXT = IT_FILE_UPLOAD-VALUE.
            WHEN '0005'.                                                      " Usage
              WA_TABDATA-VERWE = IT_FILE_UPLOAD-VALUE.
            WHEN '0006'.                                                      " Status
              WA_TABDATA-STATU = IT_FILE_UPLOAD-VALUE.
            WHEN '0007'.                                                      " Inspection Point
              WA_TABDATA-SLWBEZ = IT_FILE_UPLOAD-VALUE.
            WHEN '0008'.                                                      " Sample Drawing Procedure
              WA_TABDATA-QPRZIEHVER = IT_FILE_UPLOAD-VALUE.
            WHEN '0009'.                                                      " Work Centre
              WA_TABCTRL1-ARBPL = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-ARBPL = IT_FILE_UPLOAD-VALUE.
            WHEN '0010'.                                                      " Control Key
              WA_TABCTRL1-STEUS = IT_FILE_UPLOAD-VALUE.
             WA_TABCTRL2-STEUS = IT_FILE_UPLOAD-VALUE.
            WHEN '0011'.                                                      " Desc
              WA_TABCTRL1-LTXA1 = IT_FILE_UPLOAD-VALUE.
            WHEN '0012'.                                                      " MIC
              WA_TABCTRL2-VERWMERKM = IT_FILE_UPLOAD-VALUE.
            WHEN '0013'.                                                      " Method
              WA_TABCTRL2-PMETHODE = IT_FILE_UPLOAD-VALUE.
           WHEN '0014'.
             WA_TABCTRL2-PMTVERSION = IT_FILE_UPLOAD-VALUE.
            WHEN '0014'.                                                      " Sampling
              WA_TABCTRL2-STICHPRVER = IT_FILE_UPLOAD-VALUE.
            WHEN '0015'.
              WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE.
            WHEN '0016'.
              WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE.
            WHEN '0017'.                                                      " Accuracy
              WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.
            WHEN '0018'.                                                      " Unit
              WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.
            WHEN '0019'.                                                      " Target Value
              WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.
            WHEN '0020'.                                                      " Lower Limit
              WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.
            WHEN '0021'.                                                      " Upper Limit
              WA_TABCTRL2-TOLERANZOB = IT_FILE_UPLOAD-VALUE.
            WHEN '0022'.                                                      " Info Field1
              WA_TABCTRL2-DUMMY10 = IT_FILE_UPLOAD-VALUE.
            WHEN '0023'.                                                      " Info Field2
              WA_TABCTRL2-DUMMY20 = IT_FILE_UPLOAD-VALUE.
            WHEN '0024'.                                                      " Info Field3
              WA_TABCTRL2-DUMMY40 = IT_FILE_UPLOAD-VALUE.
          ENDCASE.
        ENDLOOP.
        LV_ROW = LV_ROW + 1.
        INSERT WA_TABDATA INTO TABLE  ITST_TABDATA .
        APPEND WA_TABCTRL1 TO ITST_TABCTRL1.
        APPEND WA_TABCTRL2 TO ITST_TABCTRL2.
        CLEAR :WA_TABDATA,WA_TABCTRL1,WA_TABCTRL2.
      ENDWHILE.
    ENDFORM.                    " ORGANIZE_UPLOADED_DATA
    E N D - O F - S E L E C T I O N                                               *
    END-OF-SELECTION.
    Free all internal tables
      FREE: ITST_TABDATA,
            ITST_TABCTRL1,
            ITST_TABCTRL2.

Maybe you are looking for