SAP中Commitwork需要注意的事情 work list sap

做运维的,总是按下葫芦又浮起瓢,遇到的问题杂七杂八。今天回到ABAP提交数据库的话题:有一个程序修改了采购订单,又更新了一张日志表,修改采购订单使用BAPI_PO_CHANGE,然后commitwork,更新日志表是直接modify透明表;最近出现的问题是这个日志表经常的数据不对,查看程序发现最近修改是增加了调用RFC将修改后的PO发送到外部系统。问题就出在这里,调用RFC隐式的触发了数据库提交,导致后来需要rollback的也提交了。下面说一说SAP中commitwork需要知道的事情,虽然直接用的时候不多:隐式提交(implicitcommit)和显式提交(explicit commit):顾名思义,隐式是指没有写commitwork语句也触发的数据库提交;显式是指使用commit work或者这条语句触发的提交(包含封装这条语句的functionmodule,如DB_commit,bapi_transaction_commit等)。在以下几种情况下,会触发隐式提交:1,切换dialog,如callscreen2,调用RFC,如本文开始的示例3,程序运行结束,即工作进程结束时,4,RFC运行结束时(应包含在第3条里,为了突出RFC话题单独列出来)5,消息输出,如打印E,I,W类型的消息显式提交就没什么说的了,只有写上一句commitwork的时候才提交。SAP总喜欢把问题复杂化。那么什么情况下用显式提交呢,有以下两种情况必须显式提交:1,perform xxx on commit,只有等到显式的commit语句时,这个xxx才会被执行。2,call function xxx in update task,同上我们知道,BAPI开头的那一堆functionmodule大部分是需要显式调用commit才会提交数据库的,这是属于第1种情况,BAPI里面使用了大量的perform oncommit。再插一下,显式commit在增强程序中可要慎之又慎,它除了会把增强中你的代码中数据更新提交,也会把主程序中的数据更新提交,一不小心数据会被搞乱的。
那么问题来了,请问我有一个程序先后调用同一个外部系统的三个RFC,怎么样才能让这三个RFC一起提交一起回滚呢?再变态点,如果是多个外部系统呢?太变态了,遇到这样的直接回复用户搞不了。
以下是几篇数据库提交相关的文档:新年第一博:SAP异步更新带来的麻烦事COMMITWORKANDWAIT是在WAIT什么

SETUPDATETASKLOCAL


  

爱华网本文地址 » http://www.aihuau.com/a/25101014/223845.html

更多阅读

申请强制执行需要注意的事情 申请法院强制执行期限

? ??当您拿到胜诉的判决书,你可能会满心欢喜,认为万事大吉。但请注意,只有当败诉一方履行了他的义务,您才能长舒一口气。如果对方拖延甚至拒不履行生效判决,那您还得向法院申请强制执行,以兑现判决赋予您的权利。人民法院执行工作,是人民法

梦幻西游宝宝打书需要注意的问题 梦幻西游宝宝模拟打书

梦幻西游宝宝打书需要注意的问题——简介梦幻西游简单的宝宝打书攻略 想打书的新手来看看。可以减少一些不必要的错误。梦幻西游宝宝打书需要注意的问题——方法/步骤梦幻西游宝宝打书需要注意的问题 1、从头来讲 (很多人讲过这个的

艾草泡脚需要注意的问题 艾草洗澡的功效与作用

艾草泡脚需要注意的问题——简介 艾草泡脚有很多好处,譬如治感冒、祛湿、 止血、活血、改善心血管疾病,而任何事情都是有利有弊的,那么艾叶泡脚有什么不好呢?艾叶泡脚需要注意什么呢?下面详细说明。艾草泡脚需要注意的问

申请发明专利需要注意的一些特别问题 发明专利申请的流程

申请发明专利需要注意的一些特别问题最近有网友在我的邮箱里留言,问我申请发明专利需要注意哪些问题,我想,这是一个带有普遍性的问题,很多企业或者发明人都会有这样的问题。对于这样一个问题,在网上收索,会看到有很多人在问,也有很多人在

声明:《SAP中Commitwork需要注意的事情 work list sap》为网友男人霸气分享!如侵犯到您的合法权益请联系我们删除