用程序读取Query,模拟APD将数据存到直接更新的DSO
REPORT zcfo_update_bs MESSAGE-ID zfi03.
TYPE-POOLS: rrx1,rsrds .
DATA: gt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE .
DATA:gs_repdir TYPE rsrrepdir,
g_date TYPE sy-datum,
g_month TYPE /bi0/oicalmonth,
g_calday TYPE sy-datum,
g_tlevel TYPE /bi0/oirf_tlevel.
DATA:g_request TYPE REF TO cl_rsr_request.
DATA:g_dataset TYPE REF TO cl_rsr_data_set.
DATA : gt_dim TYPE rrx1_t_dim,
gs_dim TYPE rrx1_s_dim,
gt_prptys TYPE rrx1_t_prptys,
gt_atr TYPE rrx1_t_atr,
gt_mem TYPE rrx1_t_mem,
gt_cel TYPE rrx1_t_cel,
gt_con TYPE rrx1_t_con,
gt_fac TYPE rrx1_t_fac.
DATA:g_cx_message TYPE REF TO cx_rsr_x_message,
g_cx_root TYPE REF TO cx_root,
g_error_string TYPE string.
DATA: gs_var TYPE rrx1_s_var,
gt_var TYPE rrx1_t_var,
gt_cell TYPE rrws_t_cell,
gs_cell TYPE rrws_s_cell,
gt_axis TYPE rrws_thx_axis_data,
gs_axis TYPE rrws_sx_axis_data,
gt_set TYPE rrws_tx_set,
gs_set TYPE rrws_sx_tuple.
DATA:g_tabix TYPE i,
g_lines TYPE i,
g_times TYPE i,
g_count TYPE i,
g_i TYPE i,
g_j TYPE i.
DATA:g_tablename TYPE ddobjname,
g_condition TYPE string,
g_field TYPE char100,
gt_table TYPE TABLE OF dfies,
gs_table TYPE dfies,
gt_key TYPE TABLE OF dfies.
DATA:gt_varconfg TYPE TABLE OF zhr_kpi_varconfg,
gs_varconfg TYPE zhr_kpi_varconfg.
DATA:dyn_table TYPE REF TO data,
dyn_wa TYPE REF TO data.
FIELD-SYMBOLS: <dyn_table> TYPE table,
<dyn_wa> TYPE any,
<fs_field> TYPE any.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS:p_query TYPE rszcompid OBLIGATORY, "要执行的Query
p_dso TYPE rsdodsobject OBLIGATORY. "直接更新DSO
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
PARAMETERS:p_org1 as CHECKBOX,
p_org2 AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK blk3.
START-OF-SELECTION.
SELECT SINGLE * FROM rsrrepdir INTO gs_repdir
WHERE compid = p_query
AND objvers