RSRT & RSRV

Hello,
What r these transactions and when and for what are they used? in which scenarios they are used?
regards,

Hi Aby,
RSRT is used for monitoring query execution (performance, debug, etc.)
RSRV is used to analyse consistency and repairing of BW objects (InfoCubes, ODS, PSA, Master Data, etc.).
You will use RSRT to get technical information on a query when you perform some tuning for instance (use of cache and related aspects).
You will use RSRV to check objects when you get errors (example: missing SID's) or when you want to make an audit of your BW system for possible problems or before a major upgrade, etc.
Hope it helps a bit.
LauQ

Similar Messages

  • RSRT, RSRV Testing

    Hi Friends,
    Can any one please tell me.
    Do we have any danger if we use all sort of functionality in RSRV , RSRT for BW objects or Report in Production server. Some times i am feeling that it is harmful when i do things things like repiar..But i donot know..
    Please tell me if any limitations are available??
    Thanks
    Tony

    It depends on what you are changing or playing around with.
    For RSRT, it's great for testing Queries with.  You can also change the performance of a query under the 'Properties' tab. 
    If you switch the Read Mode to 'A' - 'Query to Read All Data at Once', it can really kill the query performance.  Instead of reading data with each navigation, it reads it all before it loads.  It will speed up navigation after the report has rendered, but kill the load time.
    The 'Generate Report' button can be used with the report has become corrupt.  It will regenerate the report.  It hasn't happened many times, but I've had reports that just failed to run when no change has been made.  Regenerating the report fixed it.
    Execute + Debug is a lifesaver when you need to trace user exits in your report.  It has a lot of neat options.
    RSRV can help you find problems with your InfoProviders.  Just last week, one of my ODS objects had a bad activation.  I was able to run an analysis and allow the system to correct my error.  If you are unsure of the change, you can always not 'correct error' and view the log of the analysis.
    Michael
    Assign pts if you found any of that useful.

  • Infosets and updating ods

    Hello Everybody
    My question is I have to run few queries and my feilds are scatterd in couple of ods's and they are all business content(can i should i modify them if need be). So what should i do create infosets out of them or should i like update the ods and include the feilds that they are missing. On the other hand if the feild is even present in one ods is it the rule to join that one with the others you need. Also whats a good way to test if we are joining right feilds and that the results are going to be correct records.
    Thanks
    Mark

    Hi Mark
    There are two kinds of joins
    1. Inner join
    2. Outer join
    Inner join needs all the fields in the table 1 should be connected to some fields in the table 2
    Outer join enables a results set even though you connect table 1 and table 2 with single common field
    http://help.sap.com/saphelp_nw70/helpdata/en/f1/713c3b35703079e10000000a114084/content.htm
    Your situation suggests you may need more infosets ...you can segregate your queries and group them based on source ODSes and create more than one infosets
    The reason is data fetching in infoset queries can be time consuming as everything is done at the runtime. To avoid potentially long runtime you can use more than one infosets to achieve the intended results
    Check whether this transactions RSRT/ RSRV helps you, moreover you can even create a test variable to chose very few records for testing purposes
    Regards
    N Ganesh

  • RSRV & RSRT

    How do we use RSRV & RSRT for performance tuning?
    which specific information is used in decision making (I know that RSRV & RSRT provides lot of performance tuning related information)
    Thanx in advance...points will be granted
    Monica

    Hi,
    RSRV is basically used for index, database statistics. This has combined tests as well as elementary tests for master data, transaction data, PSA tables, etc. Ex if you are facing any load performance issues with a cube , you can check the database indices for the cube as well as for aggregates if any. Another ex is there are tests which give you comparision between table sizes.
    RSRT is mainly used for queries. You can use the debug option to trace the queries to see why the query is taking a long time to execute and so on.
    Cheers,
    Kedar

  • Document  related to t codes RSRT, RSRT1 and RSRV

    Hi Gurus,
    As This is urgent requirment for me, please help me full points will be awarded.
    I want to know what are the difference between T codes RSRT, RSRT1 and their usability.
    can any one help me in this regard with documentation part.
    advance tanks
    sekhar

    hi sekhar,
    RSRT is to scan the query as to how the query gets executed, whether it uses aggregates or cubes, full table scan or uses index, etc.
    You can also change the performance of a query under the 'Properties' tab.
    If you switch the Read Mode to 'A' - 'Query to Read All Data at Once', it can really kill the query performance. Instead of reading data with each navigation, it reads it all before it loads. It will speed up navigation after the report has rendered, but kill the load time.
    The 'Generate Report' button can be used with the report has become corrupt. It will regenerate the report. It hasn't happened many times, but I've had reports that just failed to run when no change has been made. Regenerating the report fixed it.
    Execute + Debug is a lifesaver when you need to trace user exits in your report. It has a lot of neat options.
    RSRV can help you find problems with your InfoProviders. Just last week, one of my ODS objects had a bad activation. I was able to run an analysis and allow the system to correct my error. If you are unsure of the change, you can always not 'correct error' and view the log of the analysis.
    hope this helps,
    partha

  • RSRV? Drilling through Report times out sometimes

    Hi,
    I have reviewed several documents on RSRV on SDN but I have some specific questions.
    1.  While drilling down on a particular report, sometimes it would timeout. Can you direct me how to use RSRV to figure out the problem and fix?
    2.  Also, I saw a caution in one of the postings to be careful running RSRV on production. Does RSRV automatically begins the repairs or you get the chance after the diagnoses to make a decision to repair or not?  What really can go wrong during the repairs?
    3. Also, I know RSRV has these options:
       a. Master Data Consistency Checks
       b. Transaction Data Consistency Checks
       c. Size of Dimension tables
       d. Checking SID values
       e. PSA duplicate record check
       f.  Checking Aggregates
       g. Partitions of Info cubes etc...
    Which of these options really will help me identify the intermittent problem I am having with the report? I will appreciate some stepwise guidelines on how to step through to figure out the problem.
    Thanks

    Hi,
    I tried RSRT; entered Query name; Query Display: List   
    Parameter 1 or 2  (I chose 1)
    I then selected:
    Display run schedule
    Do not use cache
    Do not suppress messages/warning
    The selection screen of the report came up report and I completed it. After execute+Debug I get the data below.
    What do I do from this point to figure out the problem and fix it:
    SQL Statement                                                                               
    SELECT                                                                               
    /*+                                                                               
    STAR_TRANSFORMATION  FACT(F)                                                                    
    "DT"."SID_0CALMONTH" AS "S____022" ,"D5"."SID_0DOC_TYPE" AS "S____130" ,                        
      "DU"."SID_0CURRENCY" AS "S____023" ,"S1"."MATL_GRP_4" AS "K____404" ,                           
      SUM (  "F"."G_AVV010"  )  AS "Z____084" , SUM (  "F"."G_AVV140"  )  AS "Z____093" ,             
      SUM (  "F"."G_AVV150"  )  AS "Z____223" , COUNT( * )  AS "Z____030"                             
    FROM                                                                               
    "/BIC/FATRUMMNP" "F" JOIN "/BIC/DATRUMMNP3" "D3" ON  "F" . "KEY_ATRUMMNP3" = "D3" . "DIMID" JO
      N "/BI0/SMATL_GRP_4" "S1" ON  "D3" . "SID_0MATL_GRP_4" = "S1" . "SID" JOIN "/BIC/DATRUMMNPP" "DP
    Execution Plan                                                                               
    SELECT STATEMENT ( Estimated Costs = 42 , Estimated #Rows = 1 ) 
         5  30 HASH GROUP BY                                         
               ( Estim. Costs = 42 , Estim. #Rows = 1 )              
               Estim. CPU-Costs = 15,234,394 Estim. IO-Costs = 34                                                                               
    5  29 HASH JOIN                                         
                   ( Estim. Costs = 41 , Estim. #Rows = 1 )          
                   Estim. CPU-Costs = 13,191,632 Estim. IO-Costs = 34
                   Access Predicates Filter Predicates               
    5  12 PARTITION RANGE SINGLE                               
           ( Estim. Costs = 5 , Estim. #Rows = 0 )              
           Pstart: KEY Pstop: KEY                               
           Estim. CPU-Costs = 19,122 Estim. IO-Costs = 4        
         5  11 TABLE ACCESS BY LOCAL INDEX ROWID /BIC/FATRUMMNP
               ( Estim. Costs = 5 , Estim. #Rows = 0 )          
               Pstart: KEY Pstop: KEY                           
               Estim. CPU-Costs = 19,122 Estim. IO-Costs = 4    
             5  10 BITMAP CONVERSION TO ROWIDS                                                                               
    5  9 BITMAP AND                                                                               
    5  4 BITMAP MERGE                                                                               
    5  3 BITMAP KEY ITERATION              
    Thanks

  • Full text not getting displayed while using RSRT

    Hi,
    I am facing issue while downloading data using RSRT in BI system.
    When I go to RSRT and execute a report the output doesn't display full text for a characteristic. i.e. the characteristic has a size of 60 characters, but only 30 chars ( approx) are being displayed as report output in RSRT.
    COuld anyone here please help me in getting the full text using RSRT transaction?
    I am not using Bex here for the reason that the output has more than 1.8 lac records and hence I get an error while using Bex
    WHen I try to execute this report using Bex for a small selection I could see full text there.
    And there is no text master data maintained for this characteristic.
    Thanks in advance for your replies.

    Hi,
    As you said you have 1.8 Lac records, There is no point in increasing the size to maximum number possible i.e 65K .
    You have following three options to satisfy your requirement.:
    1.    Usage of  web reporting for export of more than 65k rows. According the note: 1127156 - Safety belt: Result set is too large, in BW version 7.x it I possible to set parameters that would allow such a massive export of data.
    2.    Functionality of OpenHubs. Data can be placed directly into the files (e.g. in CSV format) on application server. Be careful here OpenHubs are specially licensed and by using it there are additional fees.
    3.    Coding of custom ABAP report which runs BW query and gets all its output and saves it in the flat files.
    Please let me know if this info is helpful.
    Regards,
    Krishna Tangudu

  • Doubt in RSRT regarding generate query.

    Hi All,
    I have a doubt in transaction code RSRT (Query monitor). Under the tab environment, there are 2 options.
    1) Generate queries.
    2) Gen.Queries directly as shown below.
    i.e in RSRT> Environment> Generate Query
    and   RSRT> Environment> Gen. Query directly.
    I would like to know what the functions of these two options are and what they do?
    And also would like to know how these 2 are different from generate report.
    I know generate report means regeneration of query, but what does regeneration of query actually do?

    1) generate queries = generate the query @ next call.
    This means it does not gets generated unless the query is called by a workbook, web template,...
    2) Directly: generates the selected queries directly.
    Generation of a query:  a query is in fact an ABAP program.  This program is created by the BI system.
    To generate a query is to 'create' the ABAP program for the query.
    You can also delete the old ABAP's (old versions):
    environment -> delete old ABAPs

  • Transaction RSRT and agregattes.

    When I execute transaction RSRT, To execute + Debuging, I select to show aggregates, the process generates dump with the following legend:
    If the error occures in a non-modified SAP program, you may be able to  
    find an interim solution in an SAP Note.                                
    If you have access to SAP Notes, carry out a search with the following  
    keywords:                                                                               
    "RAISE_EXCEPTION" " "                                                   
    "SAPLRRSV" or "LRRSVF03"                                                
    "RAISE"                                                                               
    or                                                                               
    "SAPLRRSV" "IOBJ_VALUE_NOT_VALID"                                                                               
    or                                                                               
    "WRITEQUERY " "IOBJ_VALUE_NOT_VALID"                                    
    Query is on multiprovider.
    Thanks for yuor help.

    Hi,
    Please check the OSS Note:
    877308
    -Vikram

  • F4 help Not Working in Portal but working in RSRT and BEx

    Hi All,
    We have a report in which a customized infoobject is used as one of the selection criteria. This field is a navigational attribute of main infoobject. There are other two navigational attributes of this infoobjects as well in the selection critera.
    When we run the report using portal and click on F4 for this variable, it is not reading master data whereas it is working fine if we are using RSRT or BEx.
    The other two variables are working fine in the portal as well.
    Please help us incase if you have encountered such problem.
    Thanks,
    Dinesh

    Hi Imran,
    thanks for the reply.
    I will explain the problem in detail
    We  have a query Q1 and its web template WT_Q1. We have the infoobjects a, b, c and d. the infoobjects b,c and d are the navigational attributes of the infoobject a. We have a cube C01 where all of these infoobjects are used.
    All the Infobjects are the selection variables in the Query Q1 which are actually the navigational attributes.
    When we F4 on c or d, it is picking up the master data and displaying it iin portal as well as BEx or RSRT.
    But the F4 on "B", it is not displaying in portal whereas in BEX or RSRT we are able to get the master data values.
    On further analysis, i have found that it is not hitting the specific SQL code from where the master data objects are read.
    Hope this is clear.
    Thanks,
    Dinesh

  • Huge Performance issue and RSRT

    Hi BW Gurus,
    We are using BCS cube for our consolidation queries and reports . There is a huge prformance problem.
    I need to know that wht should be the appropriate size of the Global cache as compared to Local Cache. My global cache size is 100 MB and Global Cache size is 200 MB.
    Also when I go to RSRT properties
    Read Mode is H: Query to read when you navigate or expand hierarchy .
    Cache Mode is : 4 persistent cache across each application server
    persistence mode : 3 transparent table (BLOB).
    Do I have to change these settings ....please give your suggestions
    will appreciated with lot of points
    Thanks

    Hi Folks,..
    Could you'll please tell me where exactly we put the break point I will paste my code. I did Run SE30 and the list cube extraction simaltaneoulsy and gave me a message error generating the test frame
    tatics:
    FUNCTION RSSEM_CONSOLIDATION_INFOPROV3.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     REFERENCE(I_INFOPROV) TYPE  RSINFOPROV
    *"     REFERENCE(I_KEYDATE) TYPE  RSDRC_SRDATE
    *"     REFERENCE(I_TH_SFC) TYPE  RSDD_TH_SFC
    *"     REFERENCE(I_TH_SFK) TYPE  RSDD_TH_SFK
    *"     REFERENCE(I_TSX_SELDR) TYPE  RSDD_TSX_SELDR
    *"     REFERENCE(I_FIRST_CALL) TYPE  RS_BOOL
    *"     REFERENCE(I_PACKAGESIZE) TYPE  I
    *"  EXPORTING
    *"     REFERENCE(E_T_DATA) TYPE  STANDARD TABLE
    *"     REFERENCE(E_END_OF_DATA) TYPE  RS_BOOL
    *"     REFERENCE(E_T_MSG) TYPE  RS_T_MSG
    *"  EXCEPTIONS
    *"      ERROR_IN_BCS
      statics:
    UT begin:
    this flag is switched in order to record data returned by the current query in UT
    it can only be switched on/off in debug mode.
        s_record_mode  type rs_bool,
        s_qry_memo     type char256,    " at the moment, for query name
    package No, UUID, for unit testing
        s_packageno    type i,
        s_guid         type guid_22,
    UT end.
        s_first_call   like i_first_call,
        s_destination  type rfcdest,
        s_basiccube    type rsinfoprov,
        s_dest_back    type rfcdest,
        s_report       type programm,
        s_bw_local     type rs_bool,
        sr_data        type ref to data,
        sr_data_p      type ref to data,
        st_sfc         type t_sfc,
        st_sfk         type t_sfk,
        st_range       type t_seqnr_range,
        st_hienode     type t_seqnr_hienode,
        st_hienodename type t_seqnr_hienodename,
        st_seltype     type t_seqnr_seltype,
        st_datadescr   type T_DATADESCR,
        s_end_of_data  type rs_bool
      data:
        l_ucr_data_read_3 type funcname value 'UCR_DATA_READ_3',
        l_packagesize like i_packagesize,
        lt_message type t_message,
        ls_message like line of e_t_msg,
        l_xstring type xstring,
        l_nr type i.
      field-symbols:
        <ls_message> type s_message,
        <lt_data>   type standard table,
        <ls_data>   type any,"nos100804
        <lt_data_p> type hashed table."nos100804
      clear: e_t_data, e_end_of_data, e_t_msg.
    react on packagesize -1
      if i_packagesize le 0.    "nos050705
        l_packagesize = rssem_cs_integer-max.
      else.
        l_packagesize = i_packagesize.
      endif.
      if i_first_call = rs_c_true.
        s_first_call = rs_c_true.
        clear s_end_of_data.
    begin "nos100804
        data:
          lo_structdescr type ref to cl_abap_structdescr
         ,lo_tabledescr type ref to cl_abap_tabledescr
         ,lo_typedescr   type ref to cl_abap_typedescr
        data:
          lt_key     type table of abap_compname.
        field-symbols <ls_component> type abap_compdescr.
        create data sr_data_p like line of e_t_data.
        assign sr_data_p->* to <ls_data>.
        CALL METHOD CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA
          EXPORTING
            P_DATA      = <ls_data>
          RECEIVING
            P_DESCR_REF = lo_typedescr.
        lo_structdescr ?= lo_typedescr.
      collect all key components to lt_key
        loop at lo_structdescr->components assigning <ls_component>.
          insert <ls_component>-name into table lt_key.
          if <ls_component>-name = '&KEYEND'.
            exit.
          endif.
        endloop.
        data ls_sfk like line of i_th_sfk.
        data l_key     type abap_compname.
        loop at i_th_sfk into ls_sfk.
          l_key = ls_sfk-kyfnm.
          if l_key is not initial.
            delete table lt_key from l_key.
          endif.
          l_key = ls_sfk-value_returnnm.
          if l_key is not initial.
            delete table lt_key from l_key.
          endif.
        endloop.
        create data sr_data_p like hashed table of <ls_data>
            with unique key (lt_key).
       create data sr_data_p like e_t_data.
        create data sr_data   like e_t_data.
    end "nos100804
        perform determine_destinations  using    i_infoprov
                                        changing s_destination
                                                 s_dest_back
                                                 s_report
                                                 s_basiccube.
        perform is_bw_local changing s_bw_local.
    ***--> convert the selection, enhance non-Sid-values.
    --> Handle fiscper7
        data:
          lt_SFC      TYPE  RSDRI_TH_SFC
         ,lt_sfk      TYPE  RSDRI_TH_SFK
         ,lt_range    TYPE  RSDRI_T_RANGE
         ,lt_RANGETAB TYPE  RSDRI_TX_RANGETAB
         ,lt_HIER     TYPE  RSDRI_TSX_HIER
         ,lt_adj_hier type  t_sfc "nos290704
        statics: so_convert type ref to lcl_sid_no_sid
               , sx_seldr_fp34 type xstring
               , s_fieldname_fp7 type RSALIAS
               , st_sfc_fp34    TYPE  RSDD_TH_SFC
        create object so_convert type lcl_sid_no_sid
                  exporting i_infoprov = i_infoprov.
    Transform SIDs...
        perform convert_importing_parameter
                         using    i_th_sfc
                                  i_th_sfk
                                  i_tsx_seldr
                                  so_convert
                                  e_t_data
                         changing lt_sfc
                                  lt_sfk
                                  lt_range
                                  lt_rangetab
                                  lt_hier
                                  sx_seldr_fp34
                                          "Complete SELDR as XSTRING
                                  st_sfc_fp34
                                          "SFC of a selection with
                                          "FISCPER3/FISCYEAR
                                  s_fieldname_fp7
                                          "Name of Field for 0FISCPER
                                          "(if requested)
    This is the old routine, but ST_HIENDODE and ST_HIENODENAME can
    be neglected, since they are not used at all.
        perform prepare_selections
                         using    lt_sfc
                                  lt_sfk
                                  lt_range
                                  lt_rangetab
                                  lt_hier
                         changing st_sfc
                                  st_sfk
                                  st_range
                                  st_hienode
                                  st_hienodename
                                  st_seltype.
      endif.
      assign sr_data->*   to <lt_data>.
      assign sr_data_p->* to <lt_data_p>.
      describe table <lt_data_p> lines l_nr.
      while l_nr < l_packagesize and s_end_of_data is initial.
        if s_dest_back is initial and s_bw_local = rs_c_true.
      Local call
          call function l_UCR_DATA_READ_3
            EXPORTING
              IT_SELTYPE      = sT_SELTYPE
              IT_HIENODE      = sT_HIENODE        "not used
              IT_HIENODENAME  = sT_HIENODENAME    "not used
              IT_RANGE        = sT_RANGE
              I_PACKAGESIZE   = i_packagesize
              I_KEYDATE       = i_Keydate
              IT_SFC          = sT_SFC
              IT_SFK          = sT_SFK
              i_infoprov      = i_infoprov
              i_rfcdest       = s_destination
              ix_seldr        = sx_seldr_fp34
              it_bw_sfc       = st_sfc_fp34
              it_bw_sfk       = i_th_sfk
              i_fieldname_fp7 = s_fieldname_fp7
            IMPORTING
              ET_DATA         = <lT_DATA>
              E_END_OF_DATA   = s_END_OF_DATA
              ET_MESSAGE      = lT_MESSAGE
              et_adj_hier     = lt_adj_hier         "nos290704
            CHANGING
              c_first_call    = s_first_call.
        elseif s_dest_back is initial and s_bw_local = rs_c_false.
        !!! Error !!! No SEM-BCS destination registered for infoprovider!
          if 1 = 2.
            message e151(rssem) with i_infoprov.
          endif.
          ls_message-msgty = 'E'.
          ls_message-msgid = 'RSSEM'.
          ls_message-msgno = '151'.
          ls_message-msgv1 =  i_infoprov.
          insert ls_message into table e_t_msg.
        else.
        remote call to SEM-BCS
    ** Call UCR_DATA_READ_3 ...
          if s_first_call is not initial.
      get the datadescription to create the requested return-structure
      in the RFC-System.
            perform get_datadescr
                      using <lt_data>
                      changing st_datadescr
          endif.
          call function 'UCR_DATA_READ_4'
            destination s_dest_back
            exporting i_infoprov     = i_infoprov
                      i_rfcdest      = s_destination
                      i_first_call   = s_first_call
                      i_packagesize  = i_packagesize
                      i_keydate      = i_keydate
                      ix_seldr       = sx_seldr_fp34
                      it_bw_sfc      = st_sfc_fp34
                      it_bw_sfk      = i_th_sfk
                      it_datadescr   = st_datadescr
                      i_fieldname_fp7 = s_fieldname_fp7
            importing c_first_call   = s_first_call
                      e_end_of_data  = s_end_of_data
                      e_xstring      = l_xstring
            tables    it_seltype     = st_seltype
                      it_range       = st_range
                      it_hienode     = st_hienode      "not used
                      it_hienodename = st_hienodename  "not used
                      it_sfc         = st_sfc
                      it_sfk         = st_sfk
                      et_message     = lt_message
                      et_adj_hier    = lt_adj_hier.         "nos290704.
          clear <lt_data>.
          if lt_message is initial.
            call function 'RSSEM_UCR_DATA_UNWRAP'
              EXPORTING
                i_xstring = l_xstring
              CHANGING
                ct_data   = <lt_data>.
          endif.
        endif.
      convert the returned data (SID & Hierarchy).
        call method so_convert->convert_nosid2sid
          exporting it_adj_hier = lt_adj_hier[]     "nos290704
          CHANGING
            ct_data = <lt_data>.
       e_t_data = <lt_data>.
    Begin "nos100804
        data l_collect type sy-subrc.
        l_collect = 1.
        if <lt_data_p> is initial and
           <lt_data>   is not initial.
          call function 'ABL_TABLE_HASH_STATE'
            exporting
              itab          = <lt_data>
            IMPORTING
              HASH_RC       = l_collect "returns 0 if hash key exist.
        endif.
        if l_collect is initial.
          <lt_data_p> = <lt_data>.
        else.
          loop at <lt_data> assigning <ls_data>.
            collect <ls_data> into <lt_data_p>.
          endloop.
        endif.
       append lines of <lt_data> to <lt_data_p>.
    End "nos100804
      messages
        loop at lt_message assigning <ls_message>.
          move-corresponding <ls_message> to ls_message.
          insert ls_message into table e_t_msg.
        endloop.
        if e_t_msg is not initial.
          raise error_in_bcs.
        endif.
        describe table <lt_data_p> lines l_nr.
      endwhile.
      if l_nr <= l_packagesize.
        e_t_data = <lt_data_p>.
        clear <lt_data_p>.
        e_end_of_data = s_end_of_data.
      else.
    Begin "nos100804
        <lt_data> = <lt_data_p>.
        append lines of <lt_data> to l_packagesize to e_t_data.
        data l_from type i.
        l_from = l_packagesize + 1.
        clear <lt_data_p>.
        insert lines of <lt_data> from l_from into table <lt_data_p>.
        clear <lt_data>.
    End "nos100804
      endif.
    UT begin: start to record data
      if s_record_mode = rs_c_true.
        if i_first_call = rs_c_true.
          clear: s_guid, s_packageno.
          perform prepare_unit_test_rec_param
                      using
                         e_end_of_data
                         i_infoprov
                         i_keydate
                         i_th_sfc
                         i_th_sfk
                         i_tsx_seldr
                         i_packagesize
                         lt_key
                         e_t_data
                         s_qry_memo
                      changing
                         s_guid.
        endif.
        add 1 to s_packageno.
        perform prepare_unit_test_rec_data
                      using
                         s_guid
                         s_packageno
                         e_t_data
                         i_infoprov
                         e_end_of_data.
      endif.  "s_record_mode = rs_c_true
    UT end.
      if not e_end_of_data is initial.
      clean-up
        clear: s_first_call, s_destination, s_report, s_bw_local,
               st_sfc, st_sfk, st_range, st_hienode, s_basiccube,
               st_hienodename, st_seltype, s_dest_back, sr_data,
               so_convert , s_end_of_data, sr_data_p."nos100804
        free: <lt_data> , <lt_data_p>.
      endif.
    endfunction.
    It stores query parameters into cluster table
    form prepare_unit_test_rec_param using i_end_of_data type rs_bool
                                           i_infoprov    type rsinfoprov
                                           i_keydate     type rrsrdate
                                           i_th_sfc      type RSDD_TH_SFC
                                           i_th_sfk      type RSDD_TH_SFk
                                           i_tsx_seldr   type rsdd_tsx_seldr
                                           i_packagesize type i
                                           it_key        type standard table
                                           it_retdata    type standard table
                                           i_s_memo      type char256
                                     changing c_guid     type guid_22.
      data:
            ls_key          type g_rssem_typ_key,
            ls_cluster      type rssem_rfcpack,
            l_timestamp     type timestampl.
    get GUID, ret component type
      call function 'GUID_CREATE'
        importing
          ev_guid_22 = c_guid.
      ls_key-idxrid = c_guid.
      clear ls_key-packno.
    cluster record
      get time stamp field l_timestamp.
      ls_cluster-infoprov = i_infoprov.
      ls_cluster-end_of_data = i_end_of_data.
      ls_cluster-system_time = l_timestamp.
      ls_cluster-username = sy-uname.
    return data type
      data:
        lo_tabtype     type ref to cl_abap_tabledescr,
        lo_linetype    type ref to cl_abap_structdescr,
        lt_datadescr   type t_datadescr,
        ls_datadescr   like line of lt_datadescr,
        lt_retcomptab  type abap_compdescr_tab,
        ls_retcomptab  like line of lt_retcomptab,
        lt_rangetab    type t_seqnr_range.
      lo_tabtype   ?= cl_abap_typedescr=>describe_by_data( it_retdata ).
    lo_linetype  ?= lo_tabtype->get_table_line_type( ).
    lt_retcomptab = lo_linetype->components.
    call the sub procedure to use external format of C, instead of interal format (unicode).
    otherwise, when create data type from internal format, it won't be the same length as stored in cluster.
      PERFORM get_datadescr USING    it_retdata
                            CHANGING lt_datadescr.
      loop at lt_datadescr into ls_datadescr.
        move-corresponding ls_datadescr to ls_retcomptab.
        append ls_retcomptab to lt_retcomptab.
      endloop.
    range, excluding
    record param
      export p_infoprov        from i_infoprov
             p_keydate         from i_keydate
             p_th_sfc          from i_th_sfc
             p_th_sfk          from i_th_sfk
             p_txs_seldr       from i_tsx_seldr
             p_packagesize     from i_packagesize
             p_t_retcomptab    from lt_retcomptab
             p_t_key           from it_key
             p_memo            from i_s_memo
      to database rssem_rfcpack(ut)
      from ls_cluster
      client sy-mandt
      id ls_key.
    endform.
    It stores return data to cluster table
    form prepare_unit_test_rec_data using
                                      i_guid        type guid_22
                                      i_packageno   type i
                                      it_retdata    type standard table
                                      i_infoprov    type rsinfoprov
                                      i_end_of_data type rs_bool.
      data:
            l_lines         type i,
            ls_key          type g_rssem_typ_key,
            ls_cluster      type rssem_rfcpack,
            l_timestamp     type timestampl.
      ls_key-idxrid = i_guid.
      ls_key-packno = i_packageno.
      describe table it_retdata lines l_lines.
      if l_lines = 0.
        clear it_retdata.
      endif.
    cluster record
      get time stamp field l_timestamp.
      ls_cluster-infoprov = i_infoprov.
      ls_cluster-end_of_data = i_end_of_data.
      ls_cluster-system_time = l_timestamp.
      ls_cluster-username = sy-uname.
      export p_t_retdata       from it_retdata
      to     database rssem_rfcpack(ut)
      from   ls_cluster
      client sy-mandt
      id     ls_key.
    endform.
    form convert_importing_parameter
                   using    i_th_sfc    TYPE  RSDD_TH_SFC
                            i_th_sfk    TYPE  RSDD_TH_SFK
                            i_tsx_seldr TYPE  RSDD_TSX_SELDR
                            io_convert  type  ref to lcl_sid_no_sid
                            i_t_data    type  any table
                   changing et_sfc      TYPE  RSDRI_TH_SFC
                            et_sfk      TYPE  RSDRI_TH_SFK
                            et_range    TYPE  RSDRI_T_RANGE
                            et_rangetab TYPE  RSDRI_TX_RANGETAB
                            et_hier     TYPE  RSDRI_TSX_HIER
                            ex_seldr    type xstring
                            e_th_sfc    TYPE  RSDD_TH_SFC
                            e_fieldname_fp7 type  rsalias
      data lt_seldr TYPE  RSDD_TSX_SELDR.
      data ls_th_sfc type RRSFC01.
    0) rename 0BCSREQUID   > 0REQUID
      data l_tsx_seldr like i_tsx_seldr.
      data l_th_sfc like i_th_sfc.
      data l_th_sfc2 like i_th_sfc.                            "nos070605
      l_tsx_seldr = i_tsx_seldr.
      l_th_sfc = i_th_sfc.
      data ls_sfc_requid type   RRSFC01.
      data ls_seldr_requid type RSDD_SX_SELDR.
      ls_sfc_requid-chanm = '0BCS_REQUID'.
      read table l_th_sfc from ls_sfc_requid into ls_sfc_requid.
      if sy-subrc = 0.
        delete table l_th_sfc from ls_sfc_requid.
        ls_sfc_requid-chanm = '0REQUID'.
        insert ls_sfc_requid into table l_th_sfc.
      endif.
      ls_seldr_requid-chanm = '0BCS_REQUID'.
      read table l_tsx_seldr from ls_seldr_requid into ls_seldr_requid.
      if sy-subrc = 0.
        delete table l_tsx_seldr from ls_seldr_requid.
        ls_seldr_requid-chanm = '0REQUID'.
        field-symbols: <ls_range> like line of ls_seldr_requid-range-range.
        loop at ls_seldr_requid-range-range assigning <ls_range>.
          check <ls_range>-keyfl is not initial. "jhn190106
          if <ls_range>-sidlow is initial and <ls_range>-low is not initial.
            <ls_range>-sidlow = <ls_range>-low.
            clear <ls_range>-low.
          endif.
          if <ls_range>-sidhigh is initial and <ls_range>-high is not initial.
            <ls_range>-sidhigh = <ls_range>-high.
            clear <ls_range>-high.
          endif.
          clear <ls_range>-keyfl.     "jhn190106
        endloop.
        insert ls_seldr_requid into table l_tsx_seldr.
      endif.
    *1) Convert SIDs..., so that all parameter look like the old ones.
      call method io_convert->convert_sid2nosid
        EXPORTING
          it_sfc      = l_th_sfc
          it_sfk      = i_th_sfk
          it_seldr    = l_tsx_seldr
          it_data     = i_t_data
         IMPORTING
          et_sfc      = et_sfc
          et_sfk      = et_sfk
          et_range    = et_range
          et_rangetab = et_rangetab
          e_th_sfc    = l_th_sfc2                  "nos070605
    Ignore the old hierachy information:
      clear et_hier.
      delete et_range where chanm = '0REQUID'.
      delete table et_sfc with table key chanm = '0REQUID'.
    *2) Eliminate FISCPER7, from new strucutres:
    lt_seldr = i_tsx_seldr. "nos131004
      e_th_sfc = l_th_sfc.
    the fiscper7 can be deleted completly from the SID-selection, because
    it is also treated within et_range...
      clear e_fieldname_fp7.
    delete lt_seldr where chanm = cs_iobj_time-fiscper7."nos131004
    Begin "nos131004
    Ensure that there is no gap in the seldr.
      data:
         ls_seldr   like line of lt_seldr
        ,l_fems_act like ls_seldr-fems
        ,l_fems_new like ls_seldr-fems
      loop at l_tsx_seldr into ls_seldr
        where chanm ne cs_iobj_time-fiscper7.
        if ls_seldr-fems ne l_fems_act.
          l_fems_act = ls_seldr-fems.
          add 1 to l_fems_new.
        endif.
        ls_seldr-fems = l_fems_new.
        insert ls_seldr into table lt_seldr.
      endloop.
    end "nos131004
      e_th_sfc = l_th_sfc2.                                "nos070605
    Is fiscper7 in the query? (BCS requires allways two fields)
      read table e_th_sfc with key chanm = cs_iobj_time-fiscper7
           into ls_th_sfc.
      if sy-subrc = 0.
    ==> YES
    --> change the SFC, so that FISCPER3 and FISCYEAR is requested.
    The table ET_RANGE does contain also the selection for
    FISCPER3/FISCYEAR
    But since also E_FIELDNAME_FP7 is transferred to BCS, the
    transformation of the data, back to FISCPER7 is done on BCS-side.
        e_fieldname_fp7 = ls_th_sfc-KEYRETURNNM.
                                                "begin nos17060
        if e_fieldname_fp7 is initial.
          e_fieldname_fp7 = ls_th_sfc-sidRETURNNM.
          translate e_fieldname_fp7 using 'SK'.
        endif.
                                                "end nos17060
        delete table e_th_sfc from ls_th_sfc.
        ls_th_sfc-chanm       = cs_iobj_time-fiscper3.
        ls_th_sfc-keyreturnnm = ls_th_sfc-chanm.
        insert ls_th_sfc into table e_th_sfc.
        ls_th_sfc-chanm       = cs_iobj_time-fiscyear.
        ls_th_sfc-keyreturnnm = ls_th_sfc-chanm.
        insert ls_th_sfc into table e_th_sfc.
      endif.
    Store the SELDR in a XSTRING and unpack it just before selecting data
    in BW. It is not interpreted in BCS!
      export t_seldr  = lt_seldr
    Store also the SFC, because the BW-Systems migth be differrnt rel./SP.
             t_bw_sfc = e_th_sfc to data buffer ex_seldr compression on.
    endform.                    "convert_importing_parameter
    *&      Form  get_datadescr
          text
         -->IT_DATA    text
         -->ET_DATADESCtext
    form get_datadescr
                  using it_data type any table
                  changing et_datadescr type t_datadescr
      data: lr_data  type ref to data
          , lo_descr TYPE REF TO CL_ABAP_TYPEDESCR
          , lo_elemdescr TYPE REF TO CL_ABAP_elemDESCR
          , lo_structdescr TYPE REF TO CL_ABAP_structDESCR
          , lt_components  type abap_component_tab
          , ls_components  type abap_componentdescr
          , ls_datadescr type s_datadescr
      field-symbols: <ls_data> type any
                   , <ls_components> type abap_compdescr
      clear et_datadescr.
      create data lr_data like line of it_data.
      assign lr_data->* to <ls_data>.
      CALL METHOD CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA
        EXPORTING
          P_DATA      = <ls_data>
        RECEIVING
          P_DESCR_REF = lo_descr.
      lo_structdescr ?= lo_descr.
      CALL METHOD lo_structdescr->GET_COMPONENTS
        RECEIVING
          P_RESULT = lt_components.
      loop at lo_structdescr->components assigning <ls_components>.
        move-corresponding <ls_components> to ls_datadescr.
        if   ls_datadescr-type_kind = cl_abap_elemdescr=>typekind_char
          or ls_datadescr-type_kind = cl_abap_elemdescr=>typekind_num
          read table lt_components with key name = <ls_components>-name
                                   into ls_components.
          if sy-subrc = 0.
            lo_elemdescr ?= ls_components-type.
    ls_datadescr-length = lo_elemdescr->output_length.
          endif.
        endif.
        append ls_datadescr to et_datadescr.
      endloop.
    endform.                    "get_datadescr
    Try to give your inputs will appreciate that
    thanks

  • Questions on cache and general RSRT settings for plancube

    Hi,
    we would like to:
    1) set request status 1 in RSRT for our planqueries, in order to automatically refresh the query after executing a planfunction (problem we have now is that the results of a planfunction are not automatically updated in the query. Only when doing something else like executing other function, saving, check locks, ... the results are visible).
    2) activate delta cache for our planqueries
    we have read OSS note 1136163 on RSRT settings. It says:
    Aggregation level "A" is implemented internally by the automatically created query "P/!!1P" (plan buffer query). This query acts like an InfoProvider. It reads the data of the database or provides the data from InfoProvider "P", it adds the data of the delta buffer "Dp" (or the delta buffer Dpi if P is a MultiProvider with several PartProviders Pi that can be planned) and transfers the data manager as data of the InfoProvider "A" of type "ALVL". The query "P/!!1P" can use aggregates and the cache; this is exactly like each normal query in "P". If "P" is a MultiProvider, it is useful to set PARTITIONMODE to "1".
                  For the query "P/!!1P" that is created automatically for an aggregation level or for all aggregation levels using the InfoProvider P, we recommend the following setting:
                  Read mode "H", request status "1", cache mode "1" or higher, delta cache "true" and SP grouping "1".
                  Furthermore, the selection to use the structure element (KIDSEL) should be "true".
                  The input-ready queries in "A" should not, and cannot, use a cache. The request status is irrelevant since queries in "A" are automatically set to current data. The delta buffer does not currently support hierarchy processing. Therefore, aggregation level "A" cannot completely support read mode "H". For input-ready queries at A:
                  Read mode "X", request status "0", cache mode "0".
                 The delta cache and SP grouping are not visible
    Problems we have:
    1) for query P/!!1P (PCA_AGQF/!!1PCA_AGQF in our example) does not allow changing the request status (greyed out). It now has value 0 instead of 1. It also does not allow to activate the delta cache flag. How to change this? In RSDIPROP we have set partitionmode to 1 for the multiprovider and activated the delta cache flag...
    2) can we use the cache / delta cache principle for our planqueries? If so, how to ensure these settings remain activated in RSRT?
    regards
    Dries
    regards
    dries

    Hi,
    To change the cache settings for your cube.
    Open the cube in RSA1 and click in 'Chance'.
    - click in the 'Environment' menu;
    - expand 'InfoProvider Properties'
      - select the option 'Change'.
    You will be able to set the cache mode for this provider.
    I don't think it will be possible use cache for a multiprovider, it is
    not possible.
    Regards,
    Amit

  • Link to Web Analyzer from rsrt or query designer does not work.

    If I start with the transaction RSRT a query in the Java Web would get the following error message:
    Java Runtime Error
    But if I had started earlier browser, the portal there is no problem. Is this a SSO problem?
    The same problem I have when I would run in the Bex Query Designer the query.
    Greetings
    Kerim

    Hi,
    Do you have all the parameters correct in SPRO? Take a look at this, under the BW Customizing -> REporting relevant settings or BW Customizing -> SAP Web Application Server.
    I dont remember the right place where you have to configure this, but it should be there.
    The error is just "Java Runtime Error"? Try to talk with your Basis team, maybe there is a log to help you.
    Regards, Federico

  • Error while executing query in query designer and RSRT.

    Hello All,
    At none of the places (BI--> RSRT  or via query designer GUI) my query is executing properly .
    At RSRT the error message ---
    At Bex Query designer the error msg--
    Checked the data at the sales-infocube level , the data is absolutely ok.
    Regards
    Deblina

    Hi,
    Have checked both the places, backend cube as well as the filter conditions of the query ,everything is in sync.
    to make the query more simple i have removed the charateristics restrictions then ran the query , but still getting the same error.
    Am just attaching the screenshot of the query layout, for your reference.
    Regarding connectivity to access the portal,  how it can be established.
    Many Thanks
    Regards
    Deblina.

  • Error while executing the query in RSRT

    Hi to all,
    I am executing the query in client development system in RSRT.
    Error coming (Query could not open Genun  id is invalid)
    I shall be thankfull to you for this.
    Regards
    Pavneet Rana

    Hi,
    Plz check ur report and execute at the designer and take its technical name and go to RSRT. log out and log in and try..
    if not check ur authorisation.
    Regards....KP

Maybe you are looking for