Advance & Retension for a vendor

Dear Friends,
My Issue:
For a vendor my payment should be:
--> 10% Advance of the total Contract should be given to the Vendor
--> when ever vendor invoices (partial invoices) we should cut 10%(on advance given before) and 10% Retension and pay him 80% of the value in invoice
--> at the end of the final work we should pay to vendor the 10% retension which we are deducting with all the invoices
Hope this is clear
Reg
Rajesh

Dear Rajesh
There are two scenario's for your problem. if the invoice comes from the Purchasing order or directly from the FI vendor.
If it is from the Purchase order, pl follow the following sequence.
1) pay the advance as usual which is the same for the both the cases F-48
2) raise the invoice for total amount.Say Ex. invoice amount, 10,000, (retn amount,500, and recovery of the advance, 1000 and any penalty etc, 500) 3) using clearing to some of the balance sheet accounts for retention amount and recovery of the advance amount paid and if any penalty etc through P&L accounts through F-51for the balances of 500, 1000 etc.,)
4) Now only you are able to see the open item for the particular vendor i.e. 10000-500-1000= 9500
5) pay for the open item  9500 then the issue was solved.
When you want to repay the retention amount, such time debit that amount and credit the bank account.
I hope it will suffice you requirement.
Regards
madhav

Similar Messages

  • Advance ajdustment for Vendor line items through F110

    Hello
    We have to make advance ajustment through F110 for the Vendor line items .  Advance is posted with special indicators through F-48 and invoice booked through FB60 and MIRO.
    I have checked the configuration in FBZP "All Company Codes" where special indicators is assigned.  Still advance is not getting adjusted.
    Please help me to resolve this issue.
    Regards,

    Hello Prashant,
    Check F110 Addtional log tab > Due date check box  & also check F110 > Parameter > Next payment date it should be more that what you expecting due date selection
    Rgds
    Suma

  • Calculate 10% TDS on advance rent for vendor related Real Estate contracts

    Hi Experts,
    In my current RE-Fx implimentation project for a retail client; I need to calculate 10% TDS on advance rent payable to vendor.
    What withholding tax configuration needs to be done & maintained to calculate 10% TDS on advance rent for commercial Lease-In contracts?
    Thanks
    Shantanu Kar

    Hi,
    There is no special Withholding tax configuration required for SAP RE-FX. All you need to do is check with your FI consultant for all relevant configurations and tax codes created for invoice and payment for section 194I, maintain the tax codes at the vendor master.
    At contract creation you have to maintain the withholding tax lines at posting parameters tab by pulling the information from the partner data. The withholding tax will be considered at periodic posting.
    Regds,
    Hardik Sharma

  • Set advance limit for vendor

    Hi,
    i would like to discover the possibility of setting a vendor advance limits in the vendor master data or another place so system should stop if down payment being made more than the value maintained
    regards,

    Dude,
    have you read my question correctly?
    Have you ever done something with validation or just thought to use
    i dont think validation can work. It might help to stop payment being made more than the value maintain per transaction however i want to have such kind of mechanism whereby i can have control of total advance should not exceed more than the value for e.g.
    If i maintained value for a particular vendor let say $1000 now if i post advance 600 and i cleared that with susequent invoice then even if i post advance of 800 it should not stop.
    If i tried to post 800 before clearing then it should stop
    hope you understand
    Regards

  • Report to find open items and close items for given vendor

    Hi All,
    What are the steps needed to write a REPORT to find out
    open and close items for a given vendor.
    Which are the fields i'll have to take and what are the comparisons i'll have to make.
    I know,
    BSIK is for open Vendor &
    BSAK for closed Vendors..
    what are the conditions i'll have to check.
    Thanks in Advance..
    Pradeep Alex

    Hi Pradeep,
    This report I developed is definitely useful to you.
    *& Report  ZFI_PROV_IT_VENDOR
    REPORT  ZFI_VENDOR.
    TYPE-POOLS: slis.
    tables: BKPF,
            BSEG,
            bsik,
            bsak,
            bsid,
            bsad,
            lfa1,
            t005u,           "Region Description
            J_1IMOVEND.
    TYPES: BEGIN OF ty_bkpf,
            bukrs type bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            gjahr type bkpf-gjahr,
            blart TYPE bkpf-blart,
            budat TYPE bkpf-budat,
           END   OF ty_bkpf.
    types: begin of ty_J_1IMOVEND,
             lifnr     type lfa1-lifnr,
             J_1IPANNO type J_1IMOVEND-J_1IPANNO,
             J_1ICSTNO type J_1IMOVEND-J_1ICSTNO,
             J_1ISERN  type J_1IMOVEND-J_1ISERN,
           end   of ty_J_1IMOVEND.
    TYPES: BEGIN OF ty_bseg,
            belnr TYPE bseg-belnr,
            gjahr type bseg-gjahr,
            bschl TYPE bseg-bschl,
            umskz type bseg-umskz,
            shkzg type bseg-shkzg,
            wrbtr TYPE bseg-wrbtr,
            hkont type bseg-hkont,
            lifnr TYPE bseg-lifnr,
           END   OF ty_bseg.
    types: begin of ty_t005u,
            bland type t005u-bland,
            bezei type t005u-bezei,
           end   of ty_t005u.
    types: begin of ty_lfa1,
            lifnr type lfa1-lifnr,
            name1 type lfa1-name1,   "35
            ort01 type lfa1-ort01,   "35
            ort02 type lfa1-ort02,   "35
            pfach type lfa1-pfach,   "10
            pstlz type lfa1-pstlz,   "10
            regio type lfa1-regio,   "3
            stras type lfa1-stras,   "35
            ktokk type lfa1-ktokk,
            telf1 type lfa1-telf1,   "16
            telf2 type lfa1-telf2,   "16
           end   of ty_lfa1.
    types: begin of ty_bsik,
            bukrs type bsik-bukrs,
            lifnr type bsik-lifnr,
            augdt type bsik-augdt,
            augbl type bsik-augbl,
            belnr type bsik-belnr,
            budat type bsik-budat,
            blart type bsik-blart,
            shkzg type bsik-shkzg,
            wrbtr type bsik-wrbtr,
           end   of ty_bsik.
    types: begin of ty_bsid,
            bukrs type bsid-bukrs,
            lifnr type bsid-kunnr,
            augdt type bsid-augdt,
            augbl type bsid-augbl,
            belnr type bsid-belnr,
            budat type bsid-budat,
            blart type bsid-blart,
            shkzg type bsid-shkzg,
            wrbtr type bsid-wrbtr,
           end   of ty_bsid.
    types: begin of ty_out2,
            lifnr type bsik-lifnr,
            wrbtr type bsik-wrbtr,
            end  of ty_out2.
    types: begin of ty_out,
            lifnr type lfa1-lifnr,
            name1 type lfa1-name1,
            addr(162) type c,
            J_1IPANNO type J_1IMOVEND-J_1IPANNO,
            J_1ICSTNO type J_1IMOVEND-J_1ICSTNO,
            J_1ISERN  type J_1IMOVEND-J_1ISERN,
            opbal  type bseg-wrbtr,
            purch type bseg-wrbtr,
            PAYM  type bseg-wrbtr,
            grdeb type bseg-wrbtr,
            othdeb type bseg-wrbtr,
            othcre type bseg-wrbtr,
            tds   type bseg-wrbtr,
            bal   type bseg-wrbtr,
            blart type bkpf-blart,
            bschl type bseg-bschl,
           end  of ty_out.
    types: begin of ty_bsegtemp,
            lifnr TYPE bseg-lifnr,
           end   of ty_bsegtemp.
    types: begin of ty_bsegnew,
            wrbtr TYPE bseg-wrbtr,
            lifnr TYPE bseg-lifnr,
           end   of ty_bsegnew.
    data: it_bsik type table of ty_bsik with header line,
          it_bsid type table of ty_bsid with header line,
          it_bsak type table of ty_bsik with header line,
          it_out2  type table of ty_out2 with header line,
          it_out3 type table of ty_out2 with header line.
    DATA : it_fieldcat TYPE slis_t_fieldcat_alv,
           it_listheader TYPE slis_t_listheader,
           it_alvevent TYPE slis_t_event,
           gt_events TYPE slis_t_event WITH HEADER LINE.
    DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
    DATA : wa_fieldcat TYPE slis_fieldcat_alv,
           wa_listheader TYPE slis_listheader,
           wa_alvevent TYPE slis_alv_event.
    DATA: WA_SORT TYPE SLIS_SORTINFO_ALV.
    DATA: ls_line TYPE slis_listheader.
    DATA : g_repid  LIKE sy-repid,                  " Program ID
           g_layout TYPE slis_layout_alv.           " Layout Workarea
    DEFINE m_fieldcat.
      wa_fieldcat-col_pos       = &1.               " Fieldcat column postion
      wa_fieldcat-fieldname     = &2.               " Field name
      wa_fieldcat-DO_SUM        = &3.
      wa_fieldcat-seltext_m     = &4.               " Column Text
      wa_fieldcat-outputlen    = &5.
      append wa_fieldcat to it_fieldcat.
      clear wa_fieldcat.
    END-OF-DEFINITION.
    DATA: wa_lfa1 TYPE ty_lfa1,
          wa_bkpf TYPE ty_bkpf,
          wa_bkpf1 type ty_bkpf,
          wa_bsegtemp type ty_bsegtemp,
          wa_bsegnew type ty_bsegnew,
          wa_bsegnew1 type ty_bsegnew,
          wa_J_1IMOVEND type ty_J_1IMOVEND,
          wa_t005u type ty_t005u,
          wa_bseg TYPE ty_bseg,
          wa_out    TYPE ty_out.
    DATA: gt_out TYPE STANDARD TABLE OF ty_out,
          gt_out1 TYPE STANDARD TABLE OF ty_out,
          gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
          gt_bsegtemp type standard table of ty_bsegtemp with header line,
          gt_bsegnew type standard table of ty_bsegnew with header line,
          gt_bsegnew1 type standard table of ty_bsegnew with header line,
          gt_J_1IMOVEND type standard table of ty_J_1IMOVEND,
          gt_bkpf1 TYPE STANDARD TABLE OF ty_bkpf WITH HEADER LINE,
          gt_t005u type standard table of ty_t005u,
          gt_bseg TYPE STANDARD TABLE OF ty_bseg WITH HEADER LINE,
          gt_bkpf TYPE STANDARD TABLE OF ty_bkpf WITH HEADER LINE.
    selection-screen begin of block b1 with frame title text-001.
    select-options: s_budat for bkpf-budat obligatory,
                    s_ktokk for lfa1-ktokk obligatory.
                   s_wrbtr for bseg-wrbtr.
    parameters: p_bukrs type bkpf-bukrs obligatory default '1000'.
               p_gjahr type bkpf-gjahr obligatory.
               p_lifnr type bseg-lifnr obligatory default '300040',
               p_ktokk type lfa1-ktokk obligatory default 'Z200'.
    selection-screen end   of block b1.
    START-OF-SELECTION.
      PERFORM sub_fetch_data.
      PERFORM sub_process_data.
    END-OF-SELECTION.
      PERFORM sub_build_fieldcat.
      PERFORM sub_build_layout.
      PERFORM eventtab_build USING gt_events[].
      PERFORM comment_build USING it_listheader[].
      PERFORM sub_disp_data.
    *&      Form  SUB_BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM sub_build_fieldcat .
    sort gt_out by name1.
    *DEFINE M_SORT.
       ADD 1 TO WA_SORT-SPOS.
       WA_SORT-FIELDNAME = &1.
       WA_SORT-UP        = 'X'.
       WA_SORT-SUBTOT    = &2.
       APPEND WA_SORT TO I_SORT.
    END-OF-DEFINITION.
    *m_sort 'NAME1' 'X'.
    *M_SORT 'ADDR' 'X'.
      m_fieldcat 1  'LIFNR' ' '  text-026 10.
      m_fieldcat 2  'NAME1' ' '  text-006 35.
      m_fieldcat 3  'ADDR' ' ' text-007 162.
      m_fieldcat 4  'J_1IPANNO' ''  text-008 40.
      m_fieldcat 5  'J_1ICSTNO'  '' text-009 40.
      m_fieldcat 6  'J_1ISERN'  '' text-010 40.
      m_fieldcat 7  'OPBAL'  '' text-011 18.
      m_fieldcat 8  'PURCH'    '' text-012 18.
      m_fieldcat 9  'PAYM' ''  text-013 18.
      m_fieldcat 10  'GRDEB'  '' text-014 18.
      m_fieldcat 11  'OTHDEB'  '' text-020 18.
      m_fieldcat 12  'OTHCRE'  '' text-021 18.
      m_fieldcat 13  'BAL'  '' text-023 18.
      m_fieldcat 14  'TDS'  '' text-022 18.
    ENDFORM.                    " SUB_BUILD_FIELDCAT
    *&      Form  SUB_BUILD_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM sub_build_layout .
      g_layout-zebra             = 'X'.
      g_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SUB_BUILD_LAYOUT
    *&      Form  EVENTTAB_BUILD
          text
         -->P_GT_EVENTS[]  text
    FORM eventtab_build  USING    gt_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   = gt_events.
      READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'TOP_OF_PAGE' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  COMMENT_BUILD
          text
         -->P_IT_LISTHEADER[]  text
    FORM comment_build  USING    p_it_listheader TYPE
                                            slis_t_listheader.
    data: v_text(30) type c,
          v_datelow(10) type c,
          v_datehigh(10) type c,
          v_month(2) type c,
          v_day(2) type c,
          v_year(4) type c.
    v_day  = s_budat-low+6(2).
    v_month = s_budat-low+4(2).
    v_year = s_budat-low+0(4).
    concatenate v_day '.' v_month '.' v_year into v_datelow.
    clear: v_day,v_month,v_year.
    v_day  = s_budat-high+6(2).
    v_month = s_budat-high+4(2).
    v_year = s_budat-high+0(4).
    concatenate v_day '.' v_month '.' v_year into v_datehigh.
    clear: v_day,v_month,v_year.
    concatenate 'From' v_datelow 'To' v_datehigh into v_text
                                        separated by space.
    clear: v_datelow, v_datehigh.
      ls_line-typ  = 'H'.
      ls_line-info = text-116.
      APPEND ls_line TO p_it_listheader.
    ls_line-typ  = 'S'.
      ls_line-key = text-090.
      ls_line-info = v_text.
      APPEND ls_line TO p_it_listheader.
    ENDFORM.                    " COMMENT_BUILD
    *&      Form  TOP_OF_PAGE
          text
    -->  p1        text
    <--  p2        text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_listheader.
    ENDFORM.                    " TOP_OF_PAGE
    *&      Form  SUB_DISP_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM sub_disp_data .
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = g_repid
          it_fieldcat        = it_fieldcat[]
          is_layout          = g_layout
          i_save             = 'U'
          it_events          = gt_events[]
        IT_SORT             = I_SORT[]
        TABLES
          t_outtab           = gt_out1[].
    ENDFORM.                    " SUB_DISP_DATA
    *&      Form  sub_fetch_data
          text
    -->  p1        text
    <--  p2        text
    form sub_fetch_data .
    select bukrs
           belnr
           gjahr
           blart
           budat
           from bkpf
           into table gt_bkpf
           where budat in s_budat
           and   bukrs = p_bukrs
          and   gjahr = p_gjahr
           and   blart in ('KR','KG','KZ','RE','DK','Z1','AB','SA','KA','DZ').
    select belnr
           gjahr
           bschl
           umskz
           shkzg
           wrbtr
           hkont
           lifnr
           from bseg
           into table gt_bseg
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and   gjahr = gt_bkpf-gjahr
          and gjahr = p_gjahr
           and   bschl in (21,25,29,31,50,39,38,19,35).
          and kunnr in gt_
          and lifnr = '0000300019'.
    select belnr
           gjahr
           bschl
           umskz
           shkzg
           wrbtr
           hkont
           kunnr
           from bseg
           appending table gt_bseg
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and   gjahr = gt_bkpf-gjahr
          and gjahr = p_gjahr
           and   bschl in (21,25,29,31,50,39,38,19).
    break manukapur.
    sort gt_bseg by  lifnr bschl.
    delete adjacent duplicates from gt_bseg comparing all fields.
    loop at gt_bseg into wa_bseg.
    if wa_bseg-lifnr is not initial.
    move: wa_bseg-lifnr to wa_bsegtemp-lifnr.
          append wa_bsegtemp to gt_bsegtemp.
          endif.
    endloop.
    delete adjacent duplicates from gt_bsegtemp comparing lifnr.
    select lifnr
            name1
            ort01
            ort02
            pfach
            pstlz
            regio
            stras
            ktokk
            telf1
            telf2
            from lfa1
            into table gt_lfa1
            for all entries in gt_bseg
            where lifnr = gt_bseg-lifnr
            and ktokk in s_ktokk.
           and lifnr = '0000300030'.
    select  bland
            bezei
            from t005u
            into table gt_t005u
            for all entries in gt_lfa1
            where bland = gt_lfa1-regio
            and land1 = 'IN'
            and spras = sy-langu.
    select lifnr
           J_1IPANNO
           J_1ICSTNO
           J_1ISERN
           from J_1IMOVEND
           into table gt_J_1IMOVEND
           for all entries in gt_bseg
           where lifnr = gt_bseg-lifnr.
    *select bukrs
          belnr
          blart
          budat
          from bkpf
          into table gt_bkpf1
          where budat < s_budat-low.
          and zfdbt < s_budat-low.
    select
           wrbtr
           lifnr
           from bseg
           into table gt_bsegnew
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and xopvw = 'X' .
          and zfbdt < s_budat-low.
    select bukrs
           lifnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsik
           into table it_bsik
           for all entries in gt_bseg
           where lifnr = gt_bseg-lifnr
          and   lifnr = '0000300000'
           and   bukrs = '1000'
           and   budat <= s_budat-low.
    select bukrs
           lifnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsak
           appending table it_bsik
           for all entries in gt_bseg
           where bukrs = '1000'
           and   lifnr = gt_bseg-lifnr
          and   lifnr = '0000300000'
           and   budat <= s_budat-low
           and   augdt > s_budat-low.
    select bukrs
           kunnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsid
           into table it_bsid
           for all entries in gt_bseg
           where bukrs = '1000'
           and   kunnr = gt_bseg-lifnr
          and   kunnr = '0000300000'
           and   budat <= s_budat-low.
    select bukrs
           kunnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsad
           appending table it_bsid
           for all entries in gt_bseg
           where bukrs = '1000'
           and   kunnr = gt_bseg-lifnr
          and   kunnr = '0000300000'
           and   budat <= s_budat-low
           and   augdt > s_budat-low.
    if it_bsid[] is not initial.
    append lines of it_bsid to it_bsik.
    endif.
    *delete gt_bsegnew where lifnr  <> '0000300000'.
    *break manukapur.
    *sort gt_bsegnew by lifnr.
    *loop at gt_bsegnew into wa_bsegnew.
    *collect wa_bsegnew into gt_bsegnew1.
    *endloop.
    loop at it_bsik .
    it_out2-lifnr = it_bsik-lifnr.
    *it_out1-budat = it_bsik-budat.
    *it_out1-blart = it_bsik-blart.
    if it_bsik-SHKZG = 'H'.
    it_out2-wrbtr = it_bsik-wrbtr.
    else .
    it_out2-wrbtr = it_bsik-wrbtr * -1.
    endif.
    append it_out2.
    clear: it_out2, it_bsik.
    *endif.
    *clear it1.
    endloop.
    sort it_out2 by lifnr.
    loop at it_out2.
    it_out3-lifnr = it_out2-lifnr.
    it_out3-wrbtr = it_out2-wrbtr.
    collect it_out3.
    clear: it_out3, it_out2.
    endloop.
    endform.
    *&      Form  sub_process_data
          text
    -->  p1        text
    <--  p2        text
    form sub_process_data .
    *sort gt_bsegtemp by  lifnr .
    sort gt_bseg by lifnr bschl.
    sort gt_bsegnew by lifnr.
    sort it_out3 by lifnr.
    *loop at gt_bsegnew into wa_bsegnew.
    *at end of lifnr.
    *sum.
    *endat.
    *endloop.
    sort gt_bkpf by blart.
    loop at gt_bseg into wa_bseg.
    if wa_bseg-lifnr is not initial.
    read table gt_lfa1 into wa_lfa1 with key lifnr = wa_bseg-lifnr.
    move: wa_lfa1-name1 to wa_out-name1,
         wa_lfa1-lifnr to wa_out-lifnr.
    read table gt_t005u into wa_t005u with key bland = wa_lfa1-regio.
    concatenate wa_lfa1-stras ',' wa_lfa1-ort01 ','
                wa_lfa1-ort02 ',' wa_t005u-bezei ','
                wa_lfa1-pfach ','
                wa_lfa1-pstlz ',' 'Ph:'
                wa_lfa1-telf1 ','
                wa_lfa1-telf2
                into wa_out-addr separated by space.
    read table gt_J_1IMOVEND into wa_J_1IMOVEND with key lifnr = wa_bseg-lifnr.
    move: wa_J_1IMOVEND-J_1IPANNO to wa_out-J_1IPANNO,
          wa_J_1IMOVEND-J_1ICSTNO to wa_out-J_1ICSTNO,
          wa_J_1IMOVEND-J_1ISERN  to wa_out-J_1ISERN.
          read table gt_bkpf into wa_bkpf with key belnr = wa_bseg-belnr.
    if wa_bkpf-blart = 'RE' and wa_bseg-bschl = 31 or
    wa_bkpf-blart = 'KR' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-purch = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-purch = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KR' and wa_bseg-bschl = 50.
    *wa_out-tds = wa_out-tds + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-tds = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-tds = wa_bseg-wrbtr * -1.
    endif.
    endif.
    *wa_out-tds = wa_bseg-wrbtr.
    endif.
    if wa_bkpf-blart = 'KG' and wa_bseg-bschl = 21.
    *wa_out-grdeb =  wa_out-grdeb + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'RE' and wa_bseg-bschl = 21.
    *wa_out-grdeb =  wa_out-grdeb + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 25
    *or wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 29
    **and wa_bseg-umskz = 'A'
    or wa_bkpf-blart = 'SA' and wa_bseg-bschl = 25.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-paym = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-paym = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'DK' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'SA' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 38.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'DZ' and wa_bseg-bschl = 19
    and wa_bseg-umskz = 'A'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KA' and wa_bseg-bschl = 39
    and wa_bseg-umskz = 'G' or
           wa_bseg-umskz = 'H' or
           wa_bseg-umskz = 'J' or
           wa_bseg-umskz = 'L' OR
           wa_bseg-umskz = 'A'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KA' and wa_bseg-bschl = 35.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if ( wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 29 )
       and wa_bseg-umskz = 'A' or
           wa_bseg-umskz = 'B' or
           wa_bseg-umskz = 'I' or
           wa_bseg-umskz = 'M' or
           wa_bseg-umskz = 'O' or
           wa_bseg-umskz = 'V'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 27.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'Z1' and wa_bseg-bschl = 21 .
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    **if wa_bseg-shkzg = 'H'.
    ***wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    **wa_out-othdeb = wa_bseg-wrbtr.
    **else.
    **if wa_bseg-shkzg = 'S'.
    ***wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    **wa_out-othdeb = wa_bseg-wrbtr * -1.
    **endif.
    **endif.
    **endif.
    ***if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 27.
          wa_out-othdeb =  wa_bseg-wrbtr.
    ***endif.
    ***if wa_bkpf-blart = 'Z1' and wa_bseg-bschl = 21.
          wa_out-othdeb =  wa_bseg-wrbtr.
    ***endif.
    read table it_out3 with key lifnr = wa_bseg-lifnr binary search.
    on change of wa_bseg-lifnr.
    *move: wa_lfa1-name1 to wa_out-name1,
        wa_lfa1-lifnr to wa_out-lifnr.
    wa_out-opbal = it_out3-wrbtr.
    endon.
    *if wa_out-opbal is not initial.
    *wa_out-bal = wa_out-opbal + wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    **else.
    *wa_out-bal = wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    *endif.
    wa_out-bal = wa_out-opbal + wa_out-purch + wa_out-paym + wa_out-grdeb + wa_out-othdeb + wa_out-othcre.
    at end of lifnr.
    *wa_out-bal = wa_out-opbal + wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    append wa_out to gt_out.
    *collect wa_out into gt_out.
    clear wa_out.
    clear it_out3.
    clear wa_bsegnew1.
    endat.
    endif.
    clear: wa_bseg, wa_bkpf, wa_J_1IMOVEND.
    endloop.
    loop at gt_out into wa_out.
    collect wa_out into gt_out1.
    endloop.
    endform.                    " sub_process_data
    Regards,
    Santosh Kumar M.

  • Unable to process downpayment request (F-47) for the vendor with the PO

    Hi All,
    We are not able to process the advance payment request for the vendor 450004398 with the PO 3000086605 due to below mentioned error
    " You cannot use this transaction type to post this asset.u201D After getting error we double click that error we got these full information.
    The traanction type entered type entered belongs to transaction type group 15, According to the specifications for this transactipn type group,posting with trasnction types belonging to this group are only allowed in specifi asset classes ( for asset classes for asset under construction)
    The asset to which you are posting belongs to class group
    Above error we are facing, we checked "OAYB" also that asset class in maintained in that transaction code.
    Awaiting for your reply
    Thanks
    Ram
    09769004602

    Hi Ram,
    Please check AO90 and OAYB
    In AO90 you should assign one Asset GL Account.
    for this: go to AO90 select you chart of accounts and double click on acocunt Determination select your asset determination against which asset you are paying down payment and double click on Balance sheet accounts there you need to assign under acquisition account assginment  * Acquisition:Down Payment* and Down Payment clearing Account. This is  only  for AUC.
    In OAYB select 15 Down payment and double click on specification of asset class there you need assign your asset class.
    Hope this will help you.
    Regards,
    Schilukuri

  • Balance Confirmation Report for multiple vendors

    Hi all,
    I have developed report in FI which gives details about opening balance,fiscal year, document number, posting date and amount in the output.In selection screen I am passing single values of fiscal year(GJAHR), vendor(LIFNR) and company code(BUKLRS). This report is working fine for single vendor but now I need to change it for multiple vendors. I tried but not getting desired result in the output.
    Following is code for single vendor in selection screen.
    SORT t_bsikbsak BY bukrs belnr gjahr buzei.
      LOOP AT t_bsikbsak.
        t_pre_bal-netpr = t_bsikbsak-dmbtr.
        t_pre_bal-sgtxt = 'Opening Balance'.
        IF t_bsikbsak-shkzg EQ 'H'.
          t_pre_bal-netpr = t_pre_bal-netpr * -1.
        ENDIF.
        COLLECT t_pre_bal.
      ENDLOOP.
      LOOP AT t_pre_bal.
        itab-netpr = t_pre_bal-netpr.
        itab-sgtxt = t_pre_bal-sgtxt.
        APPEND itab.
      ENDLOOP.
    SORT t_bseg BY bukrs belnr gjahr buzei.
      CLEAR itab.
      LOOP AT t_bseg.
        ON CHANGE OF t_bseg-bukrs OR t_bseg-belnr OR t_bseg-gjahr.
          READ TABLE t_bkpf WITH KEY bukrs = t_bseg-bukrs
                                   belnr = t_bseg-belnr
                                   gjahr = t_bseg-gjahr.
          IF sy-subrc IS INITIAL.
            itab-budat = t_bkpf-budat.
            itab-belnr = t_bkpf-belnr.
            itab-gjahr = t_bkpf-gjahr.
          ENDIF.
        ENDON.
        IF t_bseg-koart = 'K' AND t_bseg-lifnr = s_lifnr.
          itab-sgtxt = t_bseg-sgtxt.
         READ TABLE t_bsak WITH KEY bukrs = t_bseg-bukrs
                                    belnr = t_bseg-belnr
                                    gjahr = t_bseg-gjahr.
          IF t_bseg-shkzg EQ 'H'.
            t_bseg-dmbtr = t_bseg-dmbtr * -1.
          ENDIF.
          itab-netpr = itab-netpr + t_bseg-dmbtr.
        ELSEIF t_bseg-hkont = '0044100040'.  " G/L for INTEREST EXPENSES
          itab-inamt = t_bseg-dmbtr.
        ELSEIF t_bseg-hkont = '0012300060'.  " G/L for TDS ON INTEREST
          itab-tdamt = t_bseg-dmbtr.
        ENDIF.
        AT END OF bukrs.
          append_flag = 'X'.
        ENDAT.
        AT END OF belnr.
          append_flag = 'X'.
        ENDAT.
        AT END OF gjahr.
          append_flag = 'X'.
        ENDAT.
        IF append_flag = 'X'.
          APPEND itab.
          CLEAR itab.
          CLEAR : append_flag.
        ENDIF.
      ENDLOOP.
    Closing Balance
      LOOP AT itab.
        t_temp-netpr = itab-netpr.
        t_temp-sgtxt = 'Closing Balance'.
        COLLECT t_temp.
      ENDLOOP.
      CLEAR itab.
      LOOP AT t_temp.
        itab-netpr = t_temp-netpr.
        itab-sgtxt = 'Closing Balance'.
        APPEND itab.
      ENDLOOP.
    Kindly provide some input how to do it for multiple vendors in same code otherwise provide some suggestions for new code.
    Thanks in Advance.waiting for response.
    Thanks & Regards,
    Harshada Patil

    Hi,
    Thanks for quick response.Following is the structure of internal tables which I am using in this program.
    TYPES : BEGIN OF ty_bsikbsak ,
            bukrs TYPE bsik-bukrs,
            lifnr TYPE bsik-lifnr,
            umsks TYPE bsik-umsks,
            umskz TYPE bsik-umskz,
            augdt TYPE bsik-augdt,
            augbl TYPE bsik-augbl,
            gjahr TYPE bsik-gjahr,
            belnr TYPE bsik-belnr,
            buzei TYPE bsik-buzei,
            zuonr TYPE bsik-zuonr,
            shkzg TYPE bsik-shkzg,
            dmbtr TYPE bsik-dmbtr,
            END OF ty_bsikbsak.
    TYPES : BEGIN OF ty_bkpf ,
            bukrs TYPE bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            gjahr TYPE bkpf-gjahr,
            bldat TYPE bkpf-bldat,
            budat TYPE bkpf-budat,
            stblg TYPE bkpf-stblg,
            stjah TYPE bkpf-stjah,
            END OF ty_bkpf.
    TYPES : BEGIN OF ty_bseg ,
            bukrs TYPE bseg-bukrs,
            belnr TYPE bseg-belnr,
            gjahr TYPE bseg-gjahr,
            buzei TYPE bseg-buzei,
            koart TYPE bseg-koart,
            shkzg TYPE bseg-shkzg,
            dmbtr TYPE bseg-dmbtr,
            sgtxt TYPE bseg-sgtxt,
            hkont TYPE bseg-hkont,
            lifnr TYPE bseg-lifnr,
            END OF ty_bseg.
    DATA : t_bsik     TYPE TABLE OF ty_bsikbsak WITH HEADER LINE.
    DATA : t_bsak     TYPE TABLE OF ty_bsikbsak WITH HEADER LINE.
    DATA : t_bsikbsak TYPE TABLE OF ty_bsikbsak WITH HEADER LINE.
    DATA : t_bkpf     TYPE TABLE OF ty_bkpf     WITH HEADER LINE.
    DATA : t_bkpf2    TYPE TABLE OF ty_bkpf     WITH HEADER LINE.
    DATA : wa_bkpf    TYPE ty_bkpf     .
    DATA : t_bseg     TYPE TABLE OF ty_bseg     WITH HEADER LINE.
    DATA: BEGIN OF t_pre_bal OCCURS 0,
          netpr TYPE bseg-dmbtr,
          sgtxt TYPE bseg-sgtxt,
          lifnr TYPE bseg-lifnr,
          END OF t_pre_bal.
    DATA: t_pre_bal1 LIKE t_pre_bal.
    DATA: BEGIN OF t_temp OCCURS 0,
          netpr TYPE bseg-dmbtr,
          sgtxt TYPE bseg-sgtxt,
          lifnr TYPE bseg-lifnr,
          END OF t_temp.
    DATA: BEGIN OF itab OCCURS 0,
          gjahr LIKE bsik-gjahr,
          belnr LIKE bsik-belnr,
          budat LIKE bkpf-budat,
          sgtxt LIKE bseg-sgtxt,
          lifnr LIKE lfa1-lifnr,
          netpr LIKE bseg-dmbtr,  " Net Amount
          inamt LIKE bseg-dmbtr,  " Interest Amount
          tdamt LIKE bseg-dmbtr,  " TDS Amount
          END   OF itab.
    RANGES: r_budat FOR bkpf-budat.
    I have Included vendor(LIFNR) in all these structures.Now I am using three internal tables to hold opening balance, Closing balance and line item accounting documents from bseg table respectively.here, I need to collect all these three internal tables into one internal table according to vendor(LIFNR)  with it's opening balance, accounting documents and closing balance. can anyone guide me through this so that I can collect all these three internal tables into single one.
    Thanks & Regards,
    Harshada Patil
    Edited by: Harshada.up on Feb 15, 2011 9:33 AM

  • Opening & closing balance for Multiple Vendors

    Hi Friends,
    I have an issue. This is my code.
    *& Report  ZVEN_OPEN_CLOSE_BAL
    REPORT  ZVEN_OPEN_CLOSE_BAL.
    *& Report  ZVEN_OPEN_CLOSE_BAL
    TABLES:lfa1,bsik.
    TYPES: BEGIN OF ty_bsik,
           bukrs TYPE bsik-bukrs,
           lifnr TYPE bsik-lifnr,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           xblnr TYPE bsik-xblnr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           blart TYPE bsik-blart,
           bldat TYPE bsik-bldat,
           budat TYPE bsik-budat,
           shkzg TYPE bsik-shkzg,
           dmbtr TYPE bsik-dmbtr,
    *       bal   TYPE char30,
           sgtxt TYPE bsik-sgtxt,
           END OF ty_bsik.
    TYPES: BEGIN OF ty_bsak,
           bukrs TYPE bsik-bukrs,
           lifnr TYPE bsak-lifnr,
           augbl TYPE bsak-augbl,
           zuonr TYPE bsak-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsak-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsak-budat,
           bldat TYPE bsak-bldat,
           xblnr TYPE bsak-xblnr,
           blart TYPE bsak-blart,
           shkzg TYPE bsak-shkzg,
           dmbtr TYPE bsik-dmbtr,
    *      shkzg1 TYPE bsak-shkzg,
           sgtxt TYPE bsak-sgtxt,
           END OF ty_bsak.
    TYPES: BEGIN OF ty_lfc1,
            lifnr TYPE lfc1-lifnr,
            bukrs TYPE lfc1-bukrs,
            gjahr TYPE lfc1-gjahr,
            umsav TYPE lfc1-umsav,
            END OF ty_lfc1.
    TYPES: BEGIN OF ty_all,
            lifnr TYPE bsik-lifnr,
            zuonr TYPE bsik-zuonr,
            xblnr TYPE bsik-xblnr,
            belnr TYPE bsik-belnr,
            hkont TYPE bseg-hkont,
            blart TYPE bsik-blart,
            ltext TYPE text20,
            bldat TYPE bsik-bldat,
            budat TYPE bsik-budat,
            opbal TYPE p DECIMALS 2,
            deb   TYPE p DECIMALS 2 ,"bsik-dmbtr,
            cre   TYPE p DECIMALS 2,"bsik-dmbtr,
            bal   TYPE p DECIMALS 2,
            augbl TYPE bsik-augbl,
            sgtxt TYPE bsik-sgtxt,
          END OF ty_all.
    TYPE-POOLS: slis.
    DATA:  t_layout   TYPE slis_layout_alv,
           s_fieldtab TYPE slis_fieldcat_alv,
           t_fieldtab TYPE slis_t_fieldcat_alv,
           wa_header TYPE slis_listheader,
           it_header TYPE  slis_t_listheader.
    DATA:it_bsik TYPE TABLE OF ty_bsik,
         it_bsak TYPE TABLE OF ty_bsak,
         it_all  TYPE TABLE OF ty_all,
         it_lfc1 TYPE TABLE OF ty_lfc1,
         it_t003 TYPE TABLE OF t003t,
         wa_bsik TYPE ty_bsik,
         wa_bsak TYPE ty_bsak,
         wa_all  TYPE ty_all,
         wa_lfc1 TYPE ty_lfc1,
         wa_t003 TYPE t003t.
    DATA:  gt_fldcat    TYPE slis_t_fieldcat_alv,
           gs_fldcat    TYPE slis_fieldcat_alv,
           gs_layout    TYPE slis_layout_alv,
           gv_save      TYPE c VALUE 'X'.
    types :BEGIN OF ty_bseg,
            BUKRS TYPE BUKRS,
            BELNR  TYPE BELNR_D,
            GJAHR  TYPE GJAHR,
            BUZEI  TYPE BUZEI,
            koart type koart,
            HKONT TYPE HKONT,
           END OF ty_bseg.
    DATA: it_bseg type TABLE OF ty_bseg,
          wa_bseg type ty_bseg.
      data t_balence TYPE TABLE OF BAPI3008_3 WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr,
                     s_bukrs FOR bsik-bukrs,
                     s_budat FOR bsik-budat OBLIGATORY.
    PARAMETERS : p_gjahr TYPE bsik-gjahr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM process_data.
      PERFORM display.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_data .
      break naidu.
      SELECT  bukrs
              lifnr
              augbl
              zuonr
              gjahr
              xblnr
              belnr
              buzei
              blart
              bldat
              budat
              shkzg
              dmbtr
              sgtxt FROM bsik
              INTO TABLE it_bsik
              WHERE lifnr IN s_lifnr AND
                    bukrs IN s_bukrs AND
                    budat IN s_budat AND
                    gjahr = p_gjahr .
      SELECT bukrs
             lifnr
             augbl
             zuonr
             gjahr
             belnr
             buzei
             budat
             bldat
             xblnr
             blart
             shkzg
             dmbtr
             sgtxt FROM bsak
             INTO TABLE it_bsak
             WHERE lifnr IN s_lifnr AND
                   bukrs IN s_bukrs AND
                   budat IN s_budat AND
                   gjahr = p_gjahr .
    if it_bsik is INITIAL and it_bsak  is INITIAL.
    *DATA  v_date type budat.
    *data :year(4),
    *      month(2),
    *      date(2).
    *  year  = s_budat-low+0(4).
    *  date  = s_budat-low+6(2).
    *  month = s_budat-low+4(2).
    *  month = month - 01.
    *CONCATENATE year month date INTO v_date .
    *  SELECT  bukrs
    *          lifnr
    *          augbl
    *          zuonr
    *          gjahr
    *          xblnr
    *          belnr
    *          buzei
    *          blart
    *          bldat
    *          budat
    *          shkzg
    *          dmbtr
    *          sgtxt FROM bsik
    *          INTO TABLE it_bsik
    *          WHERE lifnr IN s_lifnr AND
    *                bukrs in s_bukrs and
    *                budat eq v_date AND
    *                gjahr = p_gjahr .
    *  SELECT bukrs
    *         lifnr
    *         augbl
    *         zuonr
    *         gjahr
    *         belnr
    *         buzei
    *         budat
    *         bldat
    *         xblnr
    *         blart
    *         shkzg
    *         dmbtr
    *         sgtxt FROM bsak
    *         INTO TABLE it_bsak
    *         WHERE lifnr IN s_lifnr AND
    *               bukrs IN s_bukrs AND
    *               budat eq v_date AND
    *               gjahr = p_gjahr .
      CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
        EXPORTING
          companycode        = s_bukrs-low
          vendor             = s_lifnr-low
          keydate            = s_budat-low
    *     BALANCESPGLI       = ' '
    *     NOTEDITEMS         = ' '
    *   IMPORTING
    *     RETURN             =
        TABLES
          keybalance         = t_balence
      endif.
    ENDFORM.                    " GET_DATA
    *&      Form  PROCESS_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM process_data .
      DATA:v_bal TYPE netpr.
      LOOP AT it_bsak INTO wa_bsak.
        wa_bsik-bukrs  =    wa_bsak-bukrs.
        wa_bsik-lifnr  =    wa_bsak-lifnr.
        wa_bsik-augbl  =    wa_bsak-augbl.
        wa_bsik-zuonr  =    wa_bsak-zuonr.
        wa_bsik-gjahr  =    wa_bsak-gjahr.
        wa_bsik-belnr  =    wa_bsak-belnr.
        wa_bsik-buzei  =    wa_bsak-buzei.
        wa_bsik-budat  =    wa_bsak-budat.
        wa_bsik-bldat  =    wa_bsak-bldat.
        wa_bsik-xblnr  =    wa_bsak-xblnr.
        wa_bsik-blart  =    wa_bsak-blart.
        wa_bsik-shkzg  =    wa_bsak-shkzg.
        wa_bsik-dmbtr  =    wa_bsak-dmbtr.
        wa_bsik-sgtxt  =    wa_bsak-sgtxt .
        APPEND wa_bsik TO it_bsik.
        CLEAR:wa_bsik.
      ENDLOOP.
      IF it_bsik IS NOT INITIAL .
        SELECT lifnr bukrs gjahr umsav
               FROM lfc1
              INTO TABLE it_lfc1 FOR ALL ENTRIES IN  it_bsik
              WHERE
                    lifnr  EQ it_bsik-lifnr AND
                    bukrs  EQ it_bsik-bukrs AND
                    gjahr  EQ it_bsik-gjahr.
        SELECT  * FROM t003t
          INTO TABLE it_t003
          FOR ALL ENTRIES IN it_bsik
            WHERE blart = it_bsik-blart AND
                  spras = 'EN'.
    *&Bindu........................................
          select bukrs  "Company Code
                 belnr  "Document Number
                 gjahr  "Fiscal Year
                 buzei  "Line item
                 koart  "Account Type
                 hkont  "General Ledger Account
            from bseg into TABLE it_bseg
                      FOR ALL ENTRIES IN it_bsik
                      WHERE belnr eq it_bsik-belnr and
                            bukrs in s_bukrs and
                            gjahr eq p_gjahr and
                            BUZEI eq it_bsik-buzei.
      ENDIF.
      SORT it_bsik BY lifnr.
      DATA:c,
            l_dmbtr type p DECIMALS 2.
    DATA:v1(15),
         v2(3).
    DATA:v_umsav(18).
    DATA v_fbal TYPE umsav.
      LOOP AT it_bsik INTO wa_bsik.
            READ TABLE it_lfc1 INTO wa_lfc1 WITH KEY lifnr = wa_bsik-lifnr
                                                 bukrs = wa_bsik-bukrs
                                                 gjahr = wa_bsik-gjahr.
        if sy-subrc = 0.
    at FIRST.
    v_umsav = wa_lfc1-umsav.
      SPLIT v_umsav at '.' INTO v1 v2.
          wa_all-LTEXT = 'Opening Balance'.
          IF v2+2(1) = '-'.
          wa_all-cre = wa_lfc1-umsav.
          ELSE.
            wa_all-deb = wa_lfc1-umsav.
          ENDIF.
           wa_all-bal = wa_lfc1-umsav.
           v_fbal = wa_all-bal.
    APPEND wa_all to it_all.
    CLEAR wa_all.
    endat.
    endif.
        AT NEW lifnr.
          c = 0.
        ENDAT.
        wa_all-lifnr = wa_bsik-lifnr.
        wa_all-zuonr = wa_bsik-zuonr.
        wa_all-xblnr = wa_bsik-xblnr.
        wa_all-belnr = wa_bsik-belnr.
        wa_all-blart = wa_bsik-blart.
        wa_all-bldat = wa_bsik-bldat.
        wa_all-budat = wa_bsik-budat.
    *&Bindu............
      READ TABLE it_bseg into wa_bseg WITH KEY belnr = wa_bsik-belnr
                                               buzei = wa_bsik-buzei."Bindu.......
    if sy-subrc = 0.
        wa_all-hkont = wa_bseg-hkont. "Bindu.....
    endif.
        IF wa_bsik-shkzg = 'S'.
          wa_all-deb = wa_bsik-dmbtr.
        ELSEIF wa_bsik-shkzg = 'H'.
          wa_all-cre = wa_bsik-dmbtr.
        ENDIF.
        READ TABLE  it_t003 INTO wa_t003 WITH KEY blart = wa_bsik-blart.
        IF sy-subrc = 0.
          wa_all-ltext = wa_t003-ltext.
        ENDIF.
    *    READ TABLE it_lfc1 INTO wa_lfc1 WITH KEY lifnr = wa_bsik-lifnr
    *                                             bukrs = wa_bsik-bukrs
    *                                             gjahr = wa_bsik-gjahr.
    *break naidu.
        IF sy-subrc = 0.
    *      IF c = 0.
    *        clear:l_dmbtr.
    *        wa_all-opbal = wa_lfc1-umsav.
    *        c = c + 1.
    *        IF wa_bsik-shkzg = 'S'.
    *          wa_all-bal =  wa_all-opbal + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal =  wa_all-opbal - wa_bsik-dmbtr.
    *        ENDIF.
            l_dmbtr = wa_all-bal.
    *      ELSE.
    *          wa_all-bal =  l_dmbtr + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal = l_dmbtr - wa_bsik-dmbtr.
    *        ENDIF.
          ENDIF.
    *  IF wa_bsik-shkzg = 'S'.
    *          wa_all-bal =  wa_all-opbal + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal =  wa_all-opbal - wa_bsik-dmbtr.
    *        ENDIF.
    if v_fbal is NOT INITIAL.
    wa_all-bal = v_fbal + wa_all-deb - wa_all-cre.
    CLEAR:v_fbal.
    else.
    wa_all-bal = v_bal + wa_all-deb - wa_all-cre.
        ENDIF.
        wa_all-augbl = wa_bsik-augbl.
        wa_all-sgtxt = wa_bsik-sgtxt.
    *v_balance  = wa_all-bal.
    APPEND wa_all TO it_all.
    v_bal = wa_all-bal.
    CLEAR :wa_all.
    *& Closing Balence.................
        at last.
       wa_all-LTEXT = 'Closing Balance'.
    *      IF .
          wa_all-BAL = v_bal.
    APPEND wa_all to it_all.
    CLEAR wa_all.
    *      ENDIF.
    endat.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM display .
      DATA : ls_layout  TYPE  slis_layout_alv.
      PERFORM create_fldcat.
      ls_layout-expand_all = 'X'.
      ls_layout-colwidth_optimize = 'X'.
      ls_layout-expand_fieldname = 'X'.
      ls_layout-zebra = 'X'.
    if it_all is initial .
        wa_all-LTEXT = 'Opening Balance'.
        wa_all-bal = t_balence-LC_BAL.
        wa_all-lifnr = s_lifnr-low.
        APPEND wa_all to it_all.
        ENDIF.
      IF it_all IS NOT INITIAL.
            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program = sy-repid
            is_layout          = ls_layout
            it_fieldcat        = gt_fldcat
            i_save             = 'X'
          TABLES
            t_outtab           = it_all[]
          EXCEPTIONS
            program_error      = 1
            OTHERS             = 2.
      ELSE.
        MESSAGE 'There is no Data for the given selection screen' TYPE 'I' DISPLAY LIKE 'E'.
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDFORM.                    " DISPLAY
    *&      Form  CREATE_FLDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM create_fldcat .
      PERFORM : append_val USING 'LIFNR'       'IT_ALL' 'vendor'  '' '' 'X' ' '.
      PERFORM : append_val USING 'HKONT'       'IT_ALL' 'G/L Acc'  '' '' 'X' ' '.
      PERFORM : append_val USING 'ZUONR'       'IT_ALL' 'account'  '' '' '' ''.
      PERFORM : append_val USING 'XBLNR'       'IT_ALL' 'number'  '' '' 'X' ''.
      PERFORM : append_val USING 'BELNR'       'IT_ALL' 'ref no'  '' '' 'X' ''.
      PERFORM : append_val USING 'BLART'       'IT_ALL' 'type'  '' '' 'X' ''.
      PERFORM : append_val USING 'LTEXT'       'IT_ALL' 'type text'  '' '' 'X' ''.
      PERFORM : append_val USING 'BLDAT'       'IT_ALL' 'doc date'  '' '' 'X' ''.
      PERFORM : append_val USING 'BUDAT'       'IT_ALL' 'post date'  '' '' 'X' ''.
      PERFORM : append_val USING 'OPBAL'       'IT_ALL' 'op balance'  '' '' '' ''.
      PERFORM : append_val USING 'DEB'         'IT_ALL' 'debit' '' '' '' ''.
      PERFORM : append_val USING 'CRE'         'IT_ALL' 'credit'  '' '' '' ''.
      PERFORM : append_val USING 'BAL'         'IT_ALL' 'balance'  '' '' '' ''.
      PERFORM : append_val USING 'AUGBL'       'IT_ALL' 'clr doc'  '' '' 'X' ''.
      PERFORM : append_val USING 'SGTXT'       'IT_ALL' 'text '  '' '' 'X' ''.
    ENDFORM.                    " CREATE_FLDCAT
    *&      Form  APPEND_VAL
    *       text
    *      -->P_0578   text
    *      -->P_0579   text
    *      -->P_TEXT_010  text
    *      -->P_0581   text
    *      -->P_0582   text
    *      -->P_0583   text
    FORM append_val  USING    p_a
                              p_b
                              p_c
                              p_d
                              p_e
                              p_f
                              p_g.
      CLEAR gs_fldcat.
      gs_fldcat-fieldname  = p_a.
      gs_fldcat-tabname    = p_b.
      gs_fldcat-seltext_m  = p_c.
      gs_fldcat-qfieldname = p_d.
      gs_fldcat-datatype   = p_e.
      gs_fldcat-no_zero    = p_f.
      gs_fldcat-do_sum     = p_g.
      APPEND gs_fldcat TO gt_fldcat.
    ENDFORM.                    " APPEND_VAL
    This is working for single vendor.
    Now my problem is Opening & closing balance should be displayed for multiple vendors.
    Please suggest me.
    Thanks in advance.

    Hi Friends,
    I have an issue. This is my code.
    *& Report  ZVEN_OPEN_CLOSE_BAL
    REPORT  ZVEN_OPEN_CLOSE_BAL.
    *& Report  ZVEN_OPEN_CLOSE_BAL
    TABLES:lfa1,bsik.
    TYPES: BEGIN OF ty_bsik,
           bukrs TYPE bsik-bukrs,
           lifnr TYPE bsik-lifnr,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           xblnr TYPE bsik-xblnr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           blart TYPE bsik-blart,
           bldat TYPE bsik-bldat,
           budat TYPE bsik-budat,
           shkzg TYPE bsik-shkzg,
           dmbtr TYPE bsik-dmbtr,
    *       bal   TYPE char30,
           sgtxt TYPE bsik-sgtxt,
           END OF ty_bsik.
    TYPES: BEGIN OF ty_bsak,
           bukrs TYPE bsik-bukrs,
           lifnr TYPE bsak-lifnr,
           augbl TYPE bsak-augbl,
           zuonr TYPE bsak-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsak-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsak-budat,
           bldat TYPE bsak-bldat,
           xblnr TYPE bsak-xblnr,
           blart TYPE bsak-blart,
           shkzg TYPE bsak-shkzg,
           dmbtr TYPE bsik-dmbtr,
    *      shkzg1 TYPE bsak-shkzg,
           sgtxt TYPE bsak-sgtxt,
           END OF ty_bsak.
    TYPES: BEGIN OF ty_lfc1,
            lifnr TYPE lfc1-lifnr,
            bukrs TYPE lfc1-bukrs,
            gjahr TYPE lfc1-gjahr,
            umsav TYPE lfc1-umsav,
            END OF ty_lfc1.
    TYPES: BEGIN OF ty_all,
            lifnr TYPE bsik-lifnr,
            zuonr TYPE bsik-zuonr,
            xblnr TYPE bsik-xblnr,
            belnr TYPE bsik-belnr,
            hkont TYPE bseg-hkont,
            blart TYPE bsik-blart,
            ltext TYPE text20,
            bldat TYPE bsik-bldat,
            budat TYPE bsik-budat,
            opbal TYPE p DECIMALS 2,
            deb   TYPE p DECIMALS 2 ,"bsik-dmbtr,
            cre   TYPE p DECIMALS 2,"bsik-dmbtr,
            bal   TYPE p DECIMALS 2,
            augbl TYPE bsik-augbl,
            sgtxt TYPE bsik-sgtxt,
          END OF ty_all.
    TYPE-POOLS: slis.
    DATA:  t_layout   TYPE slis_layout_alv,
           s_fieldtab TYPE slis_fieldcat_alv,
           t_fieldtab TYPE slis_t_fieldcat_alv,
           wa_header TYPE slis_listheader,
           it_header TYPE  slis_t_listheader.
    DATA:it_bsik TYPE TABLE OF ty_bsik,
         it_bsak TYPE TABLE OF ty_bsak,
         it_all  TYPE TABLE OF ty_all,
         it_lfc1 TYPE TABLE OF ty_lfc1,
         it_t003 TYPE TABLE OF t003t,
         wa_bsik TYPE ty_bsik,
         wa_bsak TYPE ty_bsak,
         wa_all  TYPE ty_all,
         wa_lfc1 TYPE ty_lfc1,
         wa_t003 TYPE t003t.
    DATA:  gt_fldcat    TYPE slis_t_fieldcat_alv,
           gs_fldcat    TYPE slis_fieldcat_alv,
           gs_layout    TYPE slis_layout_alv,
           gv_save      TYPE c VALUE 'X'.
    types :BEGIN OF ty_bseg,
            BUKRS TYPE BUKRS,
            BELNR  TYPE BELNR_D,
            GJAHR  TYPE GJAHR,
            BUZEI  TYPE BUZEI,
            koart type koart,
            HKONT TYPE HKONT,
           END OF ty_bseg.
    DATA: it_bseg type TABLE OF ty_bseg,
          wa_bseg type ty_bseg.
      data t_balence TYPE TABLE OF BAPI3008_3 WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr,
                     s_bukrs FOR bsik-bukrs,
                     s_budat FOR bsik-budat OBLIGATORY.
    PARAMETERS : p_gjahr TYPE bsik-gjahr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM process_data.
      PERFORM display.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_data .
      break naidu.
      SELECT  bukrs
              lifnr
              augbl
              zuonr
              gjahr
              xblnr
              belnr
              buzei
              blart
              bldat
              budat
              shkzg
              dmbtr
              sgtxt FROM bsik
              INTO TABLE it_bsik
              WHERE lifnr IN s_lifnr AND
                    bukrs IN s_bukrs AND
                    budat IN s_budat AND
                    gjahr = p_gjahr .
      SELECT bukrs
             lifnr
             augbl
             zuonr
             gjahr
             belnr
             buzei
             budat
             bldat
             xblnr
             blart
             shkzg
             dmbtr
             sgtxt FROM bsak
             INTO TABLE it_bsak
             WHERE lifnr IN s_lifnr AND
                   bukrs IN s_bukrs AND
                   budat IN s_budat AND
                   gjahr = p_gjahr .
    if it_bsik is INITIAL and it_bsak  is INITIAL.
    *DATA  v_date type budat.
    *data :year(4),
    *      month(2),
    *      date(2).
    *  year  = s_budat-low+0(4).
    *  date  = s_budat-low+6(2).
    *  month = s_budat-low+4(2).
    *  month = month - 01.
    *CONCATENATE year month date INTO v_date .
    *  SELECT  bukrs
    *          lifnr
    *          augbl
    *          zuonr
    *          gjahr
    *          xblnr
    *          belnr
    *          buzei
    *          blart
    *          bldat
    *          budat
    *          shkzg
    *          dmbtr
    *          sgtxt FROM bsik
    *          INTO TABLE it_bsik
    *          WHERE lifnr IN s_lifnr AND
    *                bukrs in s_bukrs and
    *                budat eq v_date AND
    *                gjahr = p_gjahr .
    *  SELECT bukrs
    *         lifnr
    *         augbl
    *         zuonr
    *         gjahr
    *         belnr
    *         buzei
    *         budat
    *         bldat
    *         xblnr
    *         blart
    *         shkzg
    *         dmbtr
    *         sgtxt FROM bsak
    *         INTO TABLE it_bsak
    *         WHERE lifnr IN s_lifnr AND
    *               bukrs IN s_bukrs AND
    *               budat eq v_date AND
    *               gjahr = p_gjahr .
      CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
        EXPORTING
          companycode        = s_bukrs-low
          vendor             = s_lifnr-low
          keydate            = s_budat-low
    *     BALANCESPGLI       = ' '
    *     NOTEDITEMS         = ' '
    *   IMPORTING
    *     RETURN             =
        TABLES
          keybalance         = t_balence
      endif.
    ENDFORM.                    " GET_DATA
    *&      Form  PROCESS_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM process_data .
      DATA:v_bal TYPE netpr.
      LOOP AT it_bsak INTO wa_bsak.
        wa_bsik-bukrs  =    wa_bsak-bukrs.
        wa_bsik-lifnr  =    wa_bsak-lifnr.
        wa_bsik-augbl  =    wa_bsak-augbl.
        wa_bsik-zuonr  =    wa_bsak-zuonr.
        wa_bsik-gjahr  =    wa_bsak-gjahr.
        wa_bsik-belnr  =    wa_bsak-belnr.
        wa_bsik-buzei  =    wa_bsak-buzei.
        wa_bsik-budat  =    wa_bsak-budat.
        wa_bsik-bldat  =    wa_bsak-bldat.
        wa_bsik-xblnr  =    wa_bsak-xblnr.
        wa_bsik-blart  =    wa_bsak-blart.
        wa_bsik-shkzg  =    wa_bsak-shkzg.
        wa_bsik-dmbtr  =    wa_bsak-dmbtr.
        wa_bsik-sgtxt  =    wa_bsak-sgtxt .
        APPEND wa_bsik TO it_bsik.
        CLEAR:wa_bsik.
      ENDLOOP.
      IF it_bsik IS NOT INITIAL .
        SELECT lifnr bukrs gjahr umsav
               FROM lfc1
              INTO TABLE it_lfc1 FOR ALL ENTRIES IN  it_bsik
              WHERE
                    lifnr  EQ it_bsik-lifnr AND
                    bukrs  EQ it_bsik-bukrs AND
                    gjahr  EQ it_bsik-gjahr.
        SELECT  * FROM t003t
          INTO TABLE it_t003
          FOR ALL ENTRIES IN it_bsik
            WHERE blart = it_bsik-blart AND
                  spras = 'EN'.
    *&Bindu........................................
          select bukrs  "Company Code
                 belnr  "Document Number
                 gjahr  "Fiscal Year
                 buzei  "Line item
                 koart  "Account Type
                 hkont  "General Ledger Account
            from bseg into TABLE it_bseg
                      FOR ALL ENTRIES IN it_bsik
                      WHERE belnr eq it_bsik-belnr and
                            bukrs in s_bukrs and
                            gjahr eq p_gjahr and
                            BUZEI eq it_bsik-buzei.
      ENDIF.
      SORT it_bsik BY lifnr.
      DATA:c,
            l_dmbtr type p DECIMALS 2.
    DATA:v1(15),
         v2(3).
    DATA:v_umsav(18).
    DATA v_fbal TYPE umsav.
      LOOP AT it_bsik INTO wa_bsik.
            READ TABLE it_lfc1 INTO wa_lfc1 WITH KEY lifnr = wa_bsik-lifnr
                                                 bukrs = wa_bsik-bukrs
                                                 gjahr = wa_bsik-gjahr.
        if sy-subrc = 0.
    at FIRST.
    v_umsav = wa_lfc1-umsav.
      SPLIT v_umsav at '.' INTO v1 v2.
          wa_all-LTEXT = 'Opening Balance'.
          IF v2+2(1) = '-'.
          wa_all-cre = wa_lfc1-umsav.
          ELSE.
            wa_all-deb = wa_lfc1-umsav.
          ENDIF.
           wa_all-bal = wa_lfc1-umsav.
           v_fbal = wa_all-bal.
    APPEND wa_all to it_all.
    CLEAR wa_all.
    endat.
    endif.
        AT NEW lifnr.
          c = 0.
        ENDAT.
        wa_all-lifnr = wa_bsik-lifnr.
        wa_all-zuonr = wa_bsik-zuonr.
        wa_all-xblnr = wa_bsik-xblnr.
        wa_all-belnr = wa_bsik-belnr.
        wa_all-blart = wa_bsik-blart.
        wa_all-bldat = wa_bsik-bldat.
        wa_all-budat = wa_bsik-budat.
    *&Bindu............
      READ TABLE it_bseg into wa_bseg WITH KEY belnr = wa_bsik-belnr
                                               buzei = wa_bsik-buzei."Bindu.......
    if sy-subrc = 0.
        wa_all-hkont = wa_bseg-hkont. "Bindu.....
    endif.
        IF wa_bsik-shkzg = 'S'.
          wa_all-deb = wa_bsik-dmbtr.
        ELSEIF wa_bsik-shkzg = 'H'.
          wa_all-cre = wa_bsik-dmbtr.
        ENDIF.
        READ TABLE  it_t003 INTO wa_t003 WITH KEY blart = wa_bsik-blart.
        IF sy-subrc = 0.
          wa_all-ltext = wa_t003-ltext.
        ENDIF.
    *    READ TABLE it_lfc1 INTO wa_lfc1 WITH KEY lifnr = wa_bsik-lifnr
    *                                             bukrs = wa_bsik-bukrs
    *                                             gjahr = wa_bsik-gjahr.
    *break naidu.
        IF sy-subrc = 0.
    *      IF c = 0.
    *        clear:l_dmbtr.
    *        wa_all-opbal = wa_lfc1-umsav.
    *        c = c + 1.
    *        IF wa_bsik-shkzg = 'S'.
    *          wa_all-bal =  wa_all-opbal + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal =  wa_all-opbal - wa_bsik-dmbtr.
    *        ENDIF.
            l_dmbtr = wa_all-bal.
    *      ELSE.
    *          wa_all-bal =  l_dmbtr + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal = l_dmbtr - wa_bsik-dmbtr.
    *        ENDIF.
          ENDIF.
    *  IF wa_bsik-shkzg = 'S'.
    *          wa_all-bal =  wa_all-opbal + wa_bsik-dmbtr.
    *        ELSEIF wa_bsik-shkzg = 'H'.
    *          wa_all-bal =  wa_all-opbal - wa_bsik-dmbtr.
    *        ENDIF.
    if v_fbal is NOT INITIAL.
    wa_all-bal = v_fbal + wa_all-deb - wa_all-cre.
    CLEAR:v_fbal.
    else.
    wa_all-bal = v_bal + wa_all-deb - wa_all-cre.
        ENDIF.
        wa_all-augbl = wa_bsik-augbl.
        wa_all-sgtxt = wa_bsik-sgtxt.
    *v_balance  = wa_all-bal.
    APPEND wa_all TO it_all.
    v_bal = wa_all-bal.
    CLEAR :wa_all.
    *& Closing Balence.................
        at last.
       wa_all-LTEXT = 'Closing Balance'.
    *      IF .
          wa_all-BAL = v_bal.
    APPEND wa_all to it_all.
    CLEAR wa_all.
    *      ENDIF.
    endat.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM display .
      DATA : ls_layout  TYPE  slis_layout_alv.
      PERFORM create_fldcat.
      ls_layout-expand_all = 'X'.
      ls_layout-colwidth_optimize = 'X'.
      ls_layout-expand_fieldname = 'X'.
      ls_layout-zebra = 'X'.
    if it_all is initial .
        wa_all-LTEXT = 'Opening Balance'.
        wa_all-bal = t_balence-LC_BAL.
        wa_all-lifnr = s_lifnr-low.
        APPEND wa_all to it_all.
        ENDIF.
      IF it_all IS NOT INITIAL.
            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program = sy-repid
            is_layout          = ls_layout
            it_fieldcat        = gt_fldcat
            i_save             = 'X'
          TABLES
            t_outtab           = it_all[]
          EXCEPTIONS
            program_error      = 1
            OTHERS             = 2.
      ELSE.
        MESSAGE 'There is no Data for the given selection screen' TYPE 'I' DISPLAY LIKE 'E'.
        LEAVE LIST-PROCESSING.
      ENDIF.
    ENDFORM.                    " DISPLAY
    *&      Form  CREATE_FLDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM create_fldcat .
      PERFORM : append_val USING 'LIFNR'       'IT_ALL' 'vendor'  '' '' 'X' ' '.
      PERFORM : append_val USING 'HKONT'       'IT_ALL' 'G/L Acc'  '' '' 'X' ' '.
      PERFORM : append_val USING 'ZUONR'       'IT_ALL' 'account'  '' '' '' ''.
      PERFORM : append_val USING 'XBLNR'       'IT_ALL' 'number'  '' '' 'X' ''.
      PERFORM : append_val USING 'BELNR'       'IT_ALL' 'ref no'  '' '' 'X' ''.
      PERFORM : append_val USING 'BLART'       'IT_ALL' 'type'  '' '' 'X' ''.
      PERFORM : append_val USING 'LTEXT'       'IT_ALL' 'type text'  '' '' 'X' ''.
      PERFORM : append_val USING 'BLDAT'       'IT_ALL' 'doc date'  '' '' 'X' ''.
      PERFORM : append_val USING 'BUDAT'       'IT_ALL' 'post date'  '' '' 'X' ''.
      PERFORM : append_val USING 'OPBAL'       'IT_ALL' 'op balance'  '' '' '' ''.
      PERFORM : append_val USING 'DEB'         'IT_ALL' 'debit' '' '' '' ''.
      PERFORM : append_val USING 'CRE'         'IT_ALL' 'credit'  '' '' '' ''.
      PERFORM : append_val USING 'BAL'         'IT_ALL' 'balance'  '' '' '' ''.
      PERFORM : append_val USING 'AUGBL'       'IT_ALL' 'clr doc'  '' '' 'X' ''.
      PERFORM : append_val USING 'SGTXT'       'IT_ALL' 'text '  '' '' 'X' ''.
    ENDFORM.                    " CREATE_FLDCAT
    *&      Form  APPEND_VAL
    *       text
    *      -->P_0578   text
    *      -->P_0579   text
    *      -->P_TEXT_010  text
    *      -->P_0581   text
    *      -->P_0582   text
    *      -->P_0583   text
    FORM append_val  USING    p_a
                              p_b
                              p_c
                              p_d
                              p_e
                              p_f
                              p_g.
      CLEAR gs_fldcat.
      gs_fldcat-fieldname  = p_a.
      gs_fldcat-tabname    = p_b.
      gs_fldcat-seltext_m  = p_c.
      gs_fldcat-qfieldname = p_d.
      gs_fldcat-datatype   = p_e.
      gs_fldcat-no_zero    = p_f.
      gs_fldcat-do_sum     = p_g.
      APPEND gs_fldcat TO gt_fldcat.
    ENDFORM.                    " APPEND_VAL
    This is working for single vendor.
    Now my problem is Opening & closing balance should be displayed for multiple vendors.
    Please suggest me.
    Thanks in advance.

  • User Exit OR Badi for MK01 transaction (used for saving vendor amster data)

    Hi All,
    I have a requirement where I have to call my workflow, when we create the Vendor using my custom transaction (ZMK01, which is a copy of standard transaction MK01).
    For Workflow triggering I am using FM 'SAP_WAPI_CREATE_EVENT' in the user exit  'EXIT_SAPMF02K_001' but this is only for checking the data on saving Vendor Master.
    So I want to use FM 'SAP_WAPI_CREATE_EVENT' at right place. For that , I need User-Exit or BADI which is used for saving vendor master data.
    Could anyone please help me to find out the user exit or BADI for save event of vendor master data using transaction MK01.
    Looking forward to your advise and thanks in advance.
    Best Regards,
    Mamta

    Hi ,
    I forgot to activiate the project linked with User exit 'EXIT_SAPMF02K_001' .
    so problem is solved now
    Thanks,
    Mamta

  • S_ALR_87012357 report - Advance Return for Tax on sales and purchase

    Hi Friends,
    I would like to know few things in regards the VAT report S_ALR_87012357 report - Advance Return for Tax on sales and purchase:
    (1) What information brings the S_ALR_87012357 report?
    (2) As of now this report displays tax against vendor line item and not expense line item. Is there any other report that shows all the positions lines affected to tax?
    (3) Is it possible that the tax line stays only in the expense line account and not in the vendor line account or not any intercompany line account?
    (4) Is it possible S_ALR_87012357 report shows information about the tax allocanted in expense accounts and not in vendor accounts?
    Appreciate a faster response.
    Thanks in advance.

    Please try report S_ALR_87012359. This report gives you opportunity to choose account selection.
    I am unsure how the SAP is setup in your organisation. S_ALR_87012357 should pick up expenses selection as well.
    This report entirely depends on tax code selection.

  • Payment of advance against po to vendor

    hi friends..
               if advance is to be paid to the vendor, how should we communicate it to finance department in sap..
    i know that advance can be payed through f-47, but how purchase department will communicate to pay advance..
    hope my question is clear..
    awaiting for ur valuable replies...

    Hai,
    Generally MM dept will create F-47 Downpayment request wrt PO for the vendor & same to be intimated to FI dept to make Payment via SAP Mail or Customed develop Printouts.
    FI dept will post that downpayment by F-48.

  • Payment terms for a vendor

    hi friends...........
                                  i want to release a contract for a vendor.that contract is value based.if i make a contract for above 2 lakhs he shoulld give 2% discount. this has to applicable for a particular vendor???
                                is this possible??? plz help...............................

    Hi
    The same logic should also work for you
    http://sap.ittoolbox.com/groups/technical-functional/sap-log-sd/pricing-condition-1-cash-discount-for-advanced-payment-4196341
    Regards
    Sanil Bhandari

  • Excise details for IMPORT vendor

    Hi SAP ients
    While Doing J1IEX_P for import vendor system gives error msg "maintain Excise details for the vendor"
    But for IMPORT vendor we dont maitain such details
    Am I right?
    Can anybody help?
    santosh j

    Thanks Pankaj
    It is working
    I have another question Regarding Subcontracting
    When we send the material to supplier it is done thr' 4(5) (a) excise challan whose limit is 180 days (material should come back to parent company within 180 days)
    But now Excise has issued new amendment / form ie 4(5)(b) for sending the CAPITAL GOODS ie dies/ moulds etc for the production purpose at supplier's end against form 4(5)(b)  instead of  4(5) (a) whose validity is @ 2 years or more
    Is there any standard format in SAP for that? OR
    Any new note released by SAP?
    Thanks in advance
    Santosh Jagtap

  • Advance payment make to vendor through pretty cash

    Dear Experts...
    In my company maintaining only  ONE petty cash account. User required to make the Advance Payment to Vendor through petty cash.
    i removed the post automatically check box in petty cash a/c and  posted the entry f-48.
    29A    Vendor a/c           xxxx
    50      Petty cash a/c      xxxx-
    But the closing balance of petty cash a/c is not changed
    Please give the suggtion how to make the advance payment to vendor through petty cash?
    Thanks in Advance
    Regards,
    Venkat

    Dear Venkat,
    a. You cannot post vendor advances using Cash Journal (FBCJ)
    b. You need to create a Cash Clearing GL to use the further process.
    1. In FBCJ at the time of vendor advance you need to select Cash Clearing A/c. System will post below accounting entries.
    Cash Clearing Account - Dr.
        To Cash Main A/c - Cr.
    2. You need to transfer this entry in Vendor A/c (F-48)
    Vendor A/c (Spl GL Indicator) - Dr.
        To Cash Clearing A/c - Cr.
    3. Clearing of Cash Clearing Account (F-03).
    Now you can find all the advances made for vendors in Vendor Reports.
    Hope this helps?
    Thank you,
    Bhargava Sriramakrishna

  • Correspondence type for a/c statements- for Intercompany vendors

    Hi all,
    can anyone tell me the configuration for correspondence type for A/P statements for intercompany vendors. I tried using SAP08(standard correspondence type) and print program RFKORD10 and layout F140_ACC_STAT_01. I used F.27 with master data indicator '2'(which I maintained in vendor master), correspondence SAP08 for a particular intercompany vendor, I get the balance as on date, but open items are no listed in the statement. I do see the open items in FBL1N, moreover when I used the same correspondence and print program for customer I got the line items in the layout. Can anyone tell me how to accomplish the same with vendor account.
    Thanks in advance
    Kumar

    in OB52
    + Valid for all account types
    your all account will be opened.  otherwise check OMSY for your company code
    NHID     NCC Housing and Infrastru     2009     6     2009     5     2008     12
    change your settings to the above till it is working
    Thanks
    Rajakumar.K

Maybe you are looking for