SAP 中异步功能在一般报表开发中应用较少,所以一直不是很清楚,在此总结

常见异步操作

Function - In update task

Perform - On commit

官方文档-Adding Update-Task Calls to a Subroutine

简单的示例

  1. * 表结构
  2. * ZTASK_TEST => MANDT ; VBELN ; UZEIT
  3. DATA: lt_ztask_test TYPE TABLE OF ztask_test.
  4. lt_ztask_test = VALUE #( ( vbeln = '2022' uzeit = sy-uzeit ) ).
  5. PERFORM frm_update_other ON COMMIT.
  6. MODIFY ztask_test FROM TABLE lt_ztask_test.
  7. COMMIT WORK.
  8. FORM frm_update_other .
  9. " 在此部分不能 commit or rollback 否则会dump
  10. lt_ztask_test = VALUE #( ( vbeln = '2021' uzeit = sy-uzeit ) ).
  11. ENDFORM.

异常

image.png
image.png