Hi ,
I need to update a seris of tables and they must be transactional, i.e. all the data must be updated or not.
I have the following code.
*Fetch and Update Reference Profile Data
me->process_rp_data( ).
*Fetch and Update Request Data
me->process_req_data( ).
*Fetch and Update Collateral Data
me->process_coll_data( ).
*Fetch and Update Project Data
me->process_project_data( ).
IF i_update_flag IS INITIAL.
ROLLBACK WORK.
ELSE.
COMMIT WORK.
ENDIF.
in all the above four methods there are update statements like below
TRY .
UPDATE (i_table_name) SET bp_number = sur_bp WHERE (lt_dyn_cond).
IF sy-subrc NE 0.
me->raise_exception( EXPORTING i_text_id = zcx_rms_dedupe_process_excptns=>error_in_update
i_bp_num = vic_bp
i_guid = i_guid
i_table_name = i_table_name
i_process = i_process ).
ENDIF.
CATCH cx_sy_dynamic_osql_error.
me->raise_exception( EXPORTING i_text_id = zcx_rms_dedupe_process_excptns=>error_in_update
i_bp_num = vic_bp
i_guid = i_guid
i_table_name = i_table_name
i_process = i_process ).
ENDTRY.
If in the third method, if the exception cx_sy_dynamic_osql_error is raised all the data that is updated in the first two methods are commited. Can any one help how to overcome this situtation. I do not want the data to be committed
Regards