Hi all..very urgent..full marks wud be given

Hi gurus,
could you plz help me in finding the replacement for the obsolete function modules in ECC 6.0..
following are the BAPI function modules.full marks wud be given for answers..plz help me
BAPI_ABSENCE_GETDETAIL
BAPI_ABSENCE_GETDETAILEDLIST
BAPI_ABSENCE_GETLIST
BAPI_ABSENCE_SIMULATECREATION
BAPI_CLASS_GET_CLASSIFICATIONS
QSS1_PLAN_SHOW
FOW6
BAPI_SALESORDER_CREATEFROMDAT1
BAPI_FTR_CHANGE
BAPI_FTR_CREATEFROMDATA
BAPI_FTR_GETDETAIL
BAPI_FTR_REVERSE
BAPI_INSPCHAR_GETREQUIREMENTS
BAPI_INSPCHAR_GETRESULT
BAPI_INSPCHAR_SETRESULT
BAPI_INSPPOINT_CHANGE
BAPI_INSPPOINT_CREATEFROMDATA
BAPI_INSPPOINT_GETLIST
BAPI_INSPPOINT_GETREQUIREMENTS
BAPI_RESERVATION_CREATE
BAPI_REPMANCONF_CANCEL
BAPI_REPMANCONF_CREATE_MTO
BAPI_REPMANCONF_CREATE_PLOT
BAPI_REPMANCONF_CREATE_MTS
BAPI_REPMANCONF_EXIST_CHK
BAPI_DOCUMENT_CHECKIN
BAPI_DOCUMENT_CHECKOUTMODIFY
BAPI_DOCUMENT_CREATE2
BAPI_DOCUMENT_CREATEFROMSOURCE
BAPI_DOCUMENT_CREATENEWVERSION
BAPI_DOCUMENT_GETDETAIL
BAPI_EQMT_CREATE
BAPI_EQMT_DISMANTLEFL
BAPI_EQMT_DISMANTLEHR
BAPI_EQMT_DETAIL
BAPI_EQMT_INSTALLFL
BAPI_EQMT_INSTALLHR
BAPI_EQMT_MODIFY
BAPI_ABSENCE_GETDETAIL
BAPI_ABSENCE_GETDETAILEDLIST
BAPI_ABSENCE_GETLIST
BAPI_ABSENCE_SIMULATECREATION
BAPI_DOCUMENT_CHECKIN
BAPI_DOCUMENT_CHECKOUTMODIFY
BAPI_DOCUMENT_CREATE2
BAPI_DOCUMENT_CREATEFROMSOURCE
BAPI_DOCUMENT_CREATENEWVERSION
BAPI_DOCUMENT_GETDETAIL
BAPI_SALESORDER_CREATEFROMDAT1

Why dont you check with http://service.sap.com, coz who so ever reply you will reply only after checking the same.

