Report for G/L line items with both debit & credit posting accounts

Hi,
   My client requires a G/L line items report. It can be possible thru fs10n or fbl3n etc. But he wants to see both the credit and debit accounts in the same line.
for ex: if I open a expense account and show the report of individual documents, he wants to see the corresponding credit item to which bank/cash account it got credited to.
we showed them to double click on that document and goto document overview. but they dont want in that way.
they want to see all the line items with both postings in the same sheet for all line items.
valuable replies will be fairly rewarded.
thanks,
chaitanya

Hi,
U can use the following TCodes...
- S_ALR_87012287
- S_ALR_87012289
- S_ALR_87012291
But i am not sure if your client will be happy...
This is a very common req and the only solution possible is to have a customized report for the client..
Hope its clear..
Cheers
Raghu

Similar Messages

  • Report for GR/IR line items - with PO details - profit center wise

    Hi
    My client uploaded stock and instead of using MIRO, directly passed the journal entry
    Consumption
    To Vendor
    Now, the original entry of
    Stock
    To GR/IR
    remains.
    How can I make the GR/IR account nil and also remove the open items in the corresponding Purchase Order ?
    Thanks in advance.

    Hi,
    You can use a substitution to update the field through FI. Use GGB4 for wirting a substitution you may need some ABAP coding to substitute PO no and line items in the assignment field.  rule would be Co code =XXX and GL account =xxx and Posting date earlier than =xxxx  then concatenrate EBELN and EBELP in Assigment field Zounr.
    Then execute FBL3N and edit the assignment field by selecting all the documents and then save it you should see the PO line items populated. You can leave the substitution on or you can remove it after updating,
    Regards
    K.R

  • Standard  report(for open PO order items) with estimated Delivery dates

    hi friends
    i would like to know if there is any standard  report(for open PO order items) with estimated Delivery dates on it.
    thanks
    alahari

    ME2M (by material)
    ME2L (by vendor)
    ME2N (by number)
    Use selection parameter WE101 for open GR
    and scope of list EINT (scheduling lines)

  • GL Line Item with Tax Base Amount Posting

    Dear Expert,
    I have a GL account with tax and CO object. And, I am using BAPI_ACC_DOCUMENT_POST to do the GL posting. I would like to post the GL line item with tax base amount as it will show in FB03 line item, the posting is successful but no base amount is in GL line item in FB03. (I can manually post it in Tcode FB50).
    Any idea on this and what is the problem? Appreciate if can help..
    Thank you.
    Best Regards,
    Weng

    Hello Weng,
    I also looked on SAP notes. 
    There is a note with much information about Tax Postings with accounting BAPIs and it's a consulting note.  The note number is 626235.
    Regards,
    Rae Ellen Woytowiez
    Edited by: Rae Ellen Woytowiez on Dec 21, 2010 10:11 PM

  • Report for conditions per line item in Billing document

    Hi all,
    Is there any report that can tell me all the price conditions that are allocated to a billing document line item? I am talking about the actual conditions relevant for a line item, not only conditions that have a condition record setup.
    So I would like to key in billing document number, the line item and get a report of all conditions that are allocated to that line item in the specific billing document.
    If there is no such standard report, does anyone know what tables to link?
    Thanks in advance,
    Lars

    Hi,
    Tables VBRK and VBRP. And with field VBRK-KNUMV go to table KONV to obtain the data of all conditions.
    Regards,
    Eduardo

  • Unable to delete line item with 0 quantity in Invoice.

    Hi Experts,
    I came across a Invoice which reflects in VF04 as pending Billing due list. When i checked at the inter company Invoice i came across a line item with "0" quantity and price as zero, interestingly the replinishment cross company delivery document  for the same line item for "0" quantity had a Batch assigned to it.
    Now the issue is cusotmer has selected the line item with XX quantity and have selected the accounting document to be generated but the line item with "0 was left over and now still reflects in VF04.
    Customer does not want to reverse the full cycle to resolve the issue since the document was created a year back.My Question  is can we get the line item with "0" quantity to clear accounting so that it will not reflect in VF04.If so what will be process to do that.
    Thanks in Advance to advice.
    Regards,
    Sridhar.R

    Hi,
    It is  not possible to delete this line item, you can discuss with your client and delete it from the table.
    And now coming to the reasons why it has come into the invoice & Delivery
    1. The Batch Item category must have been configured as relevant for billing...check this and make it irrelevant if the client does not do batch specific billing. --- This will stop the batches from coming into the invoice.
    2.  Check for the batch item category in delivery if Zero quanity is allowed...if it is allowed make it not allowed and make it an Error message, whenever there is a zero quantity system will give a message.

  • Vendor Line item with Opening and Closing Balances report regarding

    Dear All,
    I need a report for vendor line items with Opening and Closing balances.
    Thanks in advance
    Sateesh

    Hi
    Try S_ALR_87012082 - Vendor Balances in Local Currency
    Regards
    Sanil Bhandari

  • Multiple delivery schedule (with same delivery date) for same PO line item

    Hi All,
    In a STO, for a PO line item say for 10 quantities. I have been receiving 3 delivery schedule with the same day with quantities say 5 3 2. I would like to know the what would be possible reasons for this.
    Regards,
    PSS

    Hi PSS,
    I had the similar issue there is a report which gives you the reason for delivery split
    Please refer to the following thread
    Multiple deliveries created
    Thanks
    Diwakar

  • Sales order create/change line item with reference to contract - Open quantity not getting deducted for copied line item from the contract

    Hi friends,
    Please provide some valuable inputs for the following scenario:
    When a sales order line item is created(VA01) or changed(VA02) with reference to a Contract the open quantity is deducted in the contract which is a standard functionality. If the referenced line item is copied (custom enhancement to copy line item), then for the copied line item the open quantity is not getting deducted instead ATP quantity i.e. Available-to-promise is deducted.
    Any inputs on how we can fix this functionality i.e. deduct the open quantity from the contract for the copied line item?
    P.S. : Custom enhancement to copy line item is working fine, but open quantity is not getting deducted if the copied line item was referenced to a contract.
    Thanks,
    Sandeep
    Message was edited by: sandeep

    Sandeep,
    Yes, that was my original interpretation.  I was having a hard time believing that someone would ask such a question. 
    I guess, then, that you already know that you will have to add this logic to your enhancement. You should create your specifications and hand them off to a developer; ideally the one who created this enhanced solution in the first place.
    I do not provide advice in these forums about details of enhanced solutions.  Perhaps one of the other members will be more willing to do your work for you.
    Best Regards,
    DB49

  • KE33 report main data  and Line items in KE33 doesn't match

    < MODERATOR:  Message locked.  Please post this message in the [Controlling forum|SAP ERP Financials - Controlling;. >
    All,
    I have created COPA report (cost based COPA).  When I ran the report, I have 5 line items and a total row. 
    When selected one line's revenue column and hit goto - line item, it gives the line item details.  I see that the total in the line item details  is different from the report's line total. 
    Can some one help me please
    Also, I'm trying to reconcile the gl and copa blances.  When I ran the GL line item report it's based on company code currency and the KE24 report is in operating currency.  will it have any differences due to different currencies?
    thanks,
    Sri
    Edited by: Sri on Oct 9, 2008 2:33 AM

    Well, check if your COPA report is filtered by some characteristics. Ideally, both the balances should be the same... the COPA report always reads off the line items (or summarizaiton levels which inturn read line items), so I'll be surprised if its not the same.
    For the GL - COPA rec, is there a problem with running KE24 using Currency Type 10 (Company Code currency)?
    Cheers.

  • Customer line items with balance carry forward no opening balance

    Hello FI Experts,
    We have ticket where the user is using a Z* Report for Customer line items with balance carry forward. In 31.01.2007 user has posted some legacy data, latter he was executing this Z* report then user can see the values posted on the same day (31.01.2007) as line items. But he was executing the report on 01.02.2007 then he was not able to see the line item as well as the values posted on 31.01.2007 as opening balance as on 01.02.2007. But if we run the report as on 01.01.2008 then we are able to see the values which are carry forwarded as opening balances. Did anyone have worked on this type of scenario?
    Requirement Here Is:  The values that have been posted on 31.03.2007 which are still open line items should get displayed as opening balance as on 01.02.2007.
    Thanks for helping on this issue.

    Hi,
      Any report will get data from Tables. Please check whether the table you have used to develop this report has opening balance.
    Balance will be carry forwarded only when you run the balance carry forward program. Check whether this was run for the date you have specified. This can be done in the year end.
    If you are checking in the middle of the year, then the balance will not be carry forwarded.
    Regards,
    B. Radhika.

  • Output the requested delivery date for each different line item

    Hello Experts
    I have program called ZFSFSF(following), in the output Its showing multiple requested delvery dates per line item.
    But We need to show the requested delivery date for each different line item.
    Any code is highly appreciated. I wud appreacite if you cud bold the added code.
    Thanks
    SP
    TYPE-POOLS: slis.
    TABLES: vbap, vbrk, vbfa, vbak, vbrp, konv, kna1, bkpf, bsad, bkpf_bsad,
    knvv, pa0002, t005u, mvke, lips, likp, vbpa, vbep.
    DATA: BEGIN OF i_list OCCURS 0,
    vbeln LIKE vbak-vbeln,
    posnr LIKE vbap-posnr,
    matnr LIKE vbap-matnr,
    erdat LIKE vbap-erdat,
    mvgr1 LIKE mvke-mvgr1,
    wadat_ist LIKE likp-wadat_ist,
    days TYPE i,
    werks LIKE vbap-werks,
    lgort LIKE vbap-lgort,
    kwmeng LIKE vbap-kwmeng," CH01+
    lfimg LIKE lips-lfimg," CH01+
    pstyv LIKE vbap-pstyv," CH01+
    obd LIKE lips-vbeln," CH01+
    obd_pos LIKE lips-posnr," CH01+
    soldto LIKE vbaK-kunnr," JR+
    shipto LIKE vbpa-kunnr," JR+
    edatu like vbep-edatu," PR+
    END OF i_list.
    DATA: i_list2 LIKE i_list OCCURS 0 WITH HEADER LINE,
    i_list3 LIKE i_list OCCURS 0 WITH HEADER LINE.
    DATA: i_list4 LIKE vbap OCCURS 0 WITH HEADER LINE.
    *ALV Output Header
    DATA: gt_list_top_of_page TYPE slis_t_listheader,
    prognm LIKE sy-repid,
    gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
    gt_events TYPE slis_t_event,
    is_layout TYPE slis_layout_alv,
    is_variant LIKE disvariant,
    it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA:gt_fieldcat TYPE slis_t_fieldcat_alv.
    DATA:gt_outtab LIKE i_list OCCURS 0 WITH HEADER LINE.
    DATA: g_repid LIKE sy-repid,
    g_count LIKE sy-tabix.
    SELECTION-SCREEN BEGIN OF BLOCK block0 WITH FRAME TITLE text-t01.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(79) text-t10.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(79) text-t11.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN: BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(79) text-t12.
    SELECTION-SCREEN: END OF LINE.
    SELECTION-SCREEN END OF BLOCK block0.
    */ Selection and Input Parameters
    SELECTION-SCREEN BEGIN OF BLOCK blocko WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_vbeln FOR vbap-vbeln, "SO
    s_auart FOR vbak-auart DEFAULT 'KB' OBLIGATORY,
    s_matnr FOR vbap-matnr," obligatory,
    s_mvgr1 FOR mvke-mvgr1,
    s_erdat FOR vbap-erdat OBLIGATORY,
    s_werks FOR vbap-werks,
    s_lgort FOR vbap-lgort,
    s_edatu FOR vbep-edatu.
    PARAMETERS: p_vkorg LIKE vbak-vkorg DEFAULT '5010'.
    SELECTION-SCREEN SKIP 2.
    +EC1
    Addition +EC1
    +EC1
    PARAMETERS: p_vari LIKE disvariant-variant.
    +EC1
    End Addition +EC1
    +EC1
    SELECTION-SCREEN END OF BLOCK blocko.
    +EC1
    Addition +EC1
    +EC1
    DATA: g_save(1) TYPE c,
    g_default(1) TYPE c,
    g_exit(1) TYPE c,
    gx_variant LIKE disvariant,
    g_variant LIKE disvariant.
    +EC1
    End Addition +EC1
    +EC1
    Initialization fieldcatalog
    INITIALIZATION.
    PERFORM clear_tables.
    g_repid = sy-repid.
    PERFORM fieldcat_init USING gt_fieldcat[].
    +EC1
    Addition +EC1
    +EC1
    g_save = 'A'.
    PERFORM variant_init.
    Get default variant
    gx_variant = g_variant.
    CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
    i_save = g_save
    CHANGING
    cs_variant = gx_variant
    EXCEPTIONS
    not_found = 2.
    IF sy-subrc = 0.
    p_vari = gx_variant-variant.
    ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
    PERFORM f4_for_variant.
    AT SELECTION-SCREEN.
    PERFORM auth_check. "+ESC
    PERFORM pai_of_selection_screen.
    +EC1
    End Addition +EC1
    +EC1
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM alv.
    END-OF-SELECTION.
    FORM get_data *
    FORM get_data.
    *CH01 - Added kwmeng(order qty) to selection, excluded rejects
    *JR -added soldto and shipto code
    SELECT avbeln aposnr amatnr aerdat awerks algort
    akwmeng apstyv bkunnr cedatu
    CH01+
    INTO
    (i_list-vbeln, i_list-posnr, i_list-matnr, i_list-erdat, i_list-werks,
    i_list-lgort,
    i_list-kwmeng , i_list-pstyv, i_list-soldto,i_list-edatu)
    CH01+
    FROM vbap AS a INNER JOIN vbak AS b ON avbeln = bvbeln
    INNER JOIN vbep AS c ON avbeln = cvbeln
    WHERE b~vkorg = p_vkorg
    AND a~werks IN s_werks
    AND a~lgort IN s_lgort
    AND b~auart IN s_auart
    AND a~vbeln IN s_vbeln
    AND a~erdat IN s_erdat
    AND a~abgru = ''" CH01+
    AND a~matnr IN s_matnr
    AND c~edatu IN s_edatu.
    APPEND i_list.
    ENDSELECT.
    COMMIT WORK AND WAIT.
    LOOP AT i_list.
    SELECT SINGLE mvgr1 INTO i_list-mvgr1 FROM mvke
    WHERE matnr = i_list-matnr.
    MODIFY i_list.
    CLEAR: i_list.
    ENDLOOP.
    COMMIT WORK AND WAIT.
    LOOP AT i_list.
    IF i_list-mvgr1 IN s_mvgr1.
    CONTINUE.
    ELSE.
    DELETE i_list.
    COMMIT WORK AND WAIT.
    ENDIF.
    ENDLOOP.
    CH01 - commented these lines out and redid logic below
    LOOP AT i_list.
    select single vbeln into lips-vbeln from lips
    where vgbel = i_list-vbeln
    and vgpos = i_list-posnr.
    select single wadat_ist into i_list-wadat_ist from likp
    where vbeln = lips-vbeln.
    SELECT b~wadat_ist INTO i_list-wadat_ist
    FROM lips AS a INNER JOIN
    likp AS b ON avbeln = bvbeln WHERE a~vgbel = i_list-vbeln
    AND a~vgpos = i_list-posnr.
    MODIFY i_list.
    CLEAR: i_list, lips-vbeln.
    ENDSELECT.
    ENDLOOP.
    CH01 - Changed to select multiple delivery lines & del qty
    summing the total deliveries per OBD# and date
    LOOP AT i_list.
    SELECT avbeln sum( alfimg ) b~wadat_ist
    INTO (i_list-obd , i_list-lfimg , i_list-wadat_ist)
    FROM lips AS a INNER JOIN
    likp AS b ON avbeln = bvbeln WHERE a~vgbel = i_list-vbeln
    AND a~vgpos = i_list-posnr
    AND a~pstyv = i_list-pstyv
    group by avbeln bwadat_ist.
    i_list2 = i_list.
    APPEND i_list2.
    ENDSELECT.
    IF sy-subrc <> 0.
    i_list2 = i_list.
    APPEND i_list2.
    ENDIF.
    ENDLOOP.
    i_list[] = i_list2[].
    *End CH01
    COMMIT WORK AND WAIT.
    LOOP AT i_list.
    IF i_list-wadat_ist IS INITIAL.
    CONTINUE.
    ELSE.
    i_list-days = i_list-wadat_ist - i_list-erdat.
    ENDIF.
    MODIFY i_list.
    CLEAR: i_list.
    COMMIT WORK AND WAIT.
    ENDLOOP.
    COMMIT WORK AND WAIT.
    LOOP AT i_list.
    IF i_list-vbeln IS INITIAL.
    DELETE i_list.
    ENDIF.
    ENDLOOP.
    COMMIT WORK AND WAIT.
    *JR
    LOOP AT i_list.
    SELECT SINGLE KUNNR INTO i_list-shipto FROM vbpa
    WHERE vbeln = i_list-vbeln
    AND parvw = 'WE'.
    MODIFY i_list.
    ENDLOOP.
    *END JR
    gt_outtab[] = i_list[].
    COMMIT WORK AND WAIT.
    ENDFORM.
    FORM alv *
    FORM alv.
    PERFORM e03_eventtab_build USING gt_events[]. "+EC1
    PERFORM e04_comment_build USING gt_list_top_of_page[]. "+EC1
    prognm = sy-repid. "+EC1
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_user_command = 'USER_COMMAND'
    i_callback_program = g_repid
    it_fieldcat = gt_fieldcat[]
    it_events = gt_events[] "+ESC
    it_sort = it_sort[]
    +EC1
    Addition +EC1
    +EC1
    is_variant = g_variant
    i_save = g_save
    +EC1
    End Addition +EC1
    +EC1
    TABLES
    t_outtab = gt_outtab.
    COMMIT WORK AND WAIT.
    ENDFORM.
    FORM fieldcat_init *
    --> I_FIELDCAT *
    FORM fieldcat_init
    USING i_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: ls_fieldcat TYPE slis_fieldcat_alv.
    DATA: pos TYPE i VALUE 1.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'VBELN'.
    ls_fieldcat-ref_tabname = 'VBAK'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'POSNR'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'MATNR'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'MVGR1'.
    ls_fieldcat-ref_tabname = 'MVKE'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'WERKS'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'LGORT'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'ERDAT'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'WADAT_IST'.
    ls_fieldcat-ref_tabname = 'LIKP'.
    ls_fieldcat-key = 'X'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'DAYS'.
    ls_fieldcat-ref_fieldname = 'DAYS'.
    ls_fieldcat-seltext_s = '# Of Days'.
    ls_fieldcat-seltext_m = '# Of Days'.
    ls_fieldcat-seltext_l = '# Of Days'.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    *Begin CH01
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'KWMENG'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-outputlen = 7.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'LFIMG'.
    ls_fieldcat-ref_tabname = 'LIPS'.
    ls_fieldcat-outputlen = 7.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'OBD'.
    ls_fieldcat-seltext_s = 'OBD'.
    ls_fieldcat-seltext_m = 'Outbound Del'.
    ls_fieldcat-seltext_l = 'Outbound Delivery'.
    ls_fieldcat-outputlen = 10.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'OBD_POS'.
    ls_fieldcat-seltext_s = 'OBD Ln'.
    ls_fieldcat-seltext_m = 'Outbound Del Ln'.
    ls_fieldcat-seltext_l = 'Outbound Del Line'.
    ls_fieldcat-outputlen = 10.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    *End CH01
    *JR
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'SOLDTO'.
    ls_fieldcat-ref_tabname = 'VBAP'.
    ls_fieldcat-seltext_m = 'Sold To'.
    ls_fieldcat-seltext_l = 'Sold To'.
    ls_fieldcat-outputlen = 10.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'SHIPTO'.
    ls_fieldcat-ref_tabname = 'VBPA'.
    ls_fieldcat-seltext_m = 'Ship To'.
    ls_fieldcat-seltext_l = 'Ship To'.
    ls_fieldcat-outputlen = 10.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    *END JR
    ls_fieldcat-col_pos = pos.
    ls_fieldcat-fieldname = 'EDATU'.
    ls_fieldcat-ref_tabname = 'VBEP'.
    ls_fieldcat-seltext_m = 'Requested Delivery date'.
    ls_fieldcat-seltext_l = 'Requested Delivery date'.
    ls_fieldcat-outputlen = 20.
    APPEND ls_fieldcat TO i_fieldcat.
    CLEAR ls_fieldcat.
    *FOR ALV SORT & SUBTOTAL
    CLEAR it_sort.
    it_sort-spos = '0'.
    it_sort-fieldname = 'VBELN'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '1'.
    it_sort-fieldname = 'POSNR'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '2'.
    it_sort-fieldname = 'MATNR'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '3'.
    it_sort-fieldname = 'MVGR1'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '4'.
    it_sort-fieldname = 'ERDAT'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '5'.
    it_sort-fieldname = 'WADAT_IST'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-down = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '6'.
    it_sort-fieldname = 'PERNR'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '7'.
    it_sort-fieldname = 'VORNA'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '8'.
    it_sort-fieldname = 'NACHN'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '9'.
    it_sort-fieldname = 'VKGRP'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '10'.
    it_sort-fieldname = 'VBELN'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '11'.
    it_sort-fieldname = 'ERDAT'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    CLEAR it_sort.
    it_sort-spos = '12'.
    it_sort-fieldname = 'BEZEI'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    it_sort-subtot = 'X'.
    APPEND it_sort.
    clear it_sort.
    it_sort-spos = '1'.
    it_sort-fieldname = 'BELNR'.
    it_sort-tabname = 'GT_OUTTAB'.
    it_sort-up = 'X'.
    append it_sort.
    ENDFORM.
    +EC1
    Addition +EC1
    +EC1
    *& Form VARIANT_INIT
    text
    --> p1 text
    <-- p2 text
    FORM variant_init.
    CLEAR g_variant.
    g_variant-report = g_repid.
    ENDFORM. " VARIANT_INIT
    FORM f4_for_variant *
    FORM f4_for_variant.
    CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
    is_variant = g_variant
    i_save = g_save
    it_default_fieldcat =
    IMPORTING
    e_exit = g_exit
    es_variant = gx_variant
    EXCEPTIONS
    not_found = 2.
    IF sy-subrc = 2.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    IF g_exit = space.
    p_vari = gx_variant-variant.
    ENDIF.
    ENDIF.
    ENDFORM.
    *& Form PAI_OF_SELECTION_SCREEN
    text
    FORM pai_of_selection_screen.
    IF NOT p_vari IS INITIAL.
    MOVE g_variant TO gx_variant.
    MOVE p_vari TO gx_variant-variant.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
    EXPORTING
    i_save = g_save
    CHANGING
    cs_variant = gx_variant.
    g_variant = gx_variant.
    ELSE.
    PERFORM variant_init.
    ENDIF.
    ENDFORM. " PAI_OF_SELECTION_SCREEN
    +EC1
    End Addition +EC1
    +EC1
    FORM e03_eventtab_build *
    --> E03_LT_EVENTS *
    FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
    DATA: ls_event TYPE slis_alv_event.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    i_list_type = 0
    IMPORTING
    et_events = e03_lt_events.
    READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
    INTO ls_event.
    IF sy-subrc = 0.
    MOVE gc_formname_top_of_page TO ls_event-form.
    APPEND ls_event TO e03_lt_events.
    ENDIF.
    ENDFORM.
    FORM e04_comment_build *
    --> E04_LT_TOP_OF_PAGE *
    FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
    DATA: ls_line TYPE slis_listheader.
    *Report Title
    CLEAR ls_line.
    ls_line-typ = 'H'.
    ls_line-info = text-007.
    APPEND ls_line TO e04_lt_top_of_page.
    **Doc Type Desc.
    clear ls_line.
    ls_line-typ = 'S'.
    ls_line-key = text-008.
    ls_line-info = p_matnr.
    append ls_line to e04_lt_top_of_page.
    clear ls_line.
    ls_line-typ = 'S'.
    ls_line-key = text-009.
    ls_line-info = p_werks.
    append ls_line to e04_lt_top_of_page.
    clear ls_line.
    ls_line-typ = 'S'.
    ls_line-key = text-010.
    ls_line-info = p_stlan.
    append ls_line to e04_lt_top_of_page.
    clear ls_line.
    ls_line-typ = 'S'.
    ls_line-key = text-011.
    ls_line-info = p_stlal.
    append ls_line to e04_lt_top_of_page.
    clear ls_line.
    ls_line-typ = 'S'.
    ls_line-key = text-012.
    ls_line-info = p_stlal.
    append ls_line to e04_lt_top_of_page.
    ENDFORM.
    FORM top_of_page *
    FORM top_of_page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = gt_list_top_of_page.
    ENDFORM.
    FORM auth_check *
    FORM auth_check.
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' FIELD p_vkorg.
    IF sy-subrc NE 0.
    MESSAGE e054 WITH p_vkorg.
    ENDIF.
    ENDFORM. " auth_check
    *& Form USER_COMMAND
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    PERFORM display_so_order USING r_ucomm
    rs_selfield.
    ENDCASE.
    ENDFORM.
    *& Form display_sales_order
    text
    -->P_R_UCOMM text
    -->P_RS_SELFIELD text
    FORM display_so_order USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CASE rs_selfield-sel_tab_field.
    WHEN '1-VBELN'.
    SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
    CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    WHEN '1-MATNR'.
    SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
    CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    WHEN '1-OBD'.
    SET PARAMETER ID 'VL' FIELD rs_selfield-value.
    CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
    WHEN OTHERS.
    MESSAGE i000(z1) WITH 'Please Click on the Valid Selection'.
    EXIT.
    ENDCASE.
    ENDFORM. " display_sales_order
    FORM EDit_table *

    > TYPE-POOLS: slis.
    >
    > TABLES: vbap, vbrk, vbfa, vbak, vbrp, konv, kna1,
    > bkpf, bsad, bkpf_bsad,
    > knvv, pa0002, t005u, mvke, lips, likp, vbpa, vbep.
    >
    > DATA: BEGIN OF i_list OCCURS 0,
    > vbeln LIKE vbak-vbeln,
    > posnr LIKE vbap-posnr,
    <b>  etenr like vbep-etenr,</b>
    > matnr LIKE vbap-matnr,
    > erdat LIKE vbap-erdat,
    > mvgr1 LIKE mvke-mvgr1,
    > wadat_ist LIKE likp-wadat_ist,
    > days TYPE i,
    > werks LIKE vbap-werks,
    > lgort LIKE vbap-lgort,
    > kwmeng LIKE vbap-kwmeng," CH01+
    > lfimg LIKE lips-lfimg," CH01+
    > pstyv LIKE vbap-pstyv," CH01+
    > obd LIKE lips-vbeln," CH01+
    > obd_pos LIKE lips-posnr," CH01+
    > soldto LIKE vbaK-kunnr," JR+
    > shipto LIKE vbpa-kunnr," JR+
    > edatu like vbep-edatu," PR+
    > END OF i_list.
    >
    > DATA: i_list2 LIKE i_list OCCURS 0 WITH HEADER LINE,
    > i_list3 LIKE i_list OCCURS 0 WITH HEADER LINE.
    >
    > DATA: i_list4 LIKE vbap OCCURS 0 WITH HEADER LINE.
    >
    >
    > *ALV Output Header
    > DATA: gt_list_top_of_page TYPE slis_t_listheader,
    > prognm LIKE sy-repid,
    > gc_formname_top_of_page TYPE slis_formname VALUE
    > 'TOP_OF_PAGE',
    > gt_events TYPE slis_t_event,
    > is_layout TYPE slis_layout_alv,
    > is_variant LIKE disvariant,
    > it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    >
    > DATA:gt_fieldcat TYPE slis_t_fieldcat_alv.
    > DATA:gt_outtab LIKE i_list OCCURS 0 WITH HEADER
    > LINE.
    >
    > DATA: g_repid LIKE sy-repid,
    > g_count LIKE sy-tabix.
    >
    > SELECTION-SCREEN BEGIN OF BLOCK block0 WITH FRAME
    > TITLE text-t01.
    >
    > SELECTION-SCREEN: BEGIN OF LINE.
    > SELECTION-SCREEN COMMENT 1(79) text-t10.
    >
    > SELECTION-SCREEN: END OF LINE.
    >
    > SELECTION-SCREEN: BEGIN OF LINE.
    > SELECTION-SCREEN COMMENT 1(79) text-t11.
    > SELECTION-SCREEN: END OF LINE.
    >
    > SELECTION-SCREEN: BEGIN OF LINE.
    > SELECTION-SCREEN COMMENT 1(79) text-t12.
    > SELECTION-SCREEN: END OF LINE.
    >
    > SELECTION-SCREEN END OF BLOCK block0.
    >
    > */ Selection and Input Parameters
    > SELECTION-SCREEN BEGIN OF BLOCK blocko WITH FRAME
    > TITLE text-001.
    >
    >
    >
    > SELECT-OPTIONS: s_vbeln FOR vbap-vbeln, "SO
    > s_auart FOR vbak-auart DEFAULT 'KB' OBLIGATORY,
    > s_matnr FOR vbap-matnr," obligatory,
    > s_mvgr1 FOR mvke-mvgr1,
    > s_erdat FOR vbap-erdat OBLIGATORY,
    > s_werks FOR vbap-werks,
    > s_lgort FOR vbap-lgort,
    > s_edatu FOR vbep-edatu.
    >
    > PARAMETERS: p_vkorg LIKE vbak-vkorg DEFAULT '5010'.
    >
    >
    >
    > SELECTION-SCREEN SKIP 2.
    > *----
    > -
    +EC1
    > * Addition +EC1
    > *----
    > -
    +EC1
    > PARAMETERS: p_vari LIKE disvariant-variant.
    > *----
    > -
    +EC1
    > * End Addition +EC1
    > *----
    > -
    +EC1
    > SELECTION-SCREEN END OF BLOCK blocko.
    >
    > *----
    > -
    +EC1
    > * Addition +EC1
    > *----
    > -
    +EC1
    > DATA: g_save(1) TYPE c,
    > * g_default(1) TYPE c,
    > g_exit(1) TYPE c,
    > gx_variant LIKE disvariant,
    > g_variant LIKE disvariant.
    > *----
    > -
    +EC1
    > * End Addition +EC1
    > *----
    > -
    +EC1
    >
    > * Initialization fieldcatalog
    > INITIALIZATION.
    >
    > * PERFORM clear_tables.
    >
    > g_repid = sy-repid.
    > PERFORM fieldcat_init USING gt_fieldcat[].
    > *----
    > -
    +EC1
    > * Addition +EC1
    > *----
    > -
    +EC1
    > g_save = 'A'.
    > PERFORM variant_init.
    > * Get default variant
    > gx_variant = g_variant.
    > CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    > EXPORTING
    > i_save = g_save
    > CHANGING
    > cs_variant = gx_variant
    > EXCEPTIONS
    > not_found = 2.
    > IF sy-subrc = 0.
    > p_vari = gx_variant-variant.
    > ENDIF.
    >
    > AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
    > PERFORM f4_for_variant.
    >
    > AT SELECTION-SCREEN.
    > PERFORM auth_check. "+ESC
    > PERFORM pai_of_selection_screen.
    >
    >
    >
    > *----
    > -
    +EC1
    > * End Addition +EC1
    > *----
    > -
    +EC1
    >
    >
    > START-OF-SELECTION.
    >
    > PERFORM get_data.
    >
    > PERFORM alv.
    >
    > END-OF-SELECTION.
    >
    > *----
    > -
    > * FORM get_data *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > FORM get_data.
    > *CH01 - Added kwmeng(order qty) to selection,
    > excluded rejects
    > *JR -added soldto and shipto code
    SELECT a~vbeln a~posnr a~matnr a~erdat a~werks a~lgort
    a~kwmeng a~pstyv b~kunnr c~edatu
    CH01+
    INTO corresponding fields of table i_list
    FROM vbap AS a INNER JOIN vbak AS b ON a~vbeln = b~vbeln
    INNER JOIN vbep AS c ON a~vbeln = c~vbeln
    and a~posnr = c~posnr
    WHERE b~vkorg = p_vkorg
    AND a~werks IN s_werks
    AND a~lgort IN s_lgort
    AND b~auart IN s_auart
    AND a~vbeln IN s_vbeln
    AND a~erdat IN s_erdat
    AND a~abgru = ''" CH01+
    AND a~matnr IN s_matnr
    AND c~edatu IN s_edatu.
    > COMMIT WORK AND WAIT.
    >
    > LOOP AT i_list.
    > SELECT SINGLE mvgr1 INTO i_list-mvgr1 FROM mvke
    > WHERE matnr = i_list-matnr.
    > MODIFY i_list.
    > CLEAR: i_list.
    > ENDLOOP.
    > COMMIT WORK AND WAIT.
    >
    > LOOP AT i_list.
    > IF i_list-mvgr1 IN s_mvgr1.
    > CONTINUE.
    > ELSE.
    > DELETE i_list.
    > COMMIT WORK AND WAIT.
    > ENDIF.
    > ENDLOOP.
    > * CH01 - commented these lines out and redid logic
    > below
    > * LOOP AT i_list.
    > ** select single vbeln into lips-vbeln from lips
    > ** where vgbel = i_list-vbeln
    > ** and vgpos = i_list-posnr.
    > **
    > ** select single wadat_ist into i_list-wadat_ist from
    > likp
    > ** where vbeln = lips-vbeln.
    > *
    > * SELECT b~wadat_ist INTO i_list-wadat_ist
    > * FROM lips AS a INNER JOIN
    > * likp AS b ON a~vbeln = b~vbeln WHERE a~vgbel =
    > i_list-vbeln
    > * AND a~vgpos = i_list-posnr.
    > * MODIFY i_list.
    > * CLEAR: i_list, lips-vbeln.
    > * ENDSELECT.
    > * ENDLOOP.
    >
    > * CH01 - Changed to select multiple delivery lines &
    > del qty
    > * summing the total deliveries per OBD# and date
    > LOOP AT i_list.
    > SELECT avbeln sum( alfimg ) b~wadat_ist
    > INTO (i_list-obd , i_list-lfimg , i_list-wadat_ist)
    > FROM lips AS a INNER JOIN
    > likp AS b ON avbeln = bvbeln WHERE a~vgbel =
    > i_list-vbeln
    > AND a~vgpos = i_list-posnr
    > AND a~pstyv = i_list-pstyv
    > group by avbeln bwadat_ist.
    > i_list2 = i_list.
    > APPEND i_list2.
    > ENDSELECT.
    > IF sy-subrc <> 0.
    > i_list2 = i_list.
    > APPEND i_list2.
    > ENDIF.
    > ENDLOOP.
    > i_list[] = i_list2[].
    > *End CH01
    >
    > COMMIT WORK AND WAIT.
    >
    > LOOP AT i_list.
    > IF i_list-wadat_ist IS INITIAL.
    > CONTINUE.
    > ELSE.
    > i_list-days = i_list-wadat_ist - i_list-erdat.
    > ENDIF.
    > MODIFY i_list.
    > CLEAR: i_list.
    > COMMIT WORK AND WAIT.
    > ENDLOOP.
    >
    > COMMIT WORK AND WAIT.
    >
    > LOOP AT i_list.
    > IF i_list-vbeln IS INITIAL.
    > DELETE i_list.
    > ENDIF.
    > ENDLOOP.
    > COMMIT WORK AND WAIT.
    >
    > *JR
    > LOOP AT i_list.
    > SELECT SINGLE KUNNR INTO i_list-shipto FROM vbpa
    > WHERE vbeln = i_list-vbeln
    > AND parvw = 'WE'.
    > MODIFY i_list.
    > ENDLOOP.
    > *END JR
    >
    > gt_outtab[] = i_list[].
    > COMMIT WORK AND WAIT.
    >
    >
    > ENDFORM.
    >
    > *----
    > -
    > * FORM alv *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > FORM alv.
    >
    > PERFORM e03_eventtab_build USING gt_events[]. "+EC1
    > PERFORM e04_comment_build USING
    > gt_list_top_of_page[]. "+EC1
    > prognm = sy-repid. "+EC1
    >
    >
    > CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    > EXPORTING
    > i_callback_user_command = 'USER_COMMAND'
    > i_callback_program = g_repid
    > it_fieldcat = gt_fieldcat[]
    > it_events = gt_events[] "+ESC
    > it_sort = it_sort[]
    > *----
    > -
    +EC1
    > * Addition +EC1
    > *----
    > -
    +EC1
    > is_variant = g_variant
    > i_save = g_save
    > *----
    > -
    +EC1
    > * End Addition +EC1
    > *----
    > -
    +EC1
    > TABLES
    > t_outtab = gt_outtab.
    >
    > COMMIT WORK AND WAIT.
    >
    >
    > ENDFORM.
    >
    >
    > *----
    > -
    > * FORM fieldcat_init *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > * --> I_FIELDCAT *
    > *----
    > -
    > FORM fieldcat_init
    > USING i_fieldcat TYPE slis_t_fieldcat_alv.
    > DATA: ls_fieldcat TYPE slis_fieldcat_alv.
    > DATA: pos TYPE i VALUE 1.
    > CLEAR ls_fieldcat.
    <b>Please note to keep on incrementing pos variable for column position.</b>
    <b> pos = pos + 1.</b>
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'VBELN'.
    > ls_fieldcat-ref_tabname = 'VBAK'.
    > ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    <b> pos = pos + 1.</b> ===> after every append to field catalog.
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'POSNR'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    <b>> ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'ETERN'.
    > ls_fieldcat-ref_tabname = 'VBEP'.
    > ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.</b>
    >
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'MATNR'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'MVGR1'.
    > ls_fieldcat-ref_tabname = 'MVKE'.
    > ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'WERKS'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > * ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'LGORT'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > * ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'ERDAT'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > * ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'WADAT_IST'.
    > ls_fieldcat-ref_tabname = 'LIKP'.
    > * ls_fieldcat-key = 'X'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'DAYS'.
    > ls_fieldcat-ref_fieldname = 'DAYS'.
    > ls_fieldcat-seltext_s = '# Of Days'.
    > ls_fieldcat-seltext_m = '# Of Days'.
    > ls_fieldcat-seltext_l = '# Of Days'.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > *Begin CH01
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'KWMENG'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > ls_fieldcat-outputlen = 7.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'LFIMG'.
    > ls_fieldcat-ref_tabname = 'LIPS'.
    > ls_fieldcat-outputlen = 7.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'OBD'.
    > ls_fieldcat-seltext_s = 'OBD'.
    > ls_fieldcat-seltext_m = 'Outbound Del'.
    > ls_fieldcat-seltext_l = 'Outbound Delivery'.
    > ls_fieldcat-outputlen = 10.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > * ls_fieldcat-col_pos = pos.
    > * ls_fieldcat-fieldname = 'OBD_POS'.
    > * ls_fieldcat-seltext_s = 'OBD Ln'.
    > * ls_fieldcat-seltext_m = 'Outbound Del Ln'.
    > * ls_fieldcat-seltext_l = 'Outbound Del Line'.
    > * ls_fieldcat-outputlen = 10.
    > * APPEND ls_fieldcat TO i_fieldcat.
    > * CLEAR ls_fieldcat.
    > *
    > *End CH01
    >
    > *JR
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'SOLDTO'.
    > ls_fieldcat-ref_tabname = 'VBAP'.
    > ls_fieldcat-seltext_m = 'Sold To'.
    > ls_fieldcat-seltext_l = 'Sold To'.
    > ls_fieldcat-outputlen = 10.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'SHIPTO'.
    > ls_fieldcat-ref_tabname = 'VBPA'.
    > ls_fieldcat-seltext_m = 'Ship To'.
    > ls_fieldcat-seltext_l = 'Ship To'.
    > ls_fieldcat-outputlen = 10.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    > *END JR
    >
    > ls_fieldcat-col_pos = pos.
    > ls_fieldcat-fieldname = 'EDATU'.
    > ls_fieldcat-ref_tabname = 'VBEP'.
    > ls_fieldcat-seltext_m = 'Requested Delivery date'.
    > ls_fieldcat-seltext_l = 'Requested Delivery date'.
    > ls_fieldcat-outputlen = 20.
    > APPEND ls_fieldcat TO i_fieldcat.
    > CLEAR ls_fieldcat.
    >
    >
    > *FOR ALV SORT & SUBTOTAL
    > CLEAR it_sort.
    > it_sort-spos = '0'.
    > it_sort-fieldname = 'VBELN'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-up = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    >
    > CLEAR it_sort.
    > it_sort-spos = '1'.
    > it_sort-fieldname = 'POSNR'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-up = 'X'.
    > it_sort-subtot = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    > *
    > CLEAR it_sort.
    > it_sort-spos = '2'.
    > it_sort-fieldname = 'MATNR'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-up = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    >
    > CLEAR it_sort.
    > it_sort-spos = '3'.
    > it_sort-fieldname = 'MVGR1'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-up = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    > *
    > CLEAR it_sort.
    > it_sort-spos = '4'.
    > it_sort-fieldname = 'ERDAT'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-up = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    >
    >
    > CLEAR it_sort.
    > it_sort-spos = '5'.
    > it_sort-fieldname = 'WADAT_IST'.
    > it_sort-tabname = 'GT_OUTTAB'.
    > it_sort-down = 'X'.
    > * it_sort-subtot = 'X'.
    > APPEND it_sort.
    >
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '6'.
    > * it_sort-fieldname = 'PERNR'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '7'.
    > * it_sort-fieldname = 'VORNA'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '8'.
    > * it_sort-fieldname = 'NACHN'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '9'.
    > * it_sort-fieldname = 'VKGRP'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '10'.
    > * it_sort-fieldname = 'VBELN'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '11'.
    > * it_sort-fieldname = 'ERDAT'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    > * CLEAR it_sort.
    > * it_sort-spos = '12'.
    > * it_sort-fieldname = 'BEZEI'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > ** it_sort-subtot = 'X'.
    > * APPEND it_sort.
    > *
    >
    > * clear it_sort.
    > * it_sort-spos = '1'.
    > * it_sort-fieldname = 'BELNR'.
    > * it_sort-tabname = 'GT_OUTTAB'.
    > * it_sort-up = 'X'.
    > * append it_sort.
    >
    >
    > ENDFORM.
    >
    > *----
    > -
    +EC1
    > * Addition +EC1
    > *----
    > -
    +EC1
    > *&----
    > -
    > *& Form VARIANT_INIT
    > *&----
    > -
    > * text
    > *----
    > -
    > * --> p1 text
    > * <-- p2 text
    > *----
    > -
    > FORM variant_init.
    > *
    > CLEAR g_variant.
    > g_variant-report = g_repid.
    > ENDFORM. " VARIANT_INIT
    >
    >
    >
    > *----
    > -
    > * FORM f4_for_variant *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > FORM f4_for_variant.
    > *
    > CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    > EXPORTING
    > is_variant = g_variant
    > i_save = g_save
    > * it_default_fieldcat =
    > IMPORTING
    > e_exit = g_exit
    > es_variant = gx_variant
    > EXCEPTIONS
    > not_found = 2.
    > IF sy-subrc = 2.
    > MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
    > WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    > ELSE.
    > IF g_exit = space.
    > p_vari = gx_variant-variant.
    > ENDIF.
    > ENDIF.
    > ENDFORM.
    > *&----
    > -
    > *& Form PAI_OF_SELECTION_SCREEN
    > *&----
    > -
    > * text
    > *----
    > -
    > FORM pai_of_selection_screen.
    > *
    > IF NOT p_vari IS INITIAL.
    > MOVE g_variant TO gx_variant.
    > MOVE p_vari TO gx_variant-variant.
    > CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
    > EXPORTING
    > i_save = g_save
    > CHANGING
    > cs_variant = gx_variant.
    > g_variant = gx_variant.
    > ELSE.
    > PERFORM variant_init.
    > ENDIF.
    > ENDFORM. " PAI_OF_SELECTION_SCREEN
    > *----
    > -
    +EC1
    > * End Addition +EC1
    > *----
    > -
    +EC1
    >
    >
    > *----
    > -
    > * FORM e03_eventtab_build *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > * --> E03_LT_EVENTS *
    > *----
    > -
    > FORM e03_eventtab_build USING e03_lt_events TYPE
    > slis_t_event.
    > DATA: ls_event TYPE slis_alv_event.
    >
    > CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    > EXPORTING
    > i_list_type = 0
    > IMPORTING
    > et_events = e03_lt_events.
    > READ TABLE e03_lt_events WITH KEY name =
    > slis_ev_top_of_page
    > INTO ls_event.
    > IF sy-subrc = 0.
    > MOVE gc_formname_top_of_page TO ls_event-form.
    > APPEND ls_event TO e03_lt_events.
    > ENDIF.
    > ENDFORM.
    >
    > *----
    > -
    > * FORM e04_comment_build *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > * --> E04_LT_TOP_OF_PAGE *
    > *----
    > -
    > FORM e04_comment_build USING e04_lt_top_of_page TYPE
    > slis_t_listheader.
    > DATA: ls_line TYPE slis_listheader.
    >
    > *Report Title
    > CLEAR ls_line.
    > ls_line-typ = 'H'.
    > ls_line-info = text-007.
    > APPEND ls_line TO e04_lt_top_of_page.
    > *
    > *
    > **Doc Type Desc.
    > * clear ls_line.
    > * ls_line-typ = 'S'.
    > * ls_line-key = text-008.
    > ** ls_line-info = p_matnr.
    > * append ls_line to e04_lt_top_of_page.
    > *
    > * clear ls_line.
    > * ls_line-typ = 'S'.
    > * ls_line-key = text-009.
    > ** ls_line-info = p_werks.
    > * append ls_line to e04_lt_top_of_page.
    > *
    > *
    > * clear ls_line.
    > * ls_line-typ = 'S'.
    > * ls_line-key = text-010.
    > ** ls_line-info = p_stlan.
    > * append ls_line to e04_lt_top_of_page.
    > *
    > * clear ls_line.
    > * ls_line-typ = 'S'.
    > * ls_line-key = text-011.
    > ** ls_line-info = p_stlal.
    > * append ls_line to e04_lt_top_of_page.
    > *
    > * clear ls_line.
    > * ls_line-typ = 'S'.
    > * ls_line-key = text-012.
    > ** ls_line-info = p_stlal.
    > * append ls_line to e04_lt_top_of_page.
    >
    >
    >
    > ENDFORM.
    >
    > *----
    > -
    > * FORM top_of_page *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > FORM top_of_page.
    >
    > CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    > EXPORTING
    > it_list_commentary = gt_list_top_of_page.
    >
    >
    > ENDFORM.
    >
    > *----
    > -
    > * FORM auth_check *
    > *----
    > -
    > * ........ *
    > *----
    > -
    > FORM auth_check.
    >
    > AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    > ID 'VKORG' FIELD p_vkorg.
    > IF sy-subrc NE 0.
    > MESSAGE e054 WITH p_vkorg.
    > ENDIF.
    >
    >
    > ENDFORM. " auth_check
    >
    >
    > *&----
    > -
    > *& Form USER_COMMAND
    > *&----
    > -
    > FORM user_command USING r_ucomm LIKE sy-ucomm
    > rs_selfield TYPE slis_selfield.
    >
    > CASE r_ucomm.
    > WHEN '&IC1'.
    > PERFORM display_so_order USING r_ucomm
    > rs_selfield.
    >
    > ENDCASE.
    >
    > ENDFORM.
    >
    > *&----
    > -
    > *& Form display_sales_order
    > *&----
    > -
    > * text
    > *----
    > -
    > * -->P_R_UCOMM text
    > * -->P_RS_SELFIELD text
    > *----
    > -
    > FORM display_so_order USING r_ucomm LIKE sy-ucomm
    > rs_selfield TYPE slis_selfield.
    >
    > CASE rs_selfield-sel_tab_field.
    > WHEN '1-VBELN'.
    > SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
    > CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
    > WHEN '1-MATNR'.
    > SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
    > CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
    > WHEN '1-OBD'.
    > SET PARAMETER ID 'VL' FIELD rs_selfield-value.
    > CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
    > WHEN OTHERS.
    > MESSAGE i000(z1) WITH 'Please Click on the Valid
    > Selection'.
    > EXIT.
    > ENDCASE.
    >
    >
    > ENDFORM. " display_sales_order
    >
    > *----
    > -
    > * FORM EDit_table *
    > *----
    > -
    > * ........ *
    > *----
    > -
    Message was edited by: Anurag Bankley

  • The  vendor code is not coming against some Assignment line items with the

    Hi All,
    While executing  t.code FBL3N,the  vendor code is not coming against some Assignment line items with the GL A/C4607000, some line items it is coming.
    The GL A/c 4607000 is GR/IR clearing a/c.
    Please let us know  why this situation is happeing at the time of FBL3N.
    Thanks
    Ram

    HI,
    By activating the special fields you can the vendor number, but use the new reprot called "FAGLL03 - Display/Change Items (New) ".
    First go to SPRO> Financial Accounting (New)> General Ledger Accounting (New)--> Master Data > G/L Accounts>Line Items --> Define Special Fields for Line Item Display
    Click on New Entries -
    Table - BSEG - Field - LIFNR
    Save. Now execute the report - FAGLL03 - Display/Change Items (New)
    Give the gl account number and execute.
    After getting the line items list from menu select --Settings --> Special Fields --> Click on New Entries --> Enter Table BSEG, Field Name LIFNR.
    After this come back and execute again. It will give you the vendor number.
    Thanks & Regards,
    Shashi Kanth.

  • XML shows multiple po distributions account for each po line item

    Hi, We have custome RDF created for Purchase Order Detail Report. Per the PO summary report, PO nubmer 30367 has two lines and each on has single distributions. Each line has different distributions. Line 1distribution account: 01.000.105.65020.00000.00 and Line 2 distribution account: 01.000.000.15020.00000.00. However when I run the XML for PO summary report, each line items contains the two account distributions. How do you make it sho it only show the account distribution pertain to the each line?
    **Please see xml below.**
    - <LIST_G_COMPANY>
    - <G_COMPANY>
    <C_COMPANY>CTI US Ledger</C_COMPANY>
    <C_ORGANIZATION_ID>83</C_ORGANIZATION_ID>
    <GL_CURRENCY>USD</GL_CURRENCY>
    <STRUCTURE_ACC>101</STRUCTURE_ACC>
    <STRUCTURE_CAT>101</STRUCTURE_CAT>
    <C_YES>Yes</C_YES>
    <C_NO>No</C_NO>
    <C_CATEGORY_SET_ID>1</C_CATEGORY_SET_ID>
    <BUSINESS_GROUP_ID>0</BUSINESS_GROUP_ID>
    - <LIST_G_HEADERS>
    - <G_HEADERS>
    <POH_REMARKS />
    <CREATION_DATE>01-SEP-10</CREATION_DATE>
    <STATUS>Approved</STATUS>
    <REV>0</REV>
    <PRINTED_DATE />
    <TYPE>Standard Purchase Order</TYPE>
    <BUYER>BUNTING, DOUGLAS</BUYER>
    <C_CURRENCY>USD</C_CURRENCY>
    <VENDOR>Softchoice Corporation</VENDOR>
    <ACCEPTANCE_DATE />
    <ON_HOLD />
    <VENDOR_SITE>SOFTCHOICE - PO</VENDOR_SITE>
    <ACCEPTANCE_REQUIRED>No</ACCEPTANCE_REQUIRED>
    <C_AMOUNT_AGR>2500</C_AMOUNT_AGR>
    <PO_HEADER_ID1>2790</PO_HEADER_ID1>
    <REVISED_DATE />
    <PO_NUMBER>30367</PO_NUMBER>
    <C_FND_PRECISION>2</C_FND_PRECISION>
    - <LIST_G_BREAK_LINES>
    - <G_BREAK_LINES>
    <LINE>1</LINE>
    <LINE_TYPE>GOODS</LINE_TYPE>
    <REV1 />
    <ITEM_DESCRIPTION>Test</ITEM_DESCRIPTION>
    <UNIT>EACH</UNIT>
    <PO_HEADER_ID>2790</PO_HEADER_ID>
    <UNIT_PRICE>500</UNIT_PRICE>
    - <LIST_G_SHIPMENTS>
    - <G_SHIPMENTS>
    <CLOSED_CODE />
    <LINE_CLOSED>N</LINE_CLOSED>
    <LINE_CANCEL>N</LINE_CANCEL>
    <NOTE_TO_VENDOR />
    <NEED_BY_DATE />
    <PROMISED_DATE />
    <SHIP_TO_LOCATION>CELL THERAPEUTICS INC</SHIP_TO_LOCATION>
    <QUANTITY_AMOUNT_ORDERED>1</QUANTITY_AMOUNT_ORDERED>
    <QUANTITY_AMOUNT_RECEIVED>0</QUANTITY_AMOUNT_RECEIVED>
    <QUANTITY_AMOUNT_CANCELLED>0</QUANTITY_AMOUNT_CANCELLED>
    <QUANTITY_AMOUNT_DUE>1</QUANTITY_AMOUNT_DUE>
    <QUANTITY_AMOUNT_BILLED>0</QUANTITY_AMOUNT_BILLED>
    <C_FLEX_CAT>COMPUTER SUPPLIES</C_FLEX_CAT>
    <C_FLEX_ITEM />
    </G_SHIPMENTS>
    </LIST_G_SHIPMENTS>
    - <LIST_G_CONCAT_SEGMENTS>
    - <G_CONCAT_SEGMENTS>
    <DELIVER_TO_PERSON_NAME>DOUGLAS BUNTING</DELIVER_TO_PERSON_NAME>
    <PO_HEADER_ID2>2790</PO_HEADER_ID2>
    <CONCAT_SEGMENTS>01.000.000.15020.00000.00</CONCAT_SEGMENTS>
    <PLL_LOCATION_ID>3053</PLL_LOCATION_ID>
    </G_CONCAT_SEGMENTS>
    - <G_CONCAT_SEGMENTS>
    <DELIVER_TO_PERSON_NAME>DOUGLAS BUNTING</DELIVER_TO_PERSON_NAME>
    <PO_HEADER_ID2>2790</PO_HEADER_ID2>
    <CONCAT_SEGMENTS>01.000.105.65020.00000.00</CONCAT_SEGMENTS>
    <PLL_LOCATION_ID>3052</PLL_LOCATION_ID>
    </G_CONCAT_SEGMENTS>
    </LIST_G_CONCAT_SEGMENTS>
    <C_FLEX_CAT_DISP>COMPUTER.SUPPLIES.</C_FLEX_CAT_DISP>
    <C_FLEX_ITEM_DISP />
    </G_BREAK_LINES>
    - <G_BREAK_LINES>
    <LINE>2</LINE>
    <LINE_TYPE>GOODS</LINE_TYPE>
    <REV1 />
    <ITEM_DESCRIPTION>test</ITEM_DESCRIPTION>
    <UNIT>EACH</UNIT>
    <PO_HEADER_ID>2790</PO_HEADER_ID>
    <UNIT_PRICE>1000</UNIT_PRICE>
    - <LIST_G_SHIPMENTS>
    - <G_SHIPMENTS>
    <CLOSED_CODE />
    <LINE_CLOSED>N</LINE_CLOSED>
    <LINE_CANCEL>N</LINE_CANCEL>
    <NOTE_TO_VENDOR />
    <NEED_BY_DATE />
    <PROMISED_DATE />
    <SHIP_TO_LOCATION>CELL THERAPEUTICS INC</SHIP_TO_LOCATION>
    <QUANTITY_AMOUNT_ORDERED>2</QUANTITY_AMOUNT_ORDERED>
    <QUANTITY_AMOUNT_RECEIVED>0</QUANTITY_AMOUNT_RECEIVED>
    <QUANTITY_AMOUNT_CANCELLED>0</QUANTITY_AMOUNT_CANCELLED>
    <QUANTITY_AMOUNT_DUE>2</QUANTITY_AMOUNT_DUE>
    <QUANTITY_AMOUNT_BILLED>0</QUANTITY_AMOUNT_BILLED>
    <C_FLEX_CAT>COMPUTER SUPPLIES</C_FLEX_CAT>
    <C_FLEX_ITEM />
    </G_SHIPMENTS>
    </LIST_G_SHIPMENTS>
    - <LIST_G_CONCAT_SEGMENTS>
    - <G_CONCAT_SEGMENTS>
    <DELIVER_TO_PERSON_NAME>DOUGLAS BUNTING</DELIVER_TO_PERSON_NAME>
    <PO_HEADER_ID2>2790</PO_HEADER_ID2>
    <CONCAT_SEGMENTS>01.000.000.15020.00000.00</CONCAT_SEGMENTS>
    <PLL_LOCATION_ID>3053</PLL_LOCATION_ID>
    </G_CONCAT_SEGMENTS>
    - <G_CONCAT_SEGMENTS>
    <DELIVER_TO_PERSON_NAME>DOUGLAS BUNTING</DELIVER_TO_PERSON_NAME>
    <PO_HEADER_ID2>2790</PO_HEADER_ID2>
    <CONCAT_SEGMENTS>01.000.105.65020.00000.00</CONCAT_SEGMENTS>
    <PLL_LOCATION_ID>3052</PLL_LOCATION_ID>
    </G_CONCAT_SEGMENTS>
    </LIST_G_CONCAT_SEGMENTS>
    <C_FLEX_CAT_DISP>COMPUTER.SUPPLIES.</C_FLEX_CAT_DISP>
    <C_FLEX_ITEM_DISP />
    </G_BREAK_LINES>
    </LIST_G_BREAK_LINES>
    <C_AMOUNT_AGR_ROUND>2500</C_AMOUNT_AGR_ROUND>
    <C_AMOUNT_AGR_DISP>2,500.00</C_AMOUNT_AGR_DISP>
    </G_HEADERS>
    </LIST_G_HEADERS>
    </G_COMPANY>
    </LIST_G_COMPANY>
    <XCOMPANY_NAME>CTI US Ledger</XCOMPANY_NAME>
    <YES>Yes</YES>
    <NO>No</NO>
    <ORG_ID>83</ORG_ID>
    <CAT_ID>1</CAT_ID>
    <COUNT_RECORDS>1</COUNT_RECORDS>
    </XXCTI_POXPOSTD_1>
    **Here is the Query for the RDF file...**
    SELECT pol.line_num Line
    , pol.closed_flag Line_Closed
    , pol.cancel_flag Line_Cancel
    , pol.closed_code
    , plt.line_type Line_Type
    , &P_FLEX_CAT C_FLEX_CAT
    , &P_FLEX_ITEM C_FLEX_ITEM
    , pol.item_revision Rev
    , pol.item_description Item_Description
    , pol.unit_meas_lookup_code Unit
    , pol.note_to_vendor Note_to_Vendor
    /* Bug: 141118 Take unit price from PO_LINES if there is no shipment */
    , to_number(decode(plt.order_type_lookup_code,
    'AMOUNT',null,
    nvl(pll.price_override,pol.unit_price))) Unit_Price
    , hrl.location_code Ship_To_Location
    , pll.promised_date Promised_Date
    , pll.need_by_date Need_By_Date
    , ROUND (DECODE (PLT.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', NVL(PLL.amount, POL.amount),
    'FIXED PRICE', NVL(PLL.amount, POL.amount),
    NVL(PLL.quantity, POL.quantity)), :p_qty_precision) Quantity_Amount_Ordered
    , ROUND (DECODE (PLT.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', NVL(PLL.amount_received, 0),
    'FIXED PRICE', NVL(PLL.amount_received, 0),
    NVL(PLL.quantity_received, 0)), :p_qty_precision) Quantity_Amount_Received
    , ROUND (DECODE (PLT.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', NVL(PLL.amount_cancelled, 0),
    'FIXED PRICE', NVL(PLL.amount_cancelled, 0),
    NVL(PLL.quantity_cancelled, 0)), :p_qty_precision) Quantity_Amount_Cancelled
    , ROUND (DECODE (PLT.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', NVL(PLL.amount, POL.amount) - NVL(PLL.amount_cancelled, 0)
    - NVL(PLL.amount_received, 0),
    'FIXED PRICE', NVL(PLL.amount, POL.amount) - NVL(PLL.amount_cancelled, 0)
    - NVL(PLL.amount_received, 0),
    NVL (PLL.quantity, POL.quantity) - NVL(PLL.quantity_cancelled, 0) - NVL(PLL.quantity_received, 0)),
    :p_qty_precision) Quantity_Amount_Due
    , ROUND (DECODE (PLT.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', NVL(PLL.amount_billed, 0),
    'FIXED PRICE', NVL(PLL.amount_billed, 0),
    NVL(PLL.quantity_billed, 0)), :p_qty_precision) Quantity_Amount_Billed
    , pol.po_header_id
    FROM po_line_locations pll
    , mtl_system_items msi
    , mtl_categories mca
    , po_lines pol
    , po_line_types plt
    , hr_locations hrl
    WHERE
    ROUND (DECODE (PLT.order_type_lookup_code,'RATE', NVL(PLL.amount, POL.amount) - NVL(PLL.amount_cancelled, 0) - NVL(PLL.amount_received, 0),'FIXED PRICE', NVL(PLL.amount, POL.amount) - NVL(PLL.amount_cancelled, 0) - NVL(PLL.amount_received, 0),NVL (PLL.quantity, POL.quantity) - NVL(PLL.quantity_cancelled, 0) - NVL(PLL.quantity_received, 0)), :p_qty_precision) > 0
    AND (ROUND (DECODE (PLT.order_type_lookup_code,'RATE', NVL(PLL.amount, POL.amount),'FIXED PRICE', NVL(PLL.amount, POL.amount), NVL(PLL.quantity, POL.quantity)),:p_qty_precision)) > (ROUND (DECODE (PLT.order_type_lookup_code,'RATE', NVL(PLL.amount_billed, 0),'FIXED PRICE', NVL(PLL.amount_billed, 0),NVL(PLL.quantity_billed, 0)), :p_qty_precision))
    AND pol.item_id = msi.inventory_item_id(+)
    AND nvl(msi.organization_id,:c_organization_id) = :c_organization_id
    AND pol.line_type_id = plt.line_type_id
    AND pol.category_id = mca.category_id
    /* Bug No 141118
    Added the outer join on po_line_id ,hrl.location_id and nvl on the shipment_type
    Also added nvl on quantity and price so as to select quantity and price if the PO
    has no shipments */
    AND pol.po_line_id = pll.po_line_id(+)
    AND pll.ship_to_location_id = hrl.location_id(+)
    AND pll.shipment_type in ('STANDARD', 'PLANNED')
    AND &P_WHERE_CAT
    AND &P_WHERE_ITEM
    ORDER BY pol.line_num

    > I made a pr with single line item with 3 account assignment on percentage basis.I created a PO against .GR non valuated was automatically ticked so no account assignment was created at the time of GR posting.
    When you are having the multiple account assignment, then the system will force you to have GR-non valuated indicator being flagged which results in the fact there is not any FI document at GR posting stage and this is the standard feature of SAP.
    > Can I make a valuted GR against PO line item with multiple account assignment.
    No, not at all. The disability of GR indicator can be set in OME9 with account assignment category
    > I faced another problem .I displayed the GR and after ticking out put check box in the general data page of the GR doc. the output is being saved but  the update is terminated immediately.and no output page is generated in this item level.This output problem is not there at the time of single account assignment at PO line item.
    In fact, it is possible to maintain multiple account assignment for each and every PO line item by selecting the 'Multiple Account Assignment' button in the 'Account Assignment' View of the Item Detail of PO. However, for such multiple account assignment selection, no accounting document will be generated upon GR maintenance. This can only be done during IR via LIV process.

  • Generate 2 line items with posting keys in same table while using  FM .

    Dear Expert ,
    For T-code f-65 ,I have to park a FI Document  .i tried with PRELIMINARY_POSTING_FB01 for parked Document . But  i am not  successfully park the document .
    with the help of F-65 the data Segregate between Tables VBSEGS and VBSEGD with respecting Posting key . but with this Fm entire entry is displaying in table VBSEGS .For example it generated two line items with posting keys '15' and '40' and these both are displayed in VBSEGS whereas posting key '15' has to be displayed in VBSEGD.
    when i check this Document in FBV0 Error reflect " G/L Account 0012000 1001 Does not Exist ".
    Here my code -
    DATA:   XT_BKPF LIKE  BKPF OCCURS 0 WITH HEADER LINE ,
            XT_BSEG LIKE  BSEG OCCURS 0 WITH HEADER LINE ,
            XT_BSEG1 LIKE  BSEG OCCURS 0 WITH HEADER LINE ,
            XT_BSEC LIKE  BSEC OCCURS 0 WITH HEADER LINE ,
            XT_BSET LIKE  BSET OCCURS 0 WITH HEADER LINE ,
            XT_BSEZ LIKE  BSEZ  OCCURS 0 WITH HEADER LINE ,
            XT_BKORM  LIKE  BKORM OCCURS 0 WITH HEADER LINE ,
            XT_THEAD  LIKE  THEAD OCCURS 0 WITH HEADER LINE ,
            XT_SPLTTAB  LIKE  ACSPLT  OCCURS 0 WITH HEADER LINE ,
            XT_SPLTWT LIKE  WITH_ITEMX  OCCURS 0 WITH HEADER LINE .
    DATA :    XTEXT_UPDATE  LIKE  BOOLE-BOOLE VALUE SPACE,
              XTEXT_ITEM_UPDATE LIKE  BOOLE-BOOLE VALUE SPACE,
              XI_UF05A  LIKE  UF05A,
              XI_XCMPL  TYPE  XFELD VALUE 'X',
              XFS006_FB01 LIKE  FS006 ,
              XI_TCODE  LIKE  T020-TCODE  VALUE 'F-65',
              XI_PARGB  LIKE  RF05A-PARGB        ,
              XI_TCODE_INT  TYPE  TCODE           .
    DATA P_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
    XT_BKPF-BUKRS     =     'CP01'.
    XT_BKPF-GJAHR     =     2011.
    XT_BKPF-BLART     =     'DZ'.
    XT_BKPF-BLDAT     =     SY-DATUM.
    XT_BKPF-BUDAT     =     SY-DATUM.
    XT_BKPF-MONAT     =     '06'.
    XT_BKPF-CPUDT     =     SY-DATUM.
    XT_BKPF-WWERT     = SY-DATUM.
    XT_BKPF-USNAM     =     'ABAPER'.
    XT_BKPF-TCODE     =     'F-65'.
    APPEND XT_BKPF.
    XT_BSEG-BUKRS     =     'CP01'.
    XT_BSEG-GJAHR     =     '2011'.
    XT_BSEG-BUZEI = '001'.
    XT_BSEG-BSCHL = '40'.
    XT_BSEG-KOART = 'S'.
    XT_BSEG-SHKZG = 'S' .
    XT_BSEG-GSBER     =     'CPLN'.
    XT_BSEG-BUPLA = 'CP01'.
    XT_BSEG-WRBTR     =     10000.
    XT_BSEG-PSWSL = 'INR'.
    XT_BSEG-ZUONR = 'CH. 123456'.
    XT_BSEG-HKONT = '241000'.
    APPEND XT_BSEG .
    CLEAR  XT_BSEG.
    Vendor line item - required even for header only - BSEG table
    XT_BSEG-BUKRS     =     'CP01'.
    XT_BSEG-GJAHR     =     '2011'.
    XT_BSEG-BUZEI = '002'.
    XT_BSEG-BSCHL = '15'.
    XT_BSEG-KOART = 'S'.
    XT_BSEG-SHKZG = 'H' .
    XT_BSEG-GSBER     =     'CPLN'.
    XT_BSEG-BUPLA = 'CP01'.
    XT_BSEG-WRBTR     =     10000.
    XT_BSEG-PSWSL = 'INR'.
    XT_BSEG-ZUONR = 'CH. 123456'.
    XT_BSEG-HKONT = 'PC04000001'.
    APPEND XT_BSEG .
    CLEAR  XT_BSEG.
      CALL FUNCTION 'PRELIMINARY_POSTING_FB01'
       EXPORTING
         TEXT_UPDATE            = XTEXT_UPDATE
         TEXT_ITEM_UPDATE       = XTEXT_ITEM_UPDATE
      I_UF05A                =
         I_XCMPL                = XI_XCMPL
      FS006_FB01             =
          I_TCODE                = XI_TCODE
      I_PARGB                =
      I_TCODE_INT            =
      IMPORTING
        XEPBBP                 = CHECK_A
        TABLES
          T_BKPF                 = XT_BKPF
          T_BSEG                 = XT_BSEG
          T_BSEC                 = XT_BSEC
          T_BSET                 = XT_BSET
          T_BSEZ                 = XT_BSEZ
      T_BKORM                =
      T_THEAD                =
      T_SPLTTAB              =
      T_SPLTWT               =
              EXCEPTIONS
                ERROR_MESSAGE = 1.
      P_RETURN-ID         = SY-MSGID.
      P_RETURN-TYPE       = SY-MSGTY.
      P_RETURN-NUMBER     = SY-MSGNO.
      APPEND P_RETURN.
         p_return-MESSAGE_V1 = XSYMSGV.
      IF SY-SUBRC = 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
      ENDIF.
      WRITE :/ sy-subrc , sy-MSGV1 .
    Thanks ,
    Ashish Gupta

    Hi Raghuram,
    I found a very important SAP Note 103051, details are below.
    An IDoc processed by function module IDOC_INPUT_INVOIC_MM (of category INVOIC01) must not refer to the same purchase order item in several invoice items. This is also valid if for a goods receipt-related invoice verification several delivery notes belong to the same purchase order item.
    Depending on the system settings and the situation, various error messages can occur (for example, FD240 'Order item ... selected more than once' or M8050 'Balance not zero: & debits: & credits: &').
    In this situation module IDOC_INPUT_INVOIC_MRM generates error message M8321 'Document contains same order item more than once'.
    For example, this situation occurs if you work with individual batch valuation and the SD billing document executes a batch split for different batches which belong to the same purchase order item and delivery.
    Other terms
    INVOIC, SAPLIEDI,  M8047, M8, 321
    Reason and Prerequisites
    This is because of the program design.
    Solution
    There is no solution for IDOC_INPUT_INVOIC_MM.
    Module IDOC_INPUT_INVOIC_MRM (only as of Release 4.0) for the logistics invoice verification can distinguish different goods receipts by means of the delivery note number. For this purpose, GR-related invoice verification must be active.
    Owing to this symptom, billing documents for single batch valuation with batch split cannot be settled in MM-EDI inbound processing. The settlement generates exactly the situation described (several invoice items for the same purchase order item). In this case, the only solution is to deactivate the billing of the batch sub-items in SD Customizing and to calculate the main item only.
    Hope this helps.
    Reward if helpful.
    Thanks

Maybe you are looking for