关于 IN UPDATE TASK
【转 http://blog.sina.com.cn/s/blog_6f74e6d50100sq57.html】
更新程序必须用一个特殊的FM(update module)来实现。
1.Exporting Exception参数被忽略
UPDATE MODULE和其他的FM一样,有传输参数的接口,但是只能有IMPORTING和TABLES,并且类型只能用参考或者结构,EXPORTING和EXCEPTION参数在UPDATE MODULE里是被忽略的。
2.Commit work or Roll back work 时才执行
UPDATE
MODULE里包含实际的数据库更新语句。
使用这样写法的FM不会立即执行,而是写进LOG TABLE,作为一个执行请求,一个SAP
LUW下的更新请求存储在同一个UPDATE KEY下对一个SAP LUW来说UPDATE KEY是一个唯一的世界范围的识别码,意思就是一个SAP
LUW的UPDATE KEY是唯一的,不会和另外的SAP LUW的UPDATE KEY重复 。
只有当程序执行到COMMIT
WORK的时候,才会为这些请求创建一个抬头条目LOG HEADER,表示以上这些同样UPDATE KEY的属于同一个包,然后系统关闭这个LUW。
当LOG
HEADER创建以后,系统通知DISPATCHER有一个更新包已经准备好可以处理了。
使用例子:
COMMIT WORK [AND
WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC
就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK
WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改
CALL FUNCTION 'Z_SAR_UPDATE' IN UPDATE TASK
EXPORTING
im_sar_no = wa_sar_hdr-zsar_no
im_sar_hdr_old = wa_sar_hdr_old
im_sar_hdr_new = im_sar_hdr
im_sar_item_old = t_sar_item_old
im_sar_item_new = im_sar_item
im_sar_partner_old = t_sar_partner_old
im_sar_partner_new = im_sar_partner
im_sar_status_old = wa_sar_status
im_sar_retro_old = t_sar_retro_old
im_sar_retro_new = im_sar_retro.
COMMIT WORK AND WAIT.
IF sy-subrc = 0.
ELSE.
ROLLBACK WORK.
RAISE update_error.
ENDIF.
关于 IN UPDATE TASK的更多相关文章
- SET UPDATE TASK LOCAL
SET Effect Switches on the local update task. This means that when you specify CALL FUNCTION ... IN ...
- ABAP-SET UPDATE TASK LOCAL
SET UPDATE TASK LOCAL 影响 切换本地更新任务.这意味着当您指定 CALL FUNCTION ... IN UPDATE TASK时,更新数据不会存储在数据库中,而是存储在ABA ...
- ABAP术语-Update Task
Update Task 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114184.html Part of an ABAP pro ...
- SET UPDATE TASK LOCAL (ローカル更新 )
ローカル更新では.更新プログラムは要求を処理したのと同じワークプロセスによって実行されます.ダイアログユーザは更新が終了するまで待ってから追加データを入力しなければなりません.データベースへのアクセス ...
- 判断不在Update Task中
CALL FUNCTION 'TH_IN_UPDATE_TASK' IMPORTING IN_UPDATE_TASK = IN_UPDATE_TASK. "0 then not ...
- Oracle update语句更新值来自另一张表中的数据
task 任务表 role 角色表 两表之间必须有关联的字段 update task t set t.roleName = ( select r.name from role r where r.id ...
- update moudle 调用方式
向数据库中添加数据 ztt_teacher 1: 创建一个 function moudle,设置该moudle类型为 update moudle 2: 向数据库添加数据的代码 FUNCTION ...
- MB_DOCUMENT_BADI调试(Update Debug)
Update Module函数,主要用语对话或报表中实现同步和异步更新数据库操作,需要单独调用函数实现更新数据库表,但又要求对程序的运行不产生影响(更新成功与否不影响主程序的正常执行) 几个操作,要么 ...
- abap开发中update module 的创建和使用
一.update module 的创建和使用 最近遇到这样一个需求,需要先删除(delete)表中的数据,再将传递过来的新数据添加(modify)到表中. 但是如果下面modify的时候出现错误,使用 ...
随机推荐
- java.lang.IllegalArgumentException: Wrong state classs
java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class cn.et ...
- OSQL.EXE 命令行下脱裤mssql
cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ OSQL.EXE -S "localhost" -U " ...
- Android Asynchronous Http Client 中文教程
本文为译文,原文链接https://loopj.com/android-async-http/ 安卓异步httpclient 概述 这是一个异步的基于回调的Android http客户端,构建于Apa ...
- react-native 详解
1.获取主屏幕尺寸 // 导入类库 var Dimensions = require('Dimensions'); // 样式 const styles = StyleSheet.create({ c ...
- java事务处理全解析
http://blog.csdn.net/huilangeliuxin/article/details/43446177
- JavsScript中DOM的基本操作
节点及其类型 元素节点 属性节点: 元素的属性, 可以直接通过属性的方式来操作. 文本节点: 是元素节点的子节点, 其内容为文本. 在 html 文档的什么位置编写 js 代码 直接在 html 页面 ...
- zabbix web monitoring 监控网页
配置 Web 场景 配置 web 场景: 转到: 配置 (Configuration)–>主机 (或者 模板 ) 点击主机 (host)/ 模板 (template) 行中的 Web 点击右上角 ...
- 电路板上为何要有孔洞?何谓PTH/NPTH/vias(导通孔)
推荐文章:PCBA大讲堂:用数据比较OSP及ENIG表面处理电路板的焊接强度 如果你有机会拿起一片电路板,稍微观察一下会发现这电路板上有着许多大大小小的孔洞,把它拿起来对着天花板上的电灯看,还会发 ...
- python 中的"switch"用法
转载:http://python.jobbole.com/82008/ 为什么Python中没有Switch/Case语句? 不同于我用过的其它编程语言,Python 没有 switch / case ...
- lua学习笔记(十一)
面向对象编程 对象的实现 在lua中table就是一种对象 1.有自己的状态 2.有自己的唯一标识self 3.有自己的生命周期 ...