Currency doubts

Hi All,
I am working in Hyperion 9.3.1. I am having some currency issue. I am having 28 currencies in my planning application. While creating the forms, if i select local currency, i can able to enters the value in the form. If i select other than local currency, the form is in green color. I cant able to enter the value.
1) What is meant by local currency?(i did't create this member in currency dimension, By default is coming)
2) How to change the reporting currency in planning application, can i have more than reporting currency?
3) while creating the form, If i select the other than local currency the form in green color, how can i overcome this error?
Please guide me in this situation.
Thanks,
Lakshmi

Hi,
This is not an error. If you enabled multi currency in your application, you must assign default currencies to entities. Your users cannot enter data against currencies. However, entering data to local currency effectively means entering data to the default currency of the selected entity. If you want to be able to enter data to multiple currencies to web forms, you must enable this at web forms. After enabling this, you will find a selection of currencies at each cell in the data form.
You should run or make your users run currency conversion rules to make the translation. These rules does take care about conversions and you use currencies in reporting.
It is also perfectly possible to have more than 1 reporting currency. It's just a matter of defining and running the currency conversion rule.
Cheers,
Alp

Similar Messages

  • How to add a new base currency in Clasic Mode

    Helo,
    Please, let me know how can I add a new base Currency (RON), using Classic Mode, at time of creation a new Planning application (release 11.1.1.3).
    For the moment, at time of creating a new Planning application you can only select the base currency from a list (you can't override it or add a new one).
    I suppose, I have to manually modify the base currency to RON in the relational tables after creation of Planning Application.
    If so, please, can you confirm me all the tables involved?
    Many Thanks,
    Robert

    Hi,
    You can only have one base currency and when you create an application you can only select the currency from a list.
    There was another post a while back around the same area :- Re: Currency doubts
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Currency Data Model doubt

    Dear experts,
    I have a doubt regarding data modelling in BPC.
    I have a dimension called Units which is my Currency dimension in the Application, I don't use the standard RptCurrency diemnsion. This dimension has members which are crrencies such as EUR, DOL, LC and units such as BOX, KG.
    We have done this because we plan in the input schedules, Sales Volumes in BOX and Prices in EUR.  Now we want to calculate de Net Incomes, which should be BOX * EUR. We are not able to create the script logic which does this because of the currency. 
    Is this model correct? This is, does it have sense in BPC or is it possible, to multiply two accounts with different currencies, or should we instead, need another dimension (user defined) for the units maintaining the standard currency Dimension (RptCurrency)?
    This is a very common thing to do when planning, how do you experts solve this?
    Thanls a lot for your time and your help.
    Best regards,
    Cecilia

    it contains only 11 places before decimals ...
    below program gives a dump with
    'Overflow when converting from "1234567890123.11"'
    data : v_curr type PAD_AMT7S. "( Curr 13 , 2)
    v_curr = '1234567890123.11'.
    while it runs perfectly when we give
    v_curr = '12345678901.11'. " ( 11 + 2 )

  • Currency Translation Doubt in BI7

    Hi
    I have a doubt in currency translation.
    I have created currency translation type. Given exchange rate.
    Calculating varible on 0date based on version.
    Now if i have transaction data
    mat    plant  amt cur
    mat1 plant1 100 INR
    mat2 plant2 200 CNR
    I have only maintaied Tcurr for INR to EURO with exchagne rate 10
    when i run report i know INR transaction record is converted to 1000 but what will happen to CNR record.
    What wil lhappend to transaction record if the currency exchange rate is not maintained in TCURR during currency translation?
    will it give me in CNR only ? or does it display zero in report.
    regards
    jana

    HI Janardhan Karmala
    If the CNR currency is maintain at the ecc side and as well at Bi side then i think it will show the data in CNR. IF its in Ecc side not maintain in bi side thenn u can exchange currency setting in BI from ecc by rytclick on source system in rsa1.
    If you want to show the value of this KF again in EURO then u can maintain th coversion from CNR to EURO with factor in table Tcurr and get it replicate to Bi by exchange currenvy and setting.Use it in the currency conversion in BEx reporting .
    Thanks,
    Deepak

  • Doubt in Currency Conversion

    Hi,
    I am Using BI 7.0.
    I am Using BC cube 0PUR_C04
    Data sources 2LIS_02_HDR, 2LIS_02_ITM, 2LIS_02_SCL.
    I need a Report in Local Currency ie:  USD only (US dollers),
    Here what I am getting in my Report is all different currencies
    ie: EUR, JPY, USD,INR and all other country currencies
    but I need only in USD(US dollers)
    For these I followed the steps like this
    I created a translation key using transaction RSCURR
    These are settings I maintained
    In Exchange Rate Tab
    Exchange Rate Type I have selected <b>M</b> (My FI Consultant adviced )
    In Currency Tab
    <b>Source Currency</b>
    Source Currency from Data Record ( I have selected this Radio button)
    <b>Target Currency</b>
    Fixed Target Currency <b>USD</b>
    no other options are not selected
    In Time Ref Tab
    <b>Fixed Time Ref</b>
    Current Data (I have selected this Radio Button)
    after saving All.
    In My Transformation
    Mapping done  Like this NETWR  Net Order Value to  0NET_PO_VAL
    WAERS Order Currency    to  0NET_PO_VAL
    Now When I try to Assign the Conversion
    In Rule Details of 0NET_PO_VAL <b>Currency</b>
    I need to select from Conversion
    But here I am receiving Message
    <b>Info Obejcts must be assigned to the Data source Fields</b>
    Then
    <b>In Conversion Type</b> I enter My created conversion type ie: <b>USD_VAR</b>
    i received the <b>Error</b>
    <b>Rule 10 (target field: 0NET_PO_VAL): Field NETWR must be assigned to an info object</b>
    any idea why this Error.
    and at the same time Is I am following the Right procedure ?
    Help me to solve this Issue.
    sure you will get the Points
    thanks
    Prasanna

    Hi Karthik,
    Thanks for the immidiate responce,
    Mapping done Like this
    NETWR Net Order Value to 0NET_PO_VAL and
    WAERS Order Currency to 0NET_PO_VAL.
    Do I need to concentrate any thing when I select <b>USD_VAR (conversion type)</b> In Rule Details of 0NET_PO_VAL Currency -- from Conversion.
    Thanks
    prasanna

  • Simple currency data type  calculation doubt

    Hello All,
    net_price2 = '12.10'.
    DATA : NET_PRICE2 TYPE  CHAR20,
           NET_PRICE TYPE KBETR,
           NET_PRICE1 TYPE CHAR20,
           C TYPE CHAR20.
    C = 1.
    LOOP AT ITAB2.
    NET_PRICE = ITAB2-KBETR * C.
    C = NET_PRICE.
    SHIFT C LEFT DELETING LEADING SPACE.
    ENDLOOP.
    NET_PRICE1 = C * NET_PRICE2.
    in this code i have two values for ITAB2-KBETR .those are 5.00 and 2.00
    for first record in loop i am getting value of net_price as (5.00* 1 = 5.00)
    but for secodn record what the problem i am facing in i am getting net_price as (5.00*2.00 = 1000.00)......though i want it to
    come like 10.
    so that net_price1 should come like 12.10 * 10 = 121.....
    what i shd do..this type of code now working..please help
    Abhijeet

    Hello All,
    i have done like this........its working.....but do let me know your commnets ....
    CHECK PREISFINDUNGSART EQ 'B'.
    TYPES : BEGIN OF T_KONP ,
            KBETR TYPE KONP-KBETR,
            MATNR TYPE A073-MATNR,
            KNUMH TYPE A073-KNUMH,
            END OF T_KONP.
    TYPES : BEGIN OF T_A004,
            KNUMH TYPE A004-KNUMH,
            KBETR TYPE KONP-KBETR,
            KSCHL TYPE A004-KSCHL,
            END OF T_A004.
    DATA :  ITAB TYPE STANDARD TABLE OF T_KONP WITH HEADER LINE,
            ITAB1 TYPE STANDARD TABLE OF T_A004 WITH HEADER LINE,
            ITAB2 TYPE STANDARD TABLE OF T_A004 WITH HEADER LINE.
    DATA : NET_PRICE2 TYPE kbetr value '12.10',
    NET_PRICE TYPE P DECIMALS 6,
    NET_PRICE1 TYPE KWERT,
    C TYPE  P DECIMALS 4.
    NET_PRICE2 = '12.10'.
    SELECT KNUMH INTO CORRESPONDING FIELDS OF TABLE ITAB1 FROM A004 WHERE
           MATNR = KOMP-MATNR.
    IF SY-SUBRC = '0'.
      SELECT KBETR KSCHL KNUMH INTO CORRESPONDING FIELDS OF TABLE ITAB2 FROM KONP FOR ALL
        ENTRIES IN ITAB1 WHERE KNUMH = ITAB1-KNUMH.
    ENDIF.
    C = 1.
    LOOP AT ITAB2.
    NET_PRICE = ITAB2-KBETR * C.
    C = NET_PRICE.
    ENDLOOP.
    NET_PRICE1 = ( C * NET_PRICE2 ) / 10000 .
    XKWERT = NET_PRICE1.

  • Cost budget report in local currency

    Hello all,
    I would like to use a statistical project to link maintenance costs to a budget that is maintained in PS. The functionality is all there. i'm now trying to find a proper report.
    Currently I'm doubting between 2 options:
    Option 1:
    CJ30: budgetting in object currency
    CJE0: reporting in Controling area currency. Translate to certain currency.
    Problem: This always leeds to conversion issues:
    budgetted 10000 ---> report shows 9940.
    actual cost: 9000 -
    > report shows 8340
    Option 2:
    CJ40 for planning on costelement level
    S_ALR_87013543 in object currency
    Problem: CJ40 is planned in Controling area currency
    What I want is the following:
    CJ30 or CJ40 in object currency
    Report in object currency where.
    Does anybody have an idea how to handle this?
    thanks in advance,
    Peter

    NAG,
    Thanks for your help. I have copied a standard hierarichal report and i'm now trying to add object currency as a key.
    I have added the selection characteristic object currency in the characteristic tab, but that's not working. Ca you maybe gvie some more specific tips or if you have a certain link where i can find more details about configuration of a report?

  • Doubt in report of FI

    Hi every one i have a small doubt in FI report that is i have to give the following output as per the user requirement i had added all the everything in this program i had given u the entire code the only problem is if make comment for the code of city and postal code the remaining everything is working properly and if i remove comment at CITY and POSTAL CODE there is some error can u find out that and help me please
    * Ist-Einzelpostenanzeige EC-PCA                                      *
    * - direkte Aufruf                                                    *
    * - Report Writer                                                     *
    * - Recherche                                                         *
    * 45b MIC: default values for poper and ryear depfr. fiscyear variant *
    * 46a MIC Warning if too few selection parameters                     *
    * 46a MIC: use up to 'whr_size' single values in select statement     *
    * 46a MIC: move'Initialization of Rep-Rep-Interface' to Initialization*
    * 46a MIC: check only new auth-object                                 *
    * 46c MIC: add RMVCT and get more fields from RRI                     *
    REPORT z_rcopca02_1 NO STANDARD PAGE HEADING MESSAGE-ID km
                    LINE-COUNT (2) LINE-SIZE 81.
    * Typen ***************************************************************
    *type-pools: kkblo.
    TYPE-POOLS: slis, ecarc.
    * DDIC-Tabellen *******************************************************
    TABLES: glpca,                         "Einzelposten / Ist
            glu1,                          "Übergabestruktur FI-SL-Anzeige
            t000,
            tka01,
            sscrfields,
            lfa1,
            kna1,
            bseg,
            with_item.
    * Variablen und int. Tabellen *****************************************
    DATA: afield        TYPE slis_fieldcat_alv,
          sp_group      TYPE slis_sp_group_alv,
          t_listheader  TYPE slis_t_listheader WITH HEADER LINE,
          t_layout      TYPE slis_layout_alv,
          t_fieldcat    TYPE slis_t_fieldcat_alv,
          t_spec_groups TYPE slis_t_sp_group_alv,
          event         TYPE slis_alv_event,
          t_events      TYPE slis_t_event,
          g_variant     LIKE disvariant,
          gx_variant    LIKE disvariant,
          g_exit(1)     TYPE c,
          g_save(1)     TYPE c,
          g_repid       LIKE sy-repid,
          msgtyp        LIKE sy-msgty,
          lt_dynpread   LIKE dynpread OCCURS 1 WITH HEADER LINE,
          ls_rpcak      LIKE rpcak,              "note 0310592
          packsize      TYPE i VALUE 1000,
          text1(60)     TYPE c,
          text2(60)     TYPE c,
          oldkokrs      LIKE glpca-kokrs,
          oldracct      LIKE glpca-racct.
    DATA: whr_size    TYPE i VALUE 50,"Maximum of single values per  MIC 46a
                       "charact. in the where-clause of the select-statement
          lines         TYPE i, "number of lines of range table      MIC 46a
          cnt_rldnr     TYPE i, "Zähler Anzahl selektierter Ledger
          cnt_kokrs     TYPE i, "Zähler Anzahl selektierter KoReKreise
          cnt_poper     TYPE i, "Zähler Anzahl selektierter Perioden
          cnt_ryear     TYPE i, "Zähler Anzahl selektierter GeschJahre
          cnt_rvers     TYPE i, "Zähler Anzahl selektierter Versionen
          cnt_bukrs     TYPE i, "Zähler Anzahl selektierter BuKreise
          empge         LIKE dkobr-empge,
          ksl_curr      LIKE tka01-pcacur,
          hsl_curr      LIKE t001-waers,
          a_rec         LIKE rstirec.
    DATA: BEGIN OF dim_data.
            INCLUDE STRUCTURE rgcdi.       "data for dimensions
    DATA: END OF dim_data.
    DATA: BEGIN OF tab_fields OCCURS 80,
            name LIKE dntab-fieldname,     "fields in table i_glpca
          END OF tab_fields.
    DATA: BEGIN OF i_glpca OCCURS 0.
            INCLUDE STRUCTURE rpca2.
    DATA:   racct_ktext LIKE rpcak-ktext,
            psppp LIKE prps-posid,
            name1 LIKE lfa1-name1,
            adrnr like lfa1-adrnr,
            stras like lfa1-stras,
            c_name1 like kna1-name1,
            v_rate like with_item-qsatz,
            qsshb like bseg-qsshb,
            qbshb like bseg-qbshb,
          END OF i_glpca.
    DATA: rw_subrc   LIKE sy-subrc,      "Flag: Report-Writer-Schnittstelle
          re_subrc   LIKE sy-subrc,        "Flag: Recherche-Schnittstelle
          subrc      LIKE sy-subrc.
    DATA: set_id    LIKE sethier-setid,    "Set-ID        "RDI_SETS_4.0
          set_class LIKE sethier-setclass, "Setklasse     "RDI_SETS_4.0
          set_sname LIKE sethier-shortname."Setname (24)  "RDI_SETS_4.0
    DATA: authorised(1),
          s_message(1),
          auth_dbcount LIKE sy-tabix,
    *     Hex-Konstanten für Minimum/Maximum-Werte
          BEGIN OF hex00,
            x1(12) TYPE c,
            x2(12) TYPE c,
          END OF hex00,
          BEGIN OF hexff,
            x1(12) TYPE c,
            x2(12) TYPE c,
          END OF hexff.
    RANGES rclnt FOR glpca-rclnt.
    FIELD-SYMBOLS: <glpca> LIKE LINE OF i_glpca,
                   <glpca_arc> TYPE ecarc_glpca_curr.
    * Selektionsoptionen *************************************************
    SELECT-OPTIONS:
      rldnr    FOR glpca-rldnr   DEFAULT '8A' NO-DISPLAY,
      rassc    FOR glpca-rassc                NO-DISPLAY,
    * rrcty    for glpca-rrcty   default 0,
      rrcty    FOR glpca-rrcty,
      rvers    FOR glpca-rvers   DEFAULT '000',
      kokrs    FOR glpca-kokrs   MEMORY ID cac,
      bukrs    FOR glpca-rbukrs  MEMORY ID buk,
    * poper    for glpca-poper   default sy-datlo+4(2),
    * ryear    for glpca-ryear   default sy-datlo,
      poper    FOR glpca-poper,
      ryear    FOR glpca-ryear,
      prctr    FOR glpca-rprctr  MATCHCODE OBJECT prct,
      pprctr   FOR glpca-sprctr  MATCHCODE OBJECT prct,
    * RACCT    FOR GLPCA-RACCT   MATCHCODE OBJECT KART,      "RD_P30K128304
      racct    FOR glpca-racct,            "RD_P30K128304
      drcrk    FOR glpca-drcrk,
      activ    FOR glpca-activ,
      rhoart   FOR glpca-rhoart,
      rfarea   FOR glpca-rfarea,
      stagr    FOR glpca-stagr,
      rtcur    FOR glpca-rtcur,
      runit    FOR glpca-runit,
      versa    FOR glpca-versa  NO-DISPLAY,
      eprctr   FOR glpca-eprctr NO-DISPLAY,
      afabe    FOR glpca-afabe  NO-DISPLAY,
      rmvct    FOR glpca-rmvct  NO-DISPLAY,
      hrkft    FOR glpca-hrkft  NO-DISPLAY,  "note 550972
      sbukrs   FOR glpca-sbukrs NO-DISPLAY,  "note 550972
      shoart   FOR glpca-shoart NO-DISPLAY,  "note 550972
      sfarea   FOR glpca-sfarea NO-DISPLAY,  "note 550972
      docct    FOR glpca-docct,
      docnr    FOR glpca-docnr,
      refdocct FOR glpca-refdocct,
      refdocnr FOR glpca-refdocnr,
      werks    FOR glpca-werks,
      repmatnr FOR glpca-rep_matnr MATCHCODE OBJECT pca_shlp_rep_matnr,
      rscope   FOR glpca-rscope.
    PARAMETERS: no_rrint NO-DISPLAY DEFAULT ' '." skip       "MICP40K066037
    " report-report-interface
    * display variant                                       ">>MICP40K039857
    SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-e01.
    PARAMETERS: p_vari LIKE disvariant-variant.
    SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD p_vari.
    SELECTION-SCREEN END OF BLOCK 0.
    PARAMETERS log_grp(4) TYPE c NO-DISPLAY DEFAULT 'zKE5Z'.
    "<<MICP40K039857
    RANGES: v_racct  FOR glpca-racct,
            v_prctr  FOR glpca-rprctr,
            v_pprctr FOR glpca-sprctr.
    * Tabelle mit Werten aus den Berichts-Set vom Report-Writer           *
    DATA  BEGIN OF val_tab OCCURS 50.
            INCLUDE STRUCTURE rgciv.
    DATA  END OF val_tab.
    ***************************************************        MICP30K166368
    * feldkatalog und interface für bb-schnittstelle rw        MICP30K166368
    ***************************************************        MICP30K166368
    "MICP30K166368
    DATA  BEGIN OF bbs_fieldtab OCCURS 20. "MICP30K166368
            INCLUDE STRUCTURE rstifields.  "MICP30K166368
    DATA  END OF bbs_fieldtab.             "MICP30K166368
    * archiv
    TYPE-POOLS: rsds.
    TYPES:      BEGIN OF ty_archive_objects,
                   object       LIKE arch_obj-object,
                END   OF ty_archive_objects,
                ty_t_archive_objects TYPE ty_archive_objects OCCURS 2.
    CONSTANTS:  lc_set          TYPE  c           VALUE 'X',
                lc_report       TYPE  progname    VALUE 'ZKE5Z',
                lc_reporttype   TYPE  reporttype  VALUE 'TR'.
    TABLES:     admi_files.
    SELECT-OPTIONS lr_files FOR admi_files-archiv_key NO-DISPLAY.
    PARAMETER:  read_db       TYPE c            DEFAULT 'X' NO-DISPLAY,
                read_ar       TYPE c                        NO-DISPLAY,
                arc_obj       LIKE arch_obj-object          NO-DISPLAY,
                read_as       TYPE c            DEFAULT 'X' NO-DISPLAY.
    DATA  :     lt_arch_obj     TYPE ty_t_archive_objects WITH HEADER LINE,
                ls_selections   TYPE rsds_frange,
                lt_selections   TYPE rsds_frange_t,
                ls_selopt TYPE rsdsselopt,
                lt_glpca_archiv TYPE ecarc_t_glpca_curr.
    *********************************************************>>MICP40K039857
    * INITIALIZATION
    INITIALIZATION.
    * Diverse Initialisierungen
      PERFORM init_vars.
      g_repid = sy-repid.
    * Set default values for record type
      rrcty-sign = 'I'.
      rrcty-option = 'EQ'.
      rrcty-low    = '0'.
      APPEND rrcty.
      rrcty-low = '2'.
      APPEND rrcty.
    * Set default values for period and year (if kokrs or bukrs is known)
      GET PARAMETER ID 'BUK' FIELD bukrs-low.
      GET PARAMETER ID 'CAC' FIELD kokrs-low.
      IF     kokrs-low IS INITIAL       "get contr. area from company code
         AND NOT bukrs-low IS INITIAL.
        CALL FUNCTION 'KOKRS_GET_FROM_BUKRS'
          EXPORTING
            i_bukrs        = bukrs-low
          IMPORTING
            e_kokrs        = kokrs-low
          EXCEPTIONS
            no_kokrs_found = 1
            OTHERS         = 2.
        IF sy-subrc <> 0.
          CLEAR kokrs-low.
        ENDIF.
      ENDIF.
      IF NOT kokrs-low IS INITIAL.
        CALL FUNCTION 'K_KOKRS_READ'       "get fiscal year variant
             EXPORTING
                  kokrs           = kokrs-low
              IMPORTING
                  e_tka01         = tka01
            EXCEPTIONS
                  not_found       = 1
                  not_found_gjahr = 2
                  OTHERS          = 3.
        IF sy-subrc = 0.
          CALL FUNCTION 'G_PERIOD_GET'
            EXPORTING
              date                           = sy-datlo
              variant                        = tka01-lmona
            IMPORTING
              period                         = poper-low
              year                           = ryear-low
            EXCEPTIONS
              ledger_not_assigned_to_company = 1
              period_not_defined             = 2
              variant_not_defined            = 3
              OTHERS                         = 4.
          IF sy-subrc = 0.
            poper-sign = 'I'.
            poper-option = 'EQ'.
            APPEND poper.
            ryear-sign = 'I'.
            ryear-option = 'EQ'.
            APPEND ryear.
          ENDIF.
        ENDIF.
      ENDIF.
    * Settings for display variants
      g_save = 'A'.  "Schalter Varianten benutz./allg. speichern
      CLEAR g_variant.
      g_variant-report = g_repid.
      g_variant-log_group = log_grp.
      g_variant-username = sy-uname.
    * Get default variant
      gx_variant = g_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save     = g_save
        CHANGING
          cs_variant = gx_variant
        EXCEPTIONS
          not_found  = 2.
      IF sy-subrc = 0.
        p_vari = gx_variant-variant.
      ENDIF.
    * Set variant
      IF p_vari IS INITIAL.
        p_vari = '1SAP'.
        MOVE p_vari TO gx_variant-variant.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            i_save     = g_save
          CHANGING
            cs_variant = gx_variant
          EXCEPTIONS
            not_found  = 1.
        IF sy-subrc NE 0.
          CLEAR p_vari.
          CLEAR gx_variant-variant.
        ENDIF.
      ENDIF.
      varname = gx_variant-text.
      "<<MICP40K039857
    * archiv
      CALL FUNCTION 'KARL_DATA_INPUT_INIT'
        EXPORTING
          i_report     = lc_report
          i_reporttype = lc_reporttype
        IMPORTING
          e_xusedb     = read_db
          e_xusear     = read_ar
          e_archobj    = arc_obj
          e_infosys    = read_as
        TABLES
          t_arch_sel   = lr_files.
      DATA: lt_excluding LIKE sy-ucomm OCCURS 0 WITH HEADER LINE.
      CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
        EXPORTING
          p_status  = 'SELSCREEN'
          p_program = 'RCOPCA02'
        TABLES
          p_exclude = lt_excluding.
    * Initialisieren der Bericht/Bericht-Schnittstellen                   *
      DATA: ld_no_rrint TYPE boole_d.      "note 490484 begin
      IMPORT rri = ld_no_rrint FROM MEMORY ID 'RCOPCA02_NO_RRI'.
      IF ld_no_rrint = 'X'.
        FREE MEMORY ID 'RCOPCA02_NO_RRI'.
      ELSE.                                "note 490484 end
        CALL FUNCTION 'G_REPORT_INTERFACE_INIT'   "Report-Writer?
            EXPORTING                      "MICP30K166368
                 table = 'GLPCT'           "MICP30K166368
             IMPORTING
                 subrc = rw_subrc          "MICP30K166368
            TABLES                         "MICP30K166368
                 it_fieldr = bbs_fieldtab. "MICP30K166368
        CALL FUNCTION 'RSTI_APPL_STACK_POP'"oder Recherche?
             IMPORTING
                  i_rec                      = a_rec
             EXCEPTIONS
                  appl_stack_not_initialized = 1.
        re_subrc = sy-subrc.
        IF re_subrc = 0.
    *    check Receiver is this report
          IF NOT ( ( a_rec-rtool = 'RT' AND a_rec-ronam = 'Z_RCOPCA02_1' )
                   OR ( a_rec-rtool = 'TR' AND a_rec-ronam = 'ZKE5Z' ) ) .
            re_subrc = 2.
          ENDIF.
        ENDIF.
      ENDIF.
    * AT SELCTION-SCREEN on value request**********************************
    *at selection-screen on value-request for racct-low.          "RD "4.6a
    *                                                             "RD "4.6a
    * call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
    *      importing                                              "RD "4.6a
    *           e_racct      = racct-low.                         "RD "4.6a
    *                                                             "RD "4.6a
    *                                                             "RD "4.6a
    *at selection-screen on value-request for racct-high.         "RD "4.6a
    *                                                             "RD "4.6a
    * call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
    *      importing                                              "RD "4.6a
    *           e_racct      = racct-high.                        "RD "4.6a
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.         "MICP40K039857
      PERFORM f4_for_variant.              "MICP40K039857
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-low.         "RD "4.6a
    * begin of insertion note 522715
      CALL FUNCTION 'K_KOKRS_READ'
        EXPORTING
          kokrs           = kokrs-low
        EXCEPTIONS
          not_found       = 1
          not_found_gjahr = 2
          OTHERS          = 3.
      IF sy-subrc = 0.
    * end of insertion note 522715
        CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             EXPORTING                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             IMPORTING                                          "RD "4.6a
                  e_rpmax     = poper-low                       "RD "4.6a
    * begin of insertion note 522715
             EXCEPTIONS
                  table_empty = 1.
      ENDIF.
    * end of insertion note 522715
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-high.        "RD "4.6a
    * begin of insertion note 522715
      CALL FUNCTION 'K_KOKRS_READ'
        EXPORTING
          kokrs           = kokrs-low
        EXCEPTIONS
          not_found       = 1
          not_found_gjahr = 2
          OTHERS          = 3.
      IF sy-subrc = 0.
    * end of insertion note 522715
        CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             EXPORTING                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             IMPORTING                                          "RD "4.6a
                  e_rpmax     = poper-high                      "RD "4.6a
    * begin of insertion note 522715
             EXCEPTIONS
                  table_empty = 1.
      ENDIF.
    * end of insertion note 522715
    * AT SELCTION-SCREEN ***************************************************
    AT SELECTION-SCREEN.
      PERFORM pai_of_selection_screen.
    * begin of insertion note 522715
      IF NOT kokrs-low IS INITIAL.
        CALL FUNCTION 'K_KOKRS_READ'
          EXPORTING
            kokrs           = kokrs-low
          EXCEPTIONS
            not_found       = 1
            not_found_gjahr = 2
            OTHERS          = 3.
        IF sy-subrc <> 0.
          MESSAGE e101(ki) WITH kokrs-low.
        ENDIF.
      ENDIF.
    * end of insertion note 522715
    * archiv
      IF sy-ucomm = 'FC01' OR sy-ucomm = 'UCDS'
        OR sy-ucomm = 'ONLI' AND read_ar = 'X'
        AND read_as IS INITIAL AND lr_files[] IS INITIAL.
        IF lt_arch_obj[] IS INITIAL.
          lt_arch_obj-object = 'PCA_OBJECT'. APPEND lt_arch_obj.
          lt_arch_obj-object = 'EC_PCA_ITM'. APPEND lt_arch_obj.
        ENDIF.
        CALL FUNCTION 'KARL_DATA_INPUT_SELECT'
          EXPORTING
            i_db_and_arc       = lc_set
            i_infosys_possible = lc_set
            i_object_fixed     = 'V'
            i_documentation    = 'KARL_DATA_INPUT_SEL_KE5YZ'
            i_report           = lc_report
            i_reporttype       = lc_reporttype
          TABLES
            t_objects          = lt_arch_obj
            t_arch_sel         = lr_files
          CHANGING
            c_xusedb           = read_db
            c_xusear           = read_ar
            c_archobj          = arc_obj
            c_infosys          = read_as.
      ENDIF.
    * START-OF-SELECTION **************************************************
    START-OF-SELECTION.
    *   Default-Werte löschen, falls Aufruf über Recherche
    *   oder Report-Writer erfolgt ist
      IF no_rrint IS INITIAL AND ld_no_rrint IS INITIAL.        "note 490484
        IF rw_subrc EQ 0 OR re_subrc EQ 0.
          REFRESH: rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
          CLEAR:   rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
          IF NOT read_as IS INITIAL.                           "note 625581
            CLEAR: lr_files, lr_files[].                       "note 625581
          ENDIF.                                               "note 625581
        ENDIF.
    * Parameter einlesen über Report-Writer-Schnittstelle                 *
        IF rw_subrc EQ 0.
          PERFORM rw_get_parameters.
    * oder Parameter einlesen über Recherche-Schnittstelle                *
        ELSEIF re_subrc EQ 0.
          PERFORM re_get_parameters.
        ENDIF.
      ENDIF.
      IF read_db = 'X'.                     " read from DB (archiv)
    * Bewegungsdaten einlesen und puffern...................................
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
            text = 'Einzelposten selektieren'(p10).
    * Use dirty trick to mislead DB-optimizer
        CALL FUNCTION 'DB_DO_NOT_USE_CLIENT_INDEX'
          EXPORTING
            value    = sy-mandt
          TABLES
            mandttab = rclnt.
        SELECT (tab_fields) FROM glpca
           CLIENT SPECIFIED
           PACKAGE SIZE packsize
           APPENDING CORRESPONDING FIELDS OF TABLE i_glpca
           WHERE rldnr     IN rldnr
             AND rrcty     IN rrcty
             AND rvers     IN rvers
             AND kokrs     IN kokrs
             AND rbukrs    IN bukrs
             AND ryear     IN ryear
             AND rassc     IN rassc
             AND hrkft     IN hrkft   "note 550972
             AND sbukrs    IN sbukrs  "note 550972
             AND shoart    IN shoart  "note 550972
             AND sfarea    IN sfarea  "note 550972
             AND racct     IN racct
             AND rprctr    IN prctr
             AND sprctr    IN pprctr
             AND poper     IN poper
             AND drcrk     IN drcrk
             AND activ     IN activ
             AND rhoart    IN rhoart
             AND rfarea    IN rfarea
             AND versa     IN versa
             AND eprctr    IN eprctr
             AND afabe     IN afabe
             AND rmvct     IN rmvct
             AND docct     IN docct
             AND docnr     IN docnr
             AND stagr     IN stagr
             AND rtcur     IN rtcur
             AND runit     IN runit
             AND refdocct  IN refdocct
             AND refdocnr  IN refdocnr
             AND werks     IN werks
             AND rep_matnr IN repmatnr       "RDIP40K020663
             AND rscope    IN rscope         "RDIP40K020663
          AND rclnt     IN rclnt.       "dirty trick to mislead DB-optimizer
          IF sy-dbcnt > 1.
            text1 = sy-dbcnt.
            CONDENSE text1.
            CONCATENATE text1 text-m01 INTO text2 SEPARATED BY space.
            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
              EXPORTING
                text = text2.          " ... Datensätze gelesen
          ENDIF.
        ENDSELECT.
    * Entfernt nicht zugehörige Einträge....................................
        LOOP AT i_glpca WHERE ( NOT rprctr IN v_prctr  )
                           or ( not SPRCTR in v_pprctr )
                           OR ( NOT racct  IN v_racct  ).
          DELETE i_glpca.
        ENDLOOP.
      ENDIF.
    *archiv
      IF read_ar = 'X' AND NOT
        ( read_as IS INITIAL AND lr_files[] IS INITIAL ).
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
            text = 'Lesen im Archiv'(p12).
        DEFINE fill_lt_selections.
          if not &2[] is initial.
            clear ls_selections.
            move &1 to ls_selections-fieldname.
            loop at &2.
              clear ls_selopt.
              move-corresponding &2 to ls_selopt.
              append ls_selopt to ls_selections-selopt_t.
            endloop.
            append ls_selections to lt_selections.
          endif.
        END-OF-DEFINITION.
        fill_lt_selections 'RLDNR'  rldnr.
        fill_lt_selections 'RRCTY'  rrcty.
        fill_lt_selections 'RVERS'  rvers.
        fill_lt_selections 'KOKRS'  kokrs.
        fill_lt_selections 'RBUKRS' bukrs.
        fill_lt_selections 'POPER'  poper.
        fill_lt_selections 'RYEAR'  ryear.
        fill_lt_selections 'RPRCTR' prctr.
        fill_lt_selections 'SPRCTR' pprctr.
        fill_lt_selections 'RACCT'  racct.
        fill_lt_selections 'DRCRK'  drcrk.
        fill_lt_selections 'ACTIV'  activ.
        fill_lt_selections 'RHOART' rhoart.
        fill_lt_selections 'RFAREA' rfarea.    "note 401961
        fill_lt_selections 'STAGR'  stagr.
        fill_lt_selections 'RTCUR'  rtcur.
        fill_lt_selections 'RUNIT'  runit.
        fill_lt_selections 'VERSA'  versa.
        fill_lt_selections 'EPRCTR' eprctr.
        fill_lt_selections 'AFABE'  afabe.
        fill_lt_selections 'RMVCT'  rmvct.
        fill_lt_selections 'DOCCT'  docct.
        fill_lt_selections 'DOCNR'  docnr.
        fill_lt_selections 'REFDOCCT' refdocct.
        fill_lt_selections 'REFDOCNR' refdocnr.
        fill_lt_selections 'WERKS'  werks.
        fill_lt_selections 'REP_MATNR' repmatnr.
        fill_lt_selections 'RSCOPE' rscope.
        fill_lt_selections 'HRKFT'  hrkft.   "note 550972
        fill_lt_selections 'SBUKRS' sbukrs.  "note 550972
        fill_lt_selections 'SHOART' shoart.  "note 550972
        fill_lt_selections 'SFAREA' sfarea.  "note 550972
        CALL FUNCTION 'EC_PCA_SELECT_FROM_ARCHIVE'
          EXPORTING
            i_selections            = lt_selections[]
            i_files_sequential_read = lr_files[]
          IMPORTING
            e_glpca                 = lt_glpca_archiv[]
          EXCEPTIONS
            no_infostruc_found      = 1.
        IF sy-subrc = 1.
          MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        CLEAR i_glpca.
        LOOP AT lt_glpca_archiv ASSIGNING <glpca_arc>
                        WHERE ( rprctr IN v_prctr  )
                          and ( sprctr IN v_pprctr )
                          AND ( racct  IN v_racct  ).
          MOVE-CORRESPONDING <glpca_arc> TO i_glpca.
          APPEND i_glpca.
        ENDLOOP.
    * delete duplicate records                                   note 639647
        IF NOT read_db IS INITIAL AND NOT lt_glpca_archiv[] IS INITIAL.
          SORT i_glpca.
          DELETE ADJACENT DUPLICATES FROM i_glpca.
        ENDIF.
      ENDIF.
      IF i_glpca[] IS INITIAL.         "Info,nichts gefunden
        MESSAGE s000.
        EXIT.
      ENDIF.
    * get texts for accounts ...............................................
      SORT i_glpca BY kokrs racct.
      LOOP AT i_glpca ASSIGNING <glpca>.
        IF <glpca>-kokrs <> oldkokrs OR <glpca>-racct <> oldracct. "AT NEW
          CLEAR ls_rpcak.
          oldkokrs = <glpca>-kokrs.
          oldracct = <glpca>-racct.
          CALL FUNCTION 'K_RACCT_SINGLE_CHECK'         "note 0310592
               EXPORTING
                    i_kokrs    = <glpca>-kokrs
                    i_racct    = <glpca>-racct
                    i_spras    = sy-langu
                    i_textflag = 'X'
               IMPORTING
                    e_rpcak    = ls_rpcak
               EXCEPTIONS
                    not_valid  = 1
                    OTHERS     = 2.
          IF sy-subrc NE 0.
            CLEAR ls_rpcak.
          ENDIF.
        ENDIF.                             "ENDAT
        <glpca>-racct_ktext = ls_rpcak-ktext.
    * Fetching vendor name from vendor number
    *break-point.
         SELECT SINGLE * FROM LFA1
             WHERE LIFNR = <glpca>-LIFNR AND
             SPRAS = SY-LANGU.
         IF SY-SUBRC eq 0.
            <glpca>-name1 = lfa1-name1.
            <glpca>-adrnr = lfa1-adrnr.
            <glpca>-stras = lfa1-stras.
         ENDIF.
    * Fetching customer name from customer number
         SELECT SINGLE * FROM kna1
             WHERE KUNNR = <glpca>-KUNNR.
         IF SY-SUBRC eq 0.
            <glpca>-c_name1 = kna1-name1.
         ENDIF.
         SELECT SINGLE * FROM bseg
                WHERE BUKRS EQ <glpca>-rbukrs AND
                      BELNR EQ <glpca>-refdocnr AND
                      GJAHR EQ <glpca>-ryear AND
                      KTOSL EQ 'WIT' AND
                      BUZEI EQ <glpca>-refdocln.
         IF SY-SUBRC eq 0.
           SELECT SINGLE * FROM WITH_ITEM
                  WHERE BUKRS EQ <glpca>-rbukrs AND
                        BELNR EQ <glpca>-refdocnr AND
                        GJAHR EQ <glpca>-ryear." AND
    *                    BUZEI EQ <glpca>-refdocln AND
    *                    WITHT EQ BSEG-QSSKZ.
           IF SY-SUBRC eq 0.
              <glpca>-v_rate = with_item-qsatz.
              <glpca>-qsshb = with_item-WT_QSSHB.
              <glpca>-qbshb = with_item-WT_QBSHB.
           ENDIF.
         ENDIF
      ENDLOOP.
    * Liste mit Einzelposten geeignet sortieren.............................
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text = 'Einzelposten sortieren'(p30).
    *  if show_ref is initial.
    *    sort i_glpca by rldnr ryear rbukrs rrcty rvers
    *                    docct docnr docln.
    *  else.
      SORT i_glpca BY rldnr kokrs ryear rbukrs rrcty rvers poper
                      refdocct refdocnr refdocln.
    *  endif.
    * Berechtigungsprüfung und gemerkte Belege aufbereiten .................
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text = 'Berechtigungsprüfungen'(p40).
      CLEAR: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
      LOOP AT i_glpca ASSIGNING <glpca>.
    *   Berechtigungscheck
        PERFORM check_repo_authority CHANGING authorised.
        IF authorised IS INITIAL.
          DELETE i_glpca.
          s_message = 'X'.
    *     zählen der Sätze ohne Berechtigung
          auth_dbcount = auth_dbcount + 1.
        ELSE. "Weitere Bearbeitung nur für berechtigte Belege...
    *     Zusätzlich merken der Anzahl der Ausprägungen
    *     bestimmter Dimensionen
          ON CHANGE OF <glpca>-rldnr.
            ADD 1 TO cnt_rldnr.
          ENDON.
          ON CHANGE OF <glpca>-kokrs.
            ADD 1 TO cnt_kokrs.
            CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
              EXPORTING
                ct       = '90'
                kokrs    = <glpca>-kokrs
                rldnr    = <glpca>-rldnr
              IMPORTING
                currency = ksl_curr.
          ENDON.
          ON CHANGE OF <glpca>-poper.
            ADD 1 TO cnt_poper.
          ENDON.
          ON CHANGE OF <glpca>-ryear.
            ADD 1 TO cnt_ryear.
          ENDON.
          ON CHANGE OF <glpca>-rvers.
            ADD 1 TO cnt_rvers.
          ENDON.
          ON CHANGE OF <glpca>-rbukrs.
            ADD 1 TO cnt_bukrs.
            CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
              EXPORTING
                bukrs    = <glpca>-rbukrs
                ct       = '10'
              IMPORTING
                currency = hsl_curr.
          ENDON.
    *     externe Immobilienbezeichnung                     "ww/kb
    *     on change of i_glpca-imkey.
          IF ( NOT <glpca>-imkey IS INITIAL ).
            CALL FUNCTION 'REMD_IMKEY_TO_EMPGE'
                 EXPORTING
                      i_imkey    = <glpca>-imkey
                      i_dabrz    = <glpca>-dabrz
    *                 I_length   = 20
                 IMPORTING
                      e_empge    = <glpca>-empge
                      e_konty    = <glpca>-konty
                 EXCEPTIONS
                      not_found  = 1.
            IF sy-subrc NE 0.
              CLEAR <glpca>-empge.
              CLEAR <glpca>-konty.
            ENDIF.
    *       CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
          ENDIF.
    *     endon.
    *     on change of i_glpca-dabrz.
    *        call function 'REMD_IMKEY_TO_EMPGE'
    *             exporting
    *                  i_imkey    = i_glpca-imkey
    *                  i_dabrz    = i_glpca-dabrz
    **                 i_length   = 20
    *             importing
    *                  e_empge    = i_glpca-empge
    *                  e_konty    = i_glpca-konty.
    **       CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
    *      endon.
    *     Konvertierungsproblem mit PSP-Nummer bereinigen
          IF NOT <glpca>-ps_psp_pnr IS INITIAL.
            IF <glpca>-ps_psp_pnr EQ space.
              CLEAR <glpca>-ps_psp_pnr.
            ELSE.
              WRITE <glpca>-ps_psp_pnr TO <glpca>-psppp.
              CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
                EXPORTING
                  input  = <glpca>-psppp
                IMPORTING
                  output = <glpca>-psppp.
            ENDIF.
          ENDIF.
    *     Währungen in Hilfsfeldern speichern
          IF <glpca>-hsl_curr IS INITIAL.
            <glpca>-hsl_curr = hsl_curr.
          ENDIF.
          IF <glpca>-ksl_curr IS INITIAL.
            <glpca>-ksl_curr = ksl_curr.
          ENDIF.
    *     modify i_glpca.
        ENDIF.
      ENDLOOP.
    * Nachricht, wenn nicht alle Einzelposten angezeigt werden.
      IF NOT s_message IS INITIAL.
        MESSAGE s407(km) WITH auth_dbcount.
      ENDIF.
    * EP ausgeben...........................................................
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text = 'Einzelposten ausgeben'(p50).
      t_layout-detail_initial_lines = 'X'.
      t_layout-detail_popup         = 'X'.
      t_layout-f2code               = 'PIC1'.                "MICP40K039857
      t_layout-get_selinfos         = 'X'.
      t_layout-group_change_edit    = 'X'.                   "note 576149
      PERFORM fill_listheader.
      PERFORM fieldcat_fill.
      PERFORM spec_groups_fill.
      PERFORM events_fill.                 "MICP40K039857
      ">>MICP40K039857
    *  call function 'K_KKB_LIST_DISPLAY'
    *       exporting
    *            i_callback_program       = 'Z_RCOPCA02_1
    *            i_callback_user_command  = 'USR_CMD'
    *            i_callback_top_of_page   = 'TOP_OF_PAGE'
    **           I_CALLBACK_END_OF_PAGE   =
    **           I_CALLBACK_END_OF_LIST   =
    *            i_callback_pf_status_set = 'SET_PF_STATUS'
    **           I_CALLBACK_LAYOUT_SAVE   =
    **           I_CALLBACK_FIELDCAT_SAVE =
    *            i_tabname                = 'I_GLPCA'
    *            is_layout                = t_layout
    *            it_fieldcat              = t_fieldcat
    **           I_FCTYPE                 = 'R'
    **           IT_EXCLUDING             =
    *            it_special_groups        = t_spec_groups
    **           IT_SORT                  =
    **           IS_SEL_HIDE              =
    **           I_SCREEN_START_COLUMN    = 0
    **           I_SCREEN_START_LINE      = 0
    **           I_SCREEN_END_COLUMN      = 0
    **           I_SCREEN_END_LINE        = 0
    *       tables
    *            t_outtab                 = i_glpca
    *       exceptions
    *            others                   = 1.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    *  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         EXPORTING
    *         I_INTERFACE_CHECK        = ' '
               i_callback_program       = 'Z_RCOPCA02_1'
               i_callback_pf_status_set = 'SET_PF_STATUS'
               i_callback_user_command  = 'USR_CMD'
               i_structure_name         = 'I_GLPCA'
               is_layout                = t_layout
               it_fieldcat              = t_fieldcat
    *         IT_EXCLUDING             =
               it_special_groups        = t_spec_groups
    *         IT_SORT                  =
    *         IT_FILTER                =
    *         IS_SEL_HIDE              =
               i_default                = 'X'
               i_save                   = g_save
               is_variant               = g_variant
               it_events                = t_events
    *         IT_EVENT_EXIT            =
    *         IS_PRINT                 =
    *         I_SCREEN_START_COLUMN    = 0
    *         I_SCREEN_START_LINE      = 0
    *         I_SCREEN_END_COLUMN      = 0
    *         I_SCREEN_END_LINE        = 0
    *    IMPORTING
    *         E_EXIT_CAUSED_BY_CALLER  =
    *         ES_EXIT_CAUSED_BY_USER   =
          TABLES
               t_outtab                 = i_glpca
        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.
      "<<MICP40K039857
      CLEAR i_glpca.
    *&      Form  CHECK_REPO_AUTHORITY
    *  Check only new auth-object K_PCA                                    *
    *  -->  p1        text
    *  <--  p2        text
    FORM check_repo_authority CHANGING authorized LIKE authorised.
    * fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
      DATA: auth LIKE pca_i_auth.          "46a MIC check K_PCA and G_GLTP
      auth-bukrs = <glpca>-rbukrs.
      auth-rldnr = <glpca>-rldnr.
      auth-rvers = <glpca>-rvers.
      auth-rrcty = <glpca>-rrcty.
      CLEAR authorized.
    * check PrCtr/account/activity
      CALL FUNCTION 'K_PCA_RESP_AUTHORITY_CHECK'
        EXPORTING
          i_kokrs             = <glpca>-kokrs
          i_prctr             = <glpca>-rprctr
          i_kstar             = <glpca>-racct
          i_vorgn             = 'REPP'
          i_actvt             = '28'
          i_auth              = auth
          i_no_dialog_message = 'X'
        EXCEPTIONS
          no_authority        = 1
          data_missing        = 2
          OTHERS              = 3.
      IF sy-subrc = 0.                                          "ok
    * check ledger/version/record type
        CALL FUNCTION 'PCA_G_GLTP_AUTH_CHECK'
          EXPORTING
            rldnr            = <glpca>-rldnr
            rvers            = <glpca>-rvers
            rrcty            = <glpca>-rrcty
          EXCEPTIONS
            no_authorisation = 1
            OTHERS           = 2.
        IF sy-subrc = 0.                   "ok, User is authorized
          authorized = 'X'.
        ENDIF.
      ENDIF.
    ENDFORM.                               " CHECK_REPO_AUTHORITY
    *&      Form  INIT_VARS
    *       Initialisieren diverser Hilfsvariablen und -tabellen           *
    FORM init_vars.
      DATA BEGIN OF nametab OCCURS 80. "Tabelle mit Feldern aus der RPCA2
              INCLUDE STRUCTURE dntab.
      DATA END OF nametab.
      SELECT SINGLE * FROM t000
                      CLIENT SPECIFIED
                      WHERE mandt = sy-mandt.
      REFRESH nametab.
      CALL FUNCTION 'NAMETAB_GET'
        EXPORTING
          only    = 'T'
          tabname = 'RPCA2'
        TABLES
          nametab = nametab.
    * Übernehmen der Feldnamen, die auch in der GLPCA
    * vorkommen.
      LOOP AT nametab WHERE fieldname NE 'KSL_CURR'
                        AND fieldname NE 'HSL_CURR'
                        AND fieldname NE 'EMPGE'               "ww/kb
                        AND fieldname NE 'KONTY'.              "ww/kb
        MOVE nametab-fieldname TO tab_fields-name.
        APPEND tab_fields.
      ENDLOOP.
    * fill Fields of receiver for BBS                          "MIC46C
      CALL FUNCTION 'RSTI_REPORT_FIELDS_FIND'
        EXPORTING
          e_repid   = 'Z_RCOPCA02_1'
          e_type    = 'R'
        TABLES
          it_fields = bbs_fieldtab.
    * correct fieldnames
      READ TABLE bbs_fieldtab WITH KEY rfield = 'PRCTR'.
      IF sy-subrc = 0.
        bbs_fieldtab-rfield = 'RPRCTR'.
        MODIFY bbs_fieldtab INDEX sy-tabix.
      ENDIF.
      READ TABLE bbs_fieldtab WITH KEY rfield = 'PPRCTR'.
      IF sy-subrc = 0.
        bbs_fieldtab-rfield = 'SPRCTR'.
        MODIFY bbs_fieldtab INDEX sy-tabix.
      ENDIF.
      READ TABLE bbs_fieldtab WITH KEY rfield = 'BUKRS'.
      IF sy-subrc = 0.
        bbs_fieldtab-rfield = 'RBUKRS'.
        MODIFY bbs_fieldtab INDEX sy-tabix.
      ENDIF.
    * Unicode
      CLASS cl_abap_char_utilities DEFINITION LOAD.
      CLEAR hex00 WITH cl_abap_char_utilities=>minchar.
      CLEAR hexff WITH cl_abap_char_utilities=>maxchar.
    ENDFORM.                               " INIT_VARS
    *       FORM FILL_LISTHEADER                                          *
    *       List-Header in Abhängigkeit der selektierten Daten            *
    FORM fill_listheader.
      READ TABLE i_glpca INDEX 1.
      IF sy-subrc NE 0.
        EXIT.
      ENDIF.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Ledger              '(h01).
      IF cnt_rldnr <= 1.
        t_listheader-info = i_glpca-rldnr.
      ELSE.
        t_listheader-info = '*'.
      ENDIF.
      APPEND t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Kostenrechnungskreis'(h02).
      IF  cnt_kokrs <= 1.
        t_listheader-info = i_glpca-kokrs.
      ELSE.
        t_listheader-info = '*'.
      ENDIF.
      APPEND t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungskreis       '(h03).
      IF cnt_bukrs <= 1.
        t_listheader-info = i_glpca-rbukrs.
      ELSE.
        t_listheader-info = '*'.
      ENDIF.
      APPEND t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungsperiode     '(h04).
      IF cnt_poper <= 1.
        t_listheader-info = i_glpca-poper.
      ELSE.
        t_listheader-info = '*'.
      ENDIF.
      APPEND t_listheader.
      IF cnt_ryear <= 1.
        t_listheader-typ  = 'S'.
        t_listheader-key  = 'Geschäftsjahr       '(h05).
        t_listheader-info = i_glpca-ryear.
        APPEND t_listheader.
      ENDIF.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Version             '(h06).
      IF cnt_rvers <= 1.
        t_listheader-info = i_glpca-rvers.
      ELSE.
        t_listheader-info = '*'.
      ENDIF.
      APPEND t_listheader.
    ENDFORM.                    "fill_listheader
    *&      Form  FIELDCAT_FILL
    *&      Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY,           *
    *&      bzw REUSE_ALV_LIST_DISPLAY,                                    *
    *&      weitere Infos enthält die FktBaustein-Doku                     *
    FORM fieldcat_fill.
      DATA: i TYPE i VALUE 0.
      REFRESH t_fieldcat.
    * Ledger
    *  if cnt_rldnr > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RLDNR'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
    *   afield-key         = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Satzart
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RRCTY'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    * Version
    *  if cnt_rvers > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RVERS'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Periode
    *  if cnt_poper > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'POPER'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Geschäftsjahr
    *  if cnt_ryear > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RYEAR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Referenzbelegtyp
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCCT'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s   = 'Typ'(t01).
      afield-seltext_m   = 'Belegtyp'(t02).
      afield-seltext_l   = 'Ref.Belegtyp'(t03).
      afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
    *  if not show_ref is initial.
      afield-key = 'X'.
    *  else.
    *    afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Referenzbelegnummer
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCNR'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s  = 'Refbeleg'(t04).
      afield-seltext_m  = 'Refbelegnr'(t05).
      afield-seltext_l  = 'Ref.Belegnummer'(t06).
    *  if not show_ref is initial.
      afield-key = 'X'.
    *  else.
    *    afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Referenzbelegzeile
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCLN'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s   = 'Zeile'(t07).
      afield-seltext_m   = 'Belegzeile'(t08).
      afield-seltext_l   = 'Ref.Belegzeile'(t09).
    *  if not show_ref is initial.
      afield-key = 'X'.
    *  else.
    *    afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Belegtyp PCA
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'DOCCT'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '1'.
      afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
    *  if show_ref is initial.
      afield-key = 'X'.
    *  else.
      afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Belegnummer PCA
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'DOCNR'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '1'.
    *  if show_ref is initial.
      afield-key = 'X'.
    *  else.
      afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Belegzeile PCA
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'DOCLN'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '1'.
    *  if show_ref is initial.
      afield-key = 'X'.
    *  else.
      afield-no_out = 'X'.
    *  endif.
      APPEND afield TO t_fieldcat.
    * Kostenrechnungskreis
    *  if cnt_kokrs > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'KOKRS'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Buchungskreis
    *  if cnt_bukrs > 1.
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RBUKRS'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-seltext_s  = 'BuKrs'(b01).
      afield-seltext_m  = 'BuKrs'(b02).
      afield-seltext_l  = 'Empfänger-BuKrs'(b03).
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    *  endif.
    * Profit Center
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RPRCTR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
    * Eliminierungs-Profit-Center
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'EPRCTR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
    * Sender-Profit-Center
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'SPRCTR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
    * Konto
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RACCT'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
      ADD 1 TO i.
    * Kontentext
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RACCT_KTEXT'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'RPCAK'.
      afield-ref_fieldname = 'KTEXT'.
      afield-seltext_s   = 'Kont-txt.'(m11).
      afield-seltext_m   = 'Kontentext'(m12).
      afield-seltext_l   = 'Kontentext'(m13).
      afield-sp_group    = '7'.
      APPEND afield TO t_fieldcat.
      ADD 1 TO i.
    * Statistische Kennzahl
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'STAGR'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '12'.
      APPEND afield TO t_fieldcat.
    * Soll/Haben-Kennzeichen
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'DRCRK'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      APPEND afield TO t_fieldcat.
    * Wert in Profit-Center-Währung
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'KSL'.
      afield-do_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
    *  AFIELD-SELTEXT_S   = 'PrCtr-Hauswhr.'(P01).
    *  AFIELD-SELTEXT_M   = 'PrCtr-Hauswährung'(P02).
    *  AFIELD-SELTEXT_L   = 'Profit-Center-Hauswährung'(P03).
      afield-cfieldname  = 'KSL_CURR'.
      afield-sp_group    = '3'.
      APPEND afield TO t_fieldcat.
    * Währungsschlüssel KSL
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos       = i.
      afield-fieldname     = 'KSL_CURR'.
      afield-ref_tabname   = 'TKA01'.
      afield-ref_fieldname = 'PCACUR'.
      afield-no_sum        = 'X'.
      afield-no_out        = 'X'.
      afield-seltext_s     = 'PrCtrHW'(t10).
      afield-seltext_m     = 'Währungsschl. PrCtrHW'(t11).
      afield-seltext_l     = 'Währungsschl. PrCtrHW'(t12).
      afield-sp_group      = '3'.
      APPEND afield TO t_fieldcat.
    * Betrag in Hauswährung
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'HSL'.
      afield-do_sum      = 'X'.
      afield-no_out      = 'X '.
      afield-ref_tabname = 'GLPCA'.
      afield-cfieldname  = 'HSL_CURR'.
      afield-sp_group    = '4'.
      APPEND afield TO t_fieldcat.
    * Währungsschlüssel Hauswährung
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos       = i.
      afield-fieldname     = 'HSL_CURR'.
      afield-ref_tabname   = 'T001'.
      afield-ref_fieldname = 'WAERS'.
      afield-no_sum        = 'X'.
      afield-no_out        = 'X '.
      afield-seltext_s     = 'BukrW.'(t13).
      afield-seltext_m     = 'Währungsschl. BukrW'(t14).
      afield-seltext_l     = 'Währungsschl. BukrW'(t15).
      afield-sp_group      = '4'.
      APPEND afield TO t_fieldcat.
    * Betrag in Transaktionswährung
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'TSL'.
      afield-no_out      = 'X '.
      afield-ref_tabname = 'GLPCA'.
      afield-cfieldname  = 'RTCUR'.
      afield-sp_group    = '5'.
      APPEND afield TO t_fieldcat.
    * Währungsschlüssel Transaktionswährung
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos       = i.
      afield-fieldname     = 'RTCUR'.
      afield-ref_tabname   = 'GLPCA'.
      afield-ref_fieldname = 'RTCUR'.
      afield-no_sum        = 'X'.
      afield-no_out        = 'X '.
      afield-seltext_s     = 'TW  '(t16).
      afield-seltext_m     = 'Währungsschl. TW'(t17).
      afield-seltext_l     = 'Währungsschl. TW'(t18).
      afield-sp_group      = '5'.
      APPEND afield TO t_fieldcat.
    * Menge
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'MSL'.
      afield-qfieldname  = 'RUNIT'.
      afield-no_out      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group      = '6'.
      APPEND afield TO t_fieldcat.
    * Mengeneinheit
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RUNIT'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group      = '6'.
      APPEND afield TO t_fieldcat.
    * Herkunftsobjektart
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RHOART'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group      = '7'.
      APPEND afield TO t_fieldcat.
    * Funktionsbereich
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RFAREA'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group      = '7'.
      APPEND afield TO t_fieldcat.
    * Objektklasse
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RSCOPE'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group      = '1'.
      APPEND afield TO t_fieldcat.
    * G/L-Vorgang
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'ACTIV'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-seltext_s     = 'Vorg.'(t31).
      afield-seltext_m     = 'Vorgang'(t32).
      afield-seltext_l     = 'Betriebswirt. Vorgang'(t33).
      afield-sp_group      = '1'.
      APPEND afield TO t_fieldcat.
    * Geschäftsbereich
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'GSBER'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group      = '8'.
      APPEND afield TO t_fieldcat.
    * Kostenstelle
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'KOSTL'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '9'.
      APPEND afield TO t_fieldcat.
    * CO-Auftrag
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'AUFNR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '9'.
      APPEND afield TO t_fieldcat.
    * Projekt
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'PSPPP'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-sp_group    = '9'.
      afield-ref_tabname   = 'PRPS'.
      afield-ref_fieldname = 'POSID'.
      APPEND afield TO t_fieldcat.
    * Debitor
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'KUNNR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-seltext_s   = 'Debitor'(d01).
      afield-seltext_m   = text-d01.
      afield-seltext_l   = text-d01.
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    * Customer Name
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'C_NAME1'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'KNA1'.
      afield-no_out      = 'X'.
      afield-seltext_s   = 'Customer Name'.
      afield-seltext_m   = 'Cust Name'.
      afield-seltext_l   = 'C Name'.
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    * Kreditor
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'LIFNR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-seltext_s   = 'Kreditor'(k01).
      afield-seltext_m   = text-k01.
      afield-seltext_l   = text-k01.
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    * Vendor name
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'NAME1'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'LFA1'.
      afield-no_out      = 'X'.
      afield-seltext_s   = 'Vendor Name'(v01).
      afield-seltext_m   = text-v01.
      afield-seltext_l   = text-v01.
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    * Withholding tax rate
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'V_RATE'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'WITH_ITEM'.
      afield-no_out      = 'X'.
      afield-seltext_s   = 'Withholding tax rate'.
      afield-seltext_m   = 'With. tax rate'.
      afield-seltext_l   = 'W. Tax rate'.
      afield-sp_group    = '8'.
      APPEND afield TO t_fieldcat.
    * Withholding Tax Base Amount
      ADD 1 TO i.
      CLEAR afield.
      afield-col_pos     = i.
      afield-fieldname   = 'QSSHB'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = '

    Hi pavan.
    something is definitely wrong with your code: You have an internal table for display with fields from rpca 2 and additional some more fields. I do not see a field ORT01 for CITY or PSTLZ for POSTAL CODE, at least to in table GLPCA from where the data are extracted.
    You must fill PSTLZ and ORT01 (if it is for the supplier):
         SELECT SINGLE * FROM LFA1
             WHERE LIFNR = <glpca>-LIFNR AND
             SPRAS = SY-LANGU.
         IF SY-SUBRC eq 0.
            <glpca>-name1 = lfa1-name1.
            <glpca>-adrnr = lfa1-adrnr.
            <glpca>-stras = lfa1-stras.
    **** add here: ***
      select single ort01 pstlz
        into corresponding fields of <glpca>
        from adrc
        where adrnr = <glpca>-adrnr.
         ENDIF.
    Make sure that fields ORT01 and PSTLZ are defined for internal table i_glpca.
    Regards,
    Clemens

  • Pointers regarding Currency handling in BI

    Hello All,
    I am having difficulty in getting to grips with how currency is handled in queries.
    There is a vast amount of resource out there but I am just starting out on this road of discovery and am looking for a few basic questions answered and also to be pointed in the right direction towards some good reference material. (the BW305 material does not really go much into currency).
    My ultimate aim is to burst a report based on Sales Office. If the Sales Office is in the UK then the values should be in GBP. If the Sales Office is in Ireland then the values should be in EUR.
    My begining questions are more basic:
    Q1) How does BW store KF's relating to currency e.g Sales Amount. Are they stored in the cube as what? Local currency or document currency?
    Q2) If a report prompts for currency input and I enter EUR, is the exchange rate used for conversion the rate at the time the document was created? Or the rate when the report is run? - this is quite important as my query reports on invoice sales for the past year. EUR/GBP rates have been up/down like crazy this year so using the current exchange rate for an invoice from Jan 2009 would not be a good representation of the sales value
    Q3) I suspect that a decision has to be made at design stage regarding the currency in which values are stored in the cube. A UK company will generally report in GBP. But if the company has an operation in the Eorozone then those invoices will come in Euros. Being the minority they will be converted to GBP when loading to the cube.
    Is my thinnkning on this correct?
    Many thanks in advance to all who take a look at this posting and help.

    Hi,
    I might be able to give you some insight for your doubts.
    Q1) How does BW store KF's relating to currency e.g Sales Amount. Are they stored in the cube as what? Local currency or document currency?
    ANS: It most probably is stored in document currency. It depends on how you are loading the data. Check your amount key figure to see where the currency is being mapped from. Trace it backwards to the datasource to see which currency is stored in the cube/DSO. That will be the currency stored and it varies by design.
    Q2) If a report prompts for currency input and I enter EUR, is the exchange rate used for conversion the rate at the time the document was created? Or the rate when the report is run? - this is quite important as my query reports on invoice sales for the past year. EUR/GBP rates have been up/down like crazy this year so using the current exchange rate for an invoice from Jan 2009 would not be a good representation of the sales value
    ANS: The exchange rates are maintained in the table TCURR. you can update this table from R/3 system regularly or even otherwise. In your query, instead of just having a variable for currency type, you could also have a variable for exchange rate type. In that case, the user can choose an exchange rate type which is the right one for his purpose (eg: as of Jan 2009) and select the target currency. The selected amount in this case would be converted based on the selected exchange rate type and the target currency. This becomes pretty flexible for the users.
    Q3) I suspect that a decision has to be made at design stage regarding the currency in which values are stored in the cube. A UK company will generally report in GBP. But if the company has an operation in the Eorozone then those invoices will come in Euros. Being the minority they will be converted to GBP when loading to the cube.
    Is my thinnkning on this correct?
    ANS: Of course this is a design decision but, the minority currency need not be converted to the general currency during data loading process. In your example, they can be stored as euros itself but, converted to GBPs at run time in the report. This is a better way of handling currency conversions. Think of this also. On the day of data load, if you convert euros to GBPs, it will apply some exchange rate and this might (will) vary after sometime. In that case, you will not be able to get the exact conversion at the time you want to see it.So, it is always a better option to keep the key figures in the same currencies and convert them in the reports.
    Hope these answers are of some help for you.
    Thanks and Regards
    Subray Hegde
    Somehow, the formatting of this message went for a toss.

  • Dunning letter with multi currency

    Hi
    How to set dunning letter with multi currency.I have this customer that have multi currency transaction.How do i set the dunning letter to show multi currency value.Thanks

    hi mohd rizal,
    in dunning note configuration itself set the currency as USD. then it takes the local currency depending on the application. then it works for multiple currency's. bcoz it automatically takes the local currency.
    hope u get what im saying. still u have any doubts, get me back.

  • S_ALR_87012168   currency translation type

    In this report  S_ALR_87012168 - Due Date Analysis for Open Items you can select a translation key  "currency translation type"
    How you know wat is what ? is there a table / transaction where you can see this?

    Hi,
    In this report S_ALR_87012168 - Due Date Analysis for Open Items you can select a Currency & translation key "currency translation type". That means in which currency user want to see the open items of Receivables. You have to mentioned the Translation type also, because the selling rate/buying rate may be different for different currencies. Standard SAP gives a lot of options to select for currency translation type.
    Hope i clarified your doubt.
    Cheers,
    Aparna

  • Clearing foreign currency payments against local currency bank account

    Hi all
    We have foreign currency invoices (eg in USD, EUR) and would like to pay these from a AUD domestic bank account. Is this common practice or does the client need to enter such invoices in their external bank specific terminal to process such payments if they have a domestic currency bank account.
    How does the Electronic bank Statement (which is in AUD) clear these foreign currency invoices (EFT clearing account or suspense account). I presume we would have to post to a suspense account clearing and then do a manual post with clearing after loading the bank statement.  However, the amounts do not balance to zero as i cannot clear items off as they are in different document currencies as noted below.
    INVOICE
    cr vendor  100USD   200AUD - cleared by payment program
    dr expense 100USD   200AUD
    PAYMENT PROGRAM
    cr Sus clg 100USD   210AUD
    dr vendor  100USD   200AUD - Cleared by payment program
    dr FX g/l    0USD    10AUD
    ELECT. BANK STATEMENT
    dr Sus clg 205AUD
    cr Cash    205AUD
    What would be the standard approach for such postings from an SAP bank accounting functionality point of view.
    Is there a better way of design the above payment process.

    Hi,
    this is a hard task.
    You have to play with the GL account master data. See documentation for field "Only balances in local crcy". It is quite good described for the clearing in foreign currencies.
    Also I have some doubts that there were settings in FI for foreign currencies clearing, but I have never customize it.
    Hope I helped you (if so... points reward would be highly appreciated )
    Regards,
    Alex

  • Interview questions Doubts

    Hi friends,
    I got some interview questions please any body answer this questions,thanks for advance.
    What is table partition?
    2. What are the options available in transfer rule and when ABAP code is recquired during the transfer rule what important variables you can use?
    3. How would you optimize the dimensions?
    4. What are the conversion routines for units and currencies in the update rule?
    5. Can you make an infoobject as info provider and why?
    6. What are the steps to unload non cumulative cubes?
    7. Give step to step approach to archiving cubex.
    8. What are the load process and post processing.
    9. What are the data target administration task
    10. What are the parallel process that could have locking problems
    11. How would you convert a info package group into a process chain?
    12. How do you transoform Open Hub Data?
    13. What are the data loading tuning one can do?
    thanks for advance,
    bye
    habeeb

    sb92075 wrote:
    PC wrote:
    hi,
    Plz clear some doubts.In 1 interview below questions were asked to me..I would not work for any company where RBO was still be used.
    V9 Oracle was last version to include RBO & V9 has been obsoleted this whole Century.So, I should resign from my employer of 17 years because we still have a couple of applications that use RBO, I can just hear the exit interview now :-)
    In case you are wondering, one of the applications that uses RBO is on 10.2.0.3, and the other is 9.2.0.8
    John

  • Reclassification of Customer & Vendor Balances in Group Currency

    Hello
    It is with regards to the Reclassification of Customer & Vendor
    Balances vide T Code FAGLF101 - Sorting/Reclassification (New) as per
    IFRS.
    The reclassification entries are getting generated in Document & Local
    Currency but no values are getting accounted in Group Currency. The
    reclassification entries should also get accounted in Group Currency.
    We had also implemented following notes related to the same but were
    unable to get the required results.
    1365637 - FAGLF101: Transaction currency amount in postings
    1463016 - FAGL_CL_REGROUP: Additional local currencies (re-
    measurement)
    1493437 - FAGLF101/FAGL_CL_REGROUP: Additional local currencies
    Can some one please comment why the entries are not be flowing in Group
    currency in IF ledger. OR are there any additional notes need to be
    implemented.
    Regards
    Atul

    Hi Atul............
    This language seems you are asking your doubts related to some other version of SAP and this is SAP Business One Forum.
    You are requested to post your question to correct forum because unfortunately you can not get any help from this forum.
    And if you have the other doubts regarding same version then please close all those threads and post it to right one....
    Regards,
    Rahul

  • GL Master - Only Balances in Local Currency

    I am curious when to check the 'Only Balances in Local Currency' (OBILC) box on a Open Item GL.  I've read information from multiple sources and interpret that it should be set on all OI accounts with a few exceptions like recon accounts for vendors and customers.  In my past experience OBILC was checked for most open item accounts but the company I'm currently with has the opposite logic.  With the box not checked, the clearing is process is quite complex and time-consuming.  We are on the classic ledger in 6.0 and have companies in multiple local currencies with group currency of USD.  Just looking for input because I'm doubting my interpretation of when to check this box.
    As an example, the GL would be an AP accrual account with postings in multiple doc currencies.  The company code local currency is MXN, and Group Currency is USD.  Should the OBILC be checked?
    Any input is appreciated.

    Hi,
    'Only Balances in Local Currency' (OBILC) is used when you do not want any foreign excange difference to be posted at the time of clearing. When this indicator is active, then the balances in database tables are updated in local currency only and thus the clearing can happen in local currency only.
    In your below example scenario, you can chosse not to activate this check OBILC, if your company is not interested in doing foreign currency valuation difference posting.
    Regards,
    SDNer

Maybe you are looking for