Oct26

SAP LUW

数据库事务处理, 可以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条评论