Académique Documents
Professionnel Documents
Culture Documents
data :
l_r_lookup type ref to cl_rsdmd_lookup_master_data,
create object l_r_lookup.
data: l_t_attrnm_1 type rsdm_t_attrinm,
l_s_fieldnm_map_1 type cl_rsdmd_lookup_master_data=>_S_MAP_SRCFIELDN
M_IOBJFIELDNM,
l_t_fieldnm_map_1 type cl_rsdmd_lookup_master_data=>_T_MAP_SRCFIELDN
M_IOBJFIELDNM.
refresh l_t_attrnm_1.
append '0PROFIT_CTR' to l_t_attrnm_1.
refresh l_t_fieldnm_map_1.
clear l_s_fieldnm_map_1.
l_s_fieldnm_map_1-iobj_fieldnm = 'CO_AREA'.
l_s_fieldnm_map_1-src_fieldnm = 'CO_AREA'.
append l_s_fieldnm_map_1 to l_t_fieldnm_map_1.
clear l_s_fieldnm_map_1.
l_s_fieldnm_map_1-iobj_fieldnm = 'COSTCENTER'.
l_s_fieldnm_map_1-src_fieldnm = 'COSTCENTER'.
append l_s_fieldnm_map_1 to l_t_fieldnm_map_1.
call method l_r_lookup->prefetch
EXPORTING
i_iobjnm = '0COSTCENTER'
i_t_keys = <_yt_SC_1> "(Keys for which attributes are
to be looked up)
i_t_map = l_t_fieldnm_map_1
i_date = sy-datum
i_t_attrnm = l_t_attrnm_1
i_reset_prefetched_data = rs_c_true
EXCEPTIONS
read_error = 1
wrong_import_parameters = 2
buffer_limit_reached = 3
no_data_found = 4
no_such_attribute = 5
OTHERS = 6.
IF sy-subrc <> 0 and
sy-subrc <> 3 and "buffer limit reached -> single read
sy-subrc <> 4. "no data found -> single read -> error per record
endif.
---------
CLEAR _B_1-mview.
l_date_m = sy-datum.
CLEAR t_dep_m[].
s_dep_m-chanm = '0CO_AREA'.
s_dep_m-chavl_int = <_ys_SC_1>-CO_AREA.
APPEND s_dep_m TO t_dep_m.
s_dep_m-chanm = '0COSTCENTER'.
s_dep_m-chavl_int = <_ys_SC_1>-COSTCENTER.
APPEND s_dep_m TO t_dep_m.
l_chavl_m = <_ys_SC_1>-COSTCENTER.
CALL FUNCTION 'RRSV_CHA_VALUE_CONCATENATE'
EXPORTING
i_chanm = '0COSTCENTER'
i_chavl_int = l_chavl_m
IMPORTING
e_chavl_int = l_chavl_m
CHANGING
c_t_dep = t_dep_m
EXCEPTIONS
unknown_chanm = 1
invalid_format = 2
no_input_given = 3
OTHERS = 4.
IF sy-subrc <> 0.
CALL METHOD cl_rstran_runtime_exe=>convert_symessage
EXPORTING
i_s_context = _curr_rule
i_skip = rs_c_true
CHANGING
c_t_message = _lt_msg_rec.
RAISE EXCEPTION TYPE cx_rsrout_skip_record.
ENDIF.
REPLACE ALL OCCURRENCES OF '#' IN l_chavl_m WITH ` `.
CALL FUNCTION 'RSAU_READ_MASTER_DATA'
EXPORTING
i_iobjnm = '0COSTCENTER'
i_chavl = l_chavl_m
i_date = l_date_m
IMPORTING
e_structure = _B_1-mview
EXCEPTIONS
read_error = 1
no_such_attribute = 2
wrong_import_parameters = 3
chavl_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
IF sy-subrc = 4 and
p_check_master_data_exist is initial.
ElSE.
CALL METHOD cl_rstran_runtime_exe=>convert_symessage
EXPORTING
i_s_context = _curr_rule
i_skip = rs_c_true
CHANGING
c_t_message = _lt_msg_rec.
RAISE EXCEPTION TYPE cx_rsrout_skip_record.
ENDIF.
ENDIF.