sap abap中BDC的同步更新与异步更新的差别

forever_crazy 2013-11-04 10:22:47
个人abaper大侠,相信都用过BDC的,有个“更新模式”选择共有3种更新模式,一般使用'S'模式:
模式 描述
A 异步
S 同步
L 本地

这三种的区别以及优缺点网上也是有不少说法,想请假各位:
这三种模式到底有什么区别,想整理一个比较详细,易懂的一个解释。
望abaper大侠们,帮帮忙,看过来。。。
...全文
1189 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaukiyou 2014-05-18
  • 打赏
  • 举报
回复
去看SAP Help就足够了,整理啥。
引用 2 楼 forever_crazy 的回复:
做一个transction的bdc, 连续走过3个屏幕, 更新三个DB表, 在前台做, 是可以一个一个表实时更新的, 如果只做了两个表退出来, 系统会更新两个表 在call transaction using bdc却碰到很多问题 1, 如果三个屏幕中有一个出错, 三个表都不更新, 一定要走到最后一个屏幕结束才会同时更新三个表!这是所谓的隐式LUW的原因吗? 2, 如果做一个call trsnaction t-code update 'A'(默认), 是异步更新, call trsnaction t-code update 'S' 是同步更新, 但是试验中完全没看出两者的区别。全是在bdc的最后一个屏幕结束时立刻全更新或者全不更新! 完全不明白啊,同步异步更新在这里怎么用啊?commit work and wait在哪儿写? 以下参考资料 =============================================================== UPDATE 确定批输入的更新模式,有下面几个可选值: 更新模式 作用 "A" 异步更新。被调用程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由另一个专门的更新进程执行,主程序一旦提交数据就继续执行,而不管提交的更新是否执行完成。这种方式比较适合于用一个事务码大量更新指定数据,比如维护主数据等。 "S" 同步更新。被调用程序的更新按照指定了 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由专门的更新进程执行,但是主程序会等到数据提交完成,返回结果信息后才继续执行。这种方式比较适合于数据一致性要求比较高,多个不同事务码的连续处理。 "L" 本地更新。被调用程序的更新按照执行 SET UPDATE TASK LOCAL 语句的方式执行。也就是说,数据更新在主程序所在的进程中完成,主程序必定等到被调用事务完成才继续执行。 ================================================================
forever_crazy 2014-05-12
  • 打赏
  • 举报
回复 1
做一个transction的bdc, 连续走过3个屏幕, 更新三个DB表, 在前台做, 是可以一个一个表实时更新的, 如果只做了两个表退出来, 系统会更新两个表 在call transaction using bdc却碰到很多问题 1, 如果三个屏幕中有一个出错, 三个表都不更新, 一定要走到最后一个屏幕结束才会同时更新三个表!这是所谓的隐式LUW的原因吗? 2, 如果做一个call trsnaction t-code update 'A'(默认), 是异步更新, call trsnaction t-code update 'S' 是同步更新, 但是试验中完全没看出两者的区别。全是在bdc的最后一个屏幕结束时立刻全更新或者全不更新! 完全不明白啊,同步异步更新在这里怎么用啊?commit work and wait在哪儿写? 以下参考资料 =============================================================== UPDATE 确定批输入的更新模式,有下面几个可选值: 更新模式 作用 "A" 异步更新。被调用程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由另一个专门的更新进程执行,主程序一旦提交数据就继续执行,而不管提交的更新是否执行完成。这种方式比较适合于用一个事务码大量更新指定数据,比如维护主数据等。 "S" 同步更新。被调用程序的更新按照指定了 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由专门的更新进程执行,但是主程序会等到数据提交完成,返回结果信息后才继续执行。这种方式比较适合于数据一致性要求比较高,多个不同事务码的连续处理。 "L" 本地更新。被调用程序的更新按照执行 SET UPDATE TASK LOCAL 语句的方式执行。也就是说,数据更新在主程序所在的进程中完成,主程序必定等到被调用事务完成才继续执行。 ================================================================
forever_crazy 2013-11-11
  • 打赏
  • 举报
回复
为什么没有人

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