严格来说,commit work and wait也不是彻底的同步更新,此处等待数据更新操作完成,是指只等V1更新(优先级较高)完成,不等待其他优先级较低的V2更新等。 在调用BAPI更新标准对象时,除少数BAPI在函数内做commit之外,其他均需要调用一下function module完成提交 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = ...
所以说COMMIT WORK是异步的,为了使其同步,所有就有了COMMIT WORK AND WAIT. 对于COMMIT WORK AND WAIT 来说,是可以判断是否更新成功的,SY-SUBRC NE 0就是有问题的。 上面是最简单的区别,再有: 由于系统中COMMIT WORK的数量是有限的,比如说我们系统是4000个,同时只能提交4000个更新进程,对于COMMIT WORK来说,执...
由于系统中 COMMIT WORK 的数量是有限的,比如说我们的系统是4000个,同时只能提交4000个更新进程, 对于COMMIT WORK 来说,执行完就释放了,可以为后面的COMMIT WLRK继续使用; 而对于 COMMIT WORK AND WAIT是要执行完才释放的,所以对于没有必要同步更新的,应该使用异步,使得资源得到释放。 同样地,在有时候,一方面我们...
COMMIT WORK [AND WAIT]. 如果使用 AND WAIT 选项,那么 在程序继续 执行以前, 它要等到更 新任务的结 束。如果更 新是成功的 ,SY-SUBRC 就设置为 0。如果 SY-SUBRC 返回一个非 零值,就没 有成功的存 储所作的更 改。 要在保存之 前取消对数 据库表所作 的更改,请 按下列形式 使用 ROLLBACK WORK ...
调用bapi都需要判断return消息类型,如果没有报错则BAPI_TRANSACTION_COMMIT和COMMIT WORK AND WAIT.,否则BAPI_TRANSACTION_ROLLBACK。 同时,部分bapi调用之后还需调用特定的函数进行垃圾回收,否则会造成duplicate问题。 常用的处理方式: LOOP AT lt_return INTO wa_return. IF wa_return-type EQ 'E' OR wa_return-...
subrc=0.COMMITWORKANDWAIT.ls_snro-name='ZSD_JS'.ls_snro-snro='ZSDJS'.ls_snro-zdate=sy-datum.MODIFYzsd_snroFROMls_snro.IFsy-subrc=0.COMMITWORK.ELSE.ROLLBACKWORK.ENDIF.ENDIF.ENDIF.*加锁CALL FUNCTION'NUMBER_RANGE_ENQUEUE'EXPORTINGobject='ZSDJS'EXCEPTIONSforeign_lock=1object_not_found=2...
封装成一个函数:zint_send_email FUNCTION zint_send_email. *"--- *"*"本地接口: *" IMPORTING *" VALUE(KTYPE) TYPE SO_OBJ_TP DEFAULT 'RAW' *" VALUE(SUBJECT) TYPE SO_OBJ_DES OPTIONAL *" VALUE(TEXT) TYPE SOLI_TAB OPTIONAL *" VALUE(SENDER...
COMMIT WORK AND WAIT. ENDIF. LOOP AT lit_ret WHERE type = 'E'. CLEAR l_msg. MESSAGE ID lit_ret-id TYPE 'E' NUMBER lit_ret-number WITH lit_ret-message_v1 lit_ret-message_v2 lit_ret-message_v3 lit_ret-message_v4 INTO l_msg. ...
COMMIT WORK AND WAIT. //如果更新表的动作执行成功,则提交任务。 ELSE. ROLLBACK WORK. //否则回滚操作。 ENDIF. ENDIF. ENDFORM. 数据校验 以校验工厂WERKS为例 首先,将有效数据从标准表T001W中读取出来存放到内表LT_WERKS中,此处使用SELECT语句:
OSCON_DMODE_UPDATE_TASK_SYNC: 同步更新(相当于 COMMIT WORK AND WAIT) OSCON_DMODE_DIRECT 或者 OSCON_DMODE_LOCAL: 本地更新 (类似于 SET UPDATE TASK LOCAL) 那我们将上次代码进行一个优化,加入面向对象的事物管理 源代码如下: REPORT znb_persist_test. ...