这是同步更新还是异步更新的问题;如果是只commit work,是异步更新,触发注册在当前SAP LUW中所有数据更新动作,数据更新动作由SAP的更新工作进程来执行,当前程序不等待更新动作结束,直接向下执行。 commit work and wait 是同步更新,此语句触发注册在当前SAP LUW所有数据更新动作,当前主程序等待SAP更新进程完成数据更新操作...
所以说COMMIT WORK是异步的,为了使其同步,所有就有了COMMIT WORK AND WAIT. 对于COMMIT WORK AND WAIT 来说,是可以判断是否更新成功的,SY-SUBRC NE 0就是有问题的。 上面是最简单的区别,再有: 由于系统中COMMIT WORK的数量是有限的,比如说我们系统是4000个,同时只能提交4000个更新进程,对于COMMIT WORK来说,执...
要撤销当 前 LUW 对数据库的 更改,请使 用 ROLLBACK WORK, 它将取消前 一次数据库 提交后的所 有更改。 要确认对数 据库表的更 改并使它们 不能再取消 ,请按如下 格式使用 COMMIT WORK 语句: 语法 COMMIT WORK [AND WAIT]. 如果使用 AND WAIT 选项,那么 在程序继续 执行以前, 它要等到更 新任务的...
由于系统中 COMMIT WORK 的数量是有限的,比如说我们的系统是4000个,同时只能提交4000个更新进程, 对于COMMIT WORK 来说,执行完就释放了,可以为后面的COMMIT WLRK继续使用; 而对于 COMMIT WORK AND WAIT是要执行完才释放的,所以对于没有必要同步更新的,应该使用异步,使得资源得到释放。 同样地,在有时候,一方面我们...
为什么要commit呢,百里其实自己做了个实验,就是当数据量很少的时候就是你提交不提交也就那样了 效果是一样的, 但是! 当数据量很大的时候,sap是跟异步一样, 后续所需的数据,就会获取不到,此时就需要使用commit work and wait 进行数据处理,变成同步.这样方便后序数据操作 . ...
(转ABAP中的DB..ROLLBACK WORK和 COMMIT WORK AND WAIT DEBUG进去后,怎么都是CLEAR ,REFRESH之类代码,那怎(COMMIT WORK AND WAIT )如何更新数据
为什么要commit呢,百里其实自己做了个实验,就是当数据量很少的时候就是你提交不提交也就那样了 效果是一样的, 但是! 当数据量很大的时候,sap是跟异步一样, 后续所需的数据,就会获取不到,此时就需要使用commit work and wait 进行数据处理,变成同步.这样方便后序数据操作 . ...
为什么要commit呢,百里其实自己做了个实验,就是当数据量很少的时候就是你提交不提交也就那样了 效果是一样的, 但是! 当数据量很大的时候,sap是跟异步一样, 后续所需的数据,就会获取不到,此时就需要使用commit work and wait 进行数据处理,变成同步.这样方便后序数据操作 . ...
WHEN bed1 stm1 WHEN bed2 stm2 WHEN bedx WHEN OTHERS stm3 ENDCASE*-CHECK: CHECK SELECT-OPTIONS CHECK logexp1 CHECK s1*-CLEAR: CLEAR v1 WITH lit1 WITH NULLCLOSE: CLOSE CURSOR curs1 CLOSE DATASET dsn1COLLECT: COLLECT tabla1 COLLECT wrk1 INTO tabla2*-COMMIT: COMMIT WORK AND WAIT*-...
OSCON_DMODE_UPDATE_TASK_SYNC: 同步更新(相当于 COMMIT WORK AND WAIT) OSCON_DMODE_DIRECT 或者 OSCON_DMODE_LOCAL: 本地更新 (类似于 SET UPDATE TASK LOCAL) 那我们将上次代码进行一个优化,加入面向对象的事物管理 源代码如下: REPORTznb_persist_test.SELECTION-SCREEN BEGIN OF BLOCKb1WITH FRAMETITLETEXT...