Similar Messages

  • Very urgent..full marks wud be given

    Hi gurus,
    i am new to ABAP..i have got the requirements as follows..
    tables used are
    MARA     MATNR
    MARA     ERSDA
    MARA     KZREV
    MARA     MTART
    AENR     AENNR
    AEOI     AENNR
    AEOI     OBJKT
    AEOI     REVLV
    selection screen should be as below.
    material  -
    to -
    created on  -
    to -
    prod.type.----
    to -
    change number--to--
    1 scenario1            2 scenario2        3 scenario3
    Scenario1
    1 Material    (optional)
    2 Created on ( mandatory)
    *Detail Logic:*
    Assumptions:
    1.     only  material of type FERT are considered for product type maintenance
    2.     All the required customization settings in ECM are maintained.
    Scenario1:
    Selection parameters to be considered for scenario1:
    •      radio button scenario1,
    •      Created on :
    •      Material  :
    1.     get all the material number s  ( MARA – MATNR  )  from the MARA table  where the  indicator
    “Revision Level Has Been Assigned to the Material”(   MARA- KZREV)   is blank ,  date range is equal to  input date (MARA –ERSDA)  range , material number equal to input material number(s) , material type equal to FERT.
    could you please help me with the code..
    full marks wud be given
    thanx and regards
    sahil

    do you think giving 10 points and getting a program which may get you salary in '000s is fair. You should try to learn abap programming technique and in the process if you have problem, you will certainly get help from here. But dont expect somebody to write whole program for you.
    start looking at help.sap.com and in sdn to start learning.
    Regards
    Raja

  • Error Fixing..please help me..full marks wud be given........

    I am getting a following error when i run the program in ECC 6.o
    ERROR:" The where condition does not refer to for all entries table..
    program is as follows..full marks wud be given.....
    ***INCLUDE MZSDRETL_RMP_PRICING_ENTRYF01 .
    *&      Form  COMPUTE_SCROLLING_IN_TC
    Vertical Scrolling in table control upon pressing , next page,
    previous page , first page and last page button
         -->P_TC_NAME   table control name
         -->P_OK_CODE   okcode
         -->P_LOOPC     current loop count
    FORM COMPUTE_SCROLLING_IN_TC USING    P_TC_NAME
                                          P_OK_CODE
                                          P_LOOPC.
    -BEGIN OF LOCAL DATA----
      DATA L_TC_NEW_TOP_LINE    LIKE SY-TABIX.
      DATA L_TC_FIELD_NAME       LIKE FELD-NAME.
      FIELD-SYMBOLS <TC>         TYPE CXTAB_CONTROL.
    -END OF LOCAL DATA----
      ASSIGN (P_TC_NAME) TO <TC>.
      IF <TC>-LINES = 0.
        L_TC_NEW_TOP_LINE = 1.
      ELSE.
        CALL FUNCTION 'SCROLLING_IN_TABLE'
             EXPORTING
                  ENTRY_ACT      = <TC>-TOP_LINE
                  ENTRY_FROM     = 1
                  ENTRY_TO       = <TC>-LINES
                  LAST_PAGE_FULL = C_X
                  LOOPS          = P_LOOPC
                  OK_CODE        = P_OK_CODE
                  OVERLAPPING    = C_X
             IMPORTING
                  ENTRY_NEW      = L_TC_NEW_TOP_LINE.
            exceptions
                 no_entry_or_page_act  = 01
                 no_entry_to           = 02
                 no_ok_code_or_page_go = 03
                 others                = 99.
      ENDIF.
    get actual tc and column                                             *
      GET CURSOR FIELD L_TC_FIELD_NAME .
      IF SY-SUBRC = 0.
        set actual column                                                *
        SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
      ENDIF.
    set the new top line                                                 *
      <TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
    ENDFORM.                    " COMPUTE_SCROLLING_IN_TC
    *&      Form  GET_VALUE_ON_REQUEST
    Call function module to display the region list in form of search help
    FORM GET_VALUE_ON_REQUEST TABLES RET
                              USING    P_C_RET
                                       P_C_DYN
                                       P_DYNNR.
    Call function module to display the data in internal table in form of
    a search help
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                RETFIELD    = P_C_RET
                DYNPPROG    = G_REPID
                DYNPNR      = P_DYNNR
                DYNPROFIELD = P_C_DYN
                VALUE_ORG   = C_VAL_ORG  " Value S
           TABLES
                VALUE_TAB   = RET.
      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.                    " GET_VALUE_ON_REQUEST
    *&      Form  POPULATE_RANGES
          Populate range tables with store grouping data
         -->P_I_STORE_INFO  store grouping entry
    FORM POPULATE_RANGES USING L_REGION_ID
                               L_DIST_ID
                               L_AREA_ID
                               L_STORE_ID.
      CLEAR : R_REGION , R_DIST , R_AREA , R_STORE .
      CLEAR : R_REGION[] , R_DIST[] , R_AREA[] , R_STORE[].
    populate region
      IF NOT L_REGION_ID IS INITIAL.
        R_REGION-SIGN = C_SIGN.
        R_REGION-OPTION = C_OPT1.
        R_REGION-LOW = L_REGION_ID.
        APPEND R_REGION.
        CLEAR R_REGION.
      ENDIF.
    populate district
      IF NOT L_DIST_ID IS INITIAL.
        R_DIST-SIGN = C_SIGN.
        R_DIST-OPTION = C_OPT1.
        R_DIST-LOW = L_DIST_ID.
        APPEND R_DIST.
        CLEAR R_DIST.
      ENDIF.
    populate area
      IF NOT L_AREA_ID IS INITIAL.
        R_AREA-SIGN = C_SIGN.
        R_AREA-OPTION = C_OPT1.
        R_AREA-LOW = L_AREA_ID.
        APPEND R_AREA.
        CLEAR R_AREA.
      ENDIF.
    populate store
      IF NOT L_STORE_ID IS INITIAL.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
             EXPORTING
                  INPUT  = L_STORE_ID
             IMPORTING
                  OUTPUT = L_STORE_ID.
        R_STORE-SIGN = C_SIGN.
        R_STORE-OPTION = C_OPT1.
        R_STORE-LOW = L_STORE_ID.
        APPEND R_STORE.
        CLEAR R_STORE.
      ENDIF.
    ENDFORM.                    " POPULATE_RANGES
    *&      Form  GET_TABLE_ROW_VALUES
      Get the field values of the current row of the table
      l_stepl - current row no.
    FORM GET_TABLE_ROW_VALUES USING L_STEPL.
      DATA: L_REPID LIKE D020S-PROG.
      REFRESH I_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'I_STORE_INFO-REGION_ID'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'I_STORE_INFO-DIST_ID'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'I_STORE_INFO-AREA_ID'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'I_STORE_INFO-ATTR_VAL'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'I_STORE_INFO-STORE_ID'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      WA_DYNPREAD-STEPL = L_STEPL.
      WA_DYNPREAD-FIELDNAME = 'ZPRICELIST-ZLIST'.
      APPEND WA_DYNPREAD TO I_DYNPREAD.
      CLEAR WA_DYNPREAD.
      L_REPID = G_REPID .
    Call function to get the screen data
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                DYNAME     = L_REPID
                DYNUMB     = SY-DYNNR
           TABLES
                DYNPFIELDS = I_DYNPREAD.
      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.                    " GET_TABLE_ROW_VALUES
    *&      Form  DETERMINE_LEVEL
    Determine the level of store grouping info entered
        Region                  - 1
        Region/Dist             - 2
        Region/Dist/Area        - 3
        Region/Dist/Area/Store  - 4
    FORM DETERMINE_LEVEL USING    P_I_STORE_INFO LIKE I_STORE_INFO.
      IF NOT P_I_STORE_INFO-REGION_ID IS INITIAL
         AND P_I_STORE_INFO-DIST_ID IS INITIAL
         AND P_I_STORE_INFO-AREA_ID IS INITIAL
         AND P_I_STORE_INFO-STORE_ID IS INITIAL.
        P_I_STORE_INFO-LEVEL = C_LEVEL1.
      ENDIF.
      IF NOT P_I_STORE_INFO-REGION_ID IS INITIAL
         AND NOT P_I_STORE_INFO-DIST_ID IS INITIAL
         AND P_I_STORE_INFO-AREA_ID IS INITIAL
         AND P_I_STORE_INFO-STORE_ID IS INITIAL.
        P_I_STORE_INFO-LEVEL = C_LEVEL2.
      ENDIF.
      IF NOT P_I_STORE_INFO-REGION_ID IS INITIAL
         AND NOT P_I_STORE_INFO-DIST_ID IS INITIAL
         AND  NOT P_I_STORE_INFO-AREA_ID IS INITIAL
         AND P_I_STORE_INFO-STORE_ID IS INITIAL.
        P_I_STORE_INFO-LEVEL = C_LEVEL3.
      ENDIF.
      IF NOT P_I_STORE_INFO-REGION_ID IS INITIAL
         AND NOT P_I_STORE_INFO-DIST_ID IS INITIAL
         AND NOT P_I_STORE_INFO-AREA_ID IS INITIAL
         AND NOT P_I_STORE_INFO-STORE_ID IS INITIAL.
        P_I_STORE_INFO-LEVEL = C_LEVEL4.
      ENDIF.
    ENDFORM.                    " DETERMINE_LEVEL
    *&      Form  GET_SY_STEPL
        Get the current record number in the table control.
         -->P_L_STEPL  text
    FORM GET_SY_STEPL USING    P_L_STEPL LIKE SY-STEPL.
      CLEAR P_L_STEPL.
      CALL FUNCTION 'DYNP_GET_STEPL'
          IMPORTING
               POVSTEPL        = P_L_STEPL
       EXCEPTIONS
            STEPL_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.                    " GET_SY_STEPL
    *&      Form  GET_POPUP_CONFIRM
          Display the popup to confirm the user
    FORM GET_POPUP_CONFIRM USING    P_L_ANS
                                    P_G_POPUP_TEXT
                                    G_LINE_TEXT.
      CALL FUNCTION 'POPUP_TO_CONFIRM'
           EXPORTING
                TITLEBAR      = G_LINE_TEXT
                TEXT_QUESTION = P_G_POPUP_TEXT
           IMPORTING
                ANSWER        = P_L_ANS.
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    " GET_POPUP_CONFIRM
    *&      Form  GOTO_SKU_HIER_SCREEN
    Upon user wishes to go to the detail screen , a check is performed
    to determine if any existing promo or pricing is already available
    for the entered store grouping info . If it is available then
    prompt a message to the user 'Already promo exists if  user wants to
    go to the detail screen ?'. If the user presses 'Yes' then then
    detail screen will appear otherwise the header screen will appear
    FORM GOTO_SKU_HIER_SCREEN.
      CLEAR G_CHECK_ENTRY.
    Check the store grouping entries beforr switching to detail screen.
      PERFORM CHECK_STORE_ENTRIES.
      CHECK G_CHECK_ENTRY IS INITIAL.
      READ TABLE I_STORE_INFO WITH KEY REGION_ID = C_SPACE
                                       DIST_ID = C_SPACE
                                       AREA_ID = C_SPACE
                                       STORE_ID = C_SPACE
                                       ATTR_VAL = C_SPACE.
      IF SY-SUBRC = 0.
        DELETE I_STORE_INFO WHERE  REGION_ID = C_SPACE
                            AND    DIST_ID = C_SPACE
                            AND    AREA_ID = C_SPACE
                            AND    STORE_ID = C_SPACE
                            AND    ATTR_VAL = C_SPACE.
      ENDIF.
    perform check for the duplicate store grouping data.
      PERFORM CHECK_DUPLICATE_STRGRP_DATA.
    If any duplicate entry is found then user will be prompted with the
    message if he/she wants to delete those duplicate entries . If 'Yes'
    is pressed then all the duplicate entries will be deleted or else
    if 'No' is pressed , then user will remain in the same header screen
      IF    G_DUPLICATE_ENTRY = C_X.
        CONCATENATE TEXT-058 TEXT-059
        INTO   G_POPUP_TEXT
        SEPARATED BY SPACE.
        CLEAR G_ANS.
        CLEAR G_LINE_TEXT.
    Get the pop-up to confirm the operation
        PERFORM GET_POPUP_CONFIRM USING G_ANS
                                        G_POPUP_TEXT
                                        G_LINE_TEXT.
        IF G_ANS = '1'.
    Delete the duplicate entries
          DELETE ADJACENT DUPLICATES FROM I_STORE_INFO COMPARING REGION_ID
                                                                 DIST_ID
                                                                 AREA_ID
                                                                 STORE_ID
                                                                 ATTR_VAL.
          MESSAGE S161(ZS) WITH TEXT-003.
        ENDIF.
      ELSE.
    Perform the duplicate entry check for create or change pricing
        IF G_MAIN_OKCODE = 'PRCC' OR G_MAIN_OKCODE = 'CRPR'.
          IF I_STORE_INFO[] IS INITIAL.
            MESSAGE S161(ZS) WITH TEXT-004.
          ELSE.
            CLEAR G_FLAG.
            LOOP AT I_STORE_INFO WHERE NOT REPROMO IS INITIAL.
              G_FLAG = C_X.
              EXIT.
            ENDLOOP.
    Prompt the message by calling the function module for pop-up confirm
            IF NOT G_FLAG IS INITIAL.
              CONCATENATE TEXT-061 TEXT-062
                           INTO G_POPUP_TEXT SEPARATED BY SPACE .
              CLEAR G_LINE_TEXT.
              PERFORM GET_POPUP_CONFIRM USING G_ANS
                                              G_POPUP_TEXT
                                              G_LINE_TEXT.
              IF G_ANS = C_ANS1.
                CLEAR G_ANS.
                PERFORM EXISTING_SKU_BEFORE_DETAIL_SCR.
    Begin of DEVK939178
    Set top line of sku table to 1 and resolve nested screen calls
                TBCL3-TOP_LINE = 1.
               call screen 9002.
                LEAVE TO SCREEN 9002.
    End of DEVK939178
              ENDIF.
            ELSE.
              PERFORM EXISTING_SKU_BEFORE_DETAIL_SCR.
    Begin of DEVK939178
    Set top line of sku table to 1 and resolve nested screen calls
              TBCL3-TOP_LINE = 1.
              LEAVE TO SCREEN 9002.
             call screen 9002.
    End of DEVK939178
            ENDIF.
          ENDIF.
        ELSE.
    If user does not input any store grouping info in the header screen
    and opts to go to the detail, then message will appear to the user as
    'A Promo is going to be applied on the Price List type '. This will
    necessarily be a % promo as the promo is going to applied across all
    the SKUs that belong to that price list type which is irrespective of
    the price of individual SKUs
          IF I_STORE_INFO[] IS INITIAL.
            IF G_PRICING_VIEW_FLAG = C_X       " DEVK939197
              OR G_PROMO_VIEW_FLAG = C_X.      " DEVK939197
              LEAVE TO SCREEN 9002.
            ELSE.
              IF G_PROMO_PLTYP <> C_X.
                CLEAR G_POPUP_TEXT.
                CLEAR G_LINE_TEXT.
                CONCATENATE TEXT-063 TEXT-062
                             INTO G_POPUP_TEXT SEPARATED BY SPACE .
                PERFORM GET_POPUP_CONFIRM USING G_ANS
                                                G_POPUP_TEXT
                                                G_LINE_TEXT.
                IF G_ANS = C_ANS1.
    If user opts 'Yes' then another screen will appear where the user can
    give the value of the % promo that is going to be applied on the
    pricelist type
                  G_PROMO_PLTYP = C_X.
    Begin of DEVK939178
    Set top line of sku table to 1 and resolve nested screen calls
                  CLEAR I_STORE_INFO.
                  I_STORE_INFO-LEVEL = C_LEVEL6.
                  APPEND I_STORE_INFO.
                  TBCL3-TOP_LINE = 1.
                  PERFORM CHECK_EXIST_PROMO_STR .
                  PERFORM EXISTING_SKU_BEFORE_DETAIL_SCR.
                  LEAVE TO SCREEN 9002.
               call screen 9002.
    End of DEVK939178
             call screen 9006 starting at 10 5 ending at 70 10.
                ELSE.
                  MESSAGE S161(ZS) WITH TEXT-004.
                ENDIF.
              ENDIF.
            ENDIF.
          ELSE.
            CLEAR G_FLAG.
            LOOP AT I_STORE_INFO WHERE NOT REPROMO IS INITIAL.
              G_FLAG = 'X'.
              EXIT.
            ENDLOOP.
            IF NOT G_FLAG IS INITIAL.
              CONCATENATE TEXT-064 TEXT-062
                           INTO G_POPUP_TEXT SEPARATED BY SPACE .
              CLEAR G_LINE_TEXT.
              PERFORM GET_POPUP_CONFIRM USING G_ANS
                                              G_POPUP_TEXT
                                              G_LINE_TEXT.
              IF G_ANS = C_ANS1.
                CLEAR G_ANS.
                PERFORM EXISTING_SKU_BEFORE_DETAIL_SCR.
    Begin of DEVK939178
    Set top line of sku table to 1 and resolve nested screen calls
                TBCL3-TOP_LINE = 1.
                LEAVE TO SCREEN 9002.
               call screen 9002.
    End of DEVK939178
              ENDIF.
            ELSE.
              PERFORM EXISTING_SKU_BEFORE_DETAIL_SCR.
    Begin of DEVK939178
    Set top line of sku table to 1 and resolve nested screen calls
              TBCL3-TOP_LINE = 1.
              LEAVE TO SCREEN 9002.
             call screen 9002.
    End of DEVK939178
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    *endif.
    ENDFORM.                    " GOTO_SKU_HIER_SCREEN
    *&      Form  ADD_LINE_STR_GRP
          Add new entry to the store gropuing info
    FORM ADD_LINE_STR_GRP.
      G_OKCODE = OKCODE.
      CLEAR I_STORE_INFO.
      DESCRIBE TABLE I_STORE_INFO LINES L_LINE.
      DO 15 TIMES.
        I_STORE_INFO-LEVEL = C_LEVEL0.
        APPEND I_STORE_INFO.
        CLEAR I_STORE_INFO.
      ENDDO.
      G_ADD_CNT = G_ADD_CNT + 15.
      G_LINE_CNT = 1.
    ENDFORM.                    " ADD_LINE_STR_GRP
    *&      Form  DELETE_LINE_STR_GRP
    Delete selected entries which the user wants to perform a
    delete operation .
    FORM DELETE_LINE_STR_GRP.
    If the store grouping table is blank then issue message
    'No Entry is available for Selection.' .
      IF I_STORE_INFO[] IS INITIAL.
        MESSAGE S161(ZS) WITH TEXT-001.
      ELSE.
    Check if any entry in the store info table is checked for the delete
    If selected, then issue a confirmation message to the user in pop-up
        READ TABLE I_STORE_INFO WITH KEY SEL = C_X.
        IF SY-SUBRC = 0.
          CLEAR G_POPUP_TEXT.
          CLEAR G_LINE_TEXT.
          G_POPUP_TEXT =  TEXT-065 .
          PERFORM GET_POPUP_CONFIRM USING G_ANS
                                          G_POPUP_TEXT
                                          G_LINE_TEXT .
    If the user opts 'Yes' then delete the selected lines
          IF G_ANS = C_ANS1.
            DELETE I_STORE_INFO WHERE SEL = C_X.
            MESSAGE S161(ZS) WITH TEXT-002.
          ENDIF.
        ELSE.
    Do the same deletion operation even if user does not select the line
    but puts the cursor in any line entry.
          GET CURSOR LINE L_LINE.
          IF SY-SUBRC = 0.
            L_LINE = L_LINE + TBCL_HEAD1-TOP_LINE - 1.
            CLEAR G_POPUP_TEXT.
            G_POPUP_TEXT =  TEXT-065.
            CLEAR G_LINE_TEXT.
            PERFORM GET_POPUP_CONFIRM USING G_ANS
                                            G_POPUP_TEXT
                                           G_LINE_TEXT.
            IF G_ANS = C_ANS1.
              DELETE I_STORE_INFO INDEX L_LINE.
    Upon successful delete operation issue a success message to the user
              MESSAGE S161(ZS) WITH TEXT-002.
            ENDIF.
          ELSE.
            MESSAGE S161(ZS) WITH TEXT-006.
          ENDIF.
        ENDIF.
      ENDIF.
      DESCRIBE TABLE I_STORE_INFO LINES G_ADD_CNT.
    ENDFORM.                    " DELETE_LINE_STR_GRP
    *&      Form  SELECT_ALL_ENTRIES
    When the user selects the 'Select All' button, then select all the
    entries of the store grouping table by setting the SEL field to X for
    each entry
    FORM SELECT_ALL_ENTRIES.
      IF I_STORE_INFO[] IS INITIAL.
    If the store grouping table is blank then issue message
    'No Entry is available for Selection.' .
        MESSAGE S161(ZS) WITH TEXT-001.
      ELSE.
        LOOP AT I_STORE_INFO .
          I_STORE_INFO-SEL = C_X.
          MODIFY I_STORE_INFO.
        ENDLOOP.
        G_OKCODE = OKCODE.
      ENDIF.
    ENDFORM.                    " SELECT_ALL_ENTRIES
    *&      Form  DESELECT_ALL_ENTRIES
          Deselect all the entries in the table
    FORM DESELECT_ALL_ENTRIES.
      IF I_STORE_INFO[] IS INITIAL.
    If the store grouping table is blank then issue message
    'No Entry is available for Selection.' .
        MESSAGE S161(ZS) WITH TEXT-001.
      ELSE.
        LOOP AT I_STORE_INFO .
          I_STORE_INFO-SEL = C_SPACE.
          MODIFY I_STORE_INFO.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " DESELECT_ALL_ENTRIES
    *&      Form  SAVE_PROMO
          Save the promo Event.
    FORM SAVE_PROMO.
      DATA: L_DATUM LIKE SY-DATUM,
            L_SUBRC LIKE SY-SUBRC .
    Populate dept/class/subclass if sku or style is not blank
      PERFORM POPULATE_DEPT_CLASS.
      DATA: G_PROMONO LIKE ZSDRETL_RMPHEAD-PP_ID.
      IF G_PROMO_CHG_FLAG = C_X.
        G_PROMONO = G_PROMO_ID.
      ELSE.
    Get number range for the promo
        CALL FUNCTION 'NUMBER_GET_NEXT'
             EXPORTING
                  NR_RANGE_NR   = C_NR_OBJ1
                  OBJECT        = C_NROBJ
                  QUANTITY      = '1'
                  IGNORE_BUFFER = C_X
             IMPORTING
                  NUMBER        = G_PROMONO.
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
      IF NOT G_PROMONO IS INITIAL.
        REFRESH I_RMPHEAD.
        CLEAR   WA_RMPHEAD.
    If Override flag is set for any SKU end that promo first
        READ TABLE I_SKU_INFO WITH KEY OVERRIDE = C_X.
        IF SY-SUBRC = 0.
         perform end_existing_promo .
        ENDIF.
    Populate Header information for Promo event
        REFRESH I_RMPHEAD.
        CLEAR   WA_RMPHEAD.
        IF SY-DYNNR = '9006'.
          WA_RMPHEAD-PP_ID = G_PROMONO.
          WA_RMPHEAD-ID_TYPE = C_P.
          WA_RMPHEAD-PLTYP = ZPRICELIST-ZLIST.
          WA_RMPHEAD-APPROVE = CHK_APR.
          WA_RMPHEAD-ERDAT = SY-DATUM.
          WA_RMPHEAD-ERNAM = SY-UNAME.
          WA_RMPHEAD-ID_DESC = G_PDESC.
          WA_RMPHEAD-START_DATE = ZSDRETL_RMPHEAD-START_DATE.
          WA_RMPHEAD-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
          WA_RMPHEAD-CLEARANCE = C_SPACE.
          WA_RMPHEAD-PROMO_TYPE = G_PTYPE.
          APPEND WA_RMPHEAD TO I_RMPHEAD.
          CLEAR  WA_RMPHEAD.
        ELSE.
          WA_RMPHEAD-PP_ID = G_PROMONO.
          WA_RMPHEAD-ID_TYPE = C_P.
          WA_RMPHEAD-PLTYP = G_PRICELIST.
          WA_RMPHEAD-APPROVE = CHK_APR.
          WA_RMPHEAD-ERDAT = SY-DATUM.
          WA_RMPHEAD-ERNAM = SY-UNAME.
          WA_RMPHEAD-ID_DESC = G_PDESC.
          WA_RMPHEAD-START_DATE = ZSDRETL_RMPHEAD-START_DATE.
          L_SUBRC = 4.
          LOOP AT I_SKU_INFO.
            IF I_SKU_INFO-END_DATE GE ZSDRETL_RMPHEAD-START_DATE .
          if i_sku_info-end_date ge sy-datum.
              L_SUBRC = 0.
              EXIT.
            ENDIF.
          ENDLOOP.
          IF L_SUBRC = 4.
            L_DATUM = ZSDRETL_RMPHEAD-START_DATE - 1.
          l_datum = sy-datum - 1.
            WA_RMPHEAD-END_DATE = L_DATUM.
          ELSE.
            WA_RMPHEAD-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
          ENDIF.
          WA_RMPHEAD-CLEARANCE = G_CHK_CLR.
          WA_RMPHEAD-PROMO_TYPE = G_PROMO_TYPE.
          APPEND WA_RMPHEAD TO I_RMPHEAD.
          CLEAR  WA_RMPHEAD.
        ENDIF.
        IF NOT I_RMPHEAD[] IS INITIAL.
          MODIFY ZSDRETL_RMPHEAD FROM TABLE I_RMPHEAD.
          IF SY-SUBRC = 0.
            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
                 EXPORTING
                      PERCENTAGE = 0
                      TEXT       = TEXT-067.
            COMMIT WORK.
          ENDIF.
        ENDIF.
    Populate Store information for Promo event
        REFRESH I_RMPSTORE.
        CLEAR   WA_RMPSTORE.
        IF SY-DYNNR = '9006' OR G_PROMO_PLTYP = C_X.
          WA_RMPSTORE-PP_ID = G_PROMONO.
          WA_RMPSTORE-RECNO = 0.
          WA_RMPSTORE-START_DATE = ZSDRETL_RMPHEAD-START_DATE.
          WA_RMPSTORE-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
          WA_RMPSTORE-STORE_LEVEL = C_LEVEL6.
          WA_RMPDETAIL-ID_TYPE = C_P.
          WA_RMPDETAIL-PLTYP = G_PRICELIST.
          APPEND WA_RMPSTORE TO I_RMPSTORE.
          CLEAR WA_RMPSTORE.
        ELSE.
          LOOP AT I_STORE_INFO.
            WA_RMPSTORE-PP_ID = G_PROMONO.
            WA_RMPSTORE-RECNO = SY-TABIX.
            WA_RMPSTORE-START_DATE = ZSDRETL_RMPHEAD-START_DATE.
            WA_RMPSTORE-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
            WA_RMPSTORE-REGION_ID = I_STORE_INFO-REGION_ID.
            WA_RMPSTORE-DIST_ID = I_STORE_INFO-DIST_ID.
            WA_RMPSTORE-AREA_ID = I_STORE_INFO-AREA_ID.
            WA_RMPSTORE-STORE_ID = I_STORE_INFO-STORE_ID.
            WA_RMPSTORE-ATTR_VAL = I_STORE_INFO-ATTR_VAL.
            WA_RMPSTORE-STORE_LEVEL = I_STORE_INFO-LEVEL.
            WA_RMPSTORE-ID_TYPE = C_P.
            WA_RMPSTORE-PLTYP = G_PRICELIST.
            APPEND WA_RMPSTORE TO I_RMPSTORE.
            CLEAR WA_RMPSTORE.
          ENDLOOP.
        ENDIF.
        IF NOT I_RMPSTORE[] IS INITIAL.
          IF NOT I_RMPSTORE_TEMP[] IS INITIAL.
            READ TABLE I_RMPSTORE_TEMP INTO WA_RMPSTORE INDEX 1.
            IF SY-SUBRC = 0.
              PERFORM ENQUEUE USING WA_RMPSTORE-PP_ID.
            ENDIF.
            DELETE ZSDRETL_RMPSTORE FROM TABLE I_RMPSTORE_TEMP.
            IF SY-SUBRC = 0.
              COMMIT WORK.
              PERFORM DEQUE.
              REFRESH I_RMPSTORE_TEMP.
            ENDIF.
          ENDIF.
          MODIFY ZSDRETL_RMPSTORE FROM TABLE I_RMPSTORE.
          IF SY-SUBRC = 0.
            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
                 EXPORTING
                      PERCENTAGE = 0
                      TEXT       = TEXT-066.
            COMMIT WORK.
          ENDIF.
        ENDIF.
    Populate SKU information for Promo event
        CLEAR: WA_RMPDETAIL , I_RMPDETAIL[].
        IF SY-DYNNR = '9006'.
          WA_RMPDETAIL-PP_ID = G_PROMONO.
          WA_RMPDETAIL-RECNO = 0.
          WA_RMPDETAIL-START_DATE = ZSDRETL_RMPHEAD-START_DATE.
          WA_RMPDETAIL-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
          WA_RMPDETAIL-VALUE = G_VAL_PLTYP.
          WA_RMPDETAIL-ZLEVEL = C_LEVEL1.
          APPEND WA_RMPDETAIL TO I_RMPDETAIL.
          CLEAR  WA_RMPDETAIL.
        ELSE.
          LOOP AT I_SKU_INFO.
            WA_RMPDETAIL-PP_ID = G_PROMONO.
            WA_RMPDETAIL-RECNO = SY-TABIX.
            WA_RMPDETAIL-START_DATE = I_SKU_INFO-START_DATE.
            IF ZSDRETL_RMPHEAD-END_DATE LT ZSDRETL_RMPHEAD-START_DATE.
          if zsdretl_rmphead-end_date lt sy-datum.
              WA_RMPDETAIL-END_DATE = ZSDRETL_RMPHEAD-END_DATE.
            ELSE.
              WA_RMPDETAIL-END_DATE = I_SKU_INFO-END_DATE.
            ENDIF.
            WA_RMPDETAIL-DEPT = I_SKU_INFO-DEPT.
            WA_RMPDETAIL-CLASS = I_SKU_INFO-CLASS.
            WA_RMPDETAIL-SUB_CLASS = I_SKU_INFO-SUB_CLASS.
            WA_RMPDETAIL-STYLE = I_SKU_INFO-STYLE.
            WA_RMPDETAIL-SKU = I_SKU_INFO-SKU.
            WA_RMPDETAIL-VALUE = I_SKU_INFO-VALUE.
            WA_RMPDETAIL-BASIC_PRICE = I_SKU_INFO-KBETR.
            WA_RMPDETAIL-ZLEVEL = I_SKU_INFO-TYPE.
            WA_RMPDETAIL-TOP_UP = I_SKU_INFO-TOP_UP.
            WA_RMPDETAIL-OVERRIDE = I_SKU_INFO-OVERRIDE.
            WA_RMPDETAIL-ZLEVEL = I_SKU_INFO-TYPE.
            WA_RMPDETAIL-REF_PROMO = I_SKU_INFO-REF_PROMO.
            WA_RMPDETAIL-ID_TYPE = C_P.
            WA_RMPDETAIL-PLTYP = G_PRICELIST.
            APPEND WA_RMPDETAIL TO I_RMPDETAIL.
            CLEAR  WA_RMPDETAIL.
          ENDLOOP.
        ENDIF.
        IF NOT I_RMPDETAIL[] IS INITIAL.
          IF NOT I_RMPDETAIL_TEMP[] IS INITIAL.
            READ TABLE I_RMPDETAIL_TEMP INTO WA_RMPDETAIL INDEX 1.
            IF SY-SUBRC = 0.
              PERFORM ENQUEUE USING WA_RMPDETAIL-PP_ID.
            ENDIF.
            DELETE ZSDRETL_RMPDETL FROM TABLE I_RMPDETAIL_TEMP.
            IF SY-SUBRC = 0.
              COMMIT WORK.
              PERFORM DEQUE.
              REFRESH I_RMPDETAIL_TEMP.
            ENDIF.
          ENDIF.
          MODIFY ZSDRETL_RMPDETL FROM TABLE I_RMPDETAIL.
          IF SY-SUBRC = 0.
            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
                 EXPORTING
                      PERCENTAGE = 0
                      TEXT       = TEXT-068.
            COMMIT WORK.
          ENDIF.
        ENDIF.
        IF SY-SUBRC = 0.
          IF G_PROMO_CHG_FLAG = C_X.
            MESSAGE S161(ZS)
                 WITH TEXT-046 G_PROMONO TEXT-048.
          ELSE.
            MESSAGE S161(ZS)
                   WITH TEXT-046 G_PROMONO TEXT-049.
          ENDIF.
          LEAVE TO SCREEN 9000.
        ENDIF.
      ENDIF.
    ENDFORM.                    " SAVE_PROMO
    *&      Form  EXIT_FROM_HEADER_SCREEN
          Exit from header screen
    FORM EXIT_FROM_HEADER_SCREEN.
    in case of view promo and view pricing , come back to the view/copy
    screen
      IF G_MAIN_OKCODE = 'VRPR' AND (  G_PROMO_VIEW_FLAG = C_X
                                    OR G_PRICING_VIEW_FLAG = C_X ).
        LEAVE TO SCREEN 9007.
      ELSE.
    if store grouping info table is empty then come back to the main menu
        IF I_STORE_INFO[] IS INITIAL.
          LEAVE TO SCREEN 9000.
        ELSE.
    if store grouping info contains a blank record then come to main menu
          READ TABLE I_STORE_INFO INDEX 1.
          IF SY-SUBRC = 0 AND I_STORE_INFO-REGION_ID IS INITIAL
                          AND I_SKU_INFO[] IS INITIAL.
            LEAVE TO SCREEN 9000.
          ENDIF.
    if SKU info table is blank then issue message if the user wants to
    exit from the header screen without entring the promo/pricing detail
          IF I_SKU_INFO[] IS INITIAL.
            CLEAR G_ANS .
            IF G_MAIN_OKCODE = 'CRPR' OR G_MAIN_OKCODE = 'PRCC'.
              G_POPUP_TEXT = TEXT-069.
            ELSE.
              G_POPUP_TEXT = TEXT-070.
            ENDIF.
    Call FM for pop-up message
            CLEAR G_LINE_TEXT.
            PERFORM GET_POPUP_CONFIRM USING G_ANS G_POPUP_TEXT G_LINE_TEXT.
            IF G_ANS = C_ANS1.
              LEAVE TO SCREEN 9000.
            ENDIF.
          ELSE.
    if sku info is avilable & user presses exit then a message is issued
    if the user wants to leave without saving the promo/pricing event
            CLEAR G_ANS .
            IF G_MAIN_OKCODE = 'CRPR' OR G_MAIN_OKCODE = 'PRCC'.
              G_POPUP_TEXT = TEXT-071.
            ELSE.
              G_POPUP_TEXT = TEXT-072.
            ENDIF.
    Call FM for pop-up message
            CLEAR G_LINE_TEXT.
            PERFORM GET_POPUP_CONFIRM USING G_ANS G_POPUP_TEXT G_LINE_TEXT.
    If user presses 'Yes' then go back to the main menu
            IF G_ANS = C_ANS1.
              LEAVE TO SCREEN 9000.
    if user pressed 'No' then prompts the message if the user wants to go
    back without saving if it says 'Yes' , then go to the main menu and if
    it says 'No' then save the event and go back to main menu
            ELSEIF G_ANS = C_ANS2.
              CLEAR G_ANS .
                 message s161(zs) with text-164.
                 exit.
             IF G_MAIN_OKCODE = 'CRPR' OR G_MAIN_OKCODE = 'PRCC'.
               G_POPUP_TEXT = TEXT-073.
             ELSE.
               G_POPUP_TEXT = TEXT-074.
             ENDIF.
    Call FM for pop-up message
             CLEAR G_LINE_TEXT.
           PERFORM GET_POPUP_CONFIRM USING G_ANS G_POPUP_TEXT G_LINE_TEXT.
             IF G_ANS = C_ANS1.
               IF G_MAIN_OKCODE = 'CRPR' OR G_MAIN_OKCODE = 'PRCC'.
    Call save pricing subroutine to save the pricing event
                 MESSAGE S161(ZS) WITH TEXT-164.
                 perform save_pricing.
               ELSE.
    Call save promo subroutine to save the promo event
                 perform save_promo.
                 MESSAGE S161(ZS) WITH TEXT-164.
               ENDIF.
             ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    " EXIT_FROM_HEADER_SCREEN
    *&      Form  VIEW_PROMOS
      Call subroutine to view all the pre-existing promos that are
      available for the selected lines
    FORM VIEW_PROMOS.
      CASE SY-DYNNR.
        WHEN '9001'.
          G_DYNNR = SY-DYNNR.
    Display all the promo that are already exist for the selected entries
    in store grouping table
    Begin of DEVK939178
    logic is changed to check if any existing promo available with higher
    store hierarchy
          PERFORM VIEW_PRE_PROMO_STRGRP.
    End of DEVK939178
        WHEN '9002'.
          G_DYNNR = SY-DYNNR.
    Display all the promo that are already exist for the selected entries
    in sku hierarchy table
    Begin of DEVK939196
          PERFORM VIEW_PROMO_FOR_SKUHIER1 .
    End of DEVK939196
      ENDCASE.
    ENDFORM.                    " VIEW_PROMOS
    *&      Form  VIEW_PRICING
          View the existing pricing if available for an entry
    FORM VIEW_PRICING.
      CASE SY-DYNNR.
        WHEN '9001'.
          G_DYNNR = SY-DYNNR.
    Display all the pricings that are already exist for  selected entries
    in store grouping table
          PERFORM VIEW_PRE_PROMO_STRGRP .
        WHEN '9002'.
          G_DYNNR = SY-DYNNR.
    Display all the pricings that are already exist for  selected entries
    in sku hierarchy table
          PERFORM VIEW_PROMO_FOR_SKUHIER1.
      ENDCASE.
    ENDFORM.                    " VIEW_PRICING
    *&      Form  VIEW_PROMO_FOR_STRGRP
          Prepare the ALV scenarios to display the existing promos
    FORM VIEW_PROMO_FOR_STRGRP.
      REFRESH I_FIELDCAT.
      CLEAR   I_FIELDCAT.
    Populate the field catalogue table for Stor grouping fields
      PERFORM POPULATE_CATALOGUE USING:
    Position       Fieldname  Tablename  Title              Display
       '01'          'REGION_ID'    'I_STR_GRP1'    TEXT-075     ' ',
       '02'          'DIST_ID'      'I_STR_GRP1'    TEXT-076     ' ',
       '03'          'AREA_ID'      'I_STR_GRP1'    TEXT-077     ' ',
       '04'          'ATTR_VAL'     'I_STR_GRP1'    TEXT-078     ' ',
       '05'          'STORE_ID'     'I_STR_GRP1'    TEXT-079     ' ',
       '06'          'PP_ID'        'I_STR_GRP1'    TEXT-084     ' ',
       '07'          'START_DATE'   'I_STR_GRP1'    TEXT-082     ' ',
       '08'          'END_DATE'     'I_STR_GRP1'    TEXT-083     ' ',
       '09'          'PROMO_TYPE'   'I_STR_GRP1'    TEXT-080     ' ',
       '10'          'CLEARANCE'    'I_STR_GRP1'    TEXT-081     ' ',
       '11'          'ID_DESC'      'I_STR_GRP1'    TEXT-161     ' '.
      LOOP AT I_FIELDCAT INTO STRUCT_CAT.
        CASE STRUCT_CAT-FIELDNAME.
          WHEN 'PROMO_TYPE'.
            IF G_PROMO_FLAG = C_X.
              STRUCT_CAT-NO_OUT = C_SPACE.
            ELSE.
              STRUCT_CAT-NO_OUT = C_X.
            ENDIF.
          WHEN 'CLEARANCE'.
            IF G_PROMO_FLAG = C_X.
              STRUCT_CAT-NO_OUT = C_SPACE.
            ELSE.
              STRUCT_CAT-NO_OUT = C_X.
            ENDIF.
          WHEN 'START_DATE'.
            IF G_PROMO_FLAG = C_X.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-082.
            ELSE.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-085.
            ENDIF.
          WHEN 'END_DATE'.
            IF G_PROMO_FLAG = C_X.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-083.
            ELSE.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-086.
            ENDIF.
          WHEN 'PP_ID'.
            IF G_PROMO_FLAG = C_X.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-084 .
            ELSE.
              STRUCT_CAT-REPTEXT_DDIC = TEXT-088.
            ENDIF.
        ENDCASE.
        MODIFY I_FIELDCAT FROM STRUCT_CAT INDEX SY-TABIX.
      ENDLOOP.
      CLEAR STRUCT_LAYOUT.
      STRUCT_LAYOUT-COLWIDTH_OPTIMIZE = C_X.
      IF G_PROMO_FLAG = C_X.
        STRUCT_LAYOUT-WINDOW_TITLEBAR   = TEXT-089.
      ELSE.
        STRUCT_LAYOUT-WINDOW_TITLEBAR   = TEXT-090.
      ENDIF.
      STRUCT_LAYOUT-ZEBRA = C_X.
    Populate sort table
      PERFORM POPULATE_SORT_TABLE.
    populate event table
      PERFORM POPULATE_EVENT_TABLE.
    Call function to display the list of existing promos in ALV format
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM = G_REPID
                IS_LAYOUT          = STRUCT_LAYOUT
                IT_FIELDCAT        = I_FIELDCAT
                IT_SORT            = I_SORTTAB[]
                IT_EVENTS          = I_EVENT[]
           TABLES
                T_OUTTAB           = I_STR_GRP1
           EXCEPTIONS
                PROGRAM_ERROR      = 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.                    " VIEW_PROMO_FOR_STRGRP
    *&      Form  POPULATE_CATALOGUE
          Populating general informations for output format
         -->p_position     Column position
         -->p_fname        Field name
         -->p_tabname      Internal table name
         -->p_title        Title
         -->p_display      Display/No display
    FORM POPULATE_CATALOGUE USING    P_POSITION TYPE SYCUCOL
                                     P_FNAME    TYPE FIELDNAME
                                     P_TABNAME  TYPE TABNAME
                                     P_TITLE    TYP

    Hi sahil,
    probably one or more fields used for comparison in for all entries where clause is not part of the refered table. The error is given for one of your for all entries select - I don't know which one it was. Check this condition: Are all fields like i.e. I_SKU_HIER-PP_ID parts of the used tables?
    Maybe ther is a typo.
    Regards,
    Clemens

  • Hi all..very urgent..error fixing..full marks wud be given for the answers.

    Hi guys..facing problem in error fixing.in bdc...prgm is in ECC 6.0..
    prgm is
    *& Report  ZCJI_CNV_POSTGOODSRECEIPT_ALT1
    REPORT  ZCJI_CNV_POSTGOODSRECEIPT_ALT1.
    *REPORT ZCJI_CNV_POSTGOODSRECEIPT_ALT NO STANDARD PAGE HEADING
                      LINE-SIZE 255.
    *Program:  ZCJI_CNV_POSTGOODSRECEIPT_ALT                               *
    *Function: This program is used to carry out GR transaction MB0A for
             CJI import logistics purchase orders. The objective is to
             choose only those purchase orders for which billing has been
             carried out already. Once GR document is posted, the status
             of delivery document items is also updated.
    DATE        AUTHOR      SCR #         CHANGE DESCRIPTION
    11/04/03   Ohm Reddy   BRD # 90      Initial version
                           DEVK928402
    02/25/04   Ohm Reddy                 In BDC session for posting Goods
                           DEVK929329    Receipt document, update document
                                         date with system local date
                                         (SYST-DATLO) rather than with
                                         system date(SYST-DATUM)
    06/23/04   Ohm Reddy                 Post GR only when sales order
                           DEVK931359    item SKU and PO item SKU matches
    03/21/05   Alex Mutia  13829/DEVK934135                              *
                           Phase II modifications:                       *
                           1. Added criteria in the selection screen;    *
                           2. Modified record selection logic;           *
                           3. Added fields in the Control Report;        *
    04/08/05   Alex Mutia  13829/DEVK934262                              *
                           Fixed bug in processing MFRGR field;          *
    04/13/05   Alex Mutia  13829/DEVK934283                              *
                           1.Fixed bug in assigning error record pointers*
                             to part-success part-error POs;             *
                           2.Added SO and SO line item numbers in report;*
                           3.Compressed report to fit in 255 columns;    *
    04/27/05   Alex Mutia  13829/DEVK934384                              *
                           1.Material documents retrieval changed from   *
                             MSEG to EKBE for performance.               *
                           2.Display empty ALV columns when no records   *
                             were selected for processing;               *
    TYPE-POOLS: SLIS.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA:   G_LAYOUT_ALV_SPEC TYPE SLIS_LAYOUT_ALV.
    *INCLUDE ZMMCJI_CNV_POSTGR_BDC2.
    INCLUDE ZCJI_CNV_PGR_DATA_ALT.
    $--"DEVK934135 Begin;-$
    INITIALIZATION.                                  "DEVK934135
      PERFORM INITIALIZE_VENDOR.                     "DEVK934135
      PERFORM INITIALIZE_PRICE.                      "DEVK934135
    $--"DEVK934135 End;---$
    START-OF-SELECTION.
      IF P_LIFNR IS INITIAL.                         "DEVK934135
        PERFORM INITIALIZE_VENDOR.                   "DEVK934135
      ENDIF.                                         "DEVK934135
      IF P_NETPR IS INITIAL.                         "DEVK934135
        PERFORM INITIALIZE_PRICE.                    "DEVK934135
      ENDIF.                                         "DEVK934135
      PERFORM 100_SELECT_DATA.
    END-OF-SELECTION.
    CHECK: g_return_code IS INITIAL.               "DEVK934384
    IF NOT itab[] IS INITIAL.                      "DEVK934384
      IF G_RETURN_CODE IS INITIAL  AND               "DEVK934384
         NOT ITAB[] IS INITIAL.                      "DEVK934384
        PERFORM 200_PROCESS_DATA.
        PERFORM 300_POST_DOCUMENTS.
        PERFORM 399_RETRIEVE_DOCUMENTS.
        PERFORM REORG_ITAB.
        PERFORM BUILD_HEADER_CATALOG.
        PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
        SY_COPY = SYST.
        PERFORM SHOW_TRANSACTION_ERRORS.
      ELSE.                                          "DEVK934384
        PERFORM SHOW_EMPTY_LIST.                     "DEVK934384
      ENDIF.
    *&      Form  SELECT_DATA
    FORM 100_SELECT_DATA.
      PERFORM 110_SELECT_OPEN_PO_QTY.
      CHECK: G_RETURN_CODE IS INITIAL.
      PERFORM 120_SELECT_PO_BILLED_QTY.
    ENDFORM.                    " 100_SELECT_DATA
    *&      Form  110_SELECT_OPEN_PO_QTY
    FORM 110_SELECT_OPEN_PO_QTY.
    $--"DEVK934135 Begin;-$
      SELECT T1~VGBEL
             T1~VGPOS
             T1~VBELN
             T1~POSNR
             T1~MATNR
             T1~LFIMG
             T1~MFRGR
             T2~LIFEX
             T2~LFDAT
             FROM       LIPS AS T1
             INNER JOIN LIKP AS T2
             ON T1MANDT EQ T2MANDT  AND
                T1VBELN EQ T2VBELN
             APPENDING CORRESPONDING FIELDS OF TABLE ITAB_LIPS
             WHERE T1~MANDT EQ SY-MANDT         "client is system client
              AND  T1~VBELN IN S_VBELN          "billing doc in criteria
              AND  T1~VGBEL IN S_EBELN          "po reference in criteria
              AND  T1~PSTYV EQ 'ELN'            "billing item category
              AND  T1~WERKS EQ 'JDC1'           "plant
              AND  T1~MFRGR NE 'C'              "material freight group
              AND  T2~LIFNR EQ  P_LIFNR.        "vendor is param vendor
      LOOP AT ITAB_LIPS.
        ITAB_LIPS-EBELN = ITAB_LIPS-VGBEL.
        ITAB_LIPS-EBELP = ITAB_LIPS-VGPOS.
        ITAB_LIPS-CHARG = ITAB_LIPS-LIFEX.
        ITAB_LIPS-OLDMFRGR
                        = ITAB_LIPS-MFRGR.
        MODIFY ITAB_LIPS.
      ENDLOOP.
      IF ITAB_LIPS[] IS INITIAL.
      MESSAGE i032(zm) WITH text-m11.              "DEVK934384
        G_RETURN_CODE = 'X'.
        EXIT.
      ENDIF.
      SELECT T1~EBELN
             T1~EBELP
             T1~LICHA
             T2~MATNR
             T2~MENGE
             T2~LOEKZ
             T2~ELIKZ
             T2~NETPR
             T3~IHREZ
             FROM       EKET AS T1
             INNER JOIN EKPO AS T2
             ON T1MANDT EQ T2MANDT  AND
                T1EBELN EQ T2EBELN  AND
                T1EBELP EQ T2EBELP
             INNER JOIN EKKO AS T3
             ON T1MANDT EQ T3MANDT  AND
                T1EBELN EQ T3EBELN
             APPENDING CORRESPONDING FIELDS OF TABLE ITAB
             FOR ALL ENTRIES IN ITAB_LIPS
             WHERE T1~MANDT EQ SY-MANDT         "client is system client
              AND  T1~EBELN EQ ITAB_LIPS-EBELN  "po# matches w/ billing
              AND  T3~BSART IN ('YT', 'YN').    "po type
      IF ITAB[] IS INITIAL.
      MESSAGE i032(zm) WITH text-m11.              "DEVK934384
        G_RETURN_CODE = 'X'.
        EXIT.
      ENDIF.
    $--"DEVK934135 End;---$
    delete any duplicate entries in itab table
      SORT ITAB BY EBELN EBELP.
      DELETE ADJACENT DUPLICATES FROM ITAB COMPARING EBELN EBELP.
      LOOP AT ITAB.
        ITAB-RECID = SY-TABIX.
        IF NOT ITAB-IHREZ IS INITIAL.
          WHILE ITAB-IHREZ+0(1) EQ ' '.
            SHIFT ITAB-IHREZ.
          ENDWHILE.
          WHILE ITAB-IHREZ+9(1) EQ ' '.
            SHIFT ITAB-IHREZ RIGHT.
            ITAB-IHREZ+0(1) = '0'.
          ENDWHILE.
        ENDIF.
        MODIFY ITAB.
      ENDLOOP.
    delete  ITAB_LIPS entries that are not there in ITAB
      LOOP AT ITAB_LIPS.
        SY_COPY-TABIX = SY-TABIX.
        CLEAR ITAB.
        READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
                                 EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
        SY_COPY-INDEX = SY-TABIX.
        IF SY-SUBRC NE 0.
          DELETE ITAB_LIPS.
        ELSE.
          ITAB_LIPS-IHREZ = ITAB-IHREZ.
          MODIFY ITAB_LIPS INDEX SY_COPY-TABIX.
          ITAB-MFRGR = ITAB_LIPS-MFRGR.
          ITAB-LIFEX = ITAB_LIPS-LIFEX.
          ITAB-OLDMFRGR
                     = ITAB_LIPS-OLDMFRGR.
          MODIFY ITAB      INDEX SY_COPY-INDEX.
        ENDIF.
      ENDLOOP.
    select the goods receipts documents created for the above deliveries
      SELECT EBELN EBELP BELNR GJAHR
                     INTO TABLE ITAB_EKBE FROM EKBE
                                FOR ALL ENTRIES IN ITAB_LIPS
                                WHERE EBELN = ITAB_LIPS-EBELN
                                AND   EBELP = ITAB_LIPS-EBELP.
    select Goods receipt data from MSEG table for the above deliveries
      IF NOT ITAB_EKBE[] IS INITIAL.
        SELECT EBELN EBELP CHARG BWART MENGE MBLNR MJAHR ZEILE
                       INTO TABLE ITAB_MSEG FROM MSEG
                                  FOR ALL ENTRIES IN ITAB_EKBE
                                  WHERE MBLNR = ITAB_EKBE-BELNR
                                  AND   MJAHR = ITAB_EKBE-GJAHR.
      ENDIF.
      SORT ITAB_MSEG BY EBELN EBELP CHARG.
    calculate the GR qty eligible to be posted
      SORT ITAB_LIPS BY EBELN EBELP.
      LOOP AT ITAB_LIPS.
        ITAB_LIPS-POSTQTY = ITAB_LIPS-LFIMG.
        CLEAR ITAB_MSEG.
        LOOP AT ITAB_MSEG WHERE EBELN = ITAB_LIPS-EBELN
                          AND   EBELP = ITAB_LIPS-EBELP
                          AND   CHARG = ITAB_LIPS-CHARG.
          IF ITAB_MSEG-BWART = '101'.
            ITAB_LIPS-POSTQTY = ITAB_LIPS-POSTQTY - ITAB_MSEG-MENGE.
          ELSEIF ITAB_MSEG-BWART = '102'.
            ITAB_LIPS-POSTQTY = ITAB_LIPS-POSTQTY + ITAB_MSEG-MENGE.
          ENDIF.
        ENDLOOP.
        MODIFY ITAB_LIPS.
        CLEAR ITAB_LIPS.
      ENDLOOP.
      LOOP AT ITAB.
        ITAB-RECID = SY-TABIX.
        MODIFY ITAB.
        LOOP AT ITAB_LIPS WHERE EBELN EQ ITAB-EBELN
                           AND  EBELP EQ ITAB-EBELP.
          ITAB_LIPS-RECID = ITAB-RECID.
          MODIFY ITAB_LIPS.
        ENDLOOP.
      ENDLOOP.
    free the memory of unnecessary internal tables
    $--"DEVK934135 Begin;-$
      CLEAR: ITAB_EKBE.
      FREE:  ITAB_EKBE.
    $--"DEVK934135 End;---$
    ENDFORM.                    " 110_SELECT_OPEN_PO_QTY
    *&      Form  120_SELECT_PO_BILLED_QTY
    FORM 120_SELECT_PO_BILLED_QTY.
    $--"DEVK934135 Begin;-$
      SELECT T1~VBELN
             T1~POSNR
             T1~FKIMG
             T1~AUBEL
             T1~AUPOS
             APPENDING CORRESPONDING FIELDS OF TABLE ITAB_VBRP
             FROM       VBRP AS T1
             INNER JOIN VBRK AS T2
             ON T1MANDT EQ T2MANDT  AND
                T1VBELN EQ T2VBELN
             FOR ALL ENTRIES IN ITAB
             WHERE T1~MANDT EQ SY-MANDT         "client is system client
              AND  T1~VBELN EQ ITAB-IHREZ+0(10) "billing doc = your ref.
              AND  T2~FKSTO EQ ' '.             "status NOT cancelled
    Match ITAB-IHREZ <-> ITAB_VBRP-VBELN...
           ITAB-LICHA <-> ITAB_VBRP-POSNR...
      LOOP AT ITAB.
        SY_COPY-TABIX = SY-TABIX.
      Check your reference (IHREZ) field;
        IF ITAB-IHREZ IS INITIAL.                    "your-ref blank
          ITAB-ERRFA = 'X'.
          GT_ERROR-RECID = ITAB-RECID.
          GT_ERROR-ERRTX = TEXT-E0A.
          APPEND GT_ERROR.
        ELSE.                                        "your-ref NOT blank
          IF ITAB-IHREZ CO ' 0123456789'.            "your-ref numeric
          ENDIF.                                     "your-ref numeric
          IF SY-FDPOS NE 12.                         "your-ref NOT numeric
            ITAB-ERRFA = 'X'.
            GT_ERROR-RECID = ITAB-RECID.
            GT_ERROR-ERRTX = TEXT-E0A.
            APPEND GT_ERROR.
          ELSE.                                      "your-ref NOT numeric
          Check PO line item (LICHA) field;
            IF ITAB-LICHA IS INITIAL.                "line item blank
              ITAB-ERRFA = 'X'.
              GT_ERROR-RECID = ITAB-RECID.
              GT_ERROR-ERRTX = TEXT-E01.
              APPEND GT_ERROR.
            ELSE.                                    "line item NOT blank
              IF ITAB-LICHA CO ' 0123456789'.        "line item numeric
              ENDIF.                                 "line item numeric
              IF SY-FDPOS NE 15.                     "line item NOT numeric
                ITAB-ERRFA = 'X'.
                GT_ERROR-RECID = ITAB-RECID.
                GT_ERROR-ERRTX = TEXT-E01.
                APPEND GT_ERROR.
              ELSE.                                  "line item NOT numeric
                SY_COPY-SUBRC = 4.
                READ TABLE ITAB_VBRP
                     WITH KEY VBELN = ITAB-IHREZ+0(10)
                              POSNR = ITAB-LICHA+0(6)    BINARY SEARCH.
                SY_COPY-SUBRC = SY-SUBRC.
                IF SY_COPY-SUBRC NE 0.
                  ITAB-ERRFA = 'X'.
                  GT_ERROR-RECID = ITAB-RECID.
                  GT_ERROR-ERRTX = TEXT-E01.
                  APPEND GT_ERROR.
                ELSE.                                "DEVK934283
                  ITAB-AUBEL = ITAB_VBRP-AUBEL.      "DEVK934283
                  ITAB-AUPOS = ITAB_VBRP-AUPOS.      "DEVK934283
                ENDIF.
              ENDIF.                                 "line item NOT numeric
            ENDIF.                                   "line item blank
          ENDIF.                                     "your-ref NOT numeric
        ENDIF.                                       "your-ref blank
      Check ID - LIFEX;
        IF ITAB-LIFEX EQ ' '.                        "LIFEX is blank
          ITAB-ERRFB = 'X'.
          GT_ERROR-RECID = ITAB-RECID.
          GT_ERROR-ERRTX = TEXT-ERB.
          APPEND GT_ERROR.
        ELSE.                                        "LIFEX is NOT blank
        Check ID - MFRGR;
          IF ITAB-MFRGR NE 'G'.                      "MFRGR NOT G
            ITAB-ERRFC = 'X'.
            GT_ERROR-RECID = ITAB-RECID.
            GT_ERROR-ERRTX = TEXT-ERC.
            APPEND GT_ERROR.
          ENDIF.                                     "MFRGR NOT G
        ENDIF.                                       "LIFEX is blank
      Check PO - Deletion indicator;
        IF ITAB-LOEKZ NE ' '.                        "LOEKZ NOT blank
          ITAB-ERRFD = 'X'.
          GT_ERROR-RECID = ITAB-RECID.
          GT_ERROR-ERRTX = TEXT-ERD.
          APPEND GT_ERROR.
        ENDIF.                                       "LOEKZ NOT blank
      Check PO - Delivery completed flag;
        IF ITAB-ELIKZ NE ' '.                        "ELIKZ NOT blank
          ITAB-ERRFE = 'X'.
          GT_ERROR-RECID = ITAB-RECID.
          GT_ERROR-ERRTX = TEXT-ERE.
          APPEND GT_ERROR.
        ENDIF.                                       "ELIKZ NOT blank
      Check PO - Net price;
        IF ITAB-NETPR LT P_NETPR.                    "price < parameter
          ITAB-ERRFF = 'X'.
          GT_ERROR-RECID = ITAB-RECID.
          CONCATENATE TEXT-ERF
                      G_NETPR
                      TEXT-USD
                      INTO GT_ERROR-ERRTX SEPARATED BY SPACE.
          APPEND GT_ERROR.
        ENDIF.                                       "ELIKZ NOT blank
        IF ITAB-AUPOS EQ '000000'.
          CLEAR: ITAB-AUPOS.
        ENDIF.
        MODIFY ITAB INDEX SY_COPY-TABIX.
      ENDLOOP.
      LOOP AT ITAB.                                  "DEVK934283
        READ TABLE ITAB_LIPS                         "DEVK934283
             WITH KEY VGBEL = ITAB-EBELN             "DEVK934283
                      VGPOS = ITAB-EBELP             "DEVK934283
             BINARY SEARCH.                          "DEVK934283
        SY_COPY-TABIX = SY-TABIX.                    "DEVK934283
        IF SY-SUBRC EQ 0.                            "DEVK934283
          ITAB_LIPS-AUBEL = ITAB-AUBEL.              "DEVK934283
          ITAB_LIPS-AUPOS = ITAB-AUPOS.              "DEVK934283
          MODIFY ITAB_LIPS INDEX SY_COPY-TABIX.      "DEVK934283
        ENDIF.                                       "DEVK934283
      ENDLOOP.                                       "DEVK934283
    Transfer errors from ITAB to ITAB_LIPS;
      LOOP AT ITAB WHERE ERRFA EQ 'X'
                    OR   ERRFB EQ 'X'
                    OR   ERRFC EQ 'X'
                    OR   ERRFD EQ 'X'
                    OR   ERRFE EQ 'X'
                    OR   ERRFF EQ 'X'.
        READ TABLE ITAB_LIPS
             WITH KEY VGBEL = ITAB-EBELN
                      VGPOS = ITAB-EBELP  BINARY SEARCH.
        SY_COPY-TABIX = SY-TABIX.
        IF SY-SUBRC EQ 0.
          ITAB_LIPS-ERRFA    = ITAB-ERRFA.
          ITAB_LIPS-ERRFB    = ITAB-ERRFB.
          ITAB_LIPS-ERRFC    = ITAB-ERRFC.
          ITAB_LIPS-ERRFD    = ITAB-ERRFD.
          ITAB_LIPS-ERRFE    = ITAB-ERRFE.
          ITAB_LIPS-ERRFF    = ITAB-ERRFF.
          ITAB_LIPS-NEWMFRGR = 'E'.
          MODIFY ITAB_LIPS INDEX SY_COPY-TABIX.
        ENDIF.
      ENDLOOP.
    $--"DEVK934135 End;---$
    ENDFORM.                    " 120_SELECT_PO_BILLED_QTY
    *&      Form  200_PROCESS_DATA
    FORM 200_PROCESS_DATA.
      PERFORM 210_CONSOLIDATE_DATA.
      PERFORM 220_PROCESS_DATA.
    ENDFORM.                    " 200_PROCESS_DATA
    *&      Form  210_consolidate_data
    FORM 210_CONSOLIDATE_DATA.
    Get the PO item open qty and billed qty into one table
      LOOP AT ITAB.
        CLEAR ITAB_LIPS.
        LOOP AT ITAB_LIPS WHERE EBELN = ITAB-EBELN
                          AND   EBELP = ITAB-EBELP.
         ITAB-IDQTY = ITAB-IDQTY + ITAB_LIPS-POSTQTY.      "inbound delv qty
        ENDLOOP.
        CLEAR ITAB_VBRP.
        LOOP AT ITAB_VBRP WHERE VBELN = ITAB-IHREZ
                          AND   POSNR = ITAB-LICHA.
          ITAB-FKIMG = ITAB-FKIMG + ITAB_VBRP-FKIMG.    "PO item billed qty
        ENDLOOP.
        CLEAR ITAB_MSEG.
        LOOP AT ITAB_MSEG WHERE EBELN = ITAB-EBELN
                          AND   EBELP = ITAB-EBELP.
          IF ITAB_MSEG-BWART = '101'.
           ITAB-GRQTY = ITAB-GRQTY + ITAB_MSEG-MENGE.        "PO item GR qty
          ELSEIF ITAB_MSEG-BWART = '102'.
           ITAB-GRQTY = ITAB-GRQTY - ITAB_MSEG-MENGE.        "PO item GR qty
          ELSEIF ITAB_MSEG-BWART = '122'.            "DEVK934135
           ITAB-GRQTY = ITAB-GRQTY - ITAB_MSEG-MENGE.        "PO item GR qty
          ENDIF.
        ENDLOOP.
        ITAB-RCVQTY = ITAB-FKIMG - ITAB-GRQTY.  "qty billed but not received
    calculate the quantity to be processed for which GRs are to be posted
        IF ITAB-RCVQTY > 0 AND ITAB-RCVQTY > ITAB-IDQTY.
          ITAB-PROCQTY = ITAB-IDQTY.
        ELSEIF ITAB-RCVQTY > 0 AND ITAB-RCVQTY < ITAB-IDQTY.
          ITAB-PROCQTY = ITAB-RCVQTY.
        ELSEIF ITAB-RCVQTY > 0 AND ITAB-RCVQTY = ITAB-IDQTY.
          ITAB-PROCQTY = ITAB-IDQTY.
        ENDIF.
        MODIFY ITAB.
        CLEAR ITAB.
      ENDLOOP.
    free the memory of unnecessary internal tables
    $--"DEVK934135 Begin;-$
      CLEAR: ITAB_MSEG.
      FREE:  ITAB_MSEG.
    $--"DEVK934135 End;---$
    ENDFORM.                    " 210_consolidate_data
    *&      Form  220_PROCESS_DATA
    FORM 220_PROCESS_DATA.
      DATA: L0_FISCAL_PERIOD  LIKE BAPI0002_4-FISCAL_PERIOD,
            L0_FISCAL_YEAR    LIKE BAPI0002_4-FISCAL_YEAR,
            L0_RETURN         LIKE BAPIRETURN1,
            L1_FISCAL_PERIOD  LIKE BAPI0002_4-FISCAL_PERIOD,
            L1_FISCAL_YEAR    LIKE BAPI0002_4-FISCAL_YEAR,
            L1_RETURN         LIKE BAPIRETURN1.
      SORT ITAB_LIPS BY VGBEL VGPOS EBELN EBELP
                        LFDAT DESCENDING POSNR ASCENDING.
      SORT ITAB BY EBELN EBELP.
    Calculate the GR quanities to be posted for all inbound deliveries
      LOOP AT ITAB_LIPS.
        AT NEW EBELP.
          CLEAR ITAB.
          CLEAR V_RCVQTY.
          READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
                                   EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
          V_RCVQTY = ITAB-RCVQTY.
        ENDAT.
        IF ITAB-PROCQTY GT 0.
          IF ITAB_LIPS-POSTQTY GT ITAB-PROCQTY.
            ITAB_LIPS-PROCQTY = ITAB-PROCQTY.
            ITAB_LIPS-NEWMFRGR = 'B'.
            ITAB-PROCQTY = 0.
          ELSEIF ITAB_LIPS-POSTQTY LT ITAB-PROCQTY.
            ITAB_LIPS-PROCQTY = ITAB_LIPS-POSTQTY.
            ITAB_LIPS-NEWMFRGR = 'C'.
            ITAB-PROCQTY = ITAB-PROCQTY - ITAB_LIPS-POSTQTY.
          ELSEIF ITAB_LIPS-POSTQTY EQ ITAB-PROCQTY.
            ITAB_LIPS-PROCQTY = ITAB_LIPS-POSTQTY.
            ITAB_LIPS-NEWMFRGR = 'C'.
            ITAB-PROCQTY = 0.
          ENDIF.
    Compare the Inbound delivery processing quantity with the pending
    billing quantity to write it in the report log
          IF ITAB_LIPS-POSTQTY LT V_RCVQTY.
            ITAB_LIPS-GRIND = 'D'.            "GR will be created for ID qty
            V_RCVQTY = V_RCVQTY - ITAB_LIPS-POSTQTY.
          ELSEIF ITAB_LIPS-POSTQTY GT V_RCVQTY.
            ITAB_LIPS-GRIND = 'B'.       "GR will be created for Billied qty
            V_RCVQTY = 0.
          ELSEIF ITAB_LIPS-POSTQTY EQ V_RCVQTY.
            ITAB_LIPS-GRIND = 'S'.            "Billed qty is equal to ID qty
            V_RCVQTY = 0.
          ENDIF.
        ELSE.
    Decide why this inbound delivery could not have GR quantity -
    excess GR quantity or unavailable Billing quantity
          IF ITAB-RCVQTY LT ITAB-IDQTY.
            ITAB_LIPS-GRIND = 'C'.      "GR not created - Lack of Billed qty
          ENDIF.
          IF ITAB-RCVQTY LT 0.
            ITAB_LIPS-GRIND = 'A'.       "GR not created - GR qty > Bill qty
          ENDIF.
        ENDIF.
        MODIFY ITAB_LIPS.
        CLEAR ITAB_LIPS.
      ENDLOOP.
    $--"DEVK934135-Begin;-$
      LOOP AT ITAB_LIPS.
        AT NEW EBELP.
          CLEAR ITAB.
          CLEAR V_RCVQTY.
          READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-EBELN
                                   EBELP = ITAB_LIPS-EBELP BINARY SEARCH.
          V_RCVQTY = ITAB-FKIMG - ITAB-GRQTY.
        ENDAT.
        IF ITAB_LIPS-ERRFA IS INITIAL.
          IF V_RCVQTY EQ 0.
            ITAB_LIPS-ERRF1    = 'X'.
            ITAB_LIPS-NEWMFRGR = 'E'.
            GT_ERROR-RECID = ITAB-RECID.
            GT_ERROR-ERRTX = TEXT-R01.
            APPEND GT_ERROR.
          ELSEIF V_RCVQTY LT 0.
            ITAB_LIPS-ERRF2    = 'X'.
            ITAB_LIPS-NEWMFRGR = 'E'.
            GT_ERROR-RECID = ITAB-RECID.
            GT_ERROR-ERRTX = TEXT-R02.
            APPEND GT_ERROR.
          ELSEIF V_RCVQTY GT 0.
            IF V_RCVQTY EQ ITAB_LIPS-LFIMG.
              ITAB_LIPS-ERRF3    = 'X'.
              ITAB_LIPS-NEWMFRGR = 'C'.
            ELSEIF V_RCVQTY GT ITAB_LIPS-LFIMG.
              ITAB_LIPS-ERRF4    = 'X'.
              ITAB_LIPS-NEWMFRGR = 'C'.
              ITAB_LIPS-PROCQTY  =  ITAB_LIPS-LFIMG.
              GT_ERROR-RECID = ITAB-RECID.
              GT_ERROR-ERRTX = TEXT-R04.
              APPEND GT_ERROR.
            ELSEIF V_RCVQTY LT ITAB_LIPS-LFIMG.
              ITAB_LIPS-ERRF5    = 'X'.
              ITAB_LIPS-NEWMFRGR = 'E'.
              GT_ERROR-RECID = ITAB-RECID.
              GT_ERROR-ERRTX = TEXT-R05.
              APPEND GT_ERROR.
            ENDIF.
          ENDIF.
        ENDIF.
        CLEAR: ITAB_LIPS-BLDAT.
        READ TABLE ITAB WITH KEY EBELN = ITAB_LIPS-VGBEL
                                 EBELP = ITAB_LIPS-VGPOS BINARY SEARCH.
        SELECT SINGLE FKDAT
               FROM  VBRK
               INTO (ITAB_LIPS-BLDAT)
               WHERE VBELN EQ ITAB-IHREZ+0(10).
        CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
             EXPORTING
                  COMPANYCODEID = 'C800'
                  POSTING_DATE  =  ITAB_LIPS-BLDAT
             IMPORTING
                  FISCAL_YEAR   =  L0_FISCAL_YEAR
                  FISCAL_PERIOD =  L0_FISCAL_PERIOD
                  RETURN        =  L0_RETURN.
        CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
             EXPORTING
                  COMPANYCODEID = 'C800'
                  POSTING_DATE  =  SY-DATLO
             IMPORTING
                  FISCAL_YEAR   =  L1_FISCAL_YEAR
                  FISCAL_PERIOD =  L1_FISCAL_PERIOD
                  RETURN        =  L1_RETURN.
        IF L0_FISCAL_YEAR   EQ L1_FISCAL_YEAR  AND
           L0_FISCAL_PERIOD EQ L1_FISCAL_PERIOD.
          ITAB_LIPS-BUDAT = ITAB_LIPS-BLDAT.
        ELSE.
          ITAB_LIPS-BUDAT = SY-DATLO.
        ENDIF.
        MODIFY ITAB_LIPS.
        CLEAR ITAB_LIPS.
      ENDLOOP.
    $--"DEVK934135-End;---$
    collect all the inbound deliveries for which goods receipt are to be
    made / material freight status  are to be updated
      LOOP AT ITAB_LIPS    WHERE ERRFA IS INITIAL       "DEVK934135
                            AND  ERRFB IS INITIAL       "DEVK934135
                            AND  ERRFC IS INITIAL       "DEVK934135
                            AND  ERRFD IS INITIAL       "DEVK934135
                            AND  ERRFE IS INITIAL       "DEVK934135
                            AND  ERRFF IS INITIAL       "DEVK934135
                            AND  ERRF1 IS INITIAL       "DEVK934135
                            AND  ERRF2 IS INITIAL       "DEVK934135
                            AND  ERRF5 IS INITIAL.      "DEVK934135
        IF ITAB_LIPS-PROCQTY GT 0 AND ITAB_LIPS-LFIMG NE 0.
          ITAB_LIPS_G-VBELN = ITAB_LIPS-VBELN.
          ITAB_LIPS_G-BLDAT = ITAB_LIPS-BLDAT.       "DEVK934135
          ITAB_LIPS_G-BUDAT = ITAB_LIPS-BUDAT.       "DEVK934135
          ITAB_LIPS_G-IHREZ = ITAB_LIPS-IHREZ.       "DEVK934135
          APPEND ITAB_LIPS_G.
        ENDIF.
      ENDLOOP.
      SORT ITAB_LIPS_G BY VBELN.
      DELETE ADJACENT DUPLICATES FROM ITAB_LIPS_G.
      LOOP AT ITAB_LIPS    WHERE NOT ERRFA IS INITIAL       "DEVK934135
                            OR   NOT ERRFB IS INITIAL       "DEVK934135
                            OR   NOT ERRFC IS INITIAL       "DEVK934135
                            OR   NOT ERRFD IS INITIAL       "DEVK934135
                            OR   NOT ERRFE IS INITIAL       "DEVK934135
                            OR   NOT ERRFF IS INITIAL       "DEVK934135
                            OR   NOT ERRF1 IS INITIAL       "DEVK934135
                            OR   NOT ERRF2 IS INITIAL       "DEVK934135
                            OR   NOT ERRF3 IS INITIAL       "DEVK934135
                            OR   NOT ERRF4 IS INITIAL       "DEVK934135
                            OR   NOT ERRF5 IS INITIAL.      "DEVK934135
          ITAB_LIPS_X-VBELN = ITAB_LIPS-VBELN.
          ITAB_LIPS_X-BLDAT = ITAB_LIPS-BLDAT.       "DEVK934135
          ITAB_LIPS_X-BUDAT = ITAB_LIPS-BUDAT.       "DEVK934135
          ITAB_LIPS_X-IHREZ = ITAB_LIPS-IHREZ.       "DEVK934135
          APPEND ITAB_LIPS_X.
      ENDLOOP.
      SORT ITAB_LIPS_X BY VBELN.
      DELETE ADJACENT DUPLICATES FROM ITAB_LIPS_X.
      LOOP AT ITAB_LIPS.
          READ TABLE ITAB WITH KEY RECID = ITAB_LIPS-RECID.
          SY_COPY-INDEX = SY-TABIX.
          IF SY-SUBRC EQ 0.
            ITAB-ERRFA = ITAB_LIPS-ERRFA.
            ITAB-ERRFB = ITAB_LIPS-ERRFB.
            ITAB-ERRFC = ITAB_LIPS-ERRFC.
            ITAB-ERRFD = ITAB_LIPS-ERRFD.
            ITAB-ERRFE = ITAB_LIPS-ERRFE.
            ITAB-ERRFF = ITAB_LIPS-ERRFF.
            ITAB-ERRF1 = ITAB_LIPS-ERRF1.
            ITAB-ERRF2 = ITAB_LIPS-ERRF2.
            ITAB-ERRF3 = ITAB_LIPS-ERRF3.
            ITAB-ERRF4 = ITAB_LIPS-ERRF4.
            ITAB-ERRF5 = ITAB_LIPS-ERRF5.
            MODIFY ITAB INDEX SY_COPY-INDEX.
          ENDIF.
      ENDLOOP.
    Decide the goods receipt item number for the delivery items that are
    to be processed. Delivery items with zero quantities are not shown up
    in MB0A transaction for GR
      CLEAR V_DEL_ZERO.
      IF NOT ITAB_LIPS_G[] IS INITIAL.
        SELECT VBELN POSNR LFIMG
                  INTO CORRESPONDING FIELDS OF TABLE ITAB_LIPS_Z FROM LIPS
                                  FOR ALL ENTRIES IN ITAB_LIPS_G
                                  WHERE VBELN = ITAB_LIPS_G-VBELN
                                  AND LFIMG EQ 0.
        IF SY-SUBRC EQ 0.
          V_DEL_ZERO = 'X'.
          CLEAR ITAB_LIPS_Z.
          FREE ITAB_LIPS_Z.
          SELECT VBELN POSNR LFIMG
                   INTO CORRESPONDING FIELDS OF TABLE ITAB_LIPS_Z FROM LIPS
                                    FOR ALL ENTRIES IN ITAB_LIPS_G
                                    WHERE VBELN = ITAB_LIPS_G-VBELN.
          SORT ITAB_LIPS_Z BY VBELN POSNR.
          LOOP AT ITAB_LIPS_Z.
            AT NEW VBELN.
              CLEAR V_ZEILE.
            ENDAT.
            IF ITAB_LIPS_Z-LFIMG NE 0.
              V_ZEILE = V_ZEILE + 1.
            ENDIF.
            ITAB_LIPS_Z-ZEILE = V_ZEILE.
            MODIFY ITAB_LIPS_Z.
          ENDLOOP.
        ELSE.
          V_DEL_ZERO = ' '.
        ENDIF.
      ENDIF.
      SORT ITAB_LIPS_Z BY VBELN POSNR.
      LOOP AT ITAB_LIPS.
        IF V_DEL_ZERO = ' '.
          ITAB_LIPS-ZEILE = ITAB_LIPS-POSNR.
        ELSE.
          CLEAR ITAB_LIPS_Z.
          READ TABLE ITAB_LIPS_Z WITH KEY VBELN = ITAB_LIPS-VBELN
                                    POSNR = ITAB_LIPS-POSNR BINARY SEARCH.
          ITAB_LIPS-ZEILE = ITAB_LIPS_Z-ZEILE.
        ENDIF.
        MODIFY ITAB_LIPS.
      ENDLOOP.
      SORT ITAB_LIPS BY VBELN DESCENDING POSNR ASCENDING.
    ENDFORM.                    " 220_PROCESS_DATA
    *&      Form  300_post_documents
    FORM 300_POST_DOCUMENTS.
      LOOP AT ITAB_LIPS_G.
        PERFORM 310_POST_GR_DOC.
        MODIFY ITAB_LIPS_G.
        CLEAR ITAB_LIPS_G.
      ENDLOOP.
      CLEAR: BDCDATA, BDCDATA[].
      ITAB_LIPS_R[] = ITAB_LIPS_G[].
      ITAB_LIPS_G[] = ITAB_LIPS_X[].
      LOOP AT ITAB_LIPS_G.
        PERFORM 350_UPDATE_DELIVERY_DOC.
        MODIFY ITAB_LIPS_G.
        CLEAR ITAB_LIPS_G.
      ENDLOOP.
    PERFORM close_group.
    ENDFORM.                    " 300_post_documents
    *&      Form  310_POST_GR_DOC
    FORM 310_POST_GR_DOC.
      PERFORM 320_POST_GR_HEADER.
      LOOP AT ITAB_LIPS WHERE VBELN = ITAB_LIPS_G-VBELN
                        AND   LFIMG NE 0
                        AND PROCQTY NE 0
                        AND ERRFA   IS INITIAL
                        AND ERRFB   IS INITIAL
                        AND ERRFC   IS INITIAL
                        AND ERRFD   IS INITIAL
                        AND ERRFE   IS INITIAL
                        AND ERRFF   IS INITIAL
                        AND ERRF1   IS INITIAL
                        AND ERRF2   IS INITIAL
                        AND ERRF5   IS INITIAL.
        IF ITAB_LIPS-ZEILE EQ 1.
          PERFORM 335_POST_GR_ITEMS.
        ELSE.
          PERFORM 330_POST_GR_ITEMS.
        ENDIF.
      ENDLOOP.
      PERFORM 340_SAVE_GR_DOC.
    ENDFORM.                    " 310_POST_GR_DOC
    *&      Form  320_POST_GR_HEADER
    FORM 320_POST_GR_HEADER.
      DATA: L_BLDAT    TYPE SYDATUM,
            L_BUDAT    TYPE SYDATUM.
      WRITE: ITAB_LIPS_G-BLDAT TO L_BLDAT,
             ITAB_LIPS_G-BUDAT TO L_BUDAT.
      IF ITAB_LIPS_G-IHREZ+0(10) NE '0000000000'  AND
         ITAB_LIPS_G-IHREZ+0(10) NE '          '.
        WHILE ITAB_LIPS_G-IHREZ+0(1) EQ '0'.
          SHIFT ITAB_LIPS_G-IHREZ.
        ENDWHILE.
      ENDIF.
      perform bdc_dynpro      using 'SAPMM07M' '0201'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RM07M-VLIEF'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'MKPF-BKTXT'
                                    ITAB_LIPS_G-IHREZ.
      perform bdc_field       using 'MKPF-BLDAT'
                                    L_BLDAT.
      perform bdc_field       using 'MKPF-BUDAT'
                                    L_BUDAT.
      perform bdc_field       using 'RM07M-BWARTWE'
                                    '101'.
      perform bdc_field       using 'RM07M-WERKS'
      perform bdc_field       using 'RM07M-LGORT'
      perform bdc_field       using 'RM07M-XNUVO'
                                    'X'.
      perform bdc_field       using 'XFULL'
      perform bdc_field       using 'RM07M-VLIEF'
                                    ITAB_LIPS_G-VBELN.
      perform bdc_dynpro      using 'SAPMM07M' '0221'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=SELN'.
      perform bdc_dynpro      using 'SAPMM07M' '0221'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MSEG-ERFMG(01)'.
    ENDFORM.                    " 320_POST_GR_HEADER
    *&      Form  330_POST_GR_ITEMS
    FORM 330_POST_GR_ITEMS.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=KLA'.
      perform bdc_dynpro      using 'SAPMM07M' '1501'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=OK'.
      VV_ZEILE = ITAB_LIPS-ZEILE.
      PERFORM BDC_FIELD       USING 'RM07M-ZEILE'
                                    VV_ZEILE.
      perform bdc_dynpro      using 'SAPMM07M' '0221'.
      perform bdc_field       using 'RM07M-XSELK(01)'
                                    'X'.
      VV_PROCQTY = ITAB_LIPS-PROCQTY.
      perform bdc_field       using 'MSEG-ERFMG(01)'
                                    VV_PROCQTY.
      perform bdc_field       using 'MSEG-CHARG(01)'
                                    ITAB_LIPS-CHARG.
      perform bdc_field       using 'MSEG-INSMK(01)'
                                    'S'.
    ENDFORM.                    " 330_POST_GR_ITEMS
    *&      Form  340_SAVE_GR_DOC
    FORM 340_SAVE_GR_DOC.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BU'.
      CLEAR V_FAIL_IND.
      PERFORM BDC_TRANSACTION USING 'MB0A'
                              CHANGING V_FAIL_IND.
    ENDFORM.                    " 340_SAVE_GR_DOC
    *&      Form  350_UPDATE_DELIVERY_DOC
    FORM 350_UPDATE_DELIVERY_DOC.
      PERFORM 360_UPDATE_DELIVERY_HEADER.
      LOOP AT ITAB_LIPS WHERE VBELN = ITAB_LIPS_G-VBELN
                         AND  ERRFA IS INITIAL
                         AND  ERRFB IS INITIAL
                         AND  ERRFC IS INITIAL.
                       AND  errfd IS INITIAL
                       AND  errfe IS INITIAL.
        PERFORM 370_UPDATE_DELIVERY_ITEMS.
      ENDLOOP.
      PERFORM 380_SAVE_DELIVERY_DOC.
    ENDFORM.                    " 350_UPDATE_DELIVERY_DOC
    *&      Form  360_UPDATE_DELIVERY_HEADER
    FORM 360_UPDATE_DELIVERY_HEADER.
      perform bdc_dynpro      using 'SAPMV50A' '0108'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'LIKP-VBELN'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=UELA'.
      perform bdc_field       using 'LIKP-VBELN'
                                    ITAB_LIPS_G-VBELN.
    ENDFORM.                    " 360_UPDATE_DELIVERY_HEADER
    *&      Form  370_UPDATE_DELIVERY_ITEMS
    FORM 370_UPDATE_DELIVERY_ITEMS.
      IF ITAB_LIPS-ERRFD EQ 'X'  OR
         ITAB_LIPS-ERRFE EQ 'X'  OR
         ITAB_LIPS-ERRFF EQ 'X'.
        ITAB_LIPS-NEWMFRGR = 'E'.
      ENDIF.
      perform bdc_dynpro      using 'SAPMV50A' '0270'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RV50A-VERUR_LA'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=POPO'.
      perform bdc_dynpro      using 'SAPMV50A' '0111'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RV50A-POSNR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=POPO'.
      VV_POSNR =  ITAB_LIPS-POSNR.
      perform bdc_field       using 'RV50A-POSNR'
                                    VV_POSNR.
      perform bdc_dynpro      using 'SAPMV50A' '0270'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'LIPS-POSNR(01)'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=LAPD'.
      perform bdc_field       using 'RV50A-LIPS_SELKZ(01)'
                                    'X'.
      perform bdc_dynpro      using 'SAPMV50A' '0570'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'LIPS-MFRGR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BACK'.
      perform bdc_field       using 'LIPS-MFRGR'
                                    ITAB_LIPS-NEWMFRGR.
    ENDFORM.                    " 370_UPDATE_DELIVERY_ITEMS
    *&      Form  380_SAVE_DELIVERY_DOC
    FORM 380_SAVE_DELIVERY_DOC.
      perform bdc_dynpro      using 'SAPMV50A' '0270'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RV50A-VERUR_LA'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=SICH'.
    If GR document is not posted successfully, then do not update the
    status of delivery document
      CLEAR V_FAIL_IND.
      PERFORM BDC_TRANSACTION USING 'VL32'
                              CHANGING V_FAIL_IND.
      IF V_FAIL_IND = 'X'.
        CALL FUNCTION 'BDC_INSERT'
             EXPORTING
                  TCODE     = 'VL32'
             TABLES
                  DYNPROTAB = BDCDATA.
        REFRESH BDCDATA.
      ENDIF.
    ENDFORM.                    " 380_SAVE_DELIVERY_DOC
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE
                         CHANGING V_FAILURE_IND.
      DATA: L_MSTRING(480).
      DATA: L_SUBRC LIKE SY-SUBRC.
      REFRESH MESSTAB.
      CALL TRANSACTION TCODE USING BDCDATA
                       MODE   CTUMODE
                       UPDATE CUPDATE
                       MESSAGES INTO MESSTAB.
      L_SUBRC = SY-SUBRC.
      CLEAR V_FAILURE_IND.
      IF L_SUBRC NE 0.
        V_FAILURE_IND = 'X'.
        CLEAR V_IND.
        LOOP AT MESSTAB.
          SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
                                    AND   ARBGB = MESSTAB-MSGID
                                    AND   MSGNR = MESSTAB-MSGNR.
          IF SY-SUBRC = 0.
            L_MSTRING = T100-TEXT.
            IF L_MSTRING CS '&1'.
              REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
              REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
              REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
              REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
            ELSE.
              REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
              REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
              REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
              REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
            ENDIF.
            CONDENSE L_MSTRING.
            IF MESSTAB-MSGTYP = 'E'.
              ERRORTAB-TCODE       = TCODE.
              ERRORTAB-VBELN       = ITAB_LIPS_G-VBELN.
              ERRORTAB-ERROR_TEXT  = L_MSTRING.
              APPEND ERRORTAB.
              V_IND = 'X'.
            ENDIF.
          ELSE.
            IF MESSTAB-MSGTYP = 'E'.
              ERRORTAB-TCODE       = TCODE.
              ERRORTAB-VBELN       = ITAB_LIPS_G-VBELN.
              ERRORTAB-ERROR_TEXT  = TEXT-U01.
              APPEND ERRORTAB.
              V_IND = 'X'.
            ENDIF.
          ENDIF.
        ENDLOOP.
        IF V_IND IS INITIAL.
          ERRORTAB-TCODE       = TCODE.
          ERRORTAB-VBELN       = ITAB_LIPS_G-VBELN.
          ERRORTAB-ERROR_TEXT  = TEXT-U01.
          APPEND ERRORTAB.
        ENDIF.
      ELSE.
        IF TCODE = 'MB0A'.
          LOOP AT MESSTAB WHERE MSGTYP = 'S'
                          AND   MSGID = 'M7'
                          AND   MSGNR = '060'.
            IF NOT MESSTAB-MSGV1 IS INITIAL.
              ITAB_LIPS_G-MBLNR = MESSTAB-MSGV1.
            ENDIF.
          ENDLOOP.
        ELSEIF TCODE = 'VL32'.
          ITAB_LIPS_G-DLVIND = 'X'.
        ENDIF.
      ENDIF.
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
               EXPORTING
                    CLIENT   = SY-MANDT
                    GROUP    = E_GROUP
                    USER     = E_USER
                    KEEP     = E_KEEP
                    HOLDDATE = E_HDATE.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
             EXPORTING
                  TCODE     = TCODE
             TABLES
                  DYNPROTAB = BDCDATA.
      ENDIF.
      REFRESH BDCDATA.
    ENDFORM.
    *&      Form  335_POST_GR_ITEMS
    FORM 335_POST_GR_ITEMS.
      VV_ZEILE = ITAB_LIPS-ZEILE.
      perform bdc_field       using 'RM07M-XSELK(01)'
                                    'X'.
      VV_PROCQTY = ITAB_LIPS-PROCQTY.
      perform bdc_field       using 'MSEG-ERFMG(01)'
                                    VV_PROCQTY.
      perform bdc_field       using 'MSEG-CHARG(01)'
                                    ITAB_LIPS-CHARG.
      perform bdc_field       using 'MSEG-INSMK(01)'
                                    'S'.
    ENDFORM.                    " 335_POST_GR_ITEMS
    *&      Form  399_RETRIEVE_DOCUMENTS
    &----

    that is a warning message only ... But if you want to fix it then replace all 000 with 001 in your write statement. The position instead of 000 you have to give 001
    write : /000(10)....instead of this
    write : /1(10) or write : /(10) or write : /001(10) any thing you can use.
    regards
    shiba dutta

  • Need help in BADI...full marks wud be given.

    Hi guys,
    i am implementing a badi for a transaction MIRO...i got the BADI which is AC_DOCUMENT ..but this is working fine,but want a badi for iline items..
    can anybody help me in finding the right badi for line items..

    Hi,
    YOu may use the BADIs:
    MB_DOCUMENT_BADI and MB_MIGO_BADI for ur req.
    Pls reward poins if useful.
    Regards,
    Renjith Michael.

  • Hi very urgent Plllllzzzzzzzzz

    Hi can anybody help me in copying the  bdc program from 4.5b to ecc 6.0...
    very urgent plzzzzzz
    marks wud be given definetly
    regards
    Sahil

    Hi,
       Just copy it .  First convert it into unocde by checking checkbo in the attributes.
    Then check syntax and try to solve the syntax error.
    convert "   open dataset p_path for output in text mode" into
      "   open dataset p_path for output in text mode encoding default. ".
    Replace FM upload and dwnload with GUI_IPLOAD and GUI_DOWNLOAD.
    Regards,
    prashant

  • Hi all..very urgent..problem with the transaction VL10.

    Hi gurus,i having trouble in executing the transaction VL10.
    the procedure is as follows.
    1.Enter the transaction VL10
    2.Select Sales orders Tab
    Enter sales document number 16283319 to 16283320
    Remaining all fields should be blank
    3.Click on Execute Icon.
    4.Selected  two Sales Documents.
    5.Clickd  on Back ground icon.
    6.Error i am getting is OBJECT REQUESTED IS CURRENTLY LOCKED BY USER PSREDDY.
    Can anybody help me with this..very urgent and full marks wud be given.

    Hi Sahil,
    Go to transaction SM12, put user name PSREDDY.
    Exceute it, and select all entry and delete.
    After follow the same procedure, you followed early.
    Hope it will solve the problem.
    Regards
    Krishnendu

  • Hi all..very urgent

    Hi Gurus,
    Could you plz help me to collect the tables, structures,views, search helps and programs which uses PRODH3 and PRODH4 data elements...
    plz guys very urgent..
    marks wud definetly be given.
    Regards
    Sahil

    A900         
    ZPRODH4      
    A914         
    ZPRODH4      
    A915         
    A916         
    A918         
    A923         
    A924         
    A925         
    A926         
    A900         
    A914         
    A915         
    A916         
    A918         
    A923         
    A924         
    A925         
    A926         
    A928      
    A931      
    A937      
    A955      
    A966      
    S800      
    S800E     
    S801      
    S801E     
    S802             
    S802E            
    S803             
    S803E            
    S804             
    S804E            
    S805             
    S805E            
    S806             
    S806E          
    S821           
    S821E          
    S911           
    S911E          
    S912           
    S912E          
    S950           
    S950E          
    S951  
    S951E
    for prodh3
    A144           
    A148           
    A921           
    PRODH3         
    S020           
    S020E          
    S075           
    S075E          
    S800           
    S800E          
    S801              
    S801E             
    S802              
    S802E             
    S803              
    S803E             
    S804              
    S804E             
    S805              
    S805E                                                                               
    S806                                                                               
    S806E                                                                               
    S821                                                                               
    S821E                                                                               
    S911                                                                               
    S911E                                                                               
    S912                                                                               
    S912E                 
    S950  
    S950E 
    Message was edited by:
            Amit Singla
    Message was edited by:
            Amit Singla

  • Hi all..very urgent..error fixing..

    Hi i am running a program in ECC 6.0...its going for short dump..The possibilty of going for short dumb wud be here in the following code..kindly lookinto this in ECC 6.0..full marks wud be given
    -->  p1        text
    <--  p2        text
    FORM BUILD_HEADER_CATALOG_03.
      REFRESH: EVENTCAT.
      CLEAR EVENTCAT_LN.
      EVENTCAT_LN-NAME = 'TOP_OF_PAGE'.
      EVENTCAT_LN-FORM = 'TOP_OF_PAGE_01'.
      APPEND EVENTCAT_LN TO EVENTCAT.
    ENDFORM.                    " BUILD_HEADER_CATALOG_03
    *&      Form  BUILD_FIELD_CATALOGS_03
          text
    -->  p1        text
    <--  p2        text
    FORM BUILD_FIELD_CATALOGS_03.
      REFRESH: I_FIELDCAT.
    material
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'MATNR'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Material'.
      V_FIELDCAT_LN-REF_TABNAME   = 'S947'.
      V_FIELDCAT_LN-DDICTXT       = 'L'.
      V_FIELDCAT_LN-OUTPUTLEN     = 19.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    red/stop light icon
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'ICON1'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = ' '.
      V_FIELDCAT_LN-ICON          = 'X'.
      V_FIELDCAT_LN-OUTPUTLEN     = 2.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    yellow light icon
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'ICON2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = ' '.
      V_FIELDCAT_LN-ICON          = 'X'.
      V_FIELDCAT_LN-OUTPUTLEN     = 2.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    mvgr2
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'MVGR2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Dept.'.
      V_FIELDCAT_LN-REF_TABNAME   = 'MVKE'.
      V_FIELDCAT_LN-DDICTXT       = 'L'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-NO_OUT        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    mvgr3
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'MVGR3'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Class'.
      V_FIELDCAT_LN-REF_TABNAME   = 'MVKE'.
      V_FIELDCAT_LN-DDICTXT       = 'L'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-NO_OUT        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    mvgr4
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'MVGR4'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Sub-class'.
      V_FIELDCAT_LN-REF_TABNAME   = 'MVKE'.
      V_FIELDCAT_LN-DDICTXT       = 'L'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-NO_OUT        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    reference unit of measure
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'MEINS'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-DDICTXT       = 'L'.
      V_FIELDCAT_LN-OUTPUTLEN     = 3.
      V_FIELDCAT_LN-NO_OUT        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    allocation month 1
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'ALLOCATION1'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Alloc.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    booked qty month 1
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'BOOKED1'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Booked'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    diffirence qty month 1
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'DIFFERENCE1'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Diff'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    rejected qty month 1
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'REJECTED1'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Rej.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    allocation month 2
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'ALLOCATION2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Alloc.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    booked qty month 2
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'BOOKED2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Booked'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    diffirence qty month 2
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'DIFFERENCE2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Diff'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    rejected qty month 2
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'REJECTED2'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Rej.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    allocation month 3
      V_FIELDCAT_LN-FIELDNAME     = 'ALLOCATION3'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Alloc.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    booked qty month 3
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'BOOKED3'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Booked'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    diffirence qty month 3
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'DIFFERENCE3'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Diff'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    rejected qty month 3
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'REJECTED3'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Rej.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 6.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    total allocation
      V_FIELDCAT_LN-FIELDNAME     = 'TOTAL_ALLOCATION'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Alloc.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 7.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    total booked
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'TOTAL_BOOKED'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Booked'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 7.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    total difference
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'TOTAL_DIFFERENCE'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Diff'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 7.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    total rejected
      CLEAR: V_FIELDCAT_LN.
      V_FIELDCAT_LN-FIELDNAME     = 'TOTAL_REJECTED'.
      V_FIELDCAT_LN-TABNAME       = 'REPORT_03'.
      V_FIELDCAT_LN-SELTEXT_L     = 'Rej.'.
      V_FIELDCAT_LN-QFIELDNAME    = 'MEINS'.
      V_FIELDCAT_LN-REF_TABNAME   = 'VBAP'.
      V_FIELDCAT_LN-REF_FIELDNAME = 'KWMENG'.
      V_FIELDCAT_LN-QTABNAME      = 'REPORT_03'.
      V_FIELDCAT_LN-OUTPUTLEN     = 7.
      V_FIELDCAT_LN-JUST          = 'C'.
      V_FIELDCAT_LN-NO_ZERO       = 'X'.
      V_FIELDCAT_LN-DO_SUM        = 'X'.
      APPEND V_FIELDCAT_LN TO I_FIELDCAT.
    sort 1
      REFRESH: I_SORT.
      CLEAR: H_SORT.
      H_SORT-SPOS      = 1.
      H_SORT-FIELDNAME = 'MVGR2'.
      H_SORT-TABNAME   = 'REPORT_03'.
      H_SORT-UP        = 'X'.
      H_SORT-SUBTOT    = 'X'.
      APPEND H_SORT TO I_SORT.
      CLEAR: H_SORT.
      H_SORT-SPOS      = 2.
      H_SORT-FIELDNAME = 'MVGR3'.
      H_SORT-TABNAME   = 'REPORT_03'.
      H_SORT-UP        = 'X'.
      H_SORT-SUBTOT    = 'X'.
      APPEND H_SORT TO I_SORT.
      CLEAR: H_SORT.
      H_SORT-SPOS      = 3.
      H_SORT-FIELDNAME = 'MVGR4'.
      H_SORT-TABNAME   = 'REPORT_03'.
      H_SORT-UP        = 'X'.
      H_SORT-SUBTOT    = 'X'.
      APPEND H_SORT TO I_SORT.
      CLEAR: H_SORT.
      H_SORT-SPOS      = 4.
      H_SORT-FIELDNAME = 'MATNR'.
      H_SORT-TABNAME   = 'REPORT_03'.
      H_SORT-UP        = 'X'.
      H_SORT-SUBTOT    = ''.
      H_SORT-GROUP     = ''.
      APPEND H_SORT TO I_SORT.
    ENDFORM.                    " BUILD_FIELD_CATALOGS_03
    *&      Form  PERFORM_ALV_03
          text
    -->  p1        text
    <--  p2        text
    FORM PERFORM_ALV_03.
    layouts
      G_REPID = SY-REPID.
      LAYOUT-ZEBRA                = 'X'.
      LAYOUT-COLWIDTH_OPTIMIZE    = ''.
      LAYOUT-BOX_TABNAME          = '1'.
      LAYOUT-GET_SELINFOS         = 'X'.
      LAYOUT-DETAIL_POPUP         = 'X'.
      LAYOUT-NO_SUBTOTALS         = ''.
      LAYOUT-GROUP_CHANGE_EDIT    = 'X'.
      PRINT-NO_PRINT_SELINFOS     = ''.
      PRINT-NO_PRINT_LISTINFOS    = ''.
    Output a simple list (single line or several lines)
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = G_REPID
          IS_LAYOUT                = LAYOUT
          I_CALLBACK_PF_STATUS_SET = G_STATUS2
          I_CALLBACK_USER_COMMAND  = G_USER_COMMAND_01
          IT_FIELDCAT              = I_FIELDCAT
          I_DEFAULT                = 'X'
          I_SAVE                   = 'A'
          IT_EVENTS                = EVENTCAT
          IS_PRINT                 = PRINT
          IT_SORT                  = I_SORT[]
        TABLES
          T_OUTTAB                 = REPORT_03
        EXCEPTIONS
          PROGRAM_ERROR            = 1
          OTHERS                   = 2.
    ENDFORM.                    " PERFORM_ALV_03

    Hi Sahil,
       If you see in dumb screen, you can fix the exact line of code.
    Can you tell the line.
    Note: An arrow mark will be pointing your code where error occured and the description also will be there.
    Thanks,
    Rajesh

  • Need help in Idoc--very urgent.

    Hi guys,
    i am working on an object where i need to post the data from legacy system to F-27 transaction using Idoc.i hv found two idocs input_idoc_fidcc1 and input_idoc_fidcc2 for posting the data..
    Can anyone help in finding the right idoc for triggering the f-27 transaction with the reason...
    coz both are perfoming almost the same functionalities...
    its very urgent guys..
    kindly help me full marks wud be given...
    regards
    Sahil

    Hi,
    The function module is related to post the idoc type FIDCPP01
    and posts the complete FI document. and as coming to second function module along with Tax you can post item wise with holding tax dataalso. So you choose the required function module based on the data you need to post. If you need not post with holding tax details dont fo for second function modules.
    Reward if find useful

  • Hi problem with the transaction XD02.please help..full marks given

    Hi,
    I am running a transaction XD02 and providing the following details.
    Tcode: XD02
    Customer: J101
    Company Code: C800
    Sale Org: CJRP
    Dist Chan: 00
    Divison: CH
    <ENTER> and then
    Click on pushbutton "Other Communication" - the popup does not include option INT Internet mail (SMTP).it has got other options like fax,pager services,printer,remote mail,telephone but no internet mail.
    can anybody help me in adding this functionality.
    full marks wud be given for the right person..

    Hi, customer screens will come depending on our settings in SPRO. we can make them visible or invisible through our settings. Basically SD Consultants do that.
    any way. As you are using XD02, find out the customer account group and follow the steps for that account group in SPRO. the seetings will reflect in XD01, 02 and 03 transactions.
    But in your case may be you are doing the steps for different account group (sold-to, ship-to, bill-to..etc). You can find account group in KNA1 table.
    Save the entries and then check. try using logon again.

  • Runtime error...plz help me .ful amrks wud be given

    Hi gurus..
    m running a user defined transaction ZV48cji which includes all standard Programs..it gives short dump after running it..the description is as follows.
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_DYN_CALL_PARAM_MISSING', was
    not caught and
    therefore caused a runtime error.
    The reason for the exception is:
    A PERFORM was used to call the routine "GENERIERUNG_PRUEFEN" of the program
    "RV14ALLE".
    The current call contains 4 actual parameter(s),
    but the routine "GENERIERUNG_PRUEFEN" expects 5 parameters.
    can anybody help me hw to resolve this as this is a standard program..any solution..
    full marks wud be given for answers..
    waiting for the reply
    Regards
    Sahil

    hai..
    please give d exceptions condition in d function module .. den u won't get d dump...
    eg:
    CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          DOCUMENT_DATA              = W_DOC_DATA
          PUT_IN_OUTBOX              = 'X'
          SENDER_ADDRESS             = LD_SENDER_ADDRESS
          SENDER_ADDRESS_TYPE        = LD_SENDER_ADDRESS_TYPE
          COMMIT_WORK                = 'X'
        IMPORTING
          SENT_TO_ALL                = W_SENT_ALL
        TABLES
          PACKING_LIST               = T_PACKING_LIST
          CONTENTS_BIN               = T_ATTACHMENT
          CONTENTS_TXT               = IT_MESSAGE
          RECEIVERS                  = T_RECEIVERS
       <b> EXCEPTIONS
          TOO_MANY_RECEIVERS         = 1
          DOCUMENT_NOT_SENT          = 2
          DOCUMENT_TYPE_NOT_EXIST    = 3
          OPERATION_NO_AUTHORIZATION = 4
          PARAMETER_ERROR            = 5
          X_ERROR                    = 6
          ENQUEUE_ERROR              = 7
          OTHERS                     = 8.</b>

  • Set Page "HEIGHT" ---Very Urgent, Please Help me on this issue. Please.

    Hi all ,
    Very Urgent, Please Help me on this issue.
    when_now_form trigger i set set maximize the window and MDI. And my window and canvas is same height (1500). The formsweb.cfg also changed to 1500. But still I can not view full page on web. Where to I change the properties. Please help.
    Selvam

    Is your form running inside the browser window (with SeparateFrame=False)? If the browser is maximized, and your form is maximized, yet you cannot see the entire screen, you can run with SeparateFrame=True. You can do that on the browser line.

  • Hi need help..very urgent..

    Hi ABAPers,
    I am very new to ABAP..i need help in coding this following logic,,,
    Can anyone help me in coding this following logic..
    Step 1.  Retrieve customer number KUNNR from VBAK
    Step 2.  Pass customer number KUNNR to KNA1 and retrieve address number-ADANR value
    Step 3.  Pass ADANR value to ADRC table to retrieve NAME3
    Please do reply guys..
    full marks would be given for the right answer.
    Regards
    Sahil

    If Windows Live Mail can export the mailboxes in .mbox format then they can be imported into Mail. Otherwise, you would need to export the accounts to Thunderbird, Netscape, or Office Entourage in order to directly import into Mail.

  • EXIT NAME OR BADI FOR FIELD IN MIGO TRANSACTION (full poins will be given)

    Hai all,
    VERY URGENT REQ.
    In MIGO transaction, I want to know the BADI or EXIT NAME in which the following fields are avilable .
    Fields name: exgrp, EXCISE_ACTION
    exact screen field name is : J_1IEXHEAD-EXGRP
    J_1IEXHEAD-EXCISE_ACTION
    Full Points will be given for correct answer.
    Thanks in advance.
    s.senthil kumar

    Hi,
    Try this code .We can get the User exits and Badis for the Tcode.
    Code:
    & Report ZPJA_PM002 (Ver4) &
    & PJA Consultancy Services (www.pjas.com) &
    & This report attmpts to find Enhancements, Program-Exits, BADIs &
    & and Business Transaction Events in a particular program/tcode. &
    & Other search options: &
    & Program: RPR_ABAP_SOURCE_SCAN &
    & FModule: &
    & Text Elements: &
    & P_DEVC Show user-exits from development class &
    & P_LIMIT Limit submit program selection &
    & P_FUNC Show function modules &
    & P_SUBM Show submit programs &
    & S01 Selection data (TCode takes precedence over program name) &
    report zpja_pm002
    no standard page heading
    line-size 221.
    data: tabix like sy-tabix,
    w_linnum type i,
    w_off type i,
    w_index like sy-tabix,
    w_include like trdir-name,
    w_prog like trdir-name,
    w_incl like trdir-name,
    w_area like rs38l-area,
    w_level,
    w_fsel like sy-ucomm, " Determination of screen field
    w_str(50) type c,
    w_funcname like tfdir-funcname.
    constants: c_fmod(40) type c value 'Function modules selected: ',
    c_subm(40) type c value 'Submit programs selected: ',
    c_col1(12) type c value 'Enhanmt Type',
    c_col2(40) type c value 'Enhancement',
    c_col3(30) type c value 'Program/Include',
    c_col4(20) type c value 'Enhancement Name',
    c_col5(40) type c value 'Enhancement Description',
    c_col6(8) type c value 'Project',
    c_col7(1) type c value 'S',
    c_col8(12) type c value 'ChangeName',
    c_col9(10) type c value 'ChangeDate'.
    Work Areas: ABAP Workbench
    data: begin of wa_d010inc.
    data: master type d010inc-master.
    data: end of wa_d010inc.
    data: begin of wa_tfdir.
    data: funcname type tfdir-funcname,
    pname type tfdir-pname,
    include type tfdir-include.
    data: end of wa_tfdir.
    data: begin of wa_tadir.
    data: devclass type tadir-devclass.
    data: end of wa_tadir.
    data: begin of wa_tstc.
    data: pgmna type tstc-pgmna.
    data: end of wa_tstc.
    data: begin of wa_tstcp.
    data: param type tstcp-param.
    data: end of wa_tstcp.
    data: begin of wa_enlfdir.
    data: area type enlfdir-area.
    data: end of wa_enlfdir.
    Work Areas: BADIs
    data: begin of wa_sxs_attr.
    data: exit_name type sxs_attr-exit_name.
    data: end of wa_sxs_attr.
    data: begin of wa_sxs_attrt.
    data: text type sxs_attrt-text.
    data: end of wa_sxs_attrt.
    Work Areas: Enhancements
    data: begin of wa_modsap.
    data: member type modsap-member.
    data: end of wa_modsap.
    data: begin of wa_modsapa.
    data: name type modsapa-name.
    data: end of wa_modsapa.
    data: begin of wa_modsapt.
    data: modtext type modsapt-modtext.
    data: end of wa_modsapt.
    Work Areas: Business Transaction Events
    data: begin of wa_tbe01t.
    data: text1 type tbe01t-text1.
    data: end of wa_tbe01t.
    data: begin of wa_tps01t.
    data: text1 type tps01t-text1.
    data: end of wa_tps01t.
    user-exits
    types: begin of ty_mod,
    member like modact-member,
    name like modact-name,
    status like modattr-status,
    anam like modattr-anam,
    adat like modattr-adat,
    end of ty_mod.
    data: w_mod type ty_mod.
    types: begin of t_userexit,
    type(12) type c,
    pname like trdir-name,
    txt(300),
    level type c,
    modname(30) type c,
    modtext(60) type c,
    modattr type ty_mod,
    end of t_userexit.
    data: i_userexit type standard table of t_userexit with header line.
    Function module developmnet classes
    types: begin of t_devclass,
    clas like trdir-clas,
    end of t_devclass.
    data: i_devclass type standard table of t_devclass with header line.
    types: begin of t_enlfdir,
    area type enlfdir-area,
    end of t_enlfdir.
    data: i_enlfdir type standard table of t_enlfdir with header line.
    Submit programs
    types: begin of t_submit,
    pname like trdir-name,
    level,
    done,
    end of t_submit.
    data: i_submit type standard table of t_submit with header line.
    Source code
    types: begin of t_sourcetab, "#EC * (SLIN lügt!)
    line(200), "#EC * (SLIN lügt!)
    end of t_sourcetab. "#EC * (SLIN lügt!)
    data: sourcetab type standard table of t_sourcetab with header line.
    data c_overflow(30000) type c.
    Description of an ABAP/4 source analysis token
    data: i_stoken type standard table of stokex with header line.
    data wa_stoken like i_stoken.
    Description of an ABAP/4 source analysis statement
    data: i_sstmnt type standard table of sstmnt with header line."#EC NEEDED
    keywords for searching ABAP code
    types: begin of t_keywords,
    word(30),
    end of t_keywords.
    data: keywords type standard table of t_keywords with header line.
    function modules within program
    types: begin of t_fmodule,
    name like rs38l-name,
    pname like trdir-name,
    pname2 like trdir-name,
    level,
    bapi,
    done,
    end of t_fmodule.
    data: i_fmodule type standard table of t_fmodule with header line.
    & Selection Options &
    selection-screen begin of block selscr1 with frame title text-s01.
    parameter: p_pname like trdir-name memory id rid,
    p_tcode like syst-tcode,
    p_limit(4) type n default 100,
    p_devc like rihea-dy_ofn default ' ',
    p_func like rihea-dy_ofn default ' ',
    p_subm like rihea-dy_ofn default ' '.
    selection-screen end of block selscr1.
    & START-OF-SELECTION &
    start-of-selection.
    if p_pname is initial and p_tcode is initial.
    message e008(hrfpm). "Make entry on the selection screen
    stop.
    endif.
    ensure P_LIMIT is not zero.
    if p_limit = 0.
    p_limit = 1.
    endif.
    perform data_select.
    perform get_submit_data.
    perform get_fm_data.
    perform get_additional_data.
    perform data_display.
    & Form DATA_SELECT &
    form data_select.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get programs/includes' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    determine search words
    keywords-word = 'CALL'.
    append keywords.
    keywords-word = 'FORM'.
    append keywords.
    keywords-word = 'PERFORM'.
    append keywords.
    keywords-word = 'SUBMIT'.
    append keywords.
    keywords-word = 'INCLUDE'.
    append keywords.
    if not p_tcode is initial.
    get program name from TCode
    select single pgmna from tstc into wa_tstc-pgmna
    where tcode eq p_tcode.
    if not wa_tstc-pgmna is initial.
    p_pname = wa_tstc-pgmna.
    TCode does not include program name, but does have refereve TCode
    else.
    select single param from tstcp into wa_tstcp-param
    where tcode eq p_tcode.
    if sy-subrc = 0.
    check wa_tstcp-param(1) = '/'.
    check wa_tstcp-param+1(1) = '*'.
    if wa_tstcp-param ca ' '.
    endif.
    w_off = sy-fdpos + 1.
    subtract 2 from sy-fdpos.
    if sy-fdpos gt 0.
    p_tcode = wa_tstcp-param+2(sy-fdpos).
    endif.
    select single pgmna from tstc into wa_tstc-pgmna
    where tcode eq p_tcode.
    p_pname = wa_tstc-pgmna.
    if sy-subrc 0.
    message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
    endif.
    else.
    message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
    endif.
    endif.
    endif.
    Call customer-function aus Program coding
    read report p_pname into sourcetab.
    if sy-subrc > 0.
    message e017(enhancement) with p_pname raising no_program."#EC *
    endif.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    overflow into c_overflow
    with includes.
    if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
    message e130(enhancement) raising syntax_error. "#EC *
    endif.
    check I_STOKEN for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_level = '0'.
    w_prog = ''.
    w_incl = ''.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endform. "DATA_SELECT
    & Form GET_FM_DATA &
    form get_fm_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get function module data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure. "#EC *
    Function module data
    sort i_fmodule by name.
    delete adjacent duplicates from i_fmodule comparing name.
    loop at i_fmodule where done ne 'X'.
    clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
    refresh: i_stoken, i_sstmnt, sourcetab.
    store function groups
    select single area from enlfdir into wa_enlfdir-area
    where funcname = i_fmodule-name.
    i_enlfdir-area = wa_enlfdir-area.
    append i_enlfdir.
    Store development classes
    if not wa_enlfdir-area is initial.
    select single devclass into wa_tadir-devclass
    from tadir where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = wa_enlfdir-area.
    check not wa_tadir-devclass is initial.
    move wa_tadir-devclass to i_devclass-clas.
    append i_devclass.
    endif.
    clear wa_tfdir.
    select single funcname pname include from tfdir into wa_tfdir
    where funcname = i_fmodule-name.
    check sy-subrc = 0.
    call function 'FUNCTION_INCLUDE_SPLIT'
    exporting
    program = wa_tfdir-pname
    importing
    group = w_area.
    concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
    i_fmodule-pname = w_include.
    i_fmodule-pname2 = wa_tfdir-pname.
    modify i_fmodule.
    read report i_fmodule-pname into sourcetab.
    if sy-subrc = 0.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    with includes.
    if sy-subrc > 0.
    message e130(enhancement) raising syntax_error.
    endif.
    check i_stoken for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_level = '1'.
    w_prog = i_fmodule-pname2.
    w_incl = i_fmodule-pname.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endif.
    endloop.
    sort funtion groups
    sort i_devclass.
    delete adjacent duplicates from i_devclass.
    sort i_enlfdir.
    delete adjacent duplicates from i_enlfdir.
    endform. "GET_FM_DATA
    & Form GET_SUBMIT_DATA &
    form get_submit_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get submit data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    sort i_submit.
    delete adjacent duplicates from i_submit comparing pname.
    w_level = '0'.
    loop at i_submit where done ne 'X'.
    check i_submit-pname ne p_pname. " ensure not the same as origianl program
    clear: i_stoken, i_sstmnt, sourcetab.
    refresh: i_stoken, i_sstmnt, sourcetab.
    read report i_submit-pname into sourcetab.
    if sy-subrc 0.
    delete i_submit.
    continue.
    else.
    scan abap-source sourcetab tokens into i_stoken
    statements into i_sstmnt
    keywords from keywords
    with includes.
    if sy-subrc > 0.
    continue.
    endif.
    check i_stoken for entries
    clear w_linnum.
    describe table i_stoken lines w_linnum.
    if w_linnum gt 0.
    w_prog = i_submit-pname.
    w_incl = ''.
    perform data_search tables i_stoken using w_level w_prog w_incl.
    endif.
    endif.
    restrict number of submit program selected for processing
    describe table i_submit lines w_linnum.
    if w_linnum ge p_limit.
    w_level = '1'.
    endif.
    i_submit-done = 'X'.
    modify i_submit.
    endloop.
    sort i_submit.
    delete adjacent duplicates from i_submit comparing pname.
    endform. "GET_SUBMIT_DATA
    & Form DATA_SEARCH &
    form data_search tables p_stoken structure stoken
    using p_level p_prog p_incl.
    loop at p_stoken.
    clear i_userexit.
    tabix = sy-tabix + 1.
    i_userexit-level = p_level.
    if i_userexit-level = '0'.
    if p_incl is initial.
    i_userexit-pname = p_pname.
    else.
    concatenate p_pname '/' p_incl into i_userexit-pname.
    endif.
    else.
    if p_incl is initial.
    i_userexit-pname = p_prog.
    else.
    concatenate p_prog '/' p_incl into i_userexit-pname.
    endif.
    endif.
    Include
    if p_stoken-str eq 'INCLUDE'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    check not wa_stoken-str cs 'STRUCTURE'.
    check not wa_stoken-str cs 'SYMBOL'.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    i_submit-level = p_level.
    append i_submit.
    endif.
    endif.
    Enhancements
    if p_stoken-str eq 'CUSTOMER-FUNCTION'.
    clear w_funcname.
    read table p_stoken index tabix.
    translate p_stoken-str using ''' '.
    condense p_stoken-str.
    if p_prog is initial.
    concatenate 'EXIT' p_pname p_stoken-str into w_funcname
    separated by '_'.
    else.
    concatenate 'EXIT' p_prog p_stoken-str into w_funcname
    separated by '_'.
    endif.
    select single member from modsap into wa_modsap-member
    where member = w_funcname.
    if sy-subrc = 0. " check for valid enhancement
    i_userexit-type = 'Enhancement'.
    i_userexit-txt = w_funcname.
    append i_userexit.
    else.
    clear wa_d010inc.
    select single master into wa_d010inc-master
    from d010inc
    where include = p_prog.
    concatenate 'EXIT' wa_d010inc-master p_stoken-str into w_funcname
    separated by '_'.
    i_userexit-type = 'Enhancement'.
    i_userexit-txt = w_funcname.
    endif.
    endif.
    BADIs
    if p_stoken-str cs 'cl_exithandler='.
    w_index = sy-tabix + 4.
    read table p_stoken index w_index into wa_stoken.
    i_userexit-txt = wa_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    i_userexit-type = 'BADI'.
    append i_userexit.
    endif.
    Business transaction events
    if p_stoken-str cs 'OPEN_FI_PERFORM'.
    i_userexit-type = 'BusTrEvent'.
    i_userexit-txt = p_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    i_userexit-modname = i_userexit-txt+16(8).
    case i_userexit-txt+25(1).
    when 'E'.
    clear wa_tbe01t.
    select single text1 into wa_tbe01t-text1 from tbe01t
    where event = i_userexit-txt+16(8)
    and spras = sy-langu.
    if wa_tbe01t-text1 is initial.
    i_userexit-modtext = ''. "#EC NOTEXT
    else.
    i_userexit-modtext = wa_tbe01t-text1.
    endif.
    i_userexit-modname+8 = '/P&S'. "#EC NOTEXT
    when 'P'.
    clear wa_tps01t.
    select single text1 into wa_tps01t-text1 from tps01t
    where procs = i_userexit-txt+16(8)
    and spras = sy-langu.
    i_userexit-modtext = wa_tps01t-text1.
    i_userexit-modname+8 = '/Process'.
    endcase.
    append i_userexit.
    endif.
    Program exits
    if p_stoken-str cs 'USEREXIT_'.
    i_userexit-type = 'Program Exit'.
    i_userexit-txt = p_stoken-str.
    replace all occurrences of '''' in i_userexit-txt with space.
    append i_userexit.
    endif.
    Submit programs
    if p_stoken-str cs 'SUBMIT'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    check not p_stoken-str cs '_'. " ensure not SUBMIT_XXX
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    check not wa_stoken-str cs '_'. " ensure not SUBMIT_XXX
    replace all occurrences of '''' in wa_stoken-str with space.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    i_submit-level = p_level.
    append i_submit.
    endif.
    endif.
    Perform routines (which reference external programs)
    if p_stoken-str cs 'PERFORM'.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    if not wa_stoken-ovfl is initial.
    w_off = wa_stoken-off1 + 10.
    w_str = c_overflow+w_off(30).
    find ')' in w_str match offset w_off.
    w_off = w_off + 1.
    wa_stoken-str = w_str(w_off).
    endif.
    check wa_stoken-str cs '('.
    w_off = 0.
    while sy-subrc = 0.
    if wa_stoken-str+w_off(1) eq '('.
    replace section offset w_off length 1 of wa_stoken-str with ''.
    replace all occurrences of ')' in wa_stoken-str with space.
    read table i_submit with key pname = wa_stoken-str.
    if sy-subrc 0.
    i_submit-pname = wa_stoken-str.
    append i_submit.
    endif.
    exit.
    else.
    replace section offset w_off length 1 of wa_stoken-str with ''.
    shift wa_stoken-str left deleting leading space.
    endif.
    endwhile.
    endif.
    Function modules
    if p_stoken-str cs 'FUNCTION'.
    clear i_fmodule.
    check p_level eq '0'. " do not perform for function modules (2nd pass)
    w_index = sy-tabix + 1.
    read table p_stoken index w_index into wa_stoken.
    if wa_stoken-str cs 'WF_'.
    if wa_stoken-str cs 'IDOC'.
    break-point.
    endif.
    if wa_stoken-str cs 'BAPI'.
    i_fmodule-bapi = 'X'.
    endif.
    replace first occurrence of '''' in wa_stoken-str with space.
    replace first occurrence of '''' in wa_stoken-str with space.
    if sy-subrc = 4. " didn't find 2nd quote (ie name truncated)
    clear wa_tfdir.
    concatenate wa_stoken-str '%' into wa_stoken-str.
    select single funcname into wa_tfdir-funcname from tfdir
    where funcname like wa_stoken-str.
    if sy-subrc = 0.
    i_fmodule-name = wa_tfdir-funcname.
    else.
    continue.
    endif.
    else.
    i_fmodule-name = wa_stoken-str.
    endif.
    read table i_fmodule with key name = i_fmodule-name.
    if sy-subrc 0.
    i_fmodule-level = p_level.
    append i_fmodule.
    endif.
    endif.
    endloop.
    endform. "DATA_SEARCH
    & Form GET_ADDITIONAL_DATA &
    form get_additional_data.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Get additional data' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    loop at i_userexit.
    Enhancement data
    if i_userexit-type cs 'Enh'.
    clear: wa_modsapa.
    select single name into wa_modsapa-name from modsap
    where member = i_userexit-txt.
    check sy-subrc = 0.
    i_userexit-modname = wa_modsapa-name.
    clear wa_modsapt.
    select single modtext into wa_modsapt-modtext from modsapt
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    i_userexit-modtext = wa_modsapt-modtext.
    MOH - enhancement to get the project name
    clear w_mod.
    select single modactmember modactname modattr~status
    modattranam modattradat
    into w_mod
    from modact
    inner join modattr
    on modattrname = modactname
    where modact~member = wa_modsapa-name
    and modact~typ = space.
    i_userexit-modattr = w_mod.
    MOH - eoe
    endif.
    BADI data
    if i_userexit-type eq 'BADI'.
    clear wa_sxs_attr.
    select single exit_name into wa_sxs_attr-exit_name from sxs_attr
    where exit_name = i_userexit-txt.
    if sy-subrc = 0.
    i_userexit-modname = i_userexit-txt.
    else.
    i_userexit-modname = 'Dynamic call'. "#EC NOTEXT
    endif.
    clear wa_sxs_attrt.
    select single text into wa_sxs_attrt-text from sxs_attrt
    where exit_name = wa_sxs_attr-exit_name
    and sprsl = sy-langu.
    i_userexit-modtext = wa_sxs_attrt-text.
    endif.
    modify i_userexit.
    endloop.
    get enhancements via program package
    clear wa_tadir.
    select single devclass into wa_tadir-devclass from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = p_pname.
    if sy-subrc = 0.
    clear: wa_modsapa, wa_modsapt.
    select name from modsapa into wa_modsapa-name
    where devclass = wa_tadir-devclass.
    select single modtext from modsapt into wa_modsapt-modtext
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    read table i_userexit with key modname = wa_modsapa-name.
    if sy-subrc 0.
    i_userexit-modtext = wa_modsapt-modtext.
    i_userexit-type = 'Enhancement'. "#EC NOTEXT
    i_userexit-modname = wa_modsapa-name.
    i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
    i_userexit-pname = 'Unknown'. "#EC NOTEXT
    append i_userexit.
    endif.
    endselect.
    endif.
    Get IDOCs
    loop at i_devclass.
    endloop.
    endform. "GET_ADDITIONAL_DATA
    & Form DATA_DISPLAY &
    form data_display.
    data selection message to sap gui
    call function 'SAPGUI_PROGRESS_INDICATOR'
    destination 'SAPGUI'
    keeping logical unit of work
    exporting
    text = 'Prepare screen for display' "#EC NOTEXT
    exceptions
    system_failure
    communication_failure
    . "#EC *
    sort i_userexit by type txt modname.
    delete adjacent duplicates from i_userexit comparing txt modname.
    format headings
    write: 'Enhancements from main program'. "#EC NOTEXT
    write: /.
    uline.
    format color col_heading.
    write: / sy-vline,
    (12) c_col1, "Enhanmt Type
    sy-vline,
    (40) c_col2, "Enhancement
    sy-vline,
    (30) c_col3, "Program/Include
    sy-vline,
    (20) c_col4, "Enhancement name
    sy-vline,
    (60) c_col5, "Enhancement description
    sy-vline,
    (8) c_col6, "Project
    sy-vline,
    (1) c_col7, "S
    sy-vline,
    (12) c_col8, "ChangeName
    sy-vline,
    (10) c_col9, "ChangeDate
    sy-vline.
    format reset.
    uline.
    format lines
    loop at i_userexit.
    set line colour
    case i_userexit-type.
    when 'Enhancement'.
    format color 3 intensified off.
    when 'BADI'.
    format color 4 intensified off.
    when 'BusTrEvent'.
    format color 5 intensified off.
    when 'Program Exit'.
    format color 6 intensified off.
    when others.
    format reset.
    endcase.
    write: / sy-vline,
    i_userexit-type,
    sy-vline,
    i_userexit-txt(40),
    sy-vline,
    i_userexit-pname(30),
    sy-vline,
    i_userexit-modname(20),
    sy-vline,
    i_userexit-modtext(60),
    sy-vline,
    i_userexit-modattr-name,
    sy-vline,
    i_userexit-modattr-status,
    sy-vline,
    i_userexit-modattr-anam,
    sy-vline,
    i_userexit-modattr-adat no-zero,
    sy-vline.
    hide: i_userexit-type,
    i_userexit-txt,
    i_userexit-pname,
    i_userexit-modname,
    i_userexit-modtext.
    endloop.
    format reset.
    uline.
    user-exits from development class of function modules
    if p_devc = 'X'.
    write: /.
    write: / 'User-exits from function module development class'."#EC NOTEXT
    write: 157''.
    uline (90).
    write: 157''.
    loop at i_devclass.
    clear wa_modsapa.
    select name from modsapa into wa_modsapa
    where devclass = i_devclass-clas.
    select single name modtext into corresponding fields of wa_modsapt
    from modsapt
    where name = wa_modsapa-name
    and sprsl = sy-langu.
    format color 3 intensified off.
    write: / sy-vline,
    (12) 'Enhancement',
    sy-vline,
    wa_modsapa-name,
    sy-vline,
    wa_modsapt-modtext,
    sy-vline.
    endselect.
    endloop.
    uline (90).
    format reset.
    endif.
    describe table i_fmodule lines w_linnum.
    write: / c_fmod , at 35 w_linnum. "#EC NOTEXT
    write: 157''.
    if p_func = 'X'.
    display fuction modules used in program
    uline (38).
    write: 157''.
    loop at i_fmodule.
    write: sy-vline,
    i_fmodule-name,
    sy-vline,
    i_fmodule-bapi,
    sy-vline.
    write: 157''.
    endloop.
    uline (38).
    write: 157''.
    endif.
    describe table i_submit lines w_linnum.
    write: / c_subm , at 35 w_linnum. "#EC NOTEXT
    write: 157''.
    if p_subm = 'X'.
    display submit programs used in program
    uline (44).
    write: 157''.
    loop at i_submit.
    write: sy-vline,
    i_submit-pname,
    sy-vline.
    write: 157''.
    endloop.
    uline (44).
    endif.
    issue message with number of user-exits displayed
    describe table i_userexit lines w_linnum.
    message s697(56) with w_linnum.
    endform. "DATA_DISPLAY
    & User Selection Processing &
    at line-selection.
    get cursor field w_fsel.
    case w_fsel.
    when 'I_USEREXIT-MODNAME'.
    case i_userexit-type.
    when 'Enhancement'.
    set parameter id 'MON' field i_userexit-modname.
    call transaction 'SMOD' and skip first screen.
    when 'BADI'.
    check i_userexit-modname ne 'Dynamic call'.
    set parameter id 'EXN' field i_userexit-modname.
    call transaction 'SE18' and skip first screen.
    when 'BusTrEvent'.
    submit rfopfi00 with attr_typey_selm = 'A'
    with event = i_userexit-modname(8)
    via selection-screen
    and return.
    when others.
    endcase.
    when 'I_USEREXIT-PNAME'.
    check i_userexit-modname ne 'Unknown'.
    w_off = 0.
    find '/' in i_userexit-pname match offset w_off.
    if w_off = 0.
    set parameter id 'RID' field i_userexit-pname.
    call transaction 'SE38' and skip first screen.
    else.
    w_off = w_off + 1.
    w_prog = i_userexit-pname+w_off.
    set parameter id 'RID' field w_prog.
    call transaction 'SE38' and skip first screen.
    endif.
    when others.
    endcase.
    Thank You,
    Saritha

Maybe you are looking for

  • I have an Ipod4, I want an Ipad2 with 3G, do I need a new ATT contract for the IPAd, or can they both work on the same account

    I want to buy an Ipad2, but I do not want to open a new account with ATT.  Can I use the same account for the IPhone and the IPAD, will mails show on both?,

  • How to set up Airport Extreme for 11ac and 11n?

    I have just purchased the new Airport Extreme (August 2014) because Apple's website states Simultaneous dual-band support. AirPort Extreme features simultaneous dual-band 802.11ac Wi‑Fi. That means it transmits at both the 2.4GHz and 5GHz frequencies

  • How to access PDF file in Browser

    Hi All, I am using Oracle Application 11.5.10.2 and i want to display a pdf file in the output of browser which is stored in the location "/USR/TMP" of Application server. This is default path of "UTL_FILE_DIR" which is set. In this path a pdf file i

  • Query on responses in process tasks

    Is it possible that in the response for process tasks, the response description can include the change details that include what was the change made to the user(eg: details of the fields which were updated to the users, any profiles where added/remov

  • Destroying a message producer

    We have a Sun MQ JMS provider which provides us destinations. The process is something like this: 1. There is a queue, where a message is posted. 2. I have a java consumer, which listens on this queue. (via JNDI lookup). 3. I do some processes and ba