前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SET UPDATE TASK LOCAL and commit session issue

SET UPDATE TASK LOCAL and commit session issue

作者头像
Jerry Wang
发布2019-07-03 11:14:01
4630
发布2019-07-03 11:14:01
举报

Created by Jerry Wang, last modified on Jun 11, 2014

下列代码会成功将Product ABCJERR5插入到comm_product中,

代码语言:javascript
复制
DATA: ls_new TYPE comm_product.
START-OF-SELECTION.
  SELECT SINGLE * INTO ls_new FROM comm_product.
  ls_new-product_id = 'ABCJERRY5'.
  CALL FUNCTION 'GUID_CREATE'
    IMPORTING
      ev_guid_16 = ls_new-product_guid.
  INSERT comm_product FROM ls_new.
  WRITE: / sy-subrc.
  CALL FUNCTION 'ZSQFB' IN UPDATE TASK.
  COMMIT WORK AND WAIT.

但是update function module ZSQFB会执行失败( assert 1 = 0 )

代码语言:javascript
复制
FUNCTION zsqfb.
*"----------------------------------------------------------------------
*"*"Update Function Module:
*"
*"*"Local Interface:
*"----------------------------------------------------------------------
  DATA: ls_data TYPE zcrmd_soc_post.
  CALL FUNCTION 'GUID_CREATE'
    IMPORTING
      ev_guid_16 = ls_data-uuid.
  ls_data-internal_id = '2'.
  ASSERT 1 = 0.
  INSERT zcrmd_soc_post FROM ls_data.
ENDFUNCTION.

会收到一条update 失败的notification:

clipboard1
clipboard1

SM13里存在失败的entry:

clipboard2
clipboard2
clipboard3
clipboard3

如果在update function module call之前加上SET UPDATE TASK LOCAL:

clipboard4
clipboard4

通过测试发现,尽管update function module现在在和test report是在同一个work process里执行,但是update function module的出错并不会影响COMM_PRODUCT table的更新: 执行结果和不加SET UPDATE TASK LOCAL一致。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Created by Jerry Wang, last modified on Jun 11, 2014
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档