Customizing CO-PA Account-Based Extractor

A requirement exists to customize our Account-Based CO-PA extractor. The Costing-Based extractor has been customized/appended but some team members have suggested that AB-PA extractor should not be. These would all be characteristics. Is there a problem with adding fields to this extractor - and if so, why? Any differences from adding to the Costing-Based? Thanks.

Don,
CE1 and CE2 tables are the ones to store actual line items and plan line items. I am pasting the relevant para from SAP help at the bottom of my msg.
Reg your other question, what level of summarization your users are talking about?
Ravi Thothadri
Physical Structure of the Data in CO-PA
The following sections describe the detailed physical structure of the data (physical insertion sequence) and the typical accesses of the dataset.
In the section Physical Distribution of the Data in CO-PA, we will propose a way to distribute the data effectively over larger areas (table spaces, hard drives, striping, and so on).
Documents
Actual line items are stored in table CE1xxxx (where xxxx = operating concern). The system inserts into this table on an ongoing basis (sorted according to time stamp of the insertion point).
In drilldown reporting, cost center assessment, etc., the system accesses the data by this time stamp. Thus the physical insertion sequence corresponds to the typical read access method.
Plan line items are stored similarly in table CE2xxxx and are accessed in the same way. Consequently, this table will not be referred to separately in the following.
Segment Level
The segment level -- CE3xxxx -- contains the data in its first summarized form. The profitability segment number and the period are key fields (along with additional technical fields: plan version, record type, plan/actual indicator, etc.). The data part consists of the value fields.
The data in the segment level is typically sorted by period when it is created (INSERT) and updated during the period. That is, the insertion sequence depends on the random order in which the business transactions occurred and is only sorted roughly according to period (or period block PERBL).
The typical queries search in the segment level with a few (approximately 100) fixed segment numbers (WHERE PAOBJNR IN <List> ...) and a condition of time (... AND PERBL IN ...). Thus the physical insertion sequence does not correspond to the typical read access sequence! The segment level is always accessed via the primary index CE3xxxx__0.
Segment Table
The segment table CE4xxxx contains a unique profitability segment number (the primary key) for each combination of characteristic values (data part) to which data has been posted.
The records are inserted in the order of the profitability segment numbers (albeit only approximately, due to buffering of the segment number assignment on the application servers) and are practically never changed.
Selections from the segment table can generally be divided into two groups:
Selections of large data volumes for drilldown reporting, planning or cost center assessment
Here the system finds all the profitability segment numbers whose combination of characteristic values meets a specified condition (e.g. in a drilldown report). If a suitable index exists, the system uses it to access table CE4xxxx. In that case the access does not correspond to the physical insertion sequence. If no suitable index exists, the system selects using the primary index. To read about how you can improve performance for this type of access, see Physical Distribution of the Data in CO-PA.
Determination of a profitability segment number based on the known combination of characteristics
In this case the system finds the profitability segment number when the values of all characteristics are known. To read about how you can improve performance for this type of access, see Index Support for Determination of Segment Numbers.

