on 2016 Jun 07 2:31 PM
TRY.
lo_model = cl_uj_model=>get_model( i_appset_id ).
lo_model->create_tx_data_ref(EXPORTING
i_appl_name = i_appl_id
i_type = 'T'
it_dim_name = lt_dim_name
if_tech_name = space
IMPORTING
er_data = lo_dataref.
CATCH cx_uj_static_check.
ENDTRY.
*Assigning the structure to tableASSIGN lo_dataref->* TO <lt_tx_data>.
TRY.
lo_query = cl_ujo_query_factory=>get_query_adapter(
i_appset_id = i_appset_id
i_appl_id = i_appl_id ).
** Run Query to populate ct_data based on dimensions , selection criteria **.
lo_query->run_rsdri_query(
EXPORTING
it_dim_name = lt_dim_name " BPC: Dimension List
it_range = lt_sel " BPC: Selection condition
if_check_security = ABAP_FALSE " BPC: Generic indicator
IMPORTING
et_data = <lt_tx_data>
et_message = lt_message " BPC: Messages
).
I am getting memory dump. Can you please let me know how to handle this case. I have more than 3Million records to be fetched from the cube.
I filled the LT_SEL with respective values, when I give a single value account, I am able to fetch without any issues for the same code.
ISSUE: Only when I run for a huge selection.
Request clarification before answering.
Hi Raja,
are you using XDIM in your LGF file?
you need to filter your data, only read what you need in your calc, fill the table for LT_SEL.
Andy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Try limiting the size of your query - one of the parameters of this method is I_PACKAGESIZE.
Then you'd need to run again till get the whole data.
Also check if it's possible to amplify your filter - LT_SEL.
Cheers,
Lucas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Vadim.
Please find my code below. I am writing the code inside the BADI IF_UJ_CUSTOM_LOGIC~EXECUTE.
I ran with selection criteria, I was able to execute RUN_RSDRI_QUERY with LT_SEL filled for <1 million records. It was successful.
When I ran the same selection criteria for > 1 million records. It had short dump (Memory Low).
So Inserted the package size - now i get the short dump 'ASSERTION_FAILED'
TRY.
lo_model = cl_uj_model=>get_model( i_appset_id ).
lo_model->create_tx_data_ref(EXPORTING
i_appl_name = i_appl_id
i_type = 'T'
it_dim_name = lt_dim_name
if_tech_name = space
IMPORTING
er_data = lo_dataref.
CATCH cx_uj_static_check.
ENDTRY.
*Assigning the structure to tableASSIGN lo_dataref->* TO<lt_tx_data>.
TRY.
lo_query = cl_ujo_query_factory=>get_query_adapter(
i_appset_id = i_appset_id
i_appl_id = i_appl_id ).
** Run Query to populate ct_data based on dimensions , selection criteria **.
lo_query->run_rsdri_query(
EXPORTING
it_dim_name = lt_dim_name " BPC: Dimension List
it_range = lt_sel " BPC: Selection condition
i_package size = 100
if_check_security = ABAP_FALSE " BPC: Generic indicator
IMPORTING
et_data = <lt_tx_data>
et_message = lt_message " BPC: Messages
).
TRY.
lo_model = cl_uj_model=>get_model( i_appset_id ).
lo_model->create_tx_data_ref(EXPORTING
i_appl_name = i_appl_id
i_type = 'T'
it_dim_name = lt_dim_name
if_tech_name = space
IMPORTING
er_data = lo_dataref.
CATCH cx_uj_static_check.
ENDTRY.
*Assigning the structure to tableASSIGN lo_dataref->*TO<lt_tx_data>.
TRY.
lo_query = cl_ujo_query_factory=>get_query_adapter(
i_appset_id = i_appset_id
i_appl_id = i_appl_id ).
** Run Query to populate ct_data based on dimensions , selection criteria **.
lv_first_call = abap_true.
*- Run Query to populate CT_DATA based on dimensions and selection criteria.
obj_query->run_rsdri_query(
EXPORTING
it_dim_name = lt_dim_name
it_range = lt_sel
i_packagesize = 500000
if_check_security = abap_false
IMPORTING
et_data = <t_tx_data>
et_message = et_message
CHANGING
c_first_call = lv_first_call
).
In the above case, I have set my package size, since we dont know the full set of records during runtime. Lets assume, it picks the first 100 records, how would it know in the second record to pick the next set of records, we are not passing any other input to the method.
Correct me If I am wriong.
Is it so hard to investigate all parameters:
IMPORTING
et_data = <lt_query_result>
* e_end_of_data = " BPC: Last Data Package Yes/No
* e_split_occurred = " Result may not be completely aggregated
et_message = lt_message " BPC: Messages
* e_stats_guid = " BPC: Statistics Session
* e_cell_filted =
| User | Count |
|---|---|
| 8 | |
| 8 | |
| 6 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.