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

Similar Messages

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

  • 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

  • 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

  • Urgent plz help me.error fixing--full marks given

    Hi..this is regarding error fixing for prgm below in ecc 6.0
    *& Report  ZCLEAREM
    REPORT  ZCLEAREM.
    TABLES: LFA1, LFB1, BSIK.
    PARAMETERS: CLRDATE LIKE BSIK-AUGDT.
    SELECT-OPTIONS:  ALLOCATE FOR BSIK-ZUONR,
                     CLIENT   FOR BSIK-MANDT.
    DATA:  BEGIN OF CLEARING OCCURS 3000,
           LIFNR  LIKE BSIK-LIFNR,
           BUKRS  LIKE BSIK-BUKRS,
           BUDAT  LIKE BSIK-BUDAT,
           ZUONR  LIKE BSIK-ZUONR.
    DATA:  END OF CLEARING.
    DATA: SESSION(12) VALUE 'CLEARVENDORS'.
    DATA: BEGIN OF BDC_TAB OCCURS 10.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF BDC_TAB.
    DATA: FROM_DATE(10), TO_DATE(10), COMPANY_CODE LIKE KOST1-BUKRS.
    DATA: CTR(4) TYPE N VALUE 0, HOLD_LIFNR LIKE BSIK-LIFNR.
    DATA: HOLD_BUKRS LIKE BSIK-BUKRS.
    CALL FUNCTION 'BDC_OPEN_GROUP'
         EXPORTING
              CLIENT   = SY-MANDT
              GROUP    = SESSION
              HOLDDATE = '07/01/96'
              USER     = SY-UNAME
              KEEP     = 'X'.
    CONCATENATE: CLRDATE4(2) '/' CLRDATE6(2) '/'
      CLRDATE+0(4) INTO FROM_DATE.
    WRITE : / 'CLEARING DATE USED IS ', CLRDATE.
    START-OF-SELECTION.
    GET BSIK LATE.
      CHECK CLIENT.
      CHECK ALLOCATE.
      IF ( BSIK-QSSHB GT 0 ) AND ( BSIK-AUGBL EQ '          ' ).
        MOVE-CORRESPONDING BSIK TO CLEARING.
        APPEND CLEARING.
      ENDIF.
    END-OF-SELECTION.
      WRITE : / 'SELECTED ', CTR, ' RECORDS FOR CLEARING...'.
      SORT CLEARING BY LIFNR BUKRS BUDAT.
      DELETE ADJACENT DUPLICATES FROM CLEARING COMPARING LIFNR BUKRS.
      LOOP AT CLEARING.
        WRITE : / CLEARING-LIFNR, ' ', CLEARING-BUKRS, ' CLEARED. '.
        PERFORM GENERATE_BDC_DATA.
        CTR = CTR + 1.
        CALL FUNCTION 'BDC_INSERT'
             EXPORTING
                  TCODE     = 'F-44'
             TABLES
                  DYNPROTAB = BDC_TAB.
      ENDLOOP.
      CALL FUNCTION 'BDC_CLOSE_GROUP'.
      WRITE: /'end of generation of bdc session - ', SESSION, SY-MANDT,
             SY-UNAME, SY-UZEIT.
      WRITE: / 'WILL CLEAR A TOTAL OF ', CTR, ' RECORDS.'.
          FORM GENERATE_BDC_DATA                                        *
    FORM GENERATE_BDC_DATA.
      REFRESH BDC_TAB.
      PERFORM DYNPRO USING:
           'X' 'SAPMF05A' '0131',
           '' 'RF05A-AGKON' CLEARING-LIFNR,
           '' 'BKPF-BUKRS'  CLEARING-BUKRS,
           '' 'BKPF-BUDAT'  FROM_DATE,
           '' 'RF05A-XPOS1(2)' 'X',
           '' 'BDC_OKCODE' '/16',
           'X' 'SAPMF05A'  '0731',
           '' 'RF05A-SEL01(1)' CLEARING-ZUONR,
           '' 'BDC_OKCODE' '/16',
    LOOP AT
           'X' 'SAPDF05X' '1102',
           ''  'BDC_OKCODE'  'BU'.
    ENDFORM.
          FORM DYNPRO                                                   *
    -->  DYNBEGIN                                                      *
    -->  NAME                                                          *
    -->  VALUE                                                         *
    FORM DYNPRO USING DYNBEGIN NAME VALUE.
      IF DYNBEGIN = 'X'.
        CLEAR BDC_TAB.
        MOVE: NAME TO BDC_TAB-PROGRAM,
        VALUE TO BDC_TAB-DYNPRO,
        'X' TO BDC_TAB-DYNBEGIN.
        APPEND BDC_TAB.
      ELSE.
        CLEAR BDC_TAB.
        MOVE: NAME TO BDC_TAB-FNAM,
            VALUE TO BDC_TAB-FVAL.
        APPEND BDC_TAB.
      ENDIF.
    ENDFORM.

    In abap editor menu path
    Goto-->Attributes
    here in Logical Database name define KDF.
    It will work.
    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.

  • The icons on my bookmarks toolbar are HUGE, don't know how this happened; how do I fix this? Have tried Googling for the answer, no luck. HELP!!!

    One day I opened up my firefox browser and noticed my bookmarks toolbar icons are huge and stretched out. I'm completely unaware as to how this happened. I can hardly tell what they are and all of them no longer fit on the toolbar. Please, help me fix this annoyance. I'm usually pretty good at figuring it out myself, but I am completely stumped by this one.

    Start Firefox in <u>[[Safe Mode|Safe Mode]]</u> to check if one of the extensions (Firefox/Firefox/Tools > Add-ons > Extensions) or if hardware acceleration is causing the problem (switch to the DEFAULT theme: Firefox/Firefox/Tools > Add-ons > Appearance).
    *Do NOT click the Reset button on the Safe Mode start window or otherwise make changes.
    *https://support.mozilla.org/kb/Safe+Mode
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
    Try to set the gfx.hidpi.enabled pref to 2 on the <b>about:config</b> page.
    *http://kb.mozillazine.org/about:config

  • I made a video of our summer vacation on imovie. It's over an hour long. When I try to share it, the audio syncs incorrectly at about the 15 minute mark and is off for the rest of the movie. Is there a way to fix this? I think I have imovie 09.

    I made a video of our summer vacation on imovie. It's over an hour long. When I try to share it, the audio syncs incorrectly at about the 15 minute mark and is off for the rest of the movie. Is there a way to fix this? I think I have imovie 09 with all the availbable updates.

    If you think getting your web pages to appear OK in all the major browsers is tricky then dealing with email clients is way worse. There are so many of them.
    If you want to bulk email yourself, there are apps for it and their templates will work in most cases...
    http://www.iwebformusicians.com/Website-Email-Marketing/EBlast.html
    This one will create the form, database and send out the emails...
    http://www.iwebformusicians.com/Website-Email-Marketing/MailShoot.html
    The alternative is to use a marketing service if your business can justify the cost. Their templates are tested in all the common email clients...
    http://www.iwebformusicians.com/Website-Email-Marketing/Email-Marketing-Service. html
    "I may receive some form of compensation, financial or otherwise, from my recommendation or link."

  • None of the quicktime videos from websites play anymore. This started yesterday. Before that I could play them all. Now none of them work. Has anyone had this problem? How did you fix it? Thanks in advance for the help!

    None of the quicktime videos from websites play anymore. This started yesterday. Before that I could play them all. Now none of them work. Has anyone had this problem? How did you fix it? Thanks in advance for the help!

    Did you try
    1, resetting the device
    2, deleting all cookies / history items of Safari?

  • [svn] 4764: Fixes to flex4tests to [finally] account for the API changes in effects in yesterday's commit.

    Revision: 4764
    Author: [email protected]
    Date: 2009-01-30 11:47:42 -0800 (Fri, 30 Jan 2009)
    Log Message:
    Fixes to flex4tests to [finally] account for the API changes in effects in yesterday's commit. Tests now compile and run...
    QE Notes: None
    Doc Notes: None
    Bugs: None
    Reviewer: Ryan
    Modified Paths:
    flex/sdk/trunk/development/eclipse/flex/flex4test/src/EffectsProperties.mxml
    flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/AnimationPropertiesForm. mxml
    flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/NumberInterpolatorWrapping. as
    flex/sdk/trunk/development/eclipse/flex/flex4test/src/testWheel.mxml

    It happens on
    darkchronicles.net
    thedreamkeep.com
    atittercompany.com
    codexdemagicus.com
    So far, it is happening to 4 sites that I work with.  Yes, they all use the same server, and the server company swears it is not their end.  I don't quite understand what you mean "is it coming from a web page?"  I edit and upload pages in Dreamweaver and then when I try to check the edited pages in Chrome, Firefox, Opera or Safari on 3 different computers that I have to work on, I get the error.  If I edit in Dreamweaver and then use Core FTP LE to upload, then check the pages, I do not get the error.

  • I had to replace the hard drive on my computer.  I am now trying to download Adobe Photoshop CS6, previously purchased.  I get an error that files are missing after waiting for the whole download.  I have Windows7

    I had to replace the hard drive on my computer.  I am now trying to download Adobe Photoshop CS6, previously purchased.  I get an error that files are missing after waiting for the whole download.  I have Windows7

    The error msg said that the file archive part of Adobe photoshop CS6 is missing and that I need all parts in the same folder.

  • Itouch locked up on window 7 iTunes[8143:10e2b]: server error (94): This device isn't eligible for the requested build on mac 10.4

    Itouch was plugged into new window machine  moving from vista to window 7 and froze with itouch window showing the itune icon and usb cord photo on screen.
    It will not reset with off and select button holds.
    does not show up in the directory of windows vista or 7
    does not show up in Mac directory or disk utiltity window
    will try to go to restore on mac  but I am still at 10.4.11
    and i get the computer screen message:
    iTunes[8143:10e2b]: server error (94): This device isn't eligible for the requested build.
    and got a couple of pages of dianostic stuff when clicked on ask for details
    ipod did show up in mac itunes window until it gave me the "go away" message, but the only choice it gave me was to update the ipod software
    I do not need to update the os on my mac mini   I am happy with it for as long this it lasts
    Any help here would be greatly appreciated
    oh and when I seached this discussion data base  I came across a couple of links of try this
    But  the link took me you I am not authorized....sigh
    Any ideas???
    Thanks
    Barry

    Thanks for your advice  These apple forums have kept me up and running for years and I really appreciate the time you and others take with me.
    I have followed one of your links to print cnfig in a run box and go down that path  but it would not allow me to exit and restart without choosing quit On restart  there was a cheer of hope from me   apple found in itunes and it showed up in the device and printer window  but after 10 min or so of restore it said it is stuck in recovery and I must fix that issue first
    Yeah  Bite my tongue   did a second restore attemp and it syn'd to my itunes!!   I put on the old tune do you believe in magic  and it is playing!!
    Great Scott   Now I can give it back to my daughter to set up on her account!!
    Saved  Thanks so much for your time and expertise!!

  • SSRS 2008 Column Chart with Calculated Series (moving average) "formula error - there are not enough data points for the period" error

    I have a simple column chart grouping on 1 value on the category axis.  For simplicity's sake, we are plotting $ amounts grouping by Month on the category axis.  I right click on the data series and choose "Add calculated series...".  I choose moving average.  I want to move the average over at least 2 periods.
    When I run the report, I get the error "Formula error - there are not enough data points for the period".  The way the report is, I never have a guaranteed number of categories (there could be one or there could be 5).  When there is 2 or more, the chart renders fine, however, when there is only 1 value, instead of suppressing the moving average line, I get that error and the chart shows nothing.
    I don't think this is entirely acceptable for our end users.  At a minimum, I would think the moving average line would be suppressed instead of hiding the entire chart.  Does anyone know of any workarounds or do I have to enter another ms. connect bug/design consideration.
    Thank you,
    Dan

    I was having the same error while trying to plot a moving average across 7 days. The work around I found was rather simple.
    If you right click your report in the solution explorer and select "View Code" it will give you the underlying XML of the report. Find the entry for the value of your calculated series and enter a formula to dynamically create your periods.
    <ChartFormulaParameter Name="Period">
                      <Value>=IIf(Count(Fields!Calls.Value) >= 7 ,7, (Count(Fields!Calls.Value)))</Value>
    </ChartFormulaParameter>
    What I'm doing here is getting the row count of records returned in the chart. If the returned rows are greater than or equal to 7 (The amount of days I want the average) it will set the points to 7. If not, it will set the number to the amount of returned rows. So far this has worked great. I'm probably going to add more code to handle no records returned although in my case that shouldn't happen but, you never know.
    A side note:
    If you open the calculated series properties in the designer, you will notice the number of periods is set to "0". If you change this it will overwrite your custom formula in the XML.

  • Error while updating HRA in infotype 581 for the employees.

    Hi,
    System is showing an error while updating HRA in infotype 581 for the employees.
    The error is No Automatic updation for IT0008. Allowance Grouping not found.
    What is this error. Please advice what to do in this case.

    Hi Deepthi,
    Check Table V_T7INA5,V_T7INA1,V_T7INA3 and V_T7INA9 also.
    Check it,
    Regards,
    Vinod.
    Edited by: vinod rao on Jul 30, 2008 1:23 PM

  • HT201210 Having trouble restoring my ipod touch 4 gen. When i click restore i get an error message saying that " problem downloading software for the "ipod owner's ipod"

    When i try to restore my ipod i recieve an error message saying that "problem downloading softwar  for the ipod owner's ipod. error (-23) Please help i need to restore because my daughter somehow set a passcode lock on it and didnt know it and does not know passcode.

    There was a problem downloading the software for the iPhone (or another iOS device)
    See the steps below for error codes 3000-3999.
    Errors 3000-3999 (3004, 3013, 3014, 3018, 3164, 3194, and so on): Error codes in the 3000 range generally mean that iTunes cannot contact the update server (gs.apple.com) on ports 80 or 443.
    Update to the latest version of iTunes.
    Verify the computer's date and time are accurate.
    Check that your security or firewall software is not interfering with ports 80 or 443, or with the server gs.apple.com.
    Follow Troubleshooting security software. Often, uninstalling third-party security software will resolve these errors.
    An entry in your hosts file may be redirecting requests to gs.apple.com (see "Unable to contact the iOS software update server gs.apple.com" above).
    Internet proxy settings can cause this issue. If you are using a proxy, try without using one.
    Test restoring while connected to a known-good network.

Maybe you are looking for