Skip to Content
author's profile photo Former Member
Former Member

QP01 - To Create Inspection Plant

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

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Apr 29, 2008 at 10:06 AM

    Hi friend,

    check the code

    REPORT ZQMB_QP01_INSP_PLAN

    NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN.

    -


    Description: Upload Program for Create Inspection Plan *

    -


    ABAP Name : ZQMB_QP01_INSP_PLAN *

    Autor : Vanessa Noronha *

    Type : BDC Program for QP01 Transaction. *

    Module : QM *

    Date : 17 January 2008 *

    Transport : D01K948244 -- TR-BDC for QP01 *

    -


    Changes (internal Version: Documentation/Info on line level) *

    -


    Date Name internal Transp.No. Description *

    -Version- *

    -


    ************************************************************************

    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

    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

    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

    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,

    PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH,

    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

    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

    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,

    " 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 'E', " 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.

    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.

    DELETE ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS

    AND PLNNR = WA_CHECK-PLNNR.

    DELETE ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS

    AND PLNNR = WA_CHECK-PLNNR.

    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

    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'

    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_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.

    ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR.

    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 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'

    CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-STELLEN. " '2'

    CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-MASSEINHSW. " '%'

    CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-SOLLWERT. " '10'

    CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-TOLERANZUN. " '5'

    CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-TOLERANZOB. " '15'

    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'.

    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'

    CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-STELLEN. " '2'

    CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-MASSEINHSW. " '%'

    CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-SOLLWERT. " '10'

    CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-TOLERANZUN. " '5'

    CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.

    PERFORM BDC_FIELD USING LV_FNAM

    WA_TABCTRL2-TOLERANZOB. " '15'

    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'

    ''.

    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 = 19

    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'. " 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 '0016'.

    WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE.

    WHEN '0017'.

    WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE.

    WHEN '0015'. " Accuracy

    WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.

    WHEN '0016'. " Unit

    WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.

    WHEN '0017'. " Target Value

    WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.

    WHEN '0018'. " Lower Limit

    WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.

    WHEN '0019'. " Upper Limit

    WA_TABCTRL2-TOLERANZOB = 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.

    Regards,

    Raj.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.