Create PO, MIGO,MIRO..Delete all Process.Very urgent..

HI guru's
Can anybody help me.. i have created PO, I have done MIGO,MIRO over. Some mistake i have done ,so i want delete all the things and I want to create new PO , MIGO & MIRO.
Please help me step by step , how to delete all and creation of new..
Thanks in advance
sap-mm

Hi
If payment to vendor is not done u can reverse all posted document as follows
Miro - MR8M
MIGO - MBST
Once these documents are cancelled change tax code in PO and again Post all documents as regular
Note : If excise invoice is posted reverse the same also
Vishal...

Similar Messages

  • Change in Sales order deleted all process production order

    Dear All,
    We have Make to order scenario for our export sales. When we have receive order we make production with reference of sales order with help of t-code MD50 then convert plan order into production order.
    IF sales department do changes in sales order it'll delete all processing production orders So, we have to do revoke all production orders manually.
    2 query is that, Is there any way to run MRP (Make-to-order) on all line items of sales order ?
    Please provide solution.
    Thanks,
    Farrukh khan

    Dear Farrukh,
    There is not tcode to run sales order for all line items, but if you run MD02 it will plan all sales order & line items also. You can run MD02.
    Regards
    Abhijit Gautam

  • Saving pdf files on my mac that were originally created on a pc deletes all previous input.

    Hi, I have a Mac and a PC on my workplace. We frequently use PDF files. So to make work easier i connected them via our network so we could be more efficient. But I have a big problem. When i create .pdf files on my computer and then transfer them to the mac i cant save them on the mac without deleting all the work i did on the computer. This is highly problematic. I have tried a few different thing as to fix it. I have restarted both computers and also insted of  moving the files via the network i transfered them via an USB stick but to no avail.
    any help would be tremendously appreciate
    Thanks /Didiuz

    Hi didiuz,
    What version of Acrobat do you have on your Mac and PC? And what version of Windows and Mac OS do you have?
    What sort of changes are you making to the PDF on Windows that aren't being saved when you open on the Mac? Can you please walk me through the process that you're using? It sounds like you're able to open the files on the Mac, but lose your work when you save them? Are you working with PDF forms?
    So many questions, but I need a bit more information to go on. I look forward to hearing back from you, so we can figure out what's going on!
    Best,
    Sara

  • I wonder how pro photographers use aperture?I shoot raw and my harddrive is alreay full.I'm not able to import new pictures.Is it ok if i create a vault and delete all my projects in the HD.Can I use an external HD use aperture through the vault??

    I wonder how pro photographers use aperture?I shoot raw and my harddrive is alreay full.I'm not able to import new pictures. I don't know what to do. I created a vault. My plan was to create a vault(put all my master files into an external harddrive) and then delete all my projects in my mac pro's harddrive. Is it the correct way to do it ? What should I do if I have thousands of raw files ? How should my workflow be? Can I use an external HD and use aperture through the vault,without keeping the master files on my computer's hard drive?? Or should I shoot raw+jpeg and store raw files in an external backup harddrive and import only jpegs into my aperture library?

    There's a bit to learn.  It will slowly make sense.
    Aperture is an empty field.  You're given a tractor and a whole bunch of attachments. What you grow, how, and where, is entirely up to you.
    Vaults are for back-up and only for back-up.  They have nothing to do with storing your working files.
    When your Library outgrows your system drive (and for good performance, you should leave c. 20% of every drive empty), it's time to convert some of your image's Masters from Managed to Referenced.  ("Managed" and "Referenced" refer to Masters, not to Libraries.)
    There are hundreds of posts in the forum, and several pages in the User Manual on using Masters.
    Many people run Aperture with the Library on their system disk, and most (or all) of their images' Masters on external FW drives.  This is a good set-up.  Note that you will likely have to take steps to back-up the data on your external drives.
    If you do the above, there should be no reason to delete any Projects.
    The choice of RAW or RAW+JPEG or JPEG depends on the kind of work you are doing.  I capture RAW only -- but I don't do any commercial shoots.  Pros on deadlines report that the RAW+JPEG works well for them.  Capture JPEG if it saves you time.  IMHO, there is not a good reason to shoot JPEG to save space (space is cheap; time expensive).
    Short-term solution: buy and use a FW800 external 1 TB drive, formatted "Mac OS Extended (Journaled)", and using Aperture relocate the Masters of all images older than 30 days to that drive.  (Be sure to change your back-up strategy to include this new drive; you may need a second new drive.)
    This general post of mine might help you understand more about Aperture.

  • Initialialized delta process(very urgent)

    Hi all,
    I am loading transaction data into master data table and the update mode is initialized data process.Today the loading were failed showing processing is overdue and i have made the QM status red and deleted the request.When i reran the infopackge its giving the message " delete init request requ_dr1.... before running init with same selection".I have checked in data request this request number is not there.
    the datas are loaded daily as "initialized delta processc" update method..
    Could anybody tell me how to delete the request and again reload the data..its very urgent...
    Thanks
    Manjula

    hi...
          did u upload to target level or not...?where u got the red alert in update level or target level...?before dis you should know the delta mode functiion...intially you can upload the datas using full mode....if use full mode that will take the datas only once for target...for example....if you are loading 40 records...when the uploading process method have done without any mistakes...it's showing 40 records in the target level also..
    DELTA MODE:
    but you are getting only 30 records...you may upload the remaining 10 datas by delta mode function...through a new source file...
    if you can't get my point ...mssg me....
    regards,
    ramanan..

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

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

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

  • Hi all..very urgent

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

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

  • Is it possible to quickly delete all processed messages from XI

    Hi all,
    In our project systems I would like to remove all messages from the system after testing phase.
    We run XI 3.0 sp18 (soon sp20).
    I do know about archiving but it seems we cannot start
    the archiving because of some large message being stuck.
    I know we should adress that problem, but in our project system it is a waste of time. The osscall taking ages now,
    and the real problem is not to fix the big message but to
    be able to start archiving as such and the switchprocedure
    One alternative is to re-install from scratch, but I was hoping
    there might be a quicker approach.

    Thansk for the reply. your approach is
    is the normal way of deleting messages but it fails.
    question is whether there are procedures or scripts that
    remove all the messages "behind the back" of XI,
    without regard for their status, mutual relations or other
    stuff. We just want an empty database for our test and QA
    system.
    basically we want to get back to the moment after installation (and configuration).

  • How can I create a script to delete all Layer Comps?

    I know this has to be pretty easy but I'm flummoxed on the syntax. Thanks, in advance!

    // 2012, use it at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    var myDocument = app.activeDocument;
    while (myDocument.layerComps.length > 0) {
    myDocument.layerComps[0].remove()

  • 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

  • Issue in background processing- Very Urgent

    A custom program which is  scheduled to run every day as a background job, Failed yesterday with the below system log:
    R3JD: SQL UPDATE FAILED. Error in ZMOMPO05. Contact R3JD Support. R3JD
    Additional Info: A2000_UPDATE_PROCESS UPDATE ZMPOR FAILED.           
    Additional Info: SY-SUBRC RETURN CODE: 4                             
    Transaction termination ZZ 999 ( ZMOMPO05 )
    It got failed while trying to update a custom table, but when we tried to run manually in the foreground it got completed successfully, and also the problem was only for that day, as it was doing well before it failed yesterday and even today it has completed successfully as a background job itself .
    I am doing an RCA on this, any sought of help would be appreciated.
    Thank you

    Hi,
    Lets take a look at the help for the UPDATE command:
    SY-SUBRC = 4 - At least one line was not able to be changed, either because no appropriate line was found, or because the change would generate a line that leads to double entries in the primary key or a unique secondary index in the database table.
    To keep it simple I will assume the Z table does not have a unique secondary index. It is most likely that the update failed because the program tried to update a record that did not exist in the Z table. The best you can do is add reporting to the Z program so should the problem occur again you will know exactly why. You can do this by adding a SELECT statement that tries to read the record you are about to update and report an error if the record does not exist. To improve performance you could execute the SELECT after the UPDATE fails just to prove it is missing data.
    Alternatively you could replace the UPDATE with a MODIFY statement so the record will be created if it does not already exist.

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

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

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

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

  • Interactive alv report with migo miro and purchase order

    hi all
    to make my alv interactive i put the following code....
    i dont know whether it is correct or not coz i hav not done alv before
    FORM display.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-cprog
          is_layout          = wa_layout
          I_CALLBACK_USER_COMMAND  = 'HANDLE_USER_COMMAND'
          it_fieldcat        = it_fieldcat
        TABLES
          t_outtab           = itab.
    ENDFORM.                    "DISPLAY
    FORM HANDLE_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                                  RS_SELFIELD TYPE SLIS_SELFIELD.
       CASE R_UCOMM.
        WHEN '&IC1'.
          IF RS_SELFIELD-FIELDNAME = 'EBELN'.
            READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.
            SET PARAMETER ID 'ITAB-EBELN' FIELD ITAB-EBELN.
           call transaction 'ME23N' AND SKIP FIRST SCREEN.
           CLEAR RS_SELFIELD.
          ENDIF.
      ENDCASE.
    ENDFORM.                    "HANDLE_USER_COMMAND
    this code is working
    but i hav some problems
    when ever i double click on PO number
    1. it always opne the last PO number of the my alv list
    2. I want to open the migo with migo number when i double clik on the migo number
    3. and same for the MIRO
    plz help its very urgent...
    points wil b rewarded.

    Hi,
    Following report will explains how to do interactive list in alv report regarding purchase order. Kindly go through that one.
    REPORT  YMS_ALVINTERSAMPLE NO STANDARD PAGE HEADING LINE-SIZE 650
    MESSAGE-ID ZZ_9838.
    TYPE-POOLS: SLIS.
    *type declaration for values from ekko
    TYPES: BEGIN OF I_EKKO,
           EBELN LIKE EKKO-EBELN,
           AEDAT LIKE EKKO-AEDAT,
           BUKRS LIKE EKKO-BUKRS,
           BSART LIKE EKKO-BSART,
           LIFNR LIKE EKKO-LIFNR,
           END OF I_EKKO.
    DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
          WA_EKKO TYPE I_EKKO.
    *type declaration for values from ekpo
    TYPES: BEGIN OF I_EKPO,
           EBELN LIKE EKPO-EBELN,
           EBELP LIKE EKPO-EBELP,
           MATNR LIKE EKPO-MATNR,
           MENGE LIKE EKPO-MENGE,
           MEINS LIKE EKPO-MEINS,
           NETPR LIKE EKPO-NETPR,
           END OF I_EKPO.
    DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
          WA_EKPO TYPE I_EKPO .
    *variable for Report ID
    DATA: V_REPID LIKE SY-REPID .
    *declaration for fieldcatalog
    DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
    declaration for events table where user comand or set PF status will
    be defined
    DATA: V_EVENTS TYPE SLIS_T_EVENT,
          WA_EVENT TYPE SLIS_ALV_EVENT.
    declartion for layout
    DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
    declaration for variant(type of display we want)
    DATA: I_VARIANT TYPE DISVARIANT,
          I_VARIANT1 TYPE DISVARIANT,
          I_SAVE(1) TYPE C.
    *PARAMETERS : p_var TYPE disvariant-variant.
    *Title displayed when the alv list is displayed
    DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
    DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
    INITIALIZATION.
      V_REPID = SY-REPID.
      PERFORM BUILD_FIELDCATLOG.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
    START-OF-SELECTION.
      PERFORM DATA_RETRIEVAL.
      PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATLOG
          Fieldcatalog has all the field details from ekko
    FORM BUILD_FIELDCATLOG.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'AEDAT'.
      WA_FIELDCAT-SELTEXT_M = 'DATE.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'BUKRS'.
      WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_EKKO'.
      WA_FIELDCAT-FIELDNAME = 'LIFNR'.
      WA_FIELDCAT-NO_OUT    = 'X'.
      WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
       LIST_TYPE_WRONG       = 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.                    "EVENT_CALL
    *&      Form  POPULATE_EVENT
         Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-NAME.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    *&      Form  data_retrieval
      retreiving values from the database table ekko
    FORM DATA_RETRIEVAL.
      SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
    ENDFORM.                    "data_retrieval
    *&      Form  bUild_listheader
          text
         -->I_LISTHEADEtext
    FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
      DATA HLINE TYPE SLIS_LISTHEADER.
      HLINE-INFO = 'this is my first alv pgm'.
      HLINE-TYP = 'H'.
    ENDFORM.                    "build_listheader
    *&      Form  display_alv_report
          text
    FORM DISPLAY_ALV_REPORT.
      V_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
         I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_GRID_TITLE                      = I_TITLE_EKKO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         = ALV_LAYOUT
         IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
        i_default                         = 'ZLAY1'
         I_SAVE                            = 'A'
        is_variant                        = i_variant
         IT_EVENTS                         = V_EVENTS
        TABLES
          T_OUTTAB                          = IT_EKKO
    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.                    "display_alv_report
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
          PERFORM BUILD_FIELDCATLOG_EKPO.
          PERFORM EVENT_CALL_EKPO.
          PERFORM POPULATE_EVENT_EKPO.
          PERFORM DATA_RETRIEVAL_EKPO.
          PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
          PERFORM DISPLAY_ALV_EKPO.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  BUILD_FIELDCATLOG_EKPO
          text
    FORM BUILD_FIELDCATLOG_EKPO.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELN'.
      WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'IT_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'EBELP'.
      WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MENGE'.
      WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-SELTEXT_M = 'UOM'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'I_EKPO'.
      WA_FIELDCAT-FIELDNAME = 'NETPR'.
      WA_FIELDCAT-SELTEXT_M = 'PRICE'.
      APPEND WA_FIELDCAT TO I_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "BUILD_FIELDCATLOG_EKPO
    *&      Form  event_call_ekpo
      we get all events - TOP OF PAGE or USER COMMAND in table v_events
    FORM EVENT_CALL_EKPO.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = V_EVENTS
    EXCEPTIONS
      LIST_TYPE_WRONG       = 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.                    "event_call_ekpo
    *&      Form  POPULATE_EVENT
           Events populated for TOP OF PAGE & USER COMAND
    FORM POPULATE_EVENT_EKPO.
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'TOP_OF_PAGE'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
    WA_EVENT-FORM.
      ENDIF.
      ENDFORM.                    "POPULATE_EVENT
    *&      Form  TOP_OF_PAGE
          text
    FORM F_TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = IT_LISTHEADER
       i_logo                   =
       I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->,          text
         -->RS_SLEFIELDtext
    *retreiving values from the database table ekko
    FORM DATA_RETRIEVAL_EKPO.
    SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
    ENDFORM.
    FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
    DATA: HLINE1 TYPE SLIS_LISTHEADER.
    HLINE1-TYP = 'H'.
    HLINE1-INFO = 'CHECKING PGM'.
    ENDFORM.
    FORM DISPLAY_ALV_EKPO.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = V_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      = I_TITLE_EKPO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = I_FIELDCAT[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         =
       I_SAVE                            = 'A'
      IS_VARIANT                        =
       IT_EVENTS                         = V_EVENTS
      TABLES
        T_OUTTAB                          = IT_EKPO
    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.
    Thanks,
    Sankar  M

  • Very urgent:To find IDOC list in RSMO(BI 7.0)

    Hi all,
               Its very urgent to know,for a particular load IDOCs used to run to process the data&dialogs,in 3.5 we used to get the IDOCs list in RSMO screen itself,but in 7.0 is not having that options,please tell me for a particular load where we can find list of IDOCs?
    Regards,
    GTR.

    Hi,
    This info may be helpful.
    Transact RFC error 
    tRFC Error - status running Yellow for long time (Transact RFC will be enabled in Status tab in RSMO).
    Step 1:  Goto Details, Status get the IDoc number,and go to BD87 in R/3,place the cursor in the RED IDoc entroes in tRFC
    queue thats under outbound processing and click on display the IDOC which is on the menu bar.
    Step 2: In the next screen click on Display tRFC calls (will take you to SM58 particular TRFC call)
    place the cursor on the particular Transaction ID and go to EDIT in the menu bar --> press 'Execute LUW'
    (Display tRFC calls (will take you to SM58 particular TRFC call) ---> select the TrasnID ---> EDIT ---> Execute LUW)
    Rather than going to SM58 and executing LUW directly it is safer to go through BD87 giving the IDOC name as it will take you
    to the particular TRFC request for that Idoc.
    OR
    Go into the JOB Overview of the Load there you should be able to find the Data Package ID.
    (For this in RSMO Screen> Environment> there is a option for Job overview.)
    This Data Package TID is  Transaction ID in SM58.
    OR
    SM58 > Give * / user name or background  (Aleremote) user name and execute.It will show you all the pending TRFC with
    Transaction ID.
    In the Status Text column you can see two status
    Transation Recorded and Transaction Executing
    Don't disturb, if the status is second one Transaction Executing. If the status is first one (Transation Recorded) manually
    execute the "Execute LUWs"
    OR
    Directly go to SM58 > Give * / user name or background  (Aleremote) user name and execute. It will show TRFCs to be executed
    for that user. Find the particular TRFC (SM37 > Req name > TID from data packet with sysfail).select the TrasnID (SM58) --->
    EDIT ---> Execute LUW
    Also
    Check Note 561880 - Requests hang because IDocs are not processed.
    thanks,
    JituK

Maybe you are looking for