DYNPRO_FIELD_CONVERSION bseg-dmbtr

Hi gurus:
When we use the transaction FB03 and if we click in one line we receive a Short Dump saying the message DYNPRO_FIELD_CONVERSION and the trouble is in the field bseg-dmbtr, we review the field for that line and found that this field contains a negative sign, we already review the SAP notes but we do not found one related note to fix this field, we are  closing the month and this came to be critical, because other important transaction could fail, anyone have an idea how to solve this issue?  we do not want to affect the tables manually. Thanks a lot.

Hi Ravi:
Thanks a lot for your promptly answer, I am already review the notes and do not apply to solve the actual situation, in the case of the program that is in the note 368355 this helps to fix just the field SKFBT, but my trouble is with the DMBTR and the WRBTR in BSEG, do you know if exist a similar program to fix these fields?
In other hand I already had the half of the solution, I found a SAP note that fix the function POST_DOCUMENT for not accept negatives in these fields: SAP NOTE 325595 I want to share this information with us.
If someone could help i will appreciate it.

Similar Messages

  • How to make BSEG-DMBTR (amt in loc CoCode currency) Optional or mandatory?

    Hi,
    Normally, the field BSEG-DMBTR is hidden unless you put a value (other than that of the company code currency) in the field BKPF-WAERS  (Document Currency). However, for data conversion purposes, we are uploading an excel file with our open items & balances and wish to populate both BSEG-WRBTR (amount in transaction currency) and BSEG-DMBTR (amount in CoCode / local currency). The problem is that where BKPF-WAERS  = CoCode Currency, the BSEG-DMBTR is hidden.  It seems there's no way of making BSEG-DMBTR  optional / mandatory via the field status of either the g/l account or the posting keys..........
    Any ideas on this, or experiences you've had regarding uploading values to BSEG-DMBTR  and BSEG-WRBTR wold be appreciated. For example, if the document currency = CoCode currency, have you just uploaded the value into BSEG-WRBTR?  The reason we are trying to upload both BSEG-WRBTR  and BSEG-DMBTR is because in our excel file, it makes reconciliation easier if we have the BSEG-DMBTR for all documents (inclulding those where the transaction currency = CoCode Currency). 
    Regards, Garoid.

    when you enter the doc currency as local currency - system will ask only doc currency which will be updated in local currency field automatically- no customising required.
    When you enter the doc cur as a different currency than local currency, you have option to enter
    a. exchange rate
    b. enter doc currency and local currency - where rate will be updated automatically by conversion the actual values written.
    When you manually update the Revaluation entries - system will not allow you to enter doc currency - it will ask only local currency. or additional currency as the case may be (if you maintain more parallel currencies.
    SAP program takes care of the subsequent screens fields on the basis first screen entry made- This will be clearly visible when you use Complex posting TCodes like FB01, F-02, etc. This may not be visible in Enjoy SAP screens as the fields are controlled through variants activated - but internal controls stands same.
    Hope it is clear.

  • Field BSEG-DMBTR. does not exist in the screen SAPMF05A 0302

    Hi Gurus,
    I am facing an error when uploading document in background through SM35(batch session)
    1. 1. If i try to post the document in the forground system gives same message but on pressing enter it goes to next line item and ultimately posts the document. But if i try to post (SM35 session) in the back ground i am facing the issue"Field BSEG-DMBTR. does not exist in the screen SAPMF05A 0302"  Message no. 00349
    2. The system is ECC 6.0 recently upgraded from 4.7
    It would be great if any expert can help to resolve this issue.
    Thanks
    Anand

    Seems that your screen flow does not factor in the transaction currency. BSEG-DMBTR is only available for input when the transaction currency is different from the company code currency.
    Your program creating the BDC session needs rework, or better use SAP standard tools for document posting (e.g. RFBIBL00 or one of the BAPIs available )
    Thomas

  • Why in FI doc. show value 909 but in table BSEG-DMBTR show 9.09 ?

    hello everyone .
    I have problem
    in FI document (transaction code FB03) system show value 909
    but in BSEG it's show 9.09
    and i use this value to show in report .
    it's show 9.09 .
    could you tell me why this happen ?
    what should i do to fix this problem ?
    please help.

    Hi
    There are some currencies which will not always use 2 decimals, they can be 3, 4 or even none. Since the data element used for storing this field is 2 decimals, internally the amount will be stored after converting the amount to 2 decimals.
    But when the same amount is displayed in any screen or reports it will use the currency key associated with the amount and does the conversion as per table TCURX and displays them.
    So this is not any problem, you do not have to worry. But whenever you are using these amount fields always add the currency addition for any purpose be it ALV, list output etc. so that you will not have any issue.
    Regards
    Ran ganath

  • Required replace BSEG with BSAK BSIK BSIS BSAS for report performance

    Hi Experts
    i m optimizing a report in which data is extracting from BSEG , 5 time so i reduses the performance of report
    so i want replace BSEG with BSAK BSIK BSIS BSAS for the same data what I am getting now . this is report of Purchase of item. code is here.
    REPORT  zmm_pur_reg_kanhe LINE-SIZE 1023.
    *& Des         :Purchase Tax Register Report for KANHE
    *& Created on  :12-07-07
    *& Suggested by:Paresh Saini(MM)
    *& Changes By: Lailu Philip
    *& Changed On: 24.09.2007
    *& Changes: New columns for G/L Code Description,VAT Amt,VAT Perc,CST Perc
    *&                         ,SHCESS Amounts,WCT G/L Acc., WCT Amt,Tax Code
    *&                          for Purchase Order,WCT tax code & Percentage.
    *& Request No:  S6DK921577
    Data Declaration
    *& changes: by Vincy on 12.01.2007
    *& changes: display purchase order with vendor type zpsr(get_zpsr)
    *& Request No:  S6DK930821
    TABLES:ekbe, lfa1, faglflexa.",j_1iexcdtl,lfa1,bkpf,bseg.
    TYPE-POOLS: slis.                                 "ALV Declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
           gd_layout    TYPE slis_layout_alv,
           gd_repid     LIKE sy-repid.
    DATA: it_sortcat   TYPE slis_sortinfo_alv OCCURS 1,
           col_pos LIKE fieldcatalog-col_pos .
    TYPES :BEGIN OF wa1_ekbe,
            belnr         TYPE ekbe-belnr,
            budat         TYPE ekbe-budat,
            menge         TYPE ekbe-menge,
            matnr         TYPE ekbe-matnr,
            ebelp         TYPE j_1iexcdtl-ritem1,
            ebeln         TYPE ekbe-ebeln,
            gjahr         TYPE ekbe-gjahr,
            lfbnr         TYPE ekbe-lfbnr,
            lfpos         TYPE ekbe-lfpos,
            bldat         TYPE ekbe-bldat,
            REEWR         TYPE REEWR,
            END OF wa1_ekbe.
    TYPES :BEGIN OF wa2_ekbe,
            belnr         TYPE ekbe-belnr,
            budat         TYPE ekbe-budat,
            menge         TYPE ekbe-menge,
            ebelp         TYPE ekbe-ebelp,
            ebeln         TYPE ekbe-ebeln,
            gjahr         TYPE ekbe-gjahr,
            lfbnr         TYPE ekbe-lfbnr,
            lfpos         TYPE ekbe-lfpos,
            bldat         TYPE ekbe-bldat,
            REEWR         TYPE REEWR,
            awkey(20)         TYPE c,
            MATNR         TYPE MATNR,
            MWSKZ         TYPE EKBE-MWSKZ,
            END OF wa2_ekbe.
    TYPES :BEGIN OF wa1_j_1iexcdtl,
            exnum         TYPE j_1iexcdtl-exnum,
            exdat         TYPE j_1iexcdtl-exdat,
            lifnr         TYPE j_1iexcdtl-lifnr,
            matnr         TYPE j_1iexcdtl-matnr ,
          maktx         TYPE j_1iexcdtl-maktx ,
          capind      TYPE j_1iexcdtl-capind,
            exbas         TYPE j_1iexcdtl-exbas,
            exbed             TYPE j_1iexcdtl-exbed,
            ecs            TYPE j_1iexcdtl-ecs,
            werks             TYPE j_1iexcdtl-werks,
            ritem1        TYPE j_1iexcdtl-ritem1,
            rdoc1             TYPE j_1iexcdtl-rdoc1,
            docyr         TYPE j_1iexcdtl-docyr,
            bedinv        type J_1IBEDINV,
            ecsinv        type J_1IECSINV,
            EXADDINV1     type J_1IEXADDINV1,
            exaddtax1    TYPE j_1iexcdtl-exaddtax1,
            rdoc2         TYPE j_1iexcdtl-rdoc2,
            ritem2        TYPE j_1iexcdtl-ritem2,
            menge         TYPE j_1iexcdtl-menge,
    ADDED FOR RUDRAPUR ON 08.03.2008 BY ASHOK.CH
    *ENDED ON 08.02.2008
            END OF wa1_j_1iexcdtl.
    TYPES :BEGIN OF wa1_lfa1,
            name1         TYPE lfa1-name1,
            ktokk         TYPE lfa1-ktokk,
            werks         TYPE lfa1-werks,
            lifnr         TYPE lfa1-lifnr,
            END OF wa1_lfa1.
    TYPES :BEGIN OF wa1_ekexclf,
            belnr         TYPE ekbe-belnr,
            budat         TYPE ekbe-budat,
            menge         TYPE ekbe-menge,
            ebelp         TYPE ekbe-ebelp,
            ebeln         TYPE ekbe-ebeln,
            gjahr         TYPE ekbe-gjahr,
            awkey(20)     TYPE c,
            exnum         TYPE j_1iexcdtl-exnum,
            exdat         TYPE j_1iexcdtl-exdat,
            lifnr         TYPE j_1iexcdtl-lifnr,
            matnr         TYPE j_1iexcdtl-matnr ,
          maktx         TYPE j_1iexcdtl-maktx ,
          capind      TYPE j_1iexcdtl-capind,
            exbas         TYPE j_1iexcdtl-exbas,
            exbed             TYPE j_1iexcdtl-exbed,
            ecs            TYPE j_1iexcdtl-ecs,
            werks             TYPE j_1iexcdtl-werks,
            ritem1        TYPE j_1iexcdtl-ritem1,
            rdoc1             TYPE j_1iexcdtl-rdoc1,
            docyr         TYPE j_1iexcdtl-docyr,
            name1         TYPE lfa1-name1,
            ktokk         TYPE lfa1-ktokk,
            exaddtax1     TYPE j_1iexcdtl-exaddtax1,
    added for rudrapur on 08.03.2008 by ASHOK.CH
            bedinv        type J_1IBEDINV,
            ecsinv        type J_1IECSINV,
            EXADDINV1     type J_1IEXADDINV1,
    END OF MODIFICATION ON 08.02.2008
            END OF  wa1_ekexclf.
    TYPES :BEGIN OF wa1_bkpf,
            bukrs TYPE bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            gjahr TYPE bkpf-gjahr,
            budat TYPE bkpf-budat,
            tcode TYPE bkpf-tcode,
            awkey TYPE bkpf-awkey,
            END OF wa1_bkpf.
    TYPES :BEGIN OF wa1_bseg,
            bukrs     TYPE bseg-bukrs,
            belnr     TYPE bseg-belnr,     
            gjahr         TYPE bseg-gjahr,
            buzei     TYPE bseg-buzei,
            bschl     TYPE bseg-bschl,
            fwbas     TYPE bseg-fwbas ,     
            pswbt         TYPE bseg-pswbt,
            hkont         TYPE bseg-hkont,
            wrbtr     TYPE bseg-wrbtr,
            ktosl     TYPE bseg-ktosl,
            koart     TYPE bseg-koart,
            shkzg     TYPE bseg-shkzg,
            mwskz     TYPE bseg-mwskz,
            qsskz     TYPE bsis-qsskz,
            dmbtr     TYPE bseg-dmbtr,
            lifnr     TYPE bseg-lifnr,
            matnr     TYPE bseg-matnr,
            flag      TYPE C,
            flag_21   TYPE C,
            END OF wa1_bseg.
    TYPES :BEGIN OF wa1_tax,
            belnr         TYPE bseg-belnr,
            fi_docno      TYPE bseg-belnr,
            gjahr             TYPE bseg-gjahr,
            bukrs         TYPE bseg-bukrs,
            awkey         TYPE bkpf-awkey,
            fwbas         TYPE bseg-fwbas ,
            cst_amt       TYPE bseg-pswbt,
            vat_amt       TYPE bseg-pswbt,
            shcess_amt    TYPE bseg-pswbt,
            gl_accnt      TYPE bseg-hkont,
            gl_desc       TYPE skat-txt50,
            wctglacc      TYPE bseg-hkont,
            wctamt        TYPE bseg-dmbtr,
            taxcode       TYPE t059z-wt_withcd,
            taxperc       TYPE t059z-qsatz,
            total_value   TYPE bseg-wrbtr,
            set_off       TYPE bseg-wrbtr,
            cond_type     TYPE konv-kschl,
            description(20)   TYPE c,
            service_tax       TYPE bseg-wrbtr,
            service_ecess     TYPE bseg-wrbtr,
            service_shcess     TYPE bseg-wrbtr,      "vincy on 31.01.08
            ebelp         TYPE ekbe-ebelp,           "      on 15.04.08
            flag          TYPE c,
            mwskz     TYPE bseg-mwskz,
            END OF wa1_tax.
    DATA:BEGIN OF itab_skat,
           saknr TYPE skat-saknr,
           spras TYPE skat-spras,
           txt50 TYPE skat-txt50,
           END OF itab_skat.
    DATA: iskat LIKE itab_skat OCCURS 0,
           wa_skat LIKE itab_skat.
    DATA : BEGIN OF zbsis OCCURS 0,
             bukrs TYPE bsis-bukrs,
             hkont TYPE bsis-hkont,
             augdt TYPE bsis-augdt,
             augbl TYPE bsis-augbl,
             zuonr TYPE bsis-zuonr,
             gjahr TYPE bsis-gjahr,
             belnr TYPE bsis-belnr,
             buzei TYPE bsis-buzei,
             budat TYPE bsis-budat,
             qsskz TYPE bsis-qsskz,
            END OF zbsis.
    DATA: BEGIN OF zt059z OCCURS 0,
           land1 TYPE t059z-land1,
           witht TYPE t059z-witht,
           wt_withcd TYPE t059z-wt_withcd,
           qscod TYPE t059z-qscod,
           qsatz TYPE t059z-qsatz,
           hkont TYPE bsis-hkont,
           belnr TYPE bsis-belnr,
           END OF zt059z.
    DATA: BEGIN OF it_faglflexa OCCURS 0,      "added by vincy
          ryear TYPE faglflexa-ryear,
          docnr TYPE faglflexa-docnr,
          rldnr TYPE faglflexa-rldnr,
          rbukrs TYPE faglflexa-rbukrs,
          docln TYPE faglflexa-docln,
          prctr TYPE faglflexa-prctr,
          END OF it_faglflexa.
    Final Table***
    TYPES :BEGIN OF wa1_final,
             belnr         TYPE ekbe-belnr,
             fi_docno      TYPE bseg-belnr,
             budat         TYPE ekbe-budat,
             menge         TYPE ekbe-menge,
             rate          TYPE konv-kbetr,
             ebelp         TYPE ekbe-ebelp,
             ebeln         TYPE ekbe-ebeln,
             mwskz         TYPE bseg-mwskz,
             gjahr         TYPE ekbe-gjahr,
             awkey(20)     TYPE c,
             exnum         TYPE j_1iexcdtl-exnum,
             exdat         TYPE j_1iexcdtl-exdat,
             lifnr         TYPE j_1iexcdtl-lifnr,
             matnr         TYPE j_1iexcdtl-matnr ,
           maktx         TYPE j_1iexcdtl-maktx ,
             capind       TYPE string,
             exbas         TYPE j_1iexcdtl-exbas,
             exbed       TYPE j_1iexcdtl-exbed,
             ecs             TYPE j_1iexcdtl-ecs,
             werks       TYPE j_1iexcdtl-werks,
             ritem1        TYPE j_1iexcdtl-ritem1,
             rdoc1       TYPE j_1iexcdtl-rdoc1,
             docyr         TYPE j_1iexcdtl-docyr,
             name1         TYPE lfa1-name1,
             ktokk         TYPE lfa1-ktokk,
             fwbas         TYPE bseg-fwbas ,
             vat_per       TYPE konv-kbetr,
             vat_amt       TYPE bseg-pswbt,
             cst_per       TYPE konv-kbetr,
             cst_amt       TYPE bseg-pswbt,
             shcess_amt    TYPE bseg-pswbt,
             gl_accnt      TYPE bseg-hkont,
             gl_desc       TYPE skat-txt50,
             wctglacc      TYPE bseg-hkont,
             wctamt        TYPE bseg-dmbtr,
             taxcode       TYPE t059z-wt_withcd,
             taxperc       TYPE t059z-qsatz,
             total_value   TYPE bseg-wrbtr,
             total_value1 TYPE bseg-wrbtr,
             excise_tax    TYPE bseg-wrbtr,
             excise  TYPE bseg-wrbtr,
             set_off       TYPE bseg-wrbtr,
             inventorised  TYPE konv-kawrt,
             cond_type     TYPE konv-kschl,
             cond_type2    TYPE konv-kschl,
             description(20)   TYPE c,
             service_tax       TYPE bseg-wrbtr,
             service_ecess     TYPE bseg-wrbtr,
             service_shcess    TYPE bseg-wrbtr,            "vincy on 31.01.08
            END OF wa1_final.
    DATA :it2_ekbe        TYPE TABLE OF wa1_ekbe WITH HEADER LINE,
           it_ekbe        TYPE TABLE OF wa1_ekbe WITH HEADER LINE,
           it1_ekbe       TYPE TABLE OF wa2_ekbe WITH HEADER LINE WITH KEY ebelp ebeln,
           it_j_1iexcdtl  TYPE TABLE OF wa1_j_1iexcdtl WITH HEADER LINE WITH KEY rdoc1 ritem1,
           it_lfa1        TYPE TABLE OF wa1_lfa1 WITH HEADER LINE WITH KEY lifnr,
           it_lfa2        TYPE TABLE OF wa1_lfa1 WITH HEADER LINE WITH KEY lifnr,
           it_bkpf        TYPE TABLE OF wa1_bkpf WITH HEADER LINE,
           it_bseg        TYPE TABLE OF wa1_bseg WITH HEADER LINE WITH  KEY
                                        bukrs belnr gjahr ktosl shkzg koart,
           it1_bseg        TYPE TABLE OF wa1_bseg WITH HEADER LINE WITH  KEY
                                        bukrs belnr gjahr ktosl shkzg koart,
           it_tax         TYPE TABLE OF wa1_tax WITH HEADER LINE WITH KEY awkey ,
           it_ekexclf     TYPE TABLE OF wa1_ekexclf WITH HEADER LINE,
           it_final       TYPE TABLE OF wa1_final WITH HEADER LINE,
           it_final1      TYPE TABLE OF wa1_final WITH HEADER LINE,         "vincy
           wa_ekbe       TYPE wa1_ekbe,
           wa1_ekbe      TYPE wa2_ekbe,
           wa_j_1iexcdtl TYPE wa1_j_1iexcdtl,
           wa_lfa1       TYPE wa1_lfa1,
           wa_lfa2       TYPE wa1_lfa1,
           wa_bkpf       TYPE wa1_bkpf,
           wa_bseg       TYPE wa1_bseg,
           wa_tax        TYPE wa1_tax,
           wa_ekexclf    TYPE wa1_ekexclf,
           PLANT TYPE WERKS_D,
           wa_final      TYPE wa1_final.
    DATA: it_konv TYPE konv OCCURS 0 WITH HEADER LINE ,
           wa_konv TYPE konv,
           invent TYPE p DECIMALS 4,
           invent1 TYPE konv-kawrt.
    DATA:d1 TYPE konv-kposn,
          d2 TYPE ekbe-ebelp.
    DATA: v_belnr TYPE ekbe-belnr,
           v_gjahr TYPE ekbe-gjahr,
           v_awkey(20) TYPE c,
           idx TYPE sy-tabix.
    **********by vincy on 12.01.07***********
    DATA: BEGIN  OF it_ekko OCCURS 0,
           ebeln LIKE ekko-ebeln,
           bukrs LIKE ekko-bukrs,
           bsart LIKE ekko-bsart,
           lifnr LIKE ekko-lifnr,
           belnr LIKE ekbe-belnr,
           END OF it_ekko.
    DATA: BEGIN  OF it_ekpo OCCURS 0,
           ebeln LIKE ekpo-ebeln,
           ebelp LIKE ekpo-ebelp,
           txz01 LIKE ekpo-txz01,
           END OF it_ekpo.
    DATA: BEGIN  OF it_lfa1v OCCURS 0,
           lifnr LIKE lfa1-lifnr,
           name1 LIKE lfa1-name1,
           END OF it_lfa1v.
    DATA: BEGIN  OF s_prctr OCCURS 0,
           low LIKE faglflexa-prctr,
           END OF s_prctr.
    DATA: it_bsegv TYPE TABLE OF wa1_bseg WITH HEADER LINE.
    DATA: it_konv1 LIKE konv OCCURS 0 WITH HEADER LINE.
    DATA:cnt TYPE i,
          awkey1(250).
    DATA: LIFNR TYPE LIFNR,
          NAME TYPE NAME1_GP,
          MTART TYPE MARA-MTART,
          MAKTX TYPE MAKTX,
          TAX_TOT TYPE KWERT.
    ***********end of changes by vincy ************
    Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_werks1 FOR ekbe-werks,
                     s_budat1 FOR ekbe-budat,
                     s_fiscal FOR  ekbe-gjahr,
                     s_lifnr FOR lfa1-lifnr.
    SELECTION-SCREEN END OF BLOCK b1.
    **"changes being by nahid on 16.04.2008
    PARAMETERS : excel AS CHECKBOX DEFAULT 'X'.
    PARAMETERS: infile LIKE rlgrap-filename.
    DATA : zfile TYPE string.
    **"changes ended by nahid on 16.04.2008
    AT SELECTION-SCREEN.
       IF s_werks1 IS INITIAL.
         MESSAGE 'Please Enter Plant details' TYPE 'E'.
       ENDIF.
       IF s_budat1 IS INITIAL.
         MESSAGE 'Please Enter Posting date' TYPE 'E'.
       ENDIF.
       IF s_fiscal IS INITIAL.
         MESSAGE 'Please Enter Fiscal Year' TYPE 'E'.
       ENDIF.
    *start change by nahid on 16.4.08
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR infile.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        CHANGING
          file_name     = infile
        EXCEPTIONS
          mask_too_long = 1
          OTHERS        = 2.
    zfile = infile.
    *end change by nahid on 16.4.08
    START-OF-SELECTION.
    plant = s_werks1-low.
    MODIFIED FOR RUDRAPUR BY ASHOK.CH ON 13.03.2008
    IF PLANT NE 'RD01'.
       PERFORM get_data.
       PERFORM get_zpsr.                        "vincy
    ENDIF.
    IF PLANT EQ 'RD01'.
        PERFORM get_data1.
    ENDIF.
    *END OF MODIFICATION ON 13.03.2008
       PERFORM build_fieldcatalog.
       PERFORM build_layout.
       PERFORM display_alv_report.
    *start chng by nahid on 16.4.08
    IF excel = 'X'.
        IF NOT infile IS INITIAL.
          PERFORM excel_data.
        ELSE.
          MESSAGE e000(0) WITH 'Please Enter the File Path'.
        ENDIF.
      ENDIF.
    *end by nahid on 16.4.08
    *&      Form  get_data
    FORM get_data .
       SELECT belnr budat menge matnr ebelp ebeln gjahr lfbnr lfpos bldat  REEWR FROM ekbe INTO
       TABLE it_ekbe
       WHERE werks IN s_werks1 AND
            (bewtp EQ 'Q' OR bewtp EQ 'N')     AND
             bewtp IN ('Q' , 'N') AND                 "added N  by vincy on 6.07.2008
             budat IN s_budat1 AND
             gjahr IN s_fiscal .
       IF sy-subrc = 0.               "for 1st ekbe
         IF it_ekbe[] IS NOT INITIAL.
         SELECT exnum exdat lifnr matnr maktx capind exbas exbed ecs werks
         ritem1 rdoc1 docyr bedinv ecsinv EXADDINV1 exaddtax1  rdoc2 ritem2 menge
                FROM j_1iexcdtl INTO TABLE it_j_1iexcdtl FOR ALL ENTRIES IN it_ekbe
                WHERE rdoc1  = it_ekbe-ebeln
                AND ritem1 =  it_ekbe-ebelp AND
                lifnr IN s_lifnr.
         ENDIF.
           IF it_j_1iexcdtl[] IS NOT INITIAL.
           SELECT name1 ktokk werks lifnr FROM lfa1 INTO
                            TABLE it_lfa1 FOR ALL ENTRIES IN it_j_1iexcdtl
                             WHERE lifnr = it_j_1iexcdtl-lifnr.
          ENDIF.
           LOOP AT it_ekbe INTO wa_ekbe.
             wa1_ekbe-belnr        = wa_ekbe-belnr.
             wa1_ekbe-budat        = wa_ekbe-budat.
             wa1_ekbe-menge        = wa_ekbe-menge.
             wa1_ekbe-ebelp        = wa_ekbe-ebelp.
             wa1_ekbe-ebeln        = wa_ekbe-ebeln.
             wa1_ekbe-gjahr        = wa_ekbe-gjahr.
             wa1_ekbe-matnr        = wa_ekbe-matnr.
             wa1_ekbe-lfbnr        = wa_ekbe-lfbnr.
             wa1_ekbe-lfpos        = wa_ekbe-lfpos.
             wa1_ekbe-bldat        = wa_ekbe-bldat.
             v_belnr = wa_ekbe-belnr.
             v_gjahr = wa_ekbe-gjahr.
             CONCATENATE v_belnr v_gjahr INTO v_awkey.
             wa1_ekbe-awkey        = v_awkey.
             APPEND wa1_ekbe TO it1_ekbe.
             CLEAR :wa_ekbe.
           ENDLOOP.
    ************changes by vincy on 29.05.08 for 'FB08' and 'FB60'**************
           LOOP AT s_werks1.
             IF s_werks1-low = 'KN01'.
                s_prctr-low  = 'MUKNHSTM'.
             ELSEIF
              s_werks1-low = 'NS01'.
                s_prctr-low  = 'MUNSKSTM'.
             ELSEIF
              s_werks1-low = 'RD01'.
                s_prctr-low  = 'MURDPSTM'.
             ENDIF.
             APPEND s_prctr.
           ENDLOOP.
           SELECT bukrs belnr gjahr budat tcode awkey FROM bkpf INTO TABLE it_bkpf
                          WHERE bukrs = 'MU51'    AND
                          gjahr IN s_fiscal       AND
                          budat IN s_budat1       AND
                          ( tcode = 'FB60' OR  tcode = 'FB08' ).
          IF it_bkpf[] IS NOT INITIAL.
          SELECT ryear docnr rldnr rbukrs docln prctr FROM faglflexa INTO TABLE it_faglflexa
          FOR ALL ENTRIES IN it_bkpf WHERE rbukrs = 'MU51'   AND
                                           ryear  = it_bkpf-gjahr AND
                                           docnr  = it_bkpf-belnr.
          ENDIF.
          LOOP AT it_faglflexa.
            READ TABLE s_prctr WITH KEY low = it_faglflexa-prctr.
            IF sy-subrc <> 0.
            DELETE it_faglflexa.
            ENDIF.
            CLEAR: it_faglflexa, s_prctr.
          ENDLOOP.
    **************************end of change*************************************
           IF it1_ekbe[] IS NOT INITIAL.
           SELECT bukrs belnr gjahr budat tcode awkey FROM bkpf APPENDING
           TABLE it_bkpf FOR ALL ENTRIES IN it1_ekbe
                          WHERE bukrs = 'MU51'    AND
                          gjahr IN s_fiscal AND
                          awkey = it1_ekbe-awkey.
           ENDIF.
           IF sy-subrc = 0.       "bkpf
             IF it_bkpf[] IS NOT INITIAL.
             SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr  ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
                          FROM bseg INTO TABLE it1_bseg FOR ALL ENTRIES IN it_bkpf
                           WHERE belnr = it_bkpf-belnr AND
                                 gjahr = it_bkpf-gjahr AND
                                 bukrs = it_bkpf-bukrs AND
                                 ( bschl = '21' ) AND
                                 lifnr IN s_lifnr.                      "added 21 for miro cancelation
              IF it1_bseg[] IS NOT INITIAL.
              SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr  ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
                          FROM bseg INTO TABLE it_bseg FOR ALL ENTRIES IN it1_bseg
                           WHERE belnr = it1_bseg-belnr AND
                                 gjahr = it1_bseg-gjahr AND                    "changed it_bkpf to it1_bseg
                                 bukrs = it1_bseg-bukrs .
              LOOP AT it_bseg.
              it_bseg-wrbtr = it_bseg-wrbtr * -1.
              it_bseg-fwbas = it_bseg-fwbas * -1.
              it_bseg-pswbt = it_bseg-pswbt * -1.
              it_bseg-flag_21 = 'X'.
              MODIFY it_bseg.
              CLEAR it_bseg.
              ENDLOOP.
             SELECT name1 ktokk werks lifnr FROM lfa1 INTO
             TABLE it_lfa2 FOR ALL ENTRIES IN it1_bseg
                          WHERE lifnr = it1_bseg-lifnr.
             ENDIF.
             REFRESH it1_bseg.
             SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr  ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
                          FROM bseg INTO TABLE it1_bseg FOR ALL ENTRIES IN it_bkpf
                           WHERE belnr = it_bkpf-belnr AND
                                 gjahr = it_bkpf-gjahr AND
                                 bukrs = it_bkpf-bukrs AND
                                 ( bschl = '31' ) AND                      "added bschl and lifnr by vincy
                                 lifnr IN s_lifnr.
             IF it1_bseg[] IS NOT INITIAL.
             SELECT name1 ktokk werks lifnr FROM lfa1 APPENDING
             TABLE it_lfa2 FOR ALL ENTRIES IN it1_bseg
                          WHERE lifnr = it1_bseg-lifnr.
             SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr  ktosl koart shkzg mwskz qsskz dmbtr lifnr matnr
                          FROM bseg APPENDING TABLE it_bseg FOR ALL ENTRIES IN it1_bseg
                           WHERE belnr = it1_bseg-belnr AND
                                 gjahr = it1_bseg-gjahr AND                    "changed it_bkpf to it1_bseg
                                 bukrs = it1_bseg-bukrs AND
                                 bschl <> '35'.                                "added bschl to avoid vendor paymnt
            ENDIF.
            SELECT bukrs belnr gjahr buzei bschl fwbas pswbt hkont wrbtr  ktosl koart shkzg  mwskz qsskz dmbtr lifnr
                          FROM bseg APPENDING CORRESPONDING FIELDS OF TABLE it_bseg
                          FOR ALL ENTRIES IN it_bkpf
                          WHERE belnr = it_bkpf-belnr AND
                          gjahr = it_bkpf-gjahr AND
                          lifnr IN s_lifnr AND
                          bukrs = it_bkpf-bukrs AND qsskz IN ('WI', 'WJ').
            ENDIF.
          ENDIF.
           SORT it_bseg BY belnr buzei.
           IF NOT it_bseg[] IS INITIAL.
             SELECT saknr spras txt50 FROM skat
                              INTO TABLE iskat
                              FOR ALL ENTRIES IN it_bseg
                              WHERE saknr = it_bseg-hkont AND spras = 'EN'.
             SELECT  bukrs hkont augdt augbl zuonr gjahr belnr buzei budat qsskz FROM bsis
                               INTO TABLE zbsis
                               FOR ALL ENTRIES IN it_bseg
                               WHERE bukrs = 'MU51' AND hkont = it_bseg-hkont
                               AND belnr = it_bseg-belnr AND gjahr = s_fiscal
                               AND budat IN s_budat1.
           ENDIF.
           LOOP AT it_bseg.
             READ TABLE zbsis WITH KEY hkont = it_bseg-hkont.
             IF sy-subrc = 0.
               it_bseg-qsskz = zbsis-qsskz.
               MODIFY it_bseg.
             ENDIF.
             CLEAR: it_bseg,zbsis.
           ENDLOOP.
           LOOP AT zt059z.
             LOOP AT it_bseg WHERE qsskz = zt059z-wt_withcd.
               zt059z-hkont = it_bseg-hkont.
               zt059z-belnr = it_bseg-belnr.
               MODIFY zt059z.
               CLEAR: it_bseg,zt059z.
             ENDLOOP.
           ENDLOOP.
           CLEAR: wa_bkpf.
    *******Filling Wa.
          LOOP AT it_bkpf INTO wa_bkpf.                     "changes by vincy on 14.04.2008
            LOOP AT it1_ekbe INTO wa1_ekbe .
            READ TABLE it_bkpf INTO wa_bkpf
            WITH KEY awkey = wa1_ekbe-awkey.
             wa_tax-belnr     =    wa_bkpf-belnr.
             wa_tax-gjahr     =    wa_bkpf-gjahr.     
             wa_tax-bukrs     =    wa_bkpf-bukrs.
             wa_tax-awkey     =    wa_bkpf-awkey.
             wa_tax-ebelp     =    wa1_ekbe-ebelp.
             CLEAR: wa_bseg,wa_skat.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                         belnr = wa_bkpf-belnr
                                         gjahr = wa_bkpf-gjahr  INTO wa_bseg.
             IF sy-subrc = 0.
               wa_tax-fi_docno  =    wa_bseg-belnr.
               wa_tax-mwskz     =    wa_bseg-mwskz.
             CLEAR: wa_bseg.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                           belnr = wa_bkpf-belnr
                                           gjahr = wa_bkpf-gjahr
                                           flag = ''
                                           ktosl = 'JP4' INTO wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-gl_accnt    =  wa_bseg-hkont.
               READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
               IF sy-subrc = 0.
                 wa_tax-gl_desc = wa_skat-txt50.
               ENDIF.
               wa_tax-set_off     =  wa_bseg-wrbtr.
               wa_tax-fwbas       =  wa_bseg-fwbas.
               wa_tax-cst_amt     =  wa_bseg-pswbt.
               wa_tax-description = 'CST CG Sett off'.
               wa_tax-cond_type   =  'JVCS'.
             ENDIF.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                           belnr = wa_bkpf-belnr
                                           gjahr = wa_bkpf-gjahr
                                           flag = ''
                                           ktosl = 'VS1' INTO wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-fwbas       =  wa_bseg-fwbas.
             ENDIF.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                            belnr = wa_bkpf-belnr
                                            gjahr = wa_bkpf-gjahr
                                            flag = ''
                                            ktosl = 'JP7' INTO wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-gl_accnt    =  wa_bseg-hkont.
               READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
               IF sy-subrc = 0.
                 wa_tax-gl_desc = wa_skat-txt50.
               ENDIF.
               wa_tax-set_off     =  wa_bseg-wrbtr.
               wa_tax-fwbas       =  wa_bseg-fwbas.
               wa_tax-vat_amt     =  wa_bseg-pswbt.
               wa_tax-description = 'VAT CG Sett off'.
               wa_tax-cond_type   =  'JVCD'.
             ENDIF.
             CLEAR wa_bseg.
            READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                       belnr = wa_bkpf-belnr
                                       gjahr = wa_bkpf-gjahr
                                       flag = ''
                                       ktosl = 'JP5' INTO wa_bseg.
              READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                        belnr = wa_bkpf-belnr
                                        gjahr = wa_bkpf-gjahr
                                        hkont = '0002868001' INTO     wa_bseg.       "vat changed for V0 tax code
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-gl_accnt  =  wa_bseg-hkont.
               READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
               IF sy-subrc = 0.
                 wa_tax-gl_desc = wa_skat-txt50.
               ENDIF.
               wa_tax-vat_amt   =  wa_bseg-pswbt.
               wa_tax-set_off   =  wa_bseg-wrbtr.
               wa_tax-cond_type =  'JVRD'.
               wa_tax-fwbas     =  wa_bseg-fwbas.
               wa_tax-description        = 'VAT RM Set off'.
             ENDIF.
             CLEAR: wa_bseg,wa_skat.
             READ TABLE it_bseg WITH KEY     bukrs = wa_bkpf-bukrs
                                             belnr = wa_bkpf-belnr
                                             gjahr = wa_bkpf-gjahr
                                             shkzg = 'H'
                                             koart = 'K'
                                             INTO     wa_bseg.
             IF sy-subrc = 0.
               wa_tax-total_value =  wa_bseg-wrbtr.
             ENDIF.
          START OF MODIFICATION BY ASHOK.CH ON 08.02.2008
            service_tax
             CLEAR wa_bseg.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                        belnr = wa_bkpf-belnr
                                        gjahr = wa_bkpf-gjahr
                                        flag = ''
                                        ktosl = 'VS8'  INTO     wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-gl_accnt  =    wa_bseg-hkont.
               READ TABLE iskat INTO wa_skat WITH KEY saknr = wa_bseg-hkont.
               IF sy-subrc = 0.
                 wa_tax-gl_desc = wa_skat-txt50.
               ENDIF.
               wa_tax-service_tax =  wa_bseg-wrbtr.
               wa_tax-description = 'Service Tax'.
               wa_tax-cond_type =  'JSRT'.
             ENDIF.
         service_ecess
             CLEAR: wa_bseg,wa_skat.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                        belnr = wa_bkpf-belnr
                                        gjahr = wa_bkpf-gjahr
                                        flag = ''
                                        ktosl = 'VS9'  INTO  wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-service_ecess =  wa_bseg-wrbtr.
             ENDIF.
    **********changes by vincy on 31.01.08*********************
        service_shcess
             CLEAR: wa_bseg.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                        belnr = wa_bkpf-belnr
                                        gjahr = wa_bkpf-gjahr
                                        flag = ''
                                        ktosl = 'VSE'  INTO  wa_bseg.
             IF sy-subrc = 0.
               wa_bseg-flag = 'X'.
               MODIFY it_bseg INDEX sy-tabix FROM wa_bseg.
               wa_tax-service_shcess =  wa_bseg-wrbtr.
             ENDIF.
    *************************end of changes***********************
    END OF MODIFICATION ON 08.02.2008
             APPEND wa_tax TO it_tax.
             ENDIF.
             CLEAR :wa_tax,wa_bseg,wa_bkpf,wa_skat.
           ENDLOOP.
           CLEAR wa1_ekbe.
           LOOP AT it1_ekbe INTO wa1_ekbe.
            READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
                                    WITH KEY  rdoc1  = wa1_ekbe-ebeln
                                    ritem1 = wa1_ekbe-ebelp.
    *New query added by Nilesh
            READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
                                    WITH KEY  rdoc1  = wa1_ekbe-lfbnr
                                    ritem2 = wa1_ekbe-lfpos.
             READ TABLE it_bkpf INTO wa_bkpf
             WITH KEY awkey = wa1_ekbe-awkey.
             IF sy-subrc = 0.
             READ TABLE it_bseg WITH KEY bukrs = wa_bkpf-bukrs
                                        belnr = wa_bkpf-belnr
                                        gjahr = wa_bkpf-gjahr.
              IF sy-subrc = 0.
               wa_ekexclf-belnr  =       wa1_ekbe-belnr.
               wa_ekexclf-budat  =       wa1_ekbe-budat.
               wa_ekexclf-menge  =       wa1_ekbe-menge.
               wa_ekexclf-ebelp  =       wa1_ekbe-ebelp.
               wa_ekexclf-ebeln  =       wa1_ekbe-ebeln.
               wa_ekexclf-gjahr  =       wa1_ekbe-gjahr.
               wa_ekexclf-awkey  =       wa1_ekbe-awkey.
               wa_ekexclf-lifnr  =       it_bseg-lifnr.
               wa_ekexclf-matnr  =       it_bseg-matnr .
            READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl                 "for records for which either rdoc1 or matnr
                                    WITH KEY  rdoc2  = wa1_ekbe-lfbnr   "not maintained in ekbe by vincy on 16.06.08
                                              menge  = wa1_ekbe-menge.
            IF sy-subrc <> 0 .
            READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
                                    WITH KEY  rdoc1  = wa1_ekbe-ebeln
                                              exdat  = wa1_ekbe-bldat
                                              matnr  = wa1_ekbe-matnr
                                              menge  = wa1_ekbe-menge.
            ENDIF.
             READ TABLE it_j_1iexcdtl INTO wa_j_1iexcdtl
                                     WITH KEY  rdoc1  = wa1_ekbe-ebeln
                                               ritem1 = wa1_ekbe-ebelp.
             IF sy-subrc = 0.
              wa_ekexclf-belnr  =       wa1_ekbe-belnr.
              wa_ekexclf-budat  =       wa1_ekbe-budat.
              wa_ekexclf-menge  =       wa1_ekbe-menge.
              wa_ekexclf-ebelp  =       wa1_ekbe-ebelp.
              wa_ekexclf-ebeln  =       wa1_ekbe-ebeln.
              wa_ekexclf-gjahr  =       wa1_ekbe-gjahr.
              wa_ekexclf-awkey  =       wa1_ekbe-awkey.
               wa_ekexclf-exnum  =       wa_j_1iexcdtl-exnum.
               wa_ekexclf-exdat  =       wa_j_1iexcdtl-exdat.
               wa_ekexclf-lifnr  =       wa_j_1iexcdtl-lifnr.
               wa_ekexclf-matnr  =       wa_j_1iexcdtl-matnr .
               wa_ekexclf-maktx  =       wa_j_1iexcdtl-maktx .
               wa_ekexclf-capind =        wa_j_1iexcdtl-capind.
               wa_ekexclf-exbas  =        wa_j_1iexcdtl-exbas.
              wa_ekexclf-exbed  =        wa_j_1iexcdtl-exbed.
              wa_ekexclf-ecs    =        wa_j_1iexcdtl-ecs.
               wa_ekexclf-werks  =        wa_j_1iexcdtl-werks.
               wa_ekexclf-ritem1 =       wa_j_1iexcdtl-ritem1.
               wa_ekexclf-rdoc1  =         wa_j_1iexcdtl-rdoc1.
               wa_ekexclf-docyr  =       wa_j_1iexcdtl-docyr.
              wa_ekexclf-exaddtax1  = wa_j_1iexcdtl-exaddtax1.
               IF it_bseg-flag_21 = 'X'.
               wa_ekexclf-exbas  = wa_ekexclf-exbas * -1.
               ENDIF.
    MODIFIED BY ASHOK.CH ON 08.03.2008
          IF wa_j_1iexcdtl-WERKS NE 'RD01' .
               wa_ekexclf-exbed  =        wa_j_1iexcdtl-exbed.
               wa_ekexclf-ecs    =        wa_j_1iexcdtl-ecs.
               wa_ekexclf-exaddtax1  = wa_j_1iexcdtl-exaddtax1.
               IF it_bseg-flag_21 = 'X'.
                 wa_ekexclf-exbed  =        wa_ekexclf-exbed * -1.
                 wa_ekexclf-ecs    =        wa_ekexclf-ecs * -1.
                 wa_ekexclf-exaddtax1  = wa_ekexclf-exaddtax1 * -1.
               ENDIF.
         ELSE.
               wa_ekexclf-exbed  =        wa_j_1iexcdtl-BEDINV.
               wa_ekexclf-ecs    =        wa_j_1iexcdtl-ecsINV.
               wa_ekexclf-exaddtax1  = wa_j_1iexcdtl-exaddINV1.
         ENDIF.
    END IF MODIFICATION ON 08.03.2008
              APPEND wa_ekexclf TO it_ekexclf.
              CLEAR :wa_lfa1,wa_j_1iexcdtl,wa1_ekbe.
             ENDIF.
               READ TABLE it_lfa2 INTO wa_lfa2
               WITH KEY lifnr = wa_ekexclf-lifnr.
               IF sy-subrc = 0.
                 wa_ekexclf-name1  =        wa_lfa2-name1.
                 wa_ekexclf-ktokk  =        wa_lfa2-ktokk.
               ENDIF.
               APPEND wa_ekexclf TO it_ekexclf.
             ENDIF.
             ENDIF.
               CLEAR :wa_lfa1,wa_j_1iexcdtl,wa1_ekbe,wa_lfa2,wa_ekexclf.
           ENDLOOP.
           CLEAR wa_ekexclf.
           LOOP AT it_ekexclf INTO wa_ekexclf.
             wa_final-belnr     =       wa_ekexclf-belnr.
             wa_final-budat     =       wa_ekexclf-budat.
             wa_final-menge     =       wa_ekexclf-menge.
             wa_final-ebelp     =       wa_ekexclf-ebelp.
             wa_final-ebeln     =       wa_ekexclf-ebeln.
             wa_final-gjahr     =       wa_ekexclf-gjahr.
             wa_final-awkey     =       wa_ekexclf-awkey.
             wa_final-exnum     =       wa_ekexclf-exnum.
             wa_final-exdat     =       wa_ekexclf-exdat.
             wa_final-lifnr     =       wa_ekexclf-lifnr.
             wa_final-matnr     =       wa_ekexclf-matnr .
             wa_final-maktx     =       wa_ekexclf-maktx .
             wa_final-shcess_amt = wa_ekexclf-exaddtax1.
             IF  wa_ekexclf-capind = 'C'.
               wa_final-capind    =  'Consumables'.
             ENDIF.
             IF  wa_ekexclf-capind = 'A'.
               wa_final-capind    =  'Assets'.
             ENDIF.
             IF  wa_ekexclf-capind = 'T'.
               wa_final-capind    =   'Tools'.
             ENDIF.
             IF  wa_ekexclf-capind = ''.
               wa_final-capind    =   'Raw Material'.
             ENDIF.
             IF  wa_ekexclf-capind = 'N'.
               wa_final-capind    =  'Non Cenvatable'.
             ENDIF.
             IF  wa_ekexclf-capind NE 'C' AND wa_ekexclf-capind NE 'A' AND
                 wa_ekexclf-capind NE '' AND wa_ekexclf-capind NE 'N'.
               wa_final-capind    = wa_ekexclf-capind.
             ENDIF.
             wa_final-exbas     =       wa_ekexclf-exbas.
             wa_final-exbed     =       wa_ekexclf-exbed.
             wa_final-ecs       =       wa_ekexclf-ecs.
             wa_final-werks     =       wa_ekexclf-werks.
             wa_final-ritem1    =       wa_ekexclf-ritem1.
             wa_final-rdoc1     =       wa_ekexclf-rdoc1.
             wa_final-docyr     =       wa_ekexclf-docyr.
             wa_final-name1     =       wa_ekexclf-name1.
             wa_final-ktokk     =       wa_ekexclf-ktokk.
             wa_final-excise    =       wa_final-exbas + wa_final-exbed + wa_final-ecs + wa_final-shcess_amt.
             CLEAR :wa_tax.

    Hi ,
    I think you are using the redundant selects to fetch the data from BSEG.
    First select all the data into an internal table based on  bkpf.
    Now you can distribute the data into whatever tables you want using the loop,read-binary search and append statements..
    Loop at it_bseg.
    read it_bseg where
                        xxxxx
                        xxxxx
                        binary search.
    append wa to it2_bseg.
    endloop              
    This avoid several database fetches..
    Thank you..

  • How to change the Amount in LC(DMBTR) in F-02

    Usually, when we create accounting document though F-02. the Amount in LC(bseg-DMBTR) is create base on the amount(bseg-WRBTR) and the local currency .
    Now I want to change this field's value, I want to know in which program create I can change the Amount in LC(bseg-dmbtr) , or can we change it in Substitution (ZRGGBS000) ?

    Hi,
    as per SAP standard it is no possible once document has posted
    If you want to change amount LC or DC
    Please cancel/reverse document in FB08 if it is open item
    if it is Cleared item means use T code - FBRA
    and post new document correct LC amount
    Thanking you
    Regards
    mahesh

  • How to use BKPF and BSEG without using  inner join

    Hi,
    can anybody plz tell me the logic about how to complete the report without inner joining bkpf and bseg.Is this report can be really be made by using only bseg,bkpf ?
    *selection-criteria .
    BKPF-USNAM
    BKPF-CPUDT
    BKPF-BUDAT
    BKPF-GJAHR
    BKPF-BUKRS
    BKPF-BELNR
    BSEG-SAKNR
    BSEG-LIFNR
    BSEG-KUNNR
    BSEG-ZUONR
    BSEG-SGTXT
    Output fields required.
    BKPF-BUKRS
    BKPF-BELNR
    BKPF-GJAHR
    BKPF-MONAT
    BKPF-BLART
    BKPF-CPUDT
    BKPF-BLDAT
    BKPF-BUDAT
    BKPF-USNAM
    BKPF-XBLNR
    BKPF-STBLG
    BKPF-BKTXT
    BKPF-WAERS
    BKPF-KURSF
    BSEG-BUZEI
    BSEG-BSCHL
    BSEG-KOART
    BSEG-UMSKZ
    BSEG-SHKZG
    BSEG-MWSKZ
    BSEG-PSWBT
    BSEG-PSWSL
    BSEG-DMBTR
    BSEG-SAKNR
    BSEG-HKONT
    BSEG-KOSTL
    BSEG-KUNNR
    BSEG-VBELN
    BSEG-LIFNR
    BSEG-ANLN1
    BSEG-ANLN2
    BSEG-AUFNR
    BSEG-MATNR
    BSEG-MENGE
    BSEG-MEINS
    BSEG-ZUONR
    BSEG-SGTXT
    Thanks,
    Rahman
    Moderator Message: Please search before posting your question. Thread locked.
    Edited by: Suhas Saha on Jan 31, 2012 3:07 PM

    Quick question - what's preventing your from using built-in functions?
    I suggest mapping your Time Dim to a standard Time Dim and work with it - you'll save a lot more time. You'd even need this table if you wanted to work around Todate/AGO.
    It is possible to model this functionality w/o functions, but it'll be time consuming task, similar to using Time Series Wizard in Siebel Analytics. You'll need to build aliases and views along with some complex joins (such as TIME.KEY=TIME.KEY-365), introduce a bunch of variables to control. Also, you might not get much flexibility in terms of years. For each year, you'd need an alias table. (TIME_DIM_PY).

  • How to determine Tax and Basic amount from BSEG entry

    Hi Guru's,
    How can I determine from the BSEG table the following lines for one BELNR?
    I need to know the TAX amount and the basic amount (without TAX). When I search  the bseg table I see tree lines and the field DMBTR contains all values but I need to determine which line is the line with tax amount and the line with the basic amount.
    Hope someone can help me out.
    Best regards.
    Edited by: Julius Bussche on Jan 9, 2009 1:58 PM
    Please use meaningfull subject titles.

    Hello,
    How can I determine from the BSEG table the following lines for one BELNR?
    I need to know the TAX amount and the basic amount (without TAX). When I search the bseg table I see tree lines and the field DMBTR contains all values but I need to determine which line is the line with tax amount and the line with the basic amount.
    In our system we have BSEG-BUZID: 'T' (for Tax items)
    For the Tax line:
    BSEG-HWBAS: Tax Base Amount in Local Currency
    BSEG-DMBTR: Tax Amount in Local Currency
    Hope this helps.
    BR,
    Suhas
    Edited by: Suhas Saha on Jan 9, 2009 1:39 PM

  • How do we join cluster table bseg?

    Friends ,
    i just wanna know as 2 how can we combine bseg and bkpf tables.
    since bkpf is a transparent table and bseg is a cluster table.
    regards
    Essam
    [email protected]

    Hi Essam,
        REPORT  ztestport_01.
    TABLES : bkpf,
             bseg.
       INTERNAL TABLE AND WORK AREA FOR THE FIELDS IN BKPF TABLE         *
    DATA : BEGIN OF itab_bkpf OCCURS 0,
           bukrs LIKE bkpf-bukrs,            "Company Code.
           gjahr LIKE bkpf-gjahr,            "Fiscal Year.
           budat LIKE bkpf-budat,            "Posting Date in the Document.
           belnr LIKE bkpf-belnr,            "Accounting document number.
           blart LIKE bkpf-blart,            "Document Type.
           END OF itab_bkpf.
    DATA : wa_bkpf LIKE LINE OF itab_bkpf.
       INTERNAL TABLE AND WORK AREA FOR THE FIEDLS IN BSEG TABLE         *
    DATA : BEGIN OF itab_bseg_debit OCCURS 0,
           bukrs LIKE bseg-bukrs,            "Company Code.
           gjahr LIKE bseg-gjahr,            "Fiscal Year.
           belnr LIKE bseg-belnr,            "Accounting Document Number.
           buzei LIKE bseg-buzei,            "Line Item.
           hkont LIKE bseg-hkont,            "General Leadger Account.
           shkzg LIKE bseg-shkzg,            "Credit/Debit Indicator.
           wrbtr LIKE bseg-wrbtr,            "Amount in Document Currency.
           pswsl LIKE bseg-pswsl,            "Update Currency for Gen.Ledger
           dmbtr LIKE bseg-dmbtr,            "Amount in local currency.
           sgtxt LIKE bseg-sgtxt,            "Item Text.
           zuonr LIKE bseg-zuonr,            "Assignment Number.
           END OF itab_bseg_debit.
    DATA : itab_bseg_credit LIKE STANDARD TABLE OF itab_bseg_debit WITH
           HEADER LINE.
                      FINAL OUTPUT INTERNAL TABLE                        *
    DATA : BEGIN OF itab_output OCCURS 0,
           belnr(08)            ,
           bukrs(04)            ,
           budat LIKE bkpf-budat,
           buzei(03)            ,
           hkont(07)            ,
           blart(02)            ,
           shkzg(01)            ,
           wrbtr(08)            ,
           pswsl(05)            ,
           dmbtr(10)            ,
           sgtxt(19)            ,
           zuonr(10)            ,
    END OF itab_output.
    CONSTANTS : c_debit  TYPE c VALUE 'S',
                c_credit TYPE c VALUE 'H'.
                               SELECT-OPTIONS                            *
    SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-t01.
    SELECT-OPTIONS : s_bukrs FOR bkpf-bukrs.
    PARAMETERS     : p_year LIKE bkpf-gjahr visible length 2.
    SELECT-OPTIONS : s_budat  FOR bkpf-budat,
                     s_dbacct FOR bseg-hkont,
                     s_cracct FOR bseg-hkont,
                     s_amt    FOR bseg-dmbtr.
    SELECTION-SCREEN END OF BLOCK input.
         SELECTING RECORDS FROM BKPF TABLE BASED ON THE CONDITION        *
    SELECT bukrs gjahr budat belnr blart
           FROM  bkpf INTO TABLE itab_bkpf
           WHERE bukrs IN s_bukrs AND
                 gjahr EQ p_year  AND
                 budat IN s_budat.
        SELECTING DEBIT LINE ITEMITEMS FROM BSEG FOR THE DOCUMENT        *
                      NUMBER SELECTED FROM BKPF                          *
    IF NOT itab_bkpf[] IS INITIAL.
      SELECT bukrs gjahr belnr buzei
             hkont shkzg wrbtr pswsl
             dmbtr sgtxt zuonr
             FROM bseg INTO TABLE itab_bseg_debit
             FOR ALL ENTRIES IN itab_bkpf
             WHERE bukrs EQ itab_bkpf-bukrs AND
                   belnr EQ itab_bkpf-belnr AND
                   gjahr EQ itab_bkpf-gjahr AND
                   hkont IN s_dbacct        AND
                   shkzg EQ c_debit         AND
                   dmbtr IN s_amt.
        SELECTING CREDIT LINE ITEMITEMS FROM BSEG FOR THE DOCUMENT       *
                      NUMBER SELECTED FROM BKPF                          *
      SELECT bukrs gjahr belnr buzei
             hkont shkzg wrbtr pswsl
             dmbtr sgtxt zuonr
             FROM bseg INTO TABLE itab_bseg_credit
             FOR ALL ENTRIES IN itab_bkpf
             WHERE bukrs EQ itab_bkpf-bukrs AND
                   belnr EQ itab_bkpf-belnr AND
                   gjahr EQ itab_bkpf-gjahr AND
                   hkont IN s_cracct        AND
                   shkzg EQ c_credit        AND
                   dmbtr IN s_amt.
    ENDIF.
    SORT itab_bkpf        BY bukrs gjahr belnr.
    SORT itab_bseg_credit BY bukrs gjahr belnr.
                         LOOPING THE DEBIT ENTRIES                       *
    LOOP AT itab_bseg_debit.
    READING THE CREDIT ENTRIES WHICH MATCHES WITH HE CURRENT DOC. NUMBER *
      READ TABLE itab_bseg_credit WITH KEY
                 bukrs = itab_bseg_debit-bukrs
                 gjahr = itab_bseg_debit-gjahr
                 belnr = itab_bseg_debit-belnr BINARY SEARCH.
      IF sy-subrc EQ 0.
    *READING THE POSTING DATE AND DOCUMENT TYPE FOR THE CURRENT DOUCMENT   *
           AND APPENDING THE DEBIT AND CREDIT ENTRIES                    *
        READ TABLE itab_bkpf INTO wa_bkpf WITH KEY
                   bukrs = itab_bseg_debit-bukrs
                   gjahr = itab_bseg_debit-gjahr
                   belnr = itab_bseg_debit-belnr BINARY SEARCH.
        itab_output-belnr = itab_bseg_debit-belnr.
        itab_output-bukrs = itab_bseg_debit-bukrs.
        itab_output-budat = wa_bkpf-budat.
        itab_output-buzei = itab_bseg_debit-buzei.
        itab_output-hkont = itab_bseg_debit-hkont.
        itab_output-blart = wa_bkpf-blart.
        itab_output-shkzg = itab_bseg_debit-shkzg.
        itab_output-wrbtr = itab_bseg_debit-wrbtr.
        itab_output-pswsl = itab_bseg_debit-pswsl.
        itab_output-dmbtr = itab_bseg_debit-dmbtr.
        itab_output-sgtxt = itab_bseg_debit-sgtxt.
        itab_output-zuonr = itab_bseg_debit-zuonr.
        APPEND itab_output.
        itab_output-belnr = itab_bseg_credit-belnr.
        itab_output-bukrs = itab_bseg_credit-bukrs.
        itab_output-budat = wa_bkpf-budat.
        itab_output-buzei = itab_bseg_credit-buzei.
        itab_output-hkont = itab_bseg_credit-hkont.
        itab_output-blart = wa_bkpf-blart.
        itab_output-shkzg = itab_bseg_credit-shkzg.
        itab_output-wrbtr = itab_bseg_credit-wrbtr.
        itab_output-pswsl = itab_bseg_credit-pswsl.
        itab_output-dmbtr = itab_bseg_credit-dmbtr.
        itab_output-sgtxt = itab_bseg_credit-sgtxt.
        itab_output-zuonr = itab_bseg_credit-zuonr.
        APPEND itab_output.
      ENDIF.
    ENDLOOP.
    SORT itab_output BY belnr budat shkzg.
    then loop your final itab_output
    and give write command to print
    your fields.
    <b>Regards,
    Jackie.</b>
    Message was edited by:
            Jackie

  • BSEG extract

    BSEG is a cluster table and I need to improve the performance of the extract as given below. This is really taking a long time to run. Any suggestions as to how I can improve the performance?
    SELECT BELNR
           BUZEI
           BSCHL
           SHKZG
           PRCTR
           KOSTL
           HKONT
           DMBTR
           WRBTR
           SGTXT
        FROM  BSEG
        INTO  TABLE IBSEG
        FOR ALL entries in IBKPF
        WHERE BELNR = IBKPF-BELNR
        AND HKONT in gl_acct.

    Here is a program that I wrote for extracting
    data from BSEG. There was a part which had
    some "summarized extract", which I have not posted.
    REPORT   zbseg_extract
             LINE-SIZE 100
             LINE-COUNT 65
             NO STANDARD PAGE HEADING.
    TYPE-POOLS : sscr.                     
    TYPES : BEGIN OF ty_bkpf,
             bukrs      TYPE bkpf-bukrs,         "COMPANY CODE(4)
             belnr      TYPE bkpf-belnr,         "DOCUMENT NUMBER(10)
             gjahr      TYPE bkpf-gjahr,         "FISCAL YEAR(4)
             blart      TYPE bkpf-blart,         "DOC TYPE(2)
             bldat      TYPE bkpf-bldat,         "DOC DATE(10)
             budat      TYPE bkpf-budat,         "POSTING DATE(10)
             monat      TYPE bkpf-monat,                        "PERIOD(2)
             usnam      TYPE bkpf-usnam,         "USER NAME(12)
             tcode      TYPE bkpf-tcode,                        "TCODE(20)
             xblnr      TYPE bkpf-xblnr,         "REF DOC #(16)
             stjah      TYPE bkpf-stjah,         "REVERSE DOC FICAL YR(4)
             bktxt      TYPE bkpf-bktxt,         "DOC HEADER TEXT(25)
             waers      TYPE bkpf-waers,         "CURRENCY KEY(5)
             kursf      TYPE bkpf-kursf,         "EXCHG RATE(12)
             bstat      TYPE bkpf-bstat,         "DOC STATUS(1)
            END OF ty_bkpf.
    TYPES : BEGIN OF ty_bseg,
             bukrs      TYPE bkpf-bukrs,         "COMPANY CODE
             belnr      TYPE bkpf-belnr,         "DOCUMENT NUMBER
             gjahr      TYPE bkpf-gjahr,         "FISCAL YEAR
             buzei      TYPE bseg-buzei,         "FI LINE ITEM(3)
             augdt      TYPE bseg-augdt,         "CLEARING DATE(10)
             augcp      TYPE bseg-augcp,         "CLEARING ENTRY DATE(10)
             augbl      TYPE bseg-augbl,         "DOC # OF CLEARING DOC(10)
             bschl      TYPE bseg-bschl,         "POSTING KEY(2)
             koart      TYPE bseg-koart,         "ACCOUNT TYPE(1)
             shkzg      TYPE bseg-shkzg,         "DR/CR INDIC(1)
             dmbtr      TYPE bseg-dmbtr,         "AMT IN LOCAL CURRENCY(16)
    *        sgtxt      TYPE bseg-sgtxt,         "ITEM TEXT(50)
             bewar      TYPE bseg-bewar,         "TRANSACTION TYPE(3)
             kostl      TYPE bseg-kostl,         "COST CENTER(10)
             saknr      TYPE bseg-saknr,         "G/L ACCOUNT NUMBER(10)
             hkont      TYPE bseg-hkont,         "GENERAL LEDGR ACCT(10)
            END OF ty_bseg.
    * Itab of file names
    TYPES: BEGIN OF ty_file,
            file LIKE rlgrap-filename,
           END OF ty_file.
    * Result of system command
    TYPES: BEGIN OF ty_result,
            line(132) TYPE c,
           END OF ty_result.
    TYPES: BEGIN OF ty_sum_bkpf,
             bukrs TYPE bkpf-bukrs, "Company Code
             belnr TYPE bkpf-belnr, "DOCUMENT NUMBER
             gjahr TYPE bkpf-gjahr, "Fiscal year
             blart TYPE bkpf-blart, "Document type
             monat TYPE bkpf-monat, "Period
           END OF ty_sum_bkpf,
           BEGIN OF ty_sum_bseg,
             bukrs TYPE bseg-bukrs, "COMPANY CODE
             belnr TYPE bseg-belnr, "DOCUMENT NUMBER
             gjahr TYPE bseg-gjahr, "FISCAL YEAR
             hkont TYPE bseg-hkont, "GENERAL LEDGR ACCT
             dmbtr TYPE bseg-dmbtr, "AMT IN LOCAL CURRENCY
           END OF ty_sum_bseg.
    DATA: t_bkpf TYPE TABLE OF ty_bkpf,
          t_bseg TYPE TABLE OF ty_bseg,
          t_file TYPE TABLE OF ty_file,
          t_result TYPE TABLE OF ty_result,
          t_sum_bkpf TYPE TABLE OF ty_sum_bkpf,
          t_sum_bseg TYPE TABLE OF ty_sum_bseg.
    DATA   wa_file LIKE LINE OF t_file.
    DATA   wa_result LIKE LINE OF t_result.
    DATA   w_cmd(132) TYPE c.  "unix command
    DATA   gv_current_file LIKE rlgrap-filename.
    FIELD-SYMBOLS: <bkpf> TYPE ty_bkpf,
                   <bseg> TYPE ty_bseg,
                   <bkpf_s> TYPE ty_sum_bkpf,
                   <bseg_s> TYPE ty_sum_bseg.
    DATA: gc_bkpf       TYPE cursor,
          wa_out(1000)  TYPE c,
          lv_belnr      LIKE bseg-belnr,
          lv_kursf(16)  TYPE c,
          lv_dmbtr(20)  TYPE c,
          w_monat       LIKE bkpf-monat,
          lv_dcpfm      LIKE usr01-dcpfm,  "Decimal point format
          w_bkpf_cnt(9) TYPE n,            "# of records from BKPF
          w_bseg_cnt(9) TYPE n,            "# of records from BSEG
          w_max         TYPE i VALUE 1000,
          gv_error(1)   TYPE c,
          w_current_size(9) TYPE n,
          gv_file_ct(8)    TYPE n VALUE '1',  "initial value of file suffix
          wa_bkpf       TYPE bkpf,                
          lv_flag.                                
    DATA : ls_restriction  TYPE sscr_restrict,
           ls_opt_list     TYPE sscr_opt_list,
           ls_***          TYPE sscr_***.
    CONSTANTS c_pipe(1)  TYPE c VALUE '|'.
    CONSTANTS: c_x(1)    TYPE c VALUE 'X',
               c_option(2)      VALUE 'EQ',
               c_sign(1)        VALUE 'I',
               c_yes(1)         VALUE '1',
               c_no(1)          VALUE '0',
               c_txt(4)  TYPE c VALUE '.TXT',
               c_gz(3)   TYPE c VALUE '.gz',
               c_selgrp(3)      VALUE 'SEL',
               c_pargrp(3)      VALUE 'PAR',
               c_cmd1(15) TYPE c VALUE 'gzip -v -S .gz',
               c_cmd2(8)  TYPE c VALUE '2>&1',
               c_noint(10)      VALUE 'NOINTERVLS',
               c_s(1)           VALUE 'S',
               c_name(7)        VALUE 'S_BLART',
               c_modgrp(3)      VALUE 'MOD'.
    SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-t03.
      PARAMETERS p_detail RADIOBUTTON GROUP rad USER-COMMAND rem.
      PARAMETERS p_sum    RADIOBUTTON GROUP rad.
    SELECTION-SCREEN END   OF BLOCK blk.
    SELECTION-SCREEN BEGIN OF BLOCK one WITH FRAME TITLE text-t01.
    PARAMETERS p_bukrs LIKE bkpf-bukrs OBLIGATORY default 'US15'.
    *  SELECT-OPTIONS
    *             s_belnr FOR  lv_belnr.
    PARAMETERS p_gjahr LIKE bkpf-gjahr OBLIGATORY default sy-datum(4).
    PARAMETERS p_monat LIKE bkpf-monat OBLIGATORY
                       MODIF ID par default sy-datum+4(2).
    SELECT-OPTIONS
               s_monat FOR w_monat
                       MODIF ID sel.
    SELECT-OPTIONS                          
               s_blart FOR wa_bkpf-blart    
               NO INTERVALS MODIF ID mod.  
    SELECTION-SCREEN SKIP.
    PARAMETERS p_file  LIKE rlgrap-filename OBLIGATORY
                       DEFAULT text-001.
    SELECTION-SCREEN END OF BLOCK one.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK two WITH FRAME TITLE text-t02.
    PARAMETERS p_size  TYPE i OBLIGATORY
                       DEFAULT w_max.
    PARAMETERS p_count TYPE i OBLIGATORY   "Count on the number of
                       DEFAULT '20000'.    "BSEG records per file
    PARAMETERS p_zip   TYPE c  AS CHECKBOX DEFAULT c_x.
    SELECTION-SCREEN END OF BLOCK two.
    INITIALIZATION.
      CLEAR w_bkpf_cnt.
      CLEAR w_bseg_cnt.
      CLEAR p_monat.
      REFRESH s_monat.
      REFRESH t_file.
    * Restrict the select-options S_BLART
      CLEAR ls_opt_list.
      ls_opt_list-name = c_noint.
      ls_opt_list-options-eq = c_x.
      APPEND ls_opt_list TO ls_restriction-opt_list_tab.
      CLEAR ls_***.
      ls_***-kind    = c_s.
      ls_***-name    = c_name.
      ls_***-sg_main = c_sign.
      ls_***-sg_addy = space.
      ls_***-op_main = c_noint.
      ls_***-op_addy = c_noint.
      APPEND ls_***    TO ls_restriction-***_tab.
      CLEAR ls_opt_list.
      CLEAR ls_***.
      CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
        EXPORTING
          restriction            = ls_restriction
        EXCEPTIONS
          too_late               = 1
          repeated               = 2
          selopt_without_options = 3
          selopt_without_signs   = 4
          invalid_sign           = 5
          empty_option_list      = 6
          invalid_kind           = 7
          repeated_kind_a        = 8
          OTHERS                 = 9.
    AT SELECTION-SCREEN.
      IF p_detail EQ c_x.
        if s_blart[] is initial.
          MESSAGE e257(F0) WITH text-013 text-014.
        endif.
      ELSEIF p_sum EQ c_x.
      ENDIF.
    START-OF-SELECTION.
      REFRESH t_bkpf.
      REFRESH t_sum_bkpf.           
      CLEAR   lv_dcpfm.
    * First file name
      CONCATENATE p_file gv_file_ct c_txt INTO gv_current_file.
      OPEN DATASET gv_current_file IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
      IF sy-subrc NE 0.
        gv_error = c_x.
        FORMAT COLOR COL_NEGATIVE.
        WRITE : text-002, gv_current_file.
        STOP.
      ELSE.
        CLEAR wa_out.
        CONCATENATE text-010 gv_current_file
                    INTO wa_out SEPARATED BY space.
        TRANSFER wa_out TO gv_current_file LENGTH 1000.
        CLEAR wa_out.
        IF p_detail EQ c_x.
          CONCATENATE text-h01 text-h02 text-h03
                 INTO wa_out SEPARATED BY c_pipe.
        else.
          MOVE text-s01 TO wa_out.
        endif.
        TRANSFER wa_out TO gv_current_file LENGTH 1000.
      ENDIF.
      IF sy-sysid = c_yrp.
        REFRESH s_monat.
        s_monat-sign = c_sign.
        s_monat-option = c_option.
        s_monat-low = p_monat.
        APPEND s_monat.
        CLEAR: p_monat, s_monat.
      ENDIF.
      IF p_detail EQ c_x.
        perform do_detailed_extract.
      ELSEIF p_sum EQ c_x.
        perform do_summarized_extract.
      endif.
      CLOSE DATASET gv_current_file.
      IF NOT p_zip IS INITIAL.
    * zip the file just created.
        CLEAR w_cmd.
        REFRESH t_result.
        CONCATENATE c_cmd1 gv_current_file c_cmd2
               INTO w_cmd SEPARATED BY space.
        CALL 'SYSTEM' ID 'COMMAND' FIELD w_cmd
        ID 'TAB' FIELD t_result[].
        WRITE : /1 w_cmd COLOR COL_POSITIVE INTENSIFIED OFF.
        LOOP AT t_result INTO wa_result.
          WRITE /5 wa_result
             COLOR COL_POSITIVE INTENSIFIED ON.
        ENDLOOP.
        CONCATENATE gv_current_file c_gz INTO gv_current_file.
      ENDIF.
    * Retain last file name
      CLEAR wa_file.
      MOVE gv_current_file TO wa_file.
      APPEND wa_file TO t_file.
      CLEAR wa_file.
    END-OF-SELECTION.
      IF gv_error IS INITIAL.
    *   Write out the selection screen parameters
        WRITE:/ text-004 COLOR COL_HEADING,
                p_bukrs  COLOR COL_TOTAL INTENSIFIED OFF,
              / text-005 COLOR COL_HEADING,
                p_gjahr  COLOR COL_TOTAL INTENSIFIED OFF,
              / text-011 COLOR COL_HEADING,
                s_monat-low COLOR COL_TOTAL INTENSIFIED OFF,
              / text-006 COLOR COL_HEADING.
    *   Display all files generated
        CLEAR wa_file.
        LOOP AT t_file INTO wa_file.
          IF sy-tabix = 1.
            WRITE: 15 wa_file COLOR COL_TOTAL INTENSIFIED OFF.
          ELSE.
            WRITE: /15 wa_file COLOR COL_TOTAL INTENSIFIED OFF.
          ENDIF.
          CLEAR wa_file.
        ENDLOOP.
    *   # of records processed from BKPF, BSEG
        SKIP 2.
        WRITE: / text-007,
                    w_bkpf_cnt COLOR COL_POSITIVE INTENSIFIED OFF,
               / text-008,
                    w_bseg_cnt COLOR COL_POSITIVE INTENSIFIED OFF.
      ELSE.
        WRITE text-009 COLOR COL_NEGATIVE.
      ENDIF.
    *&      Form  do_detailed_extract
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM do_detailed_extract .
    *                Detailed Extract                         *
      OPEN CURSOR gc_bkpf FOR
           SELECT bukrs
                  belnr
                  gjahr
                  blart
                  bldat
                  budat
                  monat
                  usnam
                  tcode
                  xblnr
                  stjah
                  bktxt
                  waers
                  kursf
                  bstat
             FROM bkpf
            WHERE bukrs EQ p_bukrs
    *       AND belnr IN s_belnr
              AND gjahr EQ p_gjahr
              AND blart IN s_blart            
              AND monat IN s_monat.
      CLEAR w_max.
      w_max  = p_size.
      CLEAR w_current_size.
      DO.
        FETCH NEXT   CURSOR gc_bkpf
              INTO   TABLE  t_bkpf
             PACKAGE SIZE   w_max.
        IF sy-subrc NE 0.
          CLOSE CURSOR gc_bkpf.
          EXIT.
        ELSEIF sy-subrc EQ 0.
          REFRESH t_bseg.
          IF NOT t_bkpf[] IS INITIAL.
            SELECT bukrs
                   belnr
                   gjahr
                   buzei
                   augdt
                   augcp
                   augbl
                   bschl
                   koart
                   shkzg
                   dmbtr
    *              sgtxt
                   bewar
                   kostl
                   saknr
                   hkont
              FROM bseg
              INTO TABLE t_bseg
               FOR ALL ENTRIES IN t_bkpf
             WHERE bukrs EQ t_bkpf-bukrs
               AND belnr EQ t_bkpf-belnr
               AND gjahr EQ t_bkpf-gjahr.
            IF sy-subrc EQ 0.
    *       PREPARE THE EXTRACT
              LOOP AT t_bkpf ASSIGNING <bkpf>.
                w_bkpf_cnt = w_bkpf_cnt + 1.
                LOOP AT t_bseg ASSIGNING <bseg>
                              WHERE bukrs EQ <bkpf>-bukrs
                                AND belnr EQ <bkpf>-belnr
                                AND gjahr EQ <bkpf>-gjahr.
                  CLEAR wa_out.
                  WRITE <bkpf>-kursf TO lv_kursf.
                  WRITE <bseg>-dmbtr TO lv_dmbtr.
                  CONCATENATE <bkpf>-bukrs
                              <bkpf>-belnr
                              <bkpf>-gjahr
                              <bseg>-buzei
                              <bkpf>-blart
                              <bkpf>-bldat
                              <bkpf>-budat
                              <bkpf>-monat
                              <bkpf>-usnam
                              <bkpf>-tcode
                              <bkpf>-xblnr
                              <bkpf>-stjah
                              <bkpf>-bktxt
                              <bkpf>-waers
                              lv_kursf
                              <bkpf>-bstat
                              <bseg>-augdt
                              <bseg>-augcp
                              <bseg>-augbl
                              <bseg>-bschl
                              <bseg>-koart
                              <bseg>-shkzg
                              lv_dmbtr
    *                         <bseg>-sgtxt
                              <bseg>-bewar
                              <bseg>-kostl
                              <bseg>-saknr
                              <bseg>-hkont
                         INTO wa_out SEPARATED BY c_pipe.
                  REPLACE ',' IN wa_out WITH ''.
                  TRANSFER wa_out TO gv_current_file LENGTH 1000.
                  w_bseg_cnt = w_bseg_cnt + 1.
    *           Logic to split files as per Count on sel. screen
                  w_current_size = w_current_size + 1.
                  IF w_current_size EQ p_count.
                    CLEAR w_current_size.
                    CLEAR wa_out.
    *             Denote end of current file
                    CONCATENATE text-003 gv_file_ct INTO wa_out.
                    TRANSFER wa_out TO gv_current_file.
                    CLOSE DATASET gv_current_file.
                    IF NOT p_zip IS INITIAL.
    *             zip the file just closed.
                      CLEAR w_cmd.
                      REFRESH t_result.
                      CONCATENATE c_cmd1 gv_current_file c_cmd2
                             INTO w_cmd SEPARATED BY space.
                      CALL 'SYSTEM' ID 'COMMAND' FIELD w_cmd
                      ID 'TAB' FIELD t_result[].
                      WRITE /1 w_cmd  COLOR COL_POSITIVE INTENSIFIED OFF.
                      LOOP AT t_result INTO wa_result.
                        WRITE /5 wa_result
                           COLOR COL_POSITIVE INTENSIFIED ON.
                      ENDLOOP.
                    CONCATENATE gv_current_file c_gz INTO gv_current_file.
                    ENDIF.
    *             Retain name of current file
                    CLEAR wa_file.
                    MOVE gv_current_file TO wa_file.
                    APPEND wa_file TO t_file.
                    CLEAR wa_file.
                    CLEAR: wa_out, gv_current_file.
                   gv_file_ct = gv_file_ct + 1.    "increment file counter
                    CONDENSE gv_file_ct.
                    CONCATENATE p_file gv_file_ct c_txt
                           INTO gv_current_file.
    *             Open next file
                    OPEN DATASET gv_current_file IN TEXT MODE
                                        FOR OUTPUT ENCODING DEFAULT.
                    IF sy-subrc NE 0.
                      gv_error = c_x.
                      FORMAT COLOR COL_NEGATIVE.
                      WRITE : text-002, gv_current_file.
                      STOP.
                    ELSE.
                      CLEAR wa_out.
                      CONCATENATE text-010 gv_current_file
                                  INTO wa_out SEPARATED BY space.
                      TRANSFER wa_out TO gv_current_file LENGTH 1000.
                      CLEAR wa_out.
                      CONCATENATE text-h01 text-h02 text-h03
                                  INTO wa_out SEPARATED BY c_pipe.
                      TRANSFER wa_out TO gv_current_file LENGTH 1000.
                    ENDIF.
    *             End of file split logic
                  ENDIF.
                ENDLOOP.
                DELETE t_bseg WHERE bukrs EQ <bkpf>-bukrs
                                AND belnr EQ <bkpf>-belnr
                                AND gjahr EQ <bkpf>-gjahr.
              ENDLOOP.
              CLEAR wa_out.
              CONCATENATE text-003 gv_file_ct INTO wa_out.
              TRANSFER wa_out TO gv_current_file.
            ENDIF. "END OF SY-SUBRC CHECK
          ENDIF.
          REFRESH: t_bkpf,  t_bseg.
        ENDIF. " ELSEIF SY-SUBRC EQ 0.
      ENDDO.   " DO
    ENDFORM.                    " do_detailed_extract

  • Performance issue with BSEG

    Hi,
              I am having serious performance issue due to BSEG table .I am having a change request in which I have to solve the performance issue with regard to BSEG. The situation was that previously they had used select * on both BKPF and BSEG. I removed the select * and selected only those fields which are required as shown below. I also tried using cursors. But the problem is happening in the TEST server where BSEG is having more than 1 crore entries. I have gone through some threads but still not able to understand how to solve this problem. Please help
    select bukrs belnr gjahr bldat bstat from bkpf into table T_BKPF_p
                                                    WHERE BUKRS IN sd_bukrs AND
                                                    BLDAT < s_bldat-low
                                                    and  BSTAT = ' ' .
    select bukrs belnr gjahr shkzg dmbtr hkont from bseg into table T_BSEG_C
                                            FOR ALL ENTRIES IN t_BKPF_p
                                            WHERE BUKRS = T_bkpf_p-bukrs
                                            AND   BELNR = T_bkpf_p-belnr
                                            AND   GJAHR = T_bkpf_p-gjahr
                                            AND   HKONT = SKB1-SAKNR.

    Hi Kunal,
    Here is my take on your issue.
    In your select statement on BKPF you are selecting every BKPF record for a specified company code and blank document status that was created before a specified date. If your company has implemented SAP 10 years ago, and your user enters todays date and leaves the company code field blank you will effectively be retrieving almost all the records from BKPF (excluding the ones created today or those with non-blank document status). This would effectively be a huge amount of data. After that you are looking for the corresponding BSEG records for all the records that you have selected in BKPF.
    My question to you is why do you need to look at all the records before a given date? Why not ask the user to enter a smaller date range and make the document date and the company code a mandatory entry? You do not have to look at 10 years worth of data especially if you are running this online (as opposed to in the background).
    Your BSEG select looks correct. There is very little that you can do except for adding BUZEI to the field list. If you use for all entries and do not include the entire primary key you could lose data.
    TABLES: bkpf,
            skb1.
    SELECT-OPTIONS: s_bldat  FOR bkpf-bldat OBLIGATORY,
                    sd_bukrs FOR bkpf-bukrs OBLIGATORY.
    TYPES: BEGIN OF ty_bkpf,
            bukrs TYPE bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            gjahr TYPE bkpf-gjahr,
            bldat TYPE bkpf-bldat,
            bstat TYPE bkpf-bstat,
          END OF ty_bkpf,
          BEGIN OF ty_bseg,
            bukrs TYPE bseg-bukrs,
            belnr TYPE bseg-belnr,
            gjahr TYPE bseg-gjahr,
            buzei TYPE bseg-buzei,
            shkzg TYPE bseg-shkzg,
            dmbtr TYPE bseg-dmbtr,
            hkont TYPE bseg-hkont,
          END OF ty_bseg.
    DATA: t_bkpf_p TYPE TABLE OF ty_bkpf,
          t_bseg_c TYPE TABLE OF ty_bseg.
    SELECT bukrs
           belnr
           gjahr
           bldat
           bstat
    FROM bkpf
    INTO TABLE t_bkpf_p
    WHERE bukrs IN sd_bukrs
    AND   bldat IN s_bldat
    AND   bstat EQ space .
    IF NOT t_bkpf_p[] IS INITIAL.
      SELECT bukrs
             belnr
             gjahr
             buzei
             shkzg
             dmbtr
             hkont
        FROM bseg
        INTO TABLE t_bseg_c
        FOR ALL ENTRIES IN t_bkpf_p
        WHERE bukrs EQ t_bkpf_p-bukrs
        AND   belnr EQ t_bkpf_p-belnr
        AND   gjahr EQ t_bkpf_p-gjahr
        AND   hkont EQ skb1-saknr.
    ENDIF.

  • Difference between BSEG amount field and FAGLFLEXA/FAGLFLEXT Amount fields.

    Hi experts,
       We have a newly SAP instance with the New GL activated. However, when i compared between BSEG and the FAGLFLEXA/FAGLFLEXT tables, I found a difference in the length of the transaction amounts.
    BSEG
    DMBTR     DMBTR     CURR     13     2     Amount in Local Currency
    WRBTR     WRBTR     CURR     13     2     Amount in Document Currency
    FAGLFLEXA/FAGLFLEXT
    TSL     VTCUR12     CURR     23     2     Value in Transaction Currency
    HSL     VLCUR12     CURR     23     2     Value in Local Currency
    KSL     VGCUR12     CURR     23     2     Value in Group Currency
    OSL     VOCUR12     CURR     23     2     Value in Another Currency
    Is there a reason for this difference? and any config that needs to be perform to synchronise the difference?
    Thank you in advance.

    Hi Jason,
    Please run report TFC_COMPARE_VZ in SE38/SA38 and compare the difference.  If there is any difference ONLY SAP can correct this.  Should you notice any difference, please raise an OSS.
    Hope this helps.
    Vikas.

  • TO get BSEG Entries

    Hello,
    I need to get fields from KOART ALTKT XBILK GVTYP from BSEG based on BKPF entries. Is there any other table that I can get these details from Because its taking a lot of time to get the entries from BSEG. Please suggest.
    Thanks
    Vik

    Please see this   Query for getting data from the   BSEG  Based  on the BKPF  internal table data  ... it was  Performed  tuned   already ..
    Code to demonstrate select command
    *Code to demonstrate select into internal table command
    TYPES: BEGIN OF t_bkpf,
    *  include structure bkpf.
      bukrs LIKE bkpf-bukrs,
      belnr LIKE bkpf-belnr,
      gjahr LIKE bkpf-gjahr,
      bldat LIKE bkpf-bldat,
      monat LIKE bkpf-monat,
      budat LIKE bkpf-budat,
      xblnr LIKE bkpf-xblnr,
      awtyp LIKE bkpf-awtyp,
      awkey LIKE bkpf-awkey,
    END OF t_bkpf.
    DATA: it_bkpf TYPE STANDARD TABLE OF t_bkpf INITIAL SIZE 0,
          wa_bkpf TYPE t_bkpf.
    TYPES: BEGIN OF t_bseg,
    *include structure bseg.
      bukrs     LIKE bseg-bukrs,
      belnr     LIKE bseg-belnr,
      gjahr     LIKE bseg-gjahr,
      buzei     LIKE bseg-buzei,
      mwskz     LIKE bseg-mwskz,         "Tax code
      umsks     LIKE bseg-umsks,         "Special G/L transaction type
      prctr     LIKE bseg-prctr,         "Profit Centre
      hkont     LIKE bseg-hkont,         "G/L account
      xauto     LIKE bseg-xauto,
      koart     LIKE bseg-koart,
      dmbtr     LIKE bseg-dmbtr,
      mwart     LIKE bseg-mwart,
      hwbas     LIKE bseg-hwbas,
      aufnr     LIKE bseg-aufnr,
      projk     LIKE bseg-projk,
      shkzg     LIKE bseg-shkzg,
      kokrs     LIKE bseg-kokrs,
    END OF t_bseg.
    DATA: it_bseg TYPE STANDARD TABLE OF t_bseg INITIAL SIZE 0,
          wa_bseg TYPE t_bseg.
    *Select FOR ALL ENTRIES command
    SELECT bukrs belnr gjahr bldat monat budat xblnr awtyp awkey
      UP TO 100 ROWS
      FROM bkpf
      INTO TABLE it_bkpf.
    IF sy-subrc EQ 0.
    * The FOR ALL ENTRIES comand only retrieves data which matches
    * entries within a particular internal table.
      SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
             dmbtr mwart hwbas aufnr projk shkzg kokrs
        FROM bseg
        INTO TABLE it_bseg
        FOR ALL ENTRIES IN it_bkpf
        WHERE bukrs EQ it_bkpf-bukrs AND
              belnr EQ it_bkpf-belnr AND
              gjahr EQ it_bkpf-gjahr.
    ENDIF.
    reward  points if it is usefull.....
    Girish

  • GL a/c opening and closing balances

    Hi All,
    Below is my selection screen:
    select-options : s_bukrs for bkpf-bukrs obligatory.
    parameter      :  p_gjahr like bkpf-gjahr obligatory.
    select-options : s_budat for bkpf-budat,
                           s_monat for bkpf-monat,
                           s_hkont for bseg-hkont.
    I am displaying the data from tables BKPF, BSEG, KNA1-NAME1, LFA1-NAME1, SKAT-TXT50. I have to fetch Opening and Closing balances for GL a/c's. I am fetching data from table GLT0-HSLVT(opening balance). But unable to get the data for closing balance based on the period given on the selection screen. In my report I am looping on table it_bseg to populate the final internal table. How to get the closing balances's total based on the input.
    Please help me.
    Thanks,
    Haritha

    Hello Haritha,
                        Try this code by building a function module. This would cover both opening and closing balance.
    FUNCTION ZGL_OPENING_CLOSING_BAL_KEYDAT.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(COMP) TYPE  BKPF-BUKRS
    *"     REFERENCE(DATE) TYPE  BKPF-BUDAT
    *"     REFERENCE(ACCT) TYPE  BSEG-HKONT
    *"  EXPORTING
    *"     REFERENCE(BALANCE) TYPE  BSEG-DMBTR
    DATA : COMPANYCODEID  LIKE  BAPI0002_2-COMP_CODE     ,
    POSTING_DATE   LIKE  BAPI0002_4-POSTING_DATE  ,
    FISCAL_YEAR    LIKE  BAPI0002_4-FISCAL_YEAR   ,
    FISCAL_PERIOD  LIKE  BAPI0002_4-FISCAL_PERIOD .
    DATA : ACCOUNT_BALANCES  TYPE TABLE OF BAPI3006_4 WITH HEADER LINE.
    DATA : BAL TYPE BSEG-DMBTR.
    DATA : IV_DATE  TYPE  D   ,
    EV_MONTH_BEGIN_DATE  TYPE  D,
    EV_MONTH_END_DATE  TYPE  D .
    DATA : COMPANYCODE  LIKE  BAPI3006_0-COMP_CODE,
    GLACCT  LIKE  BAPI3006_0-GL_ACCOUNT ,
    FISCALYEAR  LIKE  BAPI3006_4-FISC_YEAR,
    CURRENCYTYPE  LIKE  BAPI3006_5-CURR_TYPE VALUE 10.
    DATA : IT_BKPF TYPE TABLE OF BKPF WITH HEADER LINE.
    DATA : BEGIN OF IT_BSEG OCCURS 0,
    BELNR TYPE BSEG-BELNR,
    GJAHR TYPE BSEG-GJAHR,
    SHKZG TYPE BSEG-SHKZG  ,
    DMBTR TYPE BSEG-DMBTR,
    END OF IT_BSEG.
    COMPANYCODEID = COMP.
    POSTING_DATE = DATE.
    IV_DATE  = DATE.
    CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
    EXPORTING
    IV_DATE             = IV_DATE
    IMPORTING
    EV_MONTH_BEGIN_DATE = EV_MONTH_BEGIN_DATE
    EV_MONTH_END_DATE   = EV_MONTH_END_DATE.
    CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
    EXPORTING
    COMPANYCODEID = COMPANYCODEID
    POSTING_DATE  = POSTING_DATE
    IMPORTING
    FISCAL_YEAR   = FISCAL_YEAR
    FISCAL_PERIOD = FISCAL_PERIOD.
    IF EV_MONTH_END_DATE NE DATE.
    IF FISCAL_PERIOD = 1.
    FISCAL_PERIOD = 12              .
    FISCAL_YEAR = FISCAL_YEAR - 1  .
    ELSE.
    FISCAL_PERIOD =  FISCAL_PERIOD - 1.
    ENDIF.
    ENDIF.
    COMPANYCODE  =  COMP.
    GLACCT  = ACCT.
    FISCALYEAR  = FISCAL_YEAR.
    CALL FUNCTION 'BAPI_GL_ACC_GETPERIODBALANCES'
    EXPORTING
    COMPANYCODE      = COMPANYCODE
    GLACCT           = GLACCT
    FISCALYEAR       = FISCALYEAR
    CURRENCYTYPE     = CURRENCYTYPE
    TABLES
    ACCOUNT_BALANCES = ACCOUNT_BALANCES.
    READ TABLE ACCOUNT_BALANCES  WITH KEY FISC_YEAR = FISCALYEAR FIS_PERIOD = FISCAL_PERIOD.
    IF SY-SUBRC = 0.
    BALANCE =  ACCOUNT_BALANCES-BALANCE.
    ENDIF.
    IF EV_MONTH_END_DATE NE DATE.
    SELECT * FROM BKPF INTO TABLE IT_BKPF WHERE BUKRS = COMP AND BUDAT >= EV_MONTH_BEGIN_DATE
    AND BUDAT <= DATE.
    IF IT_BKPF[] IS NOT INITIAL.
    SELECT BELNR GJAHR SHKZG DMBTR
    FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
    FOR ALL ENTRIES IN IT_BKPF
    WHERE BELNR = IT_BKPF-BELNR AND GJAHR = IT_BKPF-GJAHR AND HKONT = ACCT AND BUKRS = COMP.
    ENDIF.
    LOOP AT IT_BSEG.
    IF IT_BSEG-SHKZG = 'H'.
    BAL = BAL - IT_BSEG-DMBTR.
    ELSEIF IT_BSEG-SHKZG = 'S'.
    BAL = BAL + IT_BSEG-DMBTR.
    ENDIF.
    ENDLOOP.
    BALANCE = BALANCE + BAL.
    ENDIF.
    ENDFUNCTION.
    Raghav

  • All Records not showing in Report

    Hi All,
    U just solved my amount problem....
    But now i gives my earlier problem again, means displaying only 1 rows, when i executing for 1 month in selection criteria...and amount showing right total of all records...
    example---
    Document No......Doc. date.......P.date........Vendor..........Name.........Tax Code.........Base Amt....... Tax Amt........Ven. Ref.........P. Doc...
    5500000022 .......22.04.2008 ...28.04.2008....1011............XXXXXXX........NB..................500,000............25,000.............A-102.......4500034463
    This Document No. is my 1st Document no. (5500000022)..
    Here Base Amount (500,000) & Tax Amount (25,000) is the total of more than 100 records total but showing in Single Row...(This rows showing the only 1st record)...
    Here what is the problem in my program...where i m wrong in clearing the itab or itab2...
    please let me know...
    I m again sending my corrected Program...
    Code-----
    REPORT  zak_form_c4 NO STANDARD PAGE HEADING LINE-SIZE 125  .
    TABLES : bsik,bkpf,bseg,j_1imovend,lfa1,t001,t005u,bsak,ekko,bsis, ekkn, anla, anlc.
    TYPE-POOLS : slis.
    DATA : BEGIN OF itab OCCURS 0,
           hkont LIKE bseg-hkont, "Gl account
           mwskz LIKE bseg-mwskz, "Tax Code
           dmbtr LIKE bseg-dmbtr, "Amount
           buzei LIKE bseg-buzei, "line item
           ebeln LIKE bseg-ebeln, "Purchasing Document
           ebelp LIKE bseg-ebelp, "line item nbr
           hwbas LIKE bseg-hwbas, "Base amount
           shkzg LIKE bseg-shkzg, "Debit/Credit code
           belnr LIKE bsik-belnr, "Document number
           gjahr LIKE bsik-gjahr, "Fiscal Year
           bldat LIKE bsik-bldat, "Document Date
           budat LIKE bsik-budat, "Posting Date
           lifnr LIKE bsik-lifnr, "Vendor number
           xblnr LIKE mkpf-xblnr, "Ven invoice nbr
           name1(25),                                           "name1
           ort01 LIKE lfa1-ort01,   "City
           j_1ilstno LIKE j_1imovend-j_1ilstno,  " Vendor tin nbr
           regio LIKE lfa1-regio, "Region Code
           bezei LIKE t005u-bezei, "Region desc
           dmbtr1 LIKE bseg-dmbtr, "Amount
           hwbas1 LIKE bseg-hwbas, "Base amount
    END OF itab.
    DATA : BEGIN OF itab3 OCCURS 0.
            INCLUDE STRUCTURE itab.
    DATA:END OF itab3.
    DATA : wa LIKE LINE OF itab.
    DATA : BEGIN OF itab1 OCCURS 0.
            INCLUDE STRUCTURE itab.
    DATA:END OF itab1.
    DATA : BEGIN OF itab2 OCCURS 0.
            INCLUDE STRUCTURE itab.
    DATA:END OF itab2.
    ***********************************Purchase order history
    DATA:   BEGIN OF bet OCCURS 50.
            INCLUDE STRUCTURE ekbe.
    DATA:   END OF bet.
    DATA:   BEGIN OF bzt OCCURS 50.
            INCLUDE STRUCTURE ekbz.
    DATA:   END OF bzt.
    DATA:   BEGIN OF betz OCCURS 50.
            INCLUDE STRUCTURE ekbez.
    DATA:   END OF betz.
    DATA:   BEGIN OF bets OCCURS 50.
            INCLUDE STRUCTURE ekbes.
    DATA:   END OF bets.
    DATA:   BEGIN OF xekbnk OCCURS 10.
            INCLUDE STRUCTURE ekbnk.
    DATA:   END OF xekbnk.
    DATA : w_container TYPE scrfname VALUE 'CL_GRID',
           w_cprog TYPE lvc_s_layo,
           g_repid LIKE sy-repid,
           w_save TYPE c,
           w_exit TYPE c,
           cl_grid TYPE REF TO cl_gui_alv_grid,
           cl_custom_container TYPE REF TO cl_gui_custom_container,
           it_fld_catalog TYPE slis_t_fieldcat_alv,
           wa_fld_catalog TYPE slis_t_fieldcat_alv WITH HEADER LINE ,
           layout TYPE slis_layout_alv,
           col_pos  LIKE sy-cucol ,
           alvfc TYPE slis_t_fieldcat_alv.
    SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS       :  hkont LIKE bseg-hkont OBLIGATORY. "GL Code
    *SELECT-OPTIONS   : hkont FOR bseg-hkont .
    SELECT-OPTIONS   : belnr FOR bsik-belnr .
    SELECT-OPTIONS   : gjahr FOR bsik-gjahr .
    SELECT-OPTIONS   : bldat FOR bsik-bldat.
    SELECT-OPTIONS   : budat FOR bsik-budat.
    SELECTION-SCREEN : END OF BLOCK b1.
    PERFORM fill_catalog1 USING:
    'HKONT'    'ITAB2'    'G/L Code' ,
    'BELNR'    'ITAB2'    'Document Number',
    'GJAHR'    'ITAB2'    'Year',
    'BLDAT'    'ITAB2'    'Doc. date' ,
    'BUDAT'    'ITAB2'    'Posting Date',
    'LIFNR'    'ITAB2'    'Vendor',
    'NAME1'    'ITAB2'    'Name',
    'EBELN'    'ITAB2'    'Purchasing Document',
    'MWSKZ'    'ITAB2'    'Tax Code',
    'HWBAS'    'ITAB2'    'Base Amount',
    'DMBTR'    'ITAB2'    'Tax Amount',
    'XBLNR'    'ITAB2'    'Vendor Inv. No.'.
    SELECT DISTINCT hkont belnr gjahr bldat budat INTO CORRESPONDING FIELDS OF TABLE itab
                      FROM bsis
                      WHERE bukrs = '1000'
                      AND hkont = hkont
                      AND belnr IN belnr
                      AND gjahr IN gjahr
                      AND bldat IN bldat
                      AND budat IN budat.
    SORT itab BY belnr.
    LOOP AT itab.
      SELECT * FROM bseg WHERE belnr = itab-belnr  AND gjahr = itab-gjahr
                                                   AND bukrs = '1000'
                                                   AND ( ebeln <> ' ' OR hkont = hkont ).
        IF sy-subrc = 0.
          itab-buzei = bseg-buzei.
          itab-mwskz = bseg-mwskz.
          IF bseg-ebeln <> ' '.
            itab-ebeln = bseg-ebeln.
            itab-ebelp = bseg-ebelp.
            MODIFY itab.
          ENDIF.
          IF bseg-hkont = hkont.
            itab-shkzg = bseg-shkzg.
            itab-hwbas = bseg-hwbas.
            itab-dmbtr = bseg-dmbtr.
            IF itab-shkzg = 'H'.
              itab-dmbtr = itab-dmbtr * ( -1 ).
            ENDIF.
            MOVE-CORRESPONDING itab TO itab2.
            APPEND itab2.
          ENDIF.
        ENDIF.
      ENDSELECT.
    ENDLOOP.
    LOOP AT itab2.
      SELECT SINGLE * FROM ekko WHERE ebeln = itab2-ebeln.
      IF sy-subrc = 0.
        itab2-lifnr = ekko-lifnr.
      ENDIF.
      CALL FUNCTION 'ME_READ_HISTORY'
        EXPORTING
          ebeln  = itab2-ebeln
          ebelp  = itab2-ebelp
          webre  = 'X'
        TABLES
          xekbe  = bet
          xekbz  = bzt
          xekbes = bets
          xekbez = betz
          xekbnk = xekbnk.
      itab2-xblnr = bet-xblnr.
      SELECT SINGLE * FROM lfa1 WHERE lifnr = itab2-lifnr.
      itab2-name1 = lfa1-name1.
      itab2-ort01 = lfa1-ort01.
      itab2-regio = lfa1-regio.
      SELECT SINGLE * FROM t005u WHERE bland = itab2-regio
                                  AND spras = 'EN'
                                  AND land1 = 'IN'.
      itab2-bezei = t005u-bezei.
      SELECT SINGLE * FROM  j_1imovend WHERE lifnr = itab2-lifnr.
      IF sy-subrc = 0 .
        itab2-j_1ilstno = j_1imovend-j_1ilstno.  " Vendor tin nbr
      ENDIF.
      MODIFY itab2.
    ENDLOOP.
    SORT itab2 BY belnr.
    LOOP AT itab2.
      DATA : cnt TYPE i,
             cnt1 TYPE i.
      itab1-dmbtr1 = itab1-dmbtr1 + itab2-dmbtr.
      itab1-hwbas1 = itab1-hwbas1 + itab2-hwbas.
      AT END OF belnr.
        cnt = sy-tabix.
        cnt1 = cnt - 1.
        DO cnt1 TIMES.
          DELETE itab2.
        ENDDO.
        CLEAR itab2.
        itab2-dmbtr = itab1-dmbtr1.
        itab2-hwbas = itab1-hwbas1.
        MODIFY itab2 TRANSPORTING dmbtr hwbas .
      ENDAT.
    ENDLOOP.
    layout-zebra = 'X' .
    layout-colwidth_optimize(1) = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program = 'ZAK_FORM_C4'
        is_layout          = layout
        it_fieldcat        = it_fld_catalog
        i_default          = 'X'
        i_save             = 'A'
      TABLES
        t_outtab           = itab2
      EXCEPTIONS
        program_error      = 1
        OTHERS             = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *&      Form  FILL_CATALOG1
          text
         -->P_FIELDNAME  text
         -->P_REF_TABLE  text
         -->P_SCRTEXT    text
    FORM fill_catalog1  USING   p_fieldname TYPE any
                                p_ref_table TYPE any
                                p_scrtext   TYPE any.
      CLEAR : wa_fld_catalog.
      wa_fld_catalog-fieldname  = p_fieldname.
      wa_fld_catalog-tabname    = p_ref_table.
      wa_fld_catalog-seltext_s  = p_scrtext.
      wa_fld_catalog-seltext_m  = p_scrtext.
      wa_fld_catalog-seltext_l  = p_scrtext.
    wa_fld_catalog-datatype = 'CURR'.
      wa_fld_catalog-outputlen = 20.
      APPEND wa_fld_catalog TO it_fld_catalog.
    ENDFORM.                    " fill_catalog1.
    Plz let me know...
    Thanks

    Hello Prince,
    I just want that my code will show single time records..and Sum of base Value and Tax amount...
    You want to summarise Base Value and Tax amount per document, right
    I am making a very very small modification to the declaration of ITAB:
    DATA :
    BEGIN OF itab OCCURS 0,
    belnr LIKE bsik-belnr, "Document number "--> Add here
    buzei LIKE bseg-buzei, "line item "--> Add here
    hkont LIKE bseg-hkont, "Gl account
    mwskz LIKE bseg-mwskz, "Tax Code
    dmbtr LIKE bseg-dmbtr, "Amount
    " buzei LIKE bseg-buzei, "line item "--> Delete Here
    ebeln LIKE bseg-ebeln, "Purchasing Document
    ebelp LIKE bseg-ebelp, "line item nbr
    hwbas LIKE bseg-hwbas, "Base amount
    shkzg LIKE bseg-shkzg, "Debit/Credit code
    " belnr LIKE bsik-belnr, "Document number "--> Delete here
    gjahr LIKE bsik-gjahr, "Fiscal Year
    bldat LIKE bsik-bldat, "Document Date
    budat LIKE bsik-budat, "Posting Date
    lifnr LIKE bsik-lifnr, "Vendor number
    xblnr LIKE mkpf-xblnr, "Ven invoice nbr
    name1(25), "name1
    ort01 LIKE lfa1-ort01, "City
    j_1ilstno LIKE j_1imovend-j_1ilstno, " Vendor tin nbr
    regio LIKE lfa1-regio, "Region Code
    bezei LIKE t005u-bezei, "Region desc
    dmbtr1 LIKE bseg-dmbtr, "Amount
    hwbas1 LIKE bseg-hwbas, "Base amount
    END OF itab.
    And modified the code as below:
    DATA:
    V_DMBTR TYPE DMBTR,
    V_HWBAS TYPE HWBAS.
    LOOP AT ITAB2.
      V_DMBTR = V_DMBTR + ITAB2-DMBTR.
      V_HWBAS = V_HWBAS + ITAB2-HWBAS.
      AT END OF BELNR.
        ITAB2-DMBTR = V_DMBTR.
        ITAB2-HWBAS = V_HWBAS.
        APPEND ITAB2 TO ITAB3.
        CLEAR: ITAB2, V_DMBTR, V_HWBAS.
      ENDAT.
    ENDLOOP.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = 'ZAK_FORM_C4'
    is_layout = layout
    it_fieldcat = it_fld_catalog
    i_default = 'X'
    i_save = 'A'
    TABLES
    t_outtab = itab3 "itab2 --> Use ITAB3 instead of ITAB2
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    BR,
    Suhas
    Edited by: Suhas Saha on Jan 13, 2009 3:23 PM

Maybe you are looking for