数据库事务处理, 可以PERFORM ... ON COMMIT, 或者 CALL FUNCTION ... IN UPDATE TASK, 下面是一个测试例子
*&---------------------------------------------------------------------* *& Report Z_TEST_SUNBN2 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT z_test_sunbn2. DATA: wk_item_h TYPE ztxi_err_log_h, wk_item_i TYPE ztxi_err_log_i, i_flg TYPE c. START-OF-SELECTION. CONCATENATE sy-datum sy-uzeit INTO wk_item_h-dtsend. wk_item_h-tlgid = wk_item_h-dtsend. wk_item_h-tlgname = 'YQ99'. wk_item_h-sender = 'MES'. wk_item_h-receiver = 'SAP'. wk_item_i-tlgid = wk_item_h-tlgid. wk_item_i-dtsend = wk_item_h-dtsend. wk_item_i-itemno = 1. wk_item_i-msgtxt = 'test'. *i_flg = 'X'. PERFORM frm_inst ON COMMIT. IF i_flg = 'X'. ROLLBACK WORK. ELSE. COMMIT WORK. ENDIF. *&---------------------------------------------------------------------* *& Form FRM_INST *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM frm_inst. INSERT ztxi_err_log_h FROM wk_item_h. IF sy-subrc <> 0. i_flg = 'X'. ENDIF. INSERT ztxi_err_log_i FROM wk_item_i. IF sy-subrc <> 0. i_flg = 'X'. ENDIF. ENDFORM. "FRM_INST
--EOF--
本篇文章已有0条评论