Similar Messages

  • CO -PA Account based extractor

    Hello
    We want to create a CO -PA Account based extractor delta. We have created the summarization levels (KEDV) and tried fill it with Data (KEDU). The problem is that this process takes too much. It spends too time and reach the time out for the machine. How may I optimized this time?  Is it true that  we must run this transaction before each load in BW not only for BW Full load but BW Delta load by CO -PA Account extractor?
    Thanks.

    Hello
    We want to create a CO -PA Account based extractor delta. We have created the summarization levels (KEDV) and tried fill it with Data (KEDU). The problem is that this process takes too much. It spends too time and reach the time out for the machine. How may I optimized this time?  Is it true that  we must run this transaction before each load in BW not only for BW Full load but BW Delta load by CO -PA Account extractor?
    Thanks.

  • COPA account based extractor (Bill type field FKART) missing

    Hello Experts,
    I am new to COPA and currently working on account based COPA DataSource on ECC 6.0 & BI 7.0.
    I have created the DataSource in KEB0 for account based by selecting the appropriate operating concern. One of the field requirements for me is to have billing doc type but it is not available in KEB0 or in RSA6.
    When checked in KEA0 billing type (FKART) is available as display fixed fields.
    Main menu -> extras -> display fixed fields.
    Could you please let me know how to get this part of my DataSource?
    Does enhancing the DataSource is only the solution?
    Highly appreciate your help.
    Best Regards
    VJ

    Hi Vijay!
    If your current scenario does not present you with the standard extractor from the source system, perhaps you should try to create a generic datasource for your business requirements.

  • Liquidity planner customer / vendor / gl account based query

    Hi gurus ;
    My client want to see cash flows  at customer , vendor and gl account base.  Are there any way to classify query results for customer , vendor and gl accounts.
    Thanks ;
    Koray

    Hi,
    As a standard solution, you need to define Planning Group in such a way which will give direct difference to Vendor/Customer records. As a result the CM settings can also be configured seperately for different Planning Groups.
    Liquidity Planner will show the balance in drill down layout with different Planning Group also.
    Regards
    prasad

  • COPA Costed and Account based

    Hi Experts,
    I have running In BW, PA Costed based, and now I need activate PA accounted based extractor.
    a) does somebody have any doc or  how-to papers, specific about COPA Accounted?
    b) can will appear any issue or problem  about my current PA costed based loads?
    c) how can I see with pa model (costed or account based)  is running in the R/3 instalation?
    Thank you in adavance!

    Hi,
    Costing-based Profitability Analysis is the form of profitability analysis that groups costs and revenues according to value fields and costing-based valuation approaches, both of which you can define yourself. It guarantees you access at all times to a complete, short-term profitability report.
    Account-based Profitability Analysis is a form of profitability analysis organized in accounts and using an account-based valuation approach. The distinguishing characteristic of this form is its use of cost and revenue elements. It provides you with a profitability report that is permanently reconciled with financial accounting
    Hope this helps
    Regards,
    Aparna

  • Please tell me a BAPI to get Closing balance of customer account based on Sales Organization?

    Hi Experts,
    A requirement has come up where I want to get Customer closing balance based on its sales organization as this particular customer is extented to 2 different sales organizations. I want to get the closing balance of individual sales organization vise.
    Please tell me a BAPI to get Closing balance of customer account based on Sales Organization?

    AFAIK there is no such BAPI, cause there is no database table with balance for customer per sales organisation. (No KNCx table for VKORG)
    First ask functionals (*) how to recover sales organisation from a FI document (I suppose for SD invoice it is easy if no merging between organisation) will be a little tricker for pure FI document like payment transactions (hope thet are quickly cleared...)  Then start from non cleared records of BSID (also BSAD if you use a past date of reference, in case you have to add the records of BSAD with clearing date greater than reference date) and cross it with SD information to break FI into sales organisation.
    Regards,
    Raymond
    (*) Ask for where do they store VKORG in FI documents

  • COPA extractor : account based vs cost based

    Hello
    Can you please give me an example of typical extractor output for account based and cost based models.
    Wha are the difference between different model types?  Please answer with your own words rather then with copy-paste.
    Is it the same principle like account based and key figure based in planning?
    Edited by: Comandante Che Guevara on Jun 1, 2009 10:43 AM

    no answer

  • Account based co-pa extractor

    Hi,
      I've a problem with the Account based copa extractor. The extractor is working fine. But instead of splitting the data into data packets, it is getting all the data in one data packet and creating lot of memory issues. I changed the parameters in idocparams, info package etc. But nothing is working. The packet size is working for full load and delta init but not for delta.
    Any idea why it is not working for delta?
    Thanks,
    Trinadha

    Hi Manfred,
      It is working fine for init-load and full load. Not working only for Delta. Any Idea? Can you please give me your Plug-in level, support pack etc.
      We are using the extractor created with old plug-in. We didn't change them to new generic extract.
       It working fine for cost based copa.But, it is not working for Account based copa.
      We are at BW 3.1C and plug-in 2004.1. I beleive it is independent of BW version.
    Thanks,
    Trinadha
    Message was edited by: Trinadha Pattem

  • What is the best way, while creating Function Module based extractor

    Hi Friends,
    I am Sreekanth.
    I have created a Functio Module based Extractor,
    To fetch data from COPA tables.
    In this extracton 3 tables are getting involved.
    1) CE3OP01 2) CE4OP01 and 3) CE1OP01.
    Logic required is as follow:
    1) get data from CE3OP01 and for all entries of this data set,
    get data from CE4OP01 and CE1OP01 and finally send the data set to BW after few manupulations.
    I have implemented the whole logic and its working fine in DEVELOPMENT box where data volume is less.
    But the same code is timing out in Quality Box, due to huge volues of data.
    Below I am copying the code that i am using . Any body can suggest me how to proceed further so that my code works with huge volumes of data.
    Now I am getting the time out error while selection data from CE3IOP01 table itself.
    FUNCTION /ds1/c_bw_zds_copa_recon.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  /DS1/FI_COPA_RECN OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
                            PROGRAM INFORMATION                          *
    RIEF ID.......: N/A                                                  *
    PROGRAM.......: /DS1/C_BW_ZDS_COPA_RECON               
    PROGRAM FUNCTION: This Function Module Extracts Cost Center, Company *
    Code, and all Amount fields form CE3OP01 table and  sectaktbo       "
    *     Current profitability segment (CO-PA)                          *
         paobjnr     "     Profitability Segment Number (CO-PA)       *
         pasubnr     "     Profitability segment changes (CO-PA)      *
         bukrs            "     Company Code
         kndnr       "     Customer from CE4Op01 table.               *
    Segrigate one record from CE3Op01 into 93 based on Value fields.    *
    PROGRAM TYPE..Function Module                                        *
    DEV. CLASS..../DS1/MI_01                                             *
    LOGICAL DB.... N/A                                                   *
                   Conventions used in the Program                       *
    *     global variables      --> g_*                                    *
    *     local variables       --> l_*                                    *
    *     constants             --> c_*                                    *
    *     internal tables       --> t_*                                    *
    *     structures            --> x_*                                    *
    *     parameters            --> p_*                                    *
    *     select-options        --> s_*                                    *
    *     ranges                --> r_*                                    *
    *     workarea          --> w_*                                    *
    *     field symbol            --> fs_*                                   *
    Declaration for Interface: Selection criteria
      STATICS: s_s_if TYPE srsc_s_if_simple,
    Maximum number of lines for DB table
      ls_s_if TYPE srsc_s_if_simple, "Static Structure
    counter
              ls_counter_datapakid LIKE sy-tabix,"Static Counter
    cursor
              ls_cursor TYPE cursor,"Static Cursor.
              ls_cursor1 TYPE cursor."Static Cursor.
    *CONSTANTS
      CONSTANTS:  lc_datasource TYPE char14 VALUE 'ZDS_COPA_RECON',
                                                 " Data Source Name
                  lc_msgtype TYPE char1 VALUE 'E',  "message type
                  lc_msgcls  TYPE char2 VALUE 'R3', "message class
                  lc_msgnum  TYPE char3 VALUE '009',"Message Number.
                  lc_001 TYPE char3 VALUE '001',
                  lc_b0 TYPE char2 VALUE 'B0',
                  lc_10 TYPE char2 VALUE '10',
                  lc_01 TYPE char2 VALUE '01',
                  lc_02 TYPE char2 VALUE '02',
                  lc_1 TYPE sy-tabix VALUE 1.
    *Data Declaration.
      DATA: lt_ce3op01  TYPE STANDARD TABLE OF x_ce3op01,
            " Internal table for ce3op01
            lt_ce3op02  TYPE STANDARD TABLE OF x_ce3op01,
            lt_ce4op01  TYPE STANDARD TABLE OF x_ce4op01,
            " Internal table for ce4op01
            lw_ce3op01  TYPE x_ce3op01,
            " Work area for ce3op01
            lw_ce3op02  TYPE x_ce3op01,                         "MOD-002
            lw_ce4op01  TYPE x_ce4op01,
            " Work area for ce4op01
            lw_e_t_data TYPE /ds1/fi_copa_recn,
      " Work area for /ds1/fi_copa_recn.
    *CE1op01
      lt_ce1op01 TYPE STANDARD TABLE OF x_ce1op01,"Internaltable
      lw_ce1op01 TYPE x_ce1op01,"Work area for CE1op01.
    **CE1op01
      lt_fldlist TYPE STANDARD TABLE OF lx_fldlist, "fields list
      lw_fldlist TYPE lx_fldlist,"  FIELDS list work area
      lt_flnmval TYPE STANDARD TABLE OF lx_flnmval,"table for splitting
      lw_flnmval TYPE lx_flnmval,"work area for spilitting
      l_index TYPE i VALUE 1, "to keep track of index.
      l_len   TYPE i,
      l_s_no_recs   TYPE sy-tabix VALUE 99,
      l_s_loop_from        TYPE sy-tabix,     "from "MOD-002
      l_s_loop_to          TYPE sy-tabix,                       "to"MOD-002
      l_norecs             TYPE sy-tabix,                       "MOD-002
      l_count              TYPE sy-tabix.                       "MOD-002
    *Field Symbols.
      FIELD-SYMBOLS:
         <fs_flnmval> TYPE lx_flnmval."Field symbol for fild values
    Selection Ranges
      RANGES:  lr_bukrs      FOR ce4op01-bukrs, " Range for company code
      lr_versi      FOR ce3op01-versi," Range for version
      lr_paledger   FOR ce3op01-paledger,"Range for paledger
      lr_vrgar      FOR ce3op01-vrgar,"Range for vrgar
      lr_gjahr      FOR ce3op01-gjahr,"Range for Fiscal year
      lr_perbl      FOR ce3op01-perbl."Range for perbl
    Initialization mode (first call by SAPI) or data transfer mode
      IF i_initflag = sbiwa_c_flag_on.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        IF ls_counter_datapakid = 0.
          CASE i_dsource.
            WHEN lc_datasource.
            WHEN OTHERS.
              IF 1 = 2. MESSAGE e009(r3). ENDIF.                "#EC *
    this is a typical log call. Please write every error message like this
              log_write lc_msgtype "'E'                  "message type
                        lc_msgcls  "'R3'                 "message class
                        lc_msgnum  "'009'                "message number
                        i_dsource   "message variable 1
                        ' '.                 "message variable 2
              RAISE error_passed_to_mess_handler.
          ENDCASE.
          APPEND LINES OF i_t_select TO s_s_if-t_select.
          APPEND LINES OF i_t_fields TO s_s_if-t_fields.
    Fill parameter buffer for data extraction calls
          ls_s_if-requnr    = i_requnr.
          ls_s_if-dsource   = i_dsource.
          ls_s_if-maxsize   = i_maxsize.
          ls_s_if-initflag  = i_initflag.
      Company Code
          LOOP AT s_s_if-t_select  INTO  i_t_select WHERE fieldnm = c_bukrs.
            MOVE: i_t_select-sign   TO lr_bukrs-sign,
                  i_t_select-option TO lr_bukrs-option,
                  i_t_select-low    TO lr_bukrs-low,
                  i_t_select-high   TO lr_bukrs-high.
            APPEND lr_bukrs.
          ENDLOOP.
    *Version (0)
    *SRSC_S_IF_SIMPLE-T_SELECT
          LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_versi.
       LOOP AT i_t_select  INTO  s_s_if-t_select WHERE fieldnm = c_versi.
            MOVE: i_t_select-sign   TO lr_versi-sign,
                  i_t_select-option TO lr_versi-option,
                  i_t_select-low    TO lr_versi-low,
                  i_t_select-high   TO lr_versi-high.
            APPEND lr_versi.
          ENDLOOP.
    *Currency Type (company code only)
         LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_paledger.
            MOVE: i_t_select-sign   TO lr_paledger-sign,
                  i_t_select-option TO lr_paledger-option.
            IF i_t_select-low = lc_b0.
              MOVE lc_01 TO lr_paledger-low.
            ELSEIF  i_t_select-low = lc_10.
              MOVE lc_02 TO lr_paledger-low.
            ENDIF.
            APPEND lr_paledger.
          ENDLOOP.
    *Record Type
          LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_vrgar.
            MOVE: i_t_select-sign   TO lr_vrgar-sign,
                  i_t_select-option TO lr_vrgar-option,
                  i_t_select-low    TO lr_vrgar-low,
                  i_t_select-high   TO lr_vrgar-high.
            APPEND lr_vrgar.
          ENDLOOP.
    *Fiscal Year
          LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_gjahr.
            MOVE: i_t_select-sign   TO lr_gjahr-sign,
                  i_t_select-option TO lr_gjahr-option,
                  i_t_select-low    TO lr_gjahr-low,
                  i_t_select-high   TO lr_gjahr-high.
            APPEND lr_gjahr.
          ENDLOOP.
    *Period Block/Year
          LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_perbl.
            MOVE: i_t_select-sign   TO lr_perbl-sign,
                  i_t_select-option TO lr_perbl-option,
                  i_t_select-low    TO lr_perbl-low,
                  i_t_select-high   TO lr_perbl-high.
            APPEND lr_perbl.
          ENDLOOP.
    *Value Field Name.
          LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_fldnm.
            MOVE:
            i_t_select-sign   TO gr_zfldnm-sign,
            i_t_select-option TO gr_zfldnm-option,
            i_t_select-low   TO gr_zfldnm-low,
            i_t_select-high   TO gr_zfldnm-high.
            APPEND gr_zfldnm.
          ENDLOOP.
    First data package -> OPEN CURSOR
          IF ls_counter_datapakid = 0.
    *Create 93 Field names in an internal table.
         MOVE 'VV010' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV011' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV012' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV013' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV014' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV015' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV016' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV020' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV021' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV030' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV031' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV032' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV033' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV034' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV035' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV200' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV201' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV202' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV203' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV036' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV037' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV038' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV039' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV040' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV041' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV042' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV043' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV204' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV205' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV211' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV212' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV213' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV222' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV223' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV230' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV232' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV233' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV500' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV501' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV502' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV503' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV504' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV505' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV506' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV507' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV508' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV509' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV510' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV511' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV512' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV513' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV514' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV515' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV516' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV517' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV518' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV519' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV520' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV236' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV206' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV051' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV052' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV053' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV054' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV055' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV056' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV057' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV058' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV059' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV060' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV241' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV242' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV243' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV244' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV245' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV246' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV247' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV248' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV249' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV250' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV521' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV522' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV523' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV524' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV525' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV526' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV527' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV528' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV529' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV530' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV227' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV226' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
         MOVE 'VV224' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
            OPEN CURSOR WITH HOLD ls_cursor FOR
                 SELECT
                 paobjnr      " Profitability Segment Number (CO-PA)
                 paledger     " Currency type for an operating concern
                 vrgar        " Record Type
                 versi        " Plan version (CO-PA)
                 gjahr            " Fiscal Year
                 perbl            " Fiscal year/period block
                 pasubnr
                 vv010001     " List Price
                 vv011001     " Formula Price
                 vv012001     " Customer Price
                 vv013001     " Manual Price
                 vv014001     " Retail Pump Price
                 vv015001     " Markup
                 vv016001     " Net Proceeds Other
                 vv020001     " Excise Duty Offset
                 vv021001     " Duties & Government
                 vv030001     " Sales Discounts
                 vv031001     " Sales Surcharges
                 vv032001     " Sales Rebates
                 vv033001     " Agents Comm Paid
                 vv034001     " RBA CR Royalties
                 vv035001     " Other Revenues
                 vv200001     " Transfer PriceSupply
                 vv201001     " Prim Tran Tariff Sup
                 vv202001     " S&Handling TariffDis
                 vv203001     " Sec Trans Tariff Dis
                 vv036001     " Proceeds from Servic
                 vv037001     " Exchanges
                 vv038001     " Throughput fees
                 vv039001     " Output Tax Offset
                 vv040001     " CR comm & Oth Oil Pr
                 vv041001     " Supplier fees
                 vv042001     " RBA Fairshare Adjust
                 vv043001     " Contr Comm Paid IG
                 vv204001     " Sec Tran Tariff Supp
                 vv205001     " Comp Stock Obligatio
                 vv211001     " Prim Tran Tar Transf
                 vv212001     " S&Handling Tar Trans
                 vv213001     " Sec Trans TariffTran
                 vv222001     " DIS:S&Handl Tar OvUn
                 vv223001     " DIS:Sec Tr TarifOvUn
                 vv230001     " Transfer Price LSC
                 vv232001     " S&Handling Tar LSC
                 vv233001     " Sec Trans Tariff LSC
                 vv500001     " 3rd Party Purchases
                 vv501001     " Transf from Oth Sect
                 vv502001     " Purchases IG
                 vv503001     " Inter-Seg Transf Pur
                 vv504001     " Import Freight
                 vv505001     " Stock Variations
                 vv506001     " Other Product Cost
                 vv507001     " Pipeline Operat Exp
                 vv508001     " Primary Transp Expen
                 vv509001     " Manufacturing Expens
                 vv510001     " Supply /Process Exp
                 vv511001     " MK Processing Plants
                 vv512001     " S&Handling Expenses
                 vv513001     " Sec Transp Expenses
                 vv514001     " Point of Sale Expens
                 vv515001     " Contr Comm Rec IG
                 vv516001     " Assoc Inc Dividend
                 vv517001     " Marketing & Sell Exp
                 vv518001     " Other Rev from Dist
                 vv519001     " Other Rev Transferrd
                 vv520001     " Stock Write-Off
                 vv236001     " Oth cost Tar LSC SMP
                 vv206001     " Prim Trp tariff Dist
                 vv051001     " CR Net Turnover
                 vv052001     " Dummy Price 2
                 vv053001     " Dummy Price 3
                 vv054001     " Dummy Price 4
                 vv055001     " Dummy Price 5
                 vv056001     " Dummy Price 6
                 vv057001     " Dummy Price 7
                 vv058001     " Dummy Price 8
                 vv059001     " Dummy Price 9
                 vv060001     " Dummy Price10
                 vv241001     " DummyTariff 1
                 vv242001     " DummyTariff 2
                 vv243001     " DummyTariff 3
                 vv244001     " DummyTariff 4
                 vv245001     " DummyTariff 5
                 vv246001     " DummyTariff 6
                 vv247001     " DummyTariff 7
                 vv248001     " DummyTariff 8
                 vv249001     " DummyTariff 9
                 vv250001     " DummyTariff10
                 vv521001     " SD&A Rebates
                 vv522001     " Dummy Cost 2
                 vv523001     " Dummy Cost 3
                 vv524001     " Dummy Cost 4
                 vv525001     " Dummy Cost 5
                 vv526001     " Dummy Cost 6
                 vv527001     " Dummy Cost 7
                 vv528001     " Dummy Cost 8
                 vv529001     " Dummy Cost 9
                 vv530001     " Dummy Cost 10
                 vv227001     " Sec Tr TarifOvUn LSC
                 vv226001     " S&Handl Tar OvUn LSC
                 vv224001     " Pr Tra TariffOvU DIS
                 FROM ce3op01
                 WHERE   paledger = lc_02 AND
                 vrgar    IN lr_vrgar AND
                 versi    IN lr_versi AND
                 perbl    IN lr_perbl AND
                 gjahr    IN lr_gjahr.
          ENDIF.
    For all other cursors.
          FETCH NEXT CURSOR ls_cursor
              APPENDING TABLE lt_ce3op02
              PACKAGE SIZE ls_s_if-maxsize.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
          SORT lt_ce3op02 BY paobjnr pasubnr paledger vrgar versi gjahr
               perbl.
          DELETE ADJACENT DUPLICATES FROM lt_ce3op02 COMPARING paobjnr.
    *Begin of MODE-002
          DESCRIBE TABLE lt_ce3op02 LINES l_norecs.
          l_s_loop_from = lc_1.
          DO.
            l_s_loop_to = l_s_loop_from + l_s_no_recs.
            LOOP AT lt_ce3op02 INTO lw_ce3op02
            FROM l_s_loop_from TO l_s_loop_to .
              APPEND lw_ce3op02 TO lt_ce3op01.
            ENDLOOP.
            SORT lt_ce3op01 BY paobjnr.
    *End of MOS-002
            SELECT
              aktbo       "     Current profitability segment (CO-PA)
              paobjnr     "     Profitability Segment Number (CO-PA)
              pasubnr     "     Profitability segment changes (CO-PA)
              kndnr       "     Customer
              artnr
              bukrs     "     Company Code
              prctr
              kokrs
           FROM ce4op01
           INTO TABLE lt_ce4op01
           FOR ALL ENTRIES IN lt_ce3op01
           WHERE paobjnr = lt_ce3op01-paobjnr AND
                 pasubnr = lt_ce3op01-pasubnr AND
                 bukrs  IN lr_bukrs.
    *CE1op01
            SELECT
            paledger
            vrgar
            versi
            perio
            paobjnr
            pasubnr
            belnr
            posnr
            rbeln
            rposn
           FROM ce1op01
           INTO TABLE lt_ce1op01
           FOR ALL ENTRIES IN lt_ce3op01
           WHERE paledger = lt_ce3op01-paledger AND
                 vrgar    = lt_ce3op01-vrgar AND
                 versi    = lt_ce3op01-versi AND
                 perio    = lt_ce3op01-perbl AND
                 paobjnr = lt_ce3op01-paobjnr AND
                 pasubnr = lt_ce3op01-pasubnr.
    **CE1op01
            LOOP AT lt_ce3op01 INTO lw_ce3op01.
              MOVE:
              lw_ce3op01-paobjnr   TO lw_flnmval-paobjnr,
             lw_ce3op01-paledger  TO lw_flnmval-paledger,
             lw_ce3op01-vrgar     TO lw_flnmval-vrgar,
                      lw_ce3op01-versi     TO lw_flnmval-versi,
                      lw_ce3op01-gjahr     TO lw_flnmval-gjahr,
                      lw_ce3op01-perbl     TO lw_flnmval-perbl.
    *appending all 93 fields as records
              MOVE lw_ce3op01-vv010001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv011001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv012001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv013001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv014001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv015001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv016001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv020001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv021001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv030001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv031001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv032001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv033001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv034001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv035001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv200001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv201001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv202001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv203001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv036001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv037001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv038001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv039001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv040001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv041001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv042001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv043001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv204001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv205001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv211001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv212001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv213001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv222001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv223001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv230001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv232001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv233001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv500001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv501001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv502001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv503001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv504001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv505001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv506001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv507001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv508001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv509001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv510001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv511001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv512001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv513001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv514001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv515001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv516001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv517001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv518001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv519001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv520001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv236001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv206001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv051001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv052001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv053001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv054001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv055001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv056001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv057001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv058001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv059001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv060001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv241001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv242001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv243001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv244001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv245001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv246001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv247001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv248001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv249001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv250001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv521001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv522001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv523001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv524001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv525001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv526001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv527001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv528001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv529001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv530001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv227001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv226001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
              MOVE lw_ce3op01-vv224001    TO lw_flnmval-zamunt.
              APPEND lw_flnmval TO lt_flnmval.
    *Segrigating all one record into 102 records is complete
            ENDLOOP.
            LOOP AT lt_flnmval ASSIGNING <fs_flnmval>.
              IF l_index > 93.
                l_index = 1.
              ENDIF.
              READ TABLE lt_fldlist INTO lw_fldlist INDEX l_index.
              IF sy-subrc = 0.
                CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                  EXPORTING
                    input  = lw_fldlist-fldnam
                  IMPORTING
                    output = <fs_flnmval>-fldnam.
              ENDIF.
              l_index = l_index + 1.
            ENDLOOP.
            SORT lt_ce4op01 BY paobjnr.
            SORT lt_ce1op01 BY paobjnr  paledger vrgar  versi.
            SORT gr_zfldnm BY low.
            DELETE lt_flnmval WHERE fldnam NOT IN gr_zfldnm.
            LOOP AT lt_flnmval INTO lw_flnmval.
              READ TABLE lt_ce4op01 INTO  lw_ce4op01 WITH KEY
                                 paobjnr = lw_flnmval-paobjnr BINARY SEARCH.
              IF sy-subrc = 0.
                MOVE :   lw_flnmval-paledger  TO lw_e_t_data-paledger,
                         lw_flnmval-vrgar     TO lw_e_t_data-vrgar,
                         lw_flnmval-versi     TO lw_e_t_data-versi ,
                         lw_flnmval-gjahr     TO lw_e_t_data-gjahr,
                         lw_flnmval-perbl     TO lw_e_t_data-perbl,
                         lw_ce4op01-bukrs     TO lw_e_t_data-bukrs,
                         lw_ce4op01-kndnr     TO lw_e_t_data-kndnr,
                         lw_ce4op01-artnr     TO lw_e_t_data-artnr,
                         lw_ce4op01-prctr     TO lw_e_t_data-prctr,
                         lw_ce4op01-kokrs     TO lw_e_t_data-kokrs,
                         lw_flnmval-fldnam   TO lw_e_t_data-zfldnm,
                         lw_flnmval-zamunt   TO lw_e_t_data-zamount.
    CE1op01
                READ TABLE lt_ce1op01 INTO lw_ce1op01 WITH KEY
                            paobjnr = lw_flnmval-paobjnr
                            paledger = lw_flnmval-paledger
                            vrgar  = lw_flnmval-vrgar
                            versi = lw_flnmval-versi BINARY SEARCH.
                IF sy-subrc = 0.
                  MOVE: lw_ce1op01-rbeln  TO lw_e_t_data-rbeln,
                        lw_ce1op01-rposn  TO lw_e_t_data-rposn.
                ENDIF.
    CE1op01
                APPEND lw_e_t_data TO gt_out_data.
              ENDIF.
            ENDLOOP.
    *Begin of MOD-002
            FREE lt_flnmval.
            REFRESH :lt_ce3op01,lt_ce4op01,lt_ce1op01.
            e_t_data[] = gt_out_data[].
            DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
            l_s_loop_from = l_s_loop_to + lc_1.
            l_count = l_count + 20.
            IF l_count GE l_norecs.
              EXIT.
            ENDIF.
          ENDDO.
    *End of MOD-002
          ls_counter_datapakid = ls_counter_datapakid + 1.
        ENDIF.                        "IF S_COUNTER_DATAPAKID = 0
      ELSE.
        IF i_maxsize IS INITIAL.
          RAISE error_passed_to_mess_handler.
        ENDIF.
        IF g_start IS INITIAL.
          g_start = 1.
        ELSE.
          g_start  = g_end + 1.
        ENDIF.
        g_end = g_start + i_maxsize - 1.
    Population of E_T_DATA based on Data records size
        APPEND LINES OF gt_out_data FROM g_start TO g_end TO e_t_data.
        DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
        IF e_t_data[] IS INITIAL.
          RAISE no_more_data.
        ENDIF.
        ls_counter_datapakid = ls_counter_datapakid + 1.
      ENDIF.
    ENDFUNCTION.
    Thanks & regards,
    Sreekanth
    +91 9740091981

    Hello Sreekanth,
    See this blog [Generic Extraction via Function Module|/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module]
    Also see this
    [Line Item Level Data Extraction for Financial Accounting and Controlling|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a7f2f294-0501-0010-11bb-80e0d67c3e4a]
    Thanks
    Chandran

  • Expose Data 0f 1 Custom object group them based on another custom object

    1. Custom Object 2: Call Report
    2. Custom Object 1: Customer
    3. Account:
    Fields: Account
    Account Id
    Call Report
    Created Date
    Row Id
    Subject
    Owner
    Status
    Customer
    Customer Name
    Using Real Time Reporting-> Call Reporting
    Hide Display of Distributor Id, prompt on dashboard
    Need to group customer name based on call report row id.
    Union of 2 reports, we cannot use Account Id as prompt(does not support).
    Report output as below
    Account id1, created date, object, status, owner, Customer name 1
    Customer name 2
    Account id2, created date, object, status, owner, Customer name 6
    Customer name 7
    Account id4, created date, object, status, owner, Customer name 9
    Thanks in Advance.

    Please add a question to your post. It is not clear what output you are trying to achieve that is not working.
    Thanks!

  • CO-PA Account Based enhancement : BELNR-CO

    Hi all,
    I have successfully implemented a CO-PA ETL for both Costing and account based CO-PA in my system.
    I enhanced the costing based Extraction with no major concern.
    However I now wish to enhance the CO-PA Accoutn BAsed, and here I struggle , because I cannot get the controlling document number - part of COEP key - in my extract.
    I need to use this controlling document number in order to conduct some logic in the extraction, but the creation of the account based datasoource in KEB0 does not provide the option to have this field as part of the extract structure ( as a sidenote, it will not be defined in KEQ3 either, as the granularity of the profitability segment would then be to fine)
    ... Any idea on how to collect the CO doc number in this scenario? I am missing something...
    I would very much appreciate some insight from experienced CO-PA - BW community members !
    Cheers
    Patrick

    Patrick,
    The link between COSP / COSS and CE4xxxx is the objnr of the tables COSP / COSS. The first 2 positions = 'EO'. The following positions, the name of the results area and rest of the objnr relates to the PAOBJNR of table CE4xxx. In the table CE4xxxx the field KNT_FRM_KZ = '1'. This means account based CO-PA object.
    For the standard extraction process you don't need to build things between these tables. The extractor knows the relationships already.
    Regards,
    Peter

  • Account Based COPA Cost of goods sold and Revenue Split

    Dear Experts,
    We are using account based copa in a automobile company.
    As per the requirement when a car is sold, depending on the customer request the car  goes for a conversion. like adding Radio, Seat cover, etc
    As per our setup we have different profit centers for vehicle and Parts(radio, seat cover etc) and in this case radio, seat cover, etc are the classes of the material vehicle(not separate material).
    After the vehicle conversion there is a sales order raised which goes to profit center derived from vehicle material master.
    As per the reporting requirement I need to spit the Cost of good sold  and revenue by vehicle profit center and parts profit center for COPA reporting purpose
    Is there any way to do this in standard SAP? Or I need an exit?
    Appreciate your response and please let me know in case of any clarification.
    Many thanks
    Roy
    Edited by: roy001 on Aug 4, 2011 4:52 PM

    For those who may need an answer to this, our solution was the following: 
    1)       Created new types for SO, SO Item, Sched. Line, Delivery, Delivery Item, Billing type  
    2)       Created new Pricing procedure
    3)       Created new movement type Y61/Y62 modeled after 601/602
    4)       Mapped Y61/Y62 to account modifier ZAX.
    5)       Mapped GBB/ZAX to the new account.
    Benefits, they now have better view of the orders going inter-company.  It is flexible enough to adjusting prices for intercompany separate from standard orders, even though for now it is a straight copy of cost.  They are able to remove the sales/use tax, from the calculations. They are able to plan with these orders separated out.  Plus, this will standardize their process for inter-company. 
    Hope this helps someone. 
    Cheers!
    Rick

  • GL account based on account assignment group

    Set the GL account based on the account assignment group of the customer. How is it done?

    hi Zarah,
    in enhacement SAPMF02D you can check if the right recon. account is selected, however you cannot change, but you can issue an error message.
    hope this helps
    ec

  • Account based COPA datsource taking long time to extract data

    Hi
    We have created a Account based COPA datasource but it is not extracting data in RSA3 even though the underlying tables have data in it.
    If the COPA datasource is created using fields only from CE4 (segment ) and not CE1 (line items ) table then it extracts data but tat too after very long time.
    If the COPA datasource is created using fields from CE4 (segment ) and  CE1 (line items ) table then it does not extarct any records and RSA3 gives a time out error..
    Also job scheduled from BW side for extracting data goes on for days but does not fetch any data and neither gives any error.
    The COPA tables have huge amount of data and so performance could be a issue. But we have also created the indexes on them. Still it is not helping.
    Please suggest a solution to this...
    Thanks
    Gaurav

    Hi Gaurav
    Check this note 392635 ,,might be usefull
    Regards
    Jagadish
    Symptom
    The process of selecting the data source (line item, totals table or summarization level) by the extractor is unclear.
    More Terms
    Extraction, CO-PA, CE3XXXX, CE1XXXX, CE2XXXX, costing-based, account-based,profitability analysis, reporting, BW reporting, extractor, plug-in, COEP,performance, upload, delta method, full update, CO-PAextractor, read, datasource, summarization level, init, DeltaInit, Delta Init Cause and Prerequisites
    At the time of the data request from BW, the extractor determines the data source that should be read. In this case, the data source to be used depends on the update mode (full initialization of the deltamethod or delta update), and on the definition of the DataSources (line item characteristics (except for REC_WAERS FIELD) or calculated key figures) and the existing summarization levels.
    Solution
    The extractor always tries to select the most favorable source, that is,the one with the lowest dataset. The following restrictions apply:
    o Only the 'Full' update mode from summarization levels is
    supported during extraction from the account-based profitability
    analysis up to and including Release PI2001.1. Therefore, you can
    only everload individual periods for a controlling area. You can
    also use the delta method as of Release PI2001.2. However, the
    delta process is only possible as of Release 4.0. The delta method
    must still be initialized from a summarization level. The following
    delta updates then read line items. In the InfoPackage, you must
    continue to select the controlling area as a mandatory field. You
    then no longer need to make a selection on individual periods.
    However, the period remains a mandatory field for the selection. If
    you do not want this, you can proceed as described in note 546238.
    o To enable reading from a summarization level, all characteristics
    that are to be extracted with the DataSource must also be contained
    in this level (entry * in the KEDV maintenance transaction). In
    addition, the summarization level must have status 'ACTIVE' (this
    also applies to the search function in the maintenance transaction
    for CO-PA data sources, KEB0).
    o For DataSources of the costing-based profitability analysis,
    30.03.2009 Page 2 of 3
    SAP Note 392635 - Information: Sources with BW extraction from the CO-PA
    data can only be read from a summarization level if no other
    characteristics of the line item were selected (the exception here
    is the 'record currency' (REC_WAERS) field, which is always
    selected).
    o An extraction from the object level, that is, from the combination
    of tables CE3XXXX/CE4XXXX ('XXXX' is the name of the result area),
    is only performed for full updates if (as with summarization
    levels) no line item characteristics were selected. During the
    initialization of the delta method this is very difficult to do
    because of the requirements for a consistent dataset (see below).
    o During initialization of the delta method and subsequent delta
    update, the data needs to be read up to a defined time. There are
    two possible sources for the initialization of the delta method:
    - Summarization levels manage the time of the last update/data
    reconstruction. If no line item characteristics were selected
    and if a suitable, active summarization level (see above)
    exists, the DataSource 'inherits' the time information of the
    summarization level. However, time information can only be
    'inherited' for the delta method of the old logic (time stamp
    administration in the profitability analysis). As of PlugIn
    Release PI2004.1 (Release 4.0 and higher), a new logic is
    available for the delta process (generic delta). For
    DataSources with the new logic (converted DataSources or
    DataSources recreated as of Plug-In Release PI2004.1), the line
    items that appear between the time stamp of the summarization
    level and the current time minus the security delta (usually 30
    minutes) are also read after the suitable summarization level
    is read. The current time minus the security delta is set as
    the time stamp.
    - The system reads line items If it cannot read from a
    summarization level. Since data can continue to be updated
    during the extraction, the object level is not a suitable
    source because other updates can be made on profitability
    segments that were already updated. The system would have to
    recalculate these values by reading of line items, which would
    result in a considerable extension of the extraction time.
    In the case of delta updates, the system always reads from line
    items.
    o During extraction from line items, the CE4XXXX object table is read
    as an additional table for the initialization of the delta method
    and full update so that possible realignments can be taken into
    account. In principle, the CE4XXXX object table is not read for
    delta updates. If a realignment is performed in the OLTP, no
    further delta updates are possible as they would make the data
    inconsistent between OLTP and BW. In this case, a new
    initialization of the delta method is required.
    o When the system reads data from the line items, make sure that the
    30.03.2009 Page 3 of 3
    SAP Note 392635 - Information: Sources with BW extraction from the CO-PA
    indexes from note 210219 for both the CE1XXXX (actual data) and
    CE2XXXX (planning data) line item tables have been created.
    Otherwise, you may encounter long-running selections. For
    archiving, appropriate indexes are delivered in the dictionary as
    of Release 4.5. These indexes are delivered with the SAP standard
    system but still have to be created on the database.

  • Generating Supplier Liability Account based on the Supplier Classification

    Hi ,
    In R12 I have a custom requirement like follows. Need to generate the Supplier Liability Account based on the Supplier Classification. When we select supplier type then by default liabilty account value will be the value from supplier--> setup --> options --> fianancial otpions --> accounting tab (GL -accounts liability value).
    so when we change the supplier type the liability account should changed based on that classification value.
    I have code in 11i where custom.pll was modified to acheive this, but how to implement this in R12 as supplier form is OAF based.
    the code from custom.pll for this is
    procedure event(event_name varchar2)
    is
    lCurrBlock varchar2(30);
    lVendorType varchar2(30);
    lDefaultCCID number(15);
    lCustomCCID number(15);
    cursor customCC(x_vendor_type varchar2,x_default_cc_id number) is
                   select
                   cst.code_combination_id
                   from
                   fnd_lookup_values vty,
                   gl_code_combinations dfl,
                   gl_code_combinations cst
                   where 1=1
                   and vty.view_application_id = 201
                   and vty.lookup_type = 'VENDOR TYPE'
                   and vty.language = 'US'
                   and vty.lookup_code = x_vendor_type
                   and dfl.code_combination_id = x_default_cc_id
                   and dfl.segment1 = cst.segment1
                   and vty.tag = cst.segment2 --account no
                   and dfl.segment3 = cst.segment3
                   and dfl.segment4 = cst.segment4
                   and dfl.segment5 = cst.segment5
                   and (dfl.segment6 = cst.segment6 or (dfl.segment6 is null and cst.segment6 is null))
                   and (dfl.segment7 = cst.segment7 or (dfl.segment7 is null and cst.segment7 is null))
                   and (dfl.segment8 = cst.segment8 or (dfl.segment8 is null and cst.segment8 is null))
                   and (dfl.segment9 = cst.segment9 or (dfl.segment9 is null and cst.segment9 is null))
                   and (dfl.segment10 = cst.segment10 or (dfl.segment10 is null and cst.segment10 is null))
                   and (dfl.segment11 = cst.segment11 or (dfl.segment11 is null and cst.segment11 is null))
                   and (dfl.segment12 = cst.segment12 or (dfl.segment12 is null and cst.segment12 is null))
                   and (dfl.segment13 = cst.segment13 or (dfl.segment13 is null and cst.segment13 is null))
                   and (dfl.segment14 = cst.segment14 or (dfl.segment14 is null and cst.segment14 is null))
                   and (dfl.segment15 = cst.segment15 or (dfl.segment15 is null and cst.segment15 is null))
                   and (dfl.segment16 = cst.segment16 or (dfl.segment16 is null and cst.segment16 is null))
                   and (dfl.segment17 = cst.segment17 or (dfl.segment17 is null and cst.segment17 is null))
                   and (dfl.segment18 = cst.segment18 or (dfl.segment18 is null and cst.segment18 is null))
                   and (dfl.segment19 = cst.segment19 or (dfl.segment19 is null and cst.segment19 is null))
                   and (dfl.segment20 = cst.segment20 or (dfl.segment20 is null and cst.segment20 is null))
                   and (dfl.segment21 = cst.segment21 or (dfl.segment21 is null and cst.segment21 is null))
                   and (dfl.segment22 = cst.segment22 or (dfl.segment22 is null and cst.segment22 is null))
                   and (dfl.segment23 = cst.segment23 or (dfl.segment23 is null and cst.segment23 is null))
                   and (dfl.segment24 = cst.segment24 or (dfl.segment24 is null and cst.segment24 is null))
                   and (dfl.segment25 = cst.segment25 or (dfl.segment25 is null and cst.segment25 is null))
                   and (dfl.segment26 = cst.segment26 or (dfl.segment26 is null and cst.segment26 is null))
                   and (dfl.segment27 = cst.segment27 or (dfl.segment27 is null and cst.segment27 is null))
                   and (dfl.segment28 = cst.segment28 or (dfl.segment28 is null and cst.segment28 is null))
                   and (dfl.segment29 = cst.segment29 or (dfl.segment29 is null and cst.segment29 is null))
                   and (dfl.segment30 = cst.segment30 or (dfl.segment30 is null and cst.segment30 is null));
    begin
         if name_in('SYSTEM.CURRENT_FORM') != 'APXVDMVD' then
              return;
         end if;
         lCurrBlock := name_in('SYSTEM.CURSOR_BLOCK');
         if event_name = 'WHEN-NEW-FORM-INSTANCE' then
         --     app_item_property.set_property('VNDR.VENDOR_TYPE_DISP_MIR',required,property_true);
              copy(name_in('WORLD.ACCTS_PAY_CODE_COMBINATION_ID'),'GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID');
         elsif lCurrBlock = 'VNDR' and event_name in ('WHEN-VALIDATE-RECORD','WHEN-NEW-RECORD-INSTANCE') then
         open customCC(name_in('VNDR.VENDOR_TYPE_LOOKUP_CODE'),name_in('GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID'));
         fetch customCC into lCustomCCID;
         close customCC;
         if lCustomCCID is null then
              copy(name_in('GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID'),'WORLD.ACCTS_PAY_CODE_COMBINATION_ID');
         else
         copy(lCustomCCID,'WORLD.ACCTS_PAY_CODE_COMBINATION_ID');
         end if;
         end if;
    end;
    end;
    please help

    Hi,
    While you can refer to the SLA guide, for quick pointers what you need to do is:
    1. Identify the transaction types and associated events for that transaction.
    2. Build an accounting rule for the above.
    An example would be AP invoice validation or application of prepayments.
    The SLA guide provides step by step details on the above.
    Good Luck !!!
    Regards,
    Udit

Maybe you are looking for

  • [req] how to check whether given oracle table exist or not + C#

    Hi, All. Actually i m creating a program using C# which connects to the database (oracle) and checks for the given table "OPC_GROUP". if the table doesnt exists then it creates the table else it updates all field with provided values code cmd.Command

  • Linked image question

    I create a monthly newsletter using InDesign CS3 (5.0.4) on a Dell Inspiron 6000 with a 1.5 GHz Pentium M processor, 2 GB of RAM and Win XP/SP3. I collect information from various sources, some of which are Micorsoft Word documents with graphics, and

  • How to create unique objects in class and store

    Hi, I have a class that opens a text file and reads in the lines. each line holds an ip address. i need to create x amount of objects, and each object is assigned a unique ip address from the file. and here i am stuck. the class reads in the file, th

  • Problem with ZEN Style M300

    When I trying to found bluetooth audio devices with ZEN Style M300,? the player get to freeze after a little bit time that is searching devices, and so I have to push the reset button for using again the player. :mansurprised:Anyone have the same pro

  • Type font in Swing Panel

    Hello. I'm a non-Swing person, but had to develop a small Swing application, with a Text Panel. Could you help me in setting a font so that character width is the same? Such as Courier or any other suitable font. Thank you.