`
piperzero
  • 浏览: 3534448 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

sap commit & rollback

 
阅读更多
1. COMMIT WORK 语句执行许多与任务的同步执行有关的功能。
ROLLBACK WORK语句“取消”任务同步执行的所有请求。
COMMIT WORK 语句进行下列处理:
? 执行所有由PERFORM ON COMMIT 请求的FORM 例程。
按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。
? 如果请求,触发所有更新任务功能模块。
? 如果请求,触发所有后台任务功能模块。
? 触发数据库提交(依次释放数据库锁定)。
? 清空反转日志。
反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。
? 关闭所有打开的数据库光标。
? 将所有TEMSE 对象写入永久性文件或数据库。
TEMSE文件是由于性能原因在执行事务期间缓存的临时序列文件。TEMSE文件的示例有假脱机对象或作业日志。
? 将时间片计数器(用于访问工作进程)复位到0。
系统中的时间片计数器限制工作进程中程序运行的时间量。如果程序常常超过时间片限制,则可以使用COMMIT WORK为程序获得更多时间。
但是,要达此目的,必须很容易将处理分为更小单元(全部或没有操作)。然后可以在每个单元之后插入COMMIT WORK 语句。当然处理单元逻辑上必须独立,因为在发生错误时,不能取消前面的单元中所提交的更新。
ROLLBACK WORK“抛弃”当前事务的所有更新:
? 抛弃所有以前用PERFORM ON COMMIT 登录的FORM例程
? 在更新任务队列中将所有以前请求的更新任务功能标记为错误
? 抛弃所有以前请求的后台任务功能
? 从缓冲存储中删除所有TEMSE对象(临时 连续文件,如假脱机对象和作业日志)
? 触发数据库反转操作(依次释放所有数据库锁定)
? 关闭所有打开的数据库光标
2. 以下情况需使用使用COMMIT和ROLLBACK语句。
1) 通过INSERT、UPDATE和MODIFY语句对数据库进行更新事务后。
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。
3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的所有更改都不能再取消。但是,如果在LUW 中出现了错误,就必须取消已经执行的部分。这意味着当前没有任何插入的行能 永久地保存在数据库中。要撤销当前LUW 对数据库的更改,请使用ROLLBACK WORK,它将取消前一次数据库提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改
分享到:
评论

相关推荐

    Implementing a Distributed Two-Phase-Commit Scenario with Web Services and SAP NetWeaver PI 7.1.pdf

    这两个操作分别对应了TPC中的准备阶段(Prepare Phase)和提交/回滚阶段(Commit/Rollback Phase)。 ##### TU&C/C事实 - **暂定更新**:在这个阶段,事务参与者将数据标记为待更新状态,但不实际更新。 - **确认...

    SAP BAPI的使用介绍.pptx

    2. consistency:BAPI内部通常不包含COMMIT WORK和ROLLBACK WORK,这种机制为我们实现多个BAPI调用的原子性提供了可能 3. isolation:BAPI内部通常不包含COMMIT WORK和ROLLBACK WORK,这种机制为我们实现多个BAPI...

    SAP BAPI 函数列表

    此外,SAP提供了BAPI事务代码如BAPI_TRANSACTION_COMMIT和BAPI_TRANSACTION_ROLLBACK,用于管理数据库事务。前者用于提交事务,确保所有相关更改被保存;后者则用于回滚事务,撤销所有更改。 在“list.txt”文件中...

    java和sap集成jco包

    5. **事务管理**:JCO支持事务控制,可以通过`JCoDestination`的`setAutoCommit`方法开启或关闭自动提交,或者手动调用`begin`、`commit`、`rollback`方法进行事务操作。 6. **错误处理**:在使用JCO过程中,可能会...

    SAP的UpdateModule函数.pdf

    Update Module函数仅在COMMIT或ROLLBACK时执行,常在事务内部与COMMIT WORK语句一起使用。 总之,SAP的Update Module函数提供了一种灵活的方式来处理数据库更新,确保了主程序的连续性和系统的稳定性。正确理解和...

    sap 程序设计教程

    - **事务处理**: 使用BEGIN WORK、COMMIT WORK、ROLLBACK等语句管理事务。 - **连接池**: 了解如何利用SAP提供的连接池技术提高数据库访问效率。 #### 四、SAP开发工具 - **SE38**: 创建和维护ABAP程序的主要工具...

    重要知识SAP的UpdateModule函数.pdf

    - `COMMIT WORK`或`ROLLBACK`是触发Update Module执行的关键点。 理解并正确使用SAP的Update Module函数对于编写高效、稳定的SAP程序至关重要。这涉及到对SAP事务处理流程的深入理解和对数据库更新的最佳实践掌握...

    SQLAlchemy Dialect for SAP HANA.zip

    `session.begin()`, `session.rollback()`, 和 `session.commit()` 分别用于开始、回滚和提交事务。 9. **高级查询**: 使用 SQLAlchemy 的表达式语言,可以构建复杂的 SQL 查询,包括联接、子查询、聚合函数等。 ...

    SAP BAPI的使用介绍.pdf

    在BAPI内部,一般不直接包含COMMIT WORK和ROLLBACK WORK,这有利于实现多BAPI调用的原子性。可以通过显式调用BAPI_TRANSACTION_COMMIT来提交事务,注意WAIT参数的使用。 4. 多个BAPI操作时需注意: - 更新或修改后...

    SAP HANA SQL and System Views Reference

    - **事务管理语句**:如 COMMIT、ROLLBACK 等。 - **会话管理语句**:如 SET SESSION AUTHORIZATION、SAVEPOINT 等。 - **访问控制语句**:如 GRANT、REVOKE 等。 - **数据导入导出语句**:如 IMPORT DATA、...

    sap 内表

    - **COMMIT WORK/ROLLBACK WORK**:确认或撤销对数据库表所做的更改。 #### 三、具体操作详解 1. **从数据库表读取数据** - 使用`SELECT`语句来从数据库表中读取数据。例如: ```abap SELECT * FROM INTO ...

    SAP HANA SQL Script Reference

    提交(COMMIT) 和回滚(ROLLBACK) 用于控制事务的结束。 ##### 7.8 动态 SQL 动态 SQL 允许在运行时构建 SQL 查询。 - **EXEC**:执行预定义的 SQL 语句。 - **EXECUTE IMMEDIATE**:执行动态构造的 SQL 语句。 - **...

    sap abap 实用教程

    - `ROLLBACK TO SAVEPOINT` 和 `COMMIT WORK` 控制事务的回滚和提交。 #### 三、ABAP/4语法约定与图标说明 **3.1 语法约定** - **屏幕文本**: 显示在屏幕上的文字,如系统提示、字段名等。 - **用户输入**: 用户...

    sap_interface_pyrfc:使用PyRFC的SAP接口编程

    conn.rollback() ``` 此外,PyRFC还提供了错误处理和日志记录功能,可以帮助调试和优化SAP接口代码。 为了提高代码的可维护性和可重用性,建议将SAP连接和调用封装成类或函数。例如,可以创建一个`SAPClient`类,...

    SAP_HANA_SQL_and_System_Views_Reference_en

    - **事务管理语句**:如 `BEGIN TRANSACTION`, `COMMIT`, `ROLLBACK` 等,用于事务的开始、提交和回滚。 - **工作负载管理语句**:如 `CREATE WORKLOAD GROUP`, `ALTER WORKLOAD GROUP` 等,用于管理资源组。 #### ...

    用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法

    - 如果没有错误并且不是测试模式,则提交事务(`BAPI_TRANSACTION_COMMIT`)。 5. **清理工作**: - 清除所有使用的临时表和变量。 #### 四、注意事项 - 在使用`BAPI_PO_CHANGE`修改PO时,需要确保有足够的权限,...

    OTL 编程指南

    - **commit/rollback**:显式提交或回滚事务,推荐使用而非自动提交模式。 1.3 otl_stream类 otl_stream类是执行SQL语句和处理数据的核心工具,它的工作原理是解析程序员提供的SQL,然后通过内部缓冲区与数据流交互...

    Transact-SQL User’s Guide Adaptive Server Enterprise 12.5-794

    3. **事务管理**:阐述了事务的概念,包括ACID属性(原子性、一致性、隔离性和持久性),以及如何使用BEGIN TRANSACTION、COMMIT和ROLLBACK来确保数据的一致性。 4. **并发控制**:解释了锁机制和多用户环境下的...

    oracle基础整理

    典型的TCL语句有COMMIT、ROLLBACK和SAVEPOINT。 4. 数据查询语言(DQL):DQL用于检索数据,主要由SELECT语句构成,可以配合WHERE子句、GROUP BY、HAVING等实现复杂的查询。 5. 数据控制语言(DCL):DCL用于管理...

Global site tag (gtag.js) - Google Analytics