PERFORM - ON 的注意点

PERFORM - ON Registered subroutines cannot have any parameter interface. Therefore, data can only be passed through external interfaces - for example, the ABAP meory. Subroutines that are executed in COMMIT WORK or ROLLBACK WORK are thus more suitable for management tasks, such as cleanup work at the end of a SAP-LUW, than for database changes. During processing of a registered subroutine after COMMIT WORK or ROLLBACK WORK, the statements PERFORM ... ON COMMIT, PERFORM ... ON ROLLBACK, COMMIT WORK, or ROLLBACK WORK must not be executed. During the processing of a registered subroutine after COMMIT WORK using CALL FUNCTION ... IN UPDATE TASK, registered booking function modules are still registered for the current SAP-LUW.
ABAP SAP模块化程序 子程序由 FORM开始,以 ENDFORM 结束。以 PERFORM 进行调用。'以下是一个最简单的子程序及调用'调用子程序'FORM 后跟 子程序名ENDFORM.声明:通过GENERATE关键字来生成动态代码或临时子程序。使用场景:通常它是在处理一些需要在程序执行时动态创建子程序的情况下使用。运行时创建:与静态定义的子程序不同,GENERATE生成的代码是动态执行的,且不需要预先编译。在远程系统中,定义一个可供调用的函数模块。这个函数模块会被暴露给其他系统调用。 阅读详情

相关推荐

SAP ABAP开发避坑指南:当增强遇到隐式提交,如何用PERFORM ON COMMIT保住数据一致性?

本文深入探讨了SAP ABAP开发中隐式提交导致的数据一致性问题,并详细介绍了如何使用PERFORM ON COMMIT机制确保数据完整性。通过实际案例和代码示例,展示了在增强开发中避免部分更新的最佳实践,包括与UPDATE FUNCTION的协同使用和高级调试技巧,帮助ABAP开发者构建更可靠的业务逻辑。

weixin_30619101的博客 185

SAP LUW 应用场景一(PERFORM ON COMMIT/CALL FUNCTION IN UPDATE TASK)

场景: abap开发中,数据库更新一般在最后保存的时候更新所有数据并及时进行数据库的提交回退来避免数据更新不一致。但是增强中严禁进行数据库提交回滚操作,就要考虑到数据更新一致性的情况,如何保证增强中写的更新语句不被隐式的提交而是和最终数据的更新保持一致,或者增强中会触发隐式提交的代码的处理。 SAP LUW 中有两种语法 PERFORM subr ON { {COMMIT [LEVEL idx]} | ROLLBACK } CALL FUNCTION update_function IN UPDA

xiefireworks的博客 3327

ABAP PERFORM参数传递详解:值传递、引用传递与性能优化

在ABAP编程中,子程序调用与参数传递是构建模块化代码的基础。理解参数传递机制的核心在于掌握值传递、引用传递和值结果传递三种方式的底层原理,这直接影响程序的数据流控制与执行效率。从技术价值看,正确的参数传递方式能避免数据意外修改、提升代码健壮性,并显著优化大型内表处理的性能。在实际应用场景中,开发者需要根据数据大小、读写需求及安全要求,灵活选择 USING VALUE、CHANGING 默认引用或 READ-ONLY 等关键字。本文聚焦于 PERFORM 语句的**参数传递**机制与**内表传递**的陷阱,

weixin_31292729的博客 255

ABAP学习笔记之——第四章:模块化程序

USING 语句与VALUE 语句一起搭配使用,则无法修改子程序中的实参值(Call by value),但是 CHANGING 语句与 VALUE 语句一起配套使用时,当正常结束子程序时会修改实参值练习做一个定义整数类型的3 个变量后,在FORM语句内执行加法的程序。从[图 4-3]中显示的数据库表 TRMAC 的数据中可以看出,在程序中输入 BREAK 会调用此Macro,从而可以实现设定断点的功能。这是指在一个函数组内的函数可以互相共享所有数据,还可以共享创建的屏幕,子程序等。

yishangbing的博客 3193

用 PERFORM ... ON COMMIT / ON ROLLBACK 把收尾工作做干净:从 SAP LUW 到 Update Task 的事务钩子实践

ABAP事务钩子机制解析 本文深入探讨SAP ABAP开发中的事务边界管理问题,重点分析PERFORM ... ON COMMIT/ROLLBACK机制: 事务分层:区分Database LUW(数据库提交)和SAP LUW(业务逻辑单元),后者通过COMMIT WORK触发多种收尾动作 钩子机制:PERFORM...ON COMMIT将子程序注册为事务结束回调,在提交/回滚时执行清理工作而非业务更新 执行顺序:钩子程序先于Update Task执行,仍保留当前会话内存上下文 现代实践:建议将FORM仅作为

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3993

46、使用 PERFORM... VARYING 实现高效的循环操作

本文深入探讨了COBOL中PERFORM...VARYING语句的使用方法,包括基本语法、应用场景、高级用法及优化技巧。通过实例展示了如何在遍历数组、处理文件记录和复杂循环控制等场景中高效使用该语句,并提供了性能优化建议,帮助读者更好地掌握这一强大的循环工具。

brown的博客 207

PERFORM ... ON COMMIT.

DATA WA TYPE SFLIGHT. WA-CARRID = 'AA'. WA-CONNID = '0017'. PERFORM SAVE1 ON COMMIT. WA-CARRID = 'AA'. WA-CONNID = '0064'. PERFORM SAVE2 ON COMMIT. COMMIT WORK AND WAIT. 这时SAVE1 和SAV

小峰的ABAP博客 3768

19、使用 PERFORM 提高 COBOL 程序的模块化与可读性

本文详细介绍了COBOL编程中PERFORM语句的使用方法及其在模块化编程和程序控制流中的应用。通过具体示例展示了如何利用PERFORM语句提高代码的可读性和可维护性,同时探讨了结合条件和循环控制实现复杂逻辑的方法以及最佳实践。

brown的博客 282

C++ libcurl:关于curl_easy_perform的一些使用注意点

这个是在近日工作中涉及到libcurl的使用时,得出的一些思考。 关于curl_easy_perform的官方文档,见这里 主要背景是这样的:在写完了一个需要用libcurl提出HTTP请求的功能,自测一下假设发生某些异常,会对系统带来什么影响。结果测到以下条件的时候: 第1次调用curl_easy_perform的参数中,CURLOPT_URL是一个无效域名(注意是域名、也就是网址,不是某个IP地址) 在第1个curl_easy_perform发出去后的20秒内,尝试发送第2个curl_easy_per

yunaの小さなプログラム園 5292

Halcon: 获取仿射矩形-rectangle2的四个顶点、四条边的中点

Halcon 工业应用实用教程中的一个例子: * CenterY : 仿射矩形中心y * CenterX: 仿射矩形中心x * Phi: 仿射矩形角度 * Len1: 仿射矩形宽的一半 * Len2: 仿射矩形高的一半 * CornerY: 仿射矩形端点y * CornerX: 仿射矩形端点x * LineCenterY: 仿射矩形边中点y * LineCenterx: 仿射矩形边中点x * 矩...

ruotianxia的博客 8572

Qt上位机实战:5步搞定STM32 IAP固件升级(附拖拽文件处理技巧)

本文详细介绍了如何使用Qt开发STM32 IAP固件升级上位机。通过五个核心步骤,包括理解IAP机制、搭建Qt环境、实现拖拽文件加载、封装串口通信以及设计可靠通信协议,帮助开发者快速构建一个稳定、易用且支持图形化操作的固件升级工具,显著提升嵌入式产品开发与维护效率。

ss78901的博客 1076

COBOL PERFORM verb

PERFORM paragraph vs. PERFORM paragraph1 THRU paragraph2 PERFORM paragraph Transfer control to paragraph, and transfer back when paragraph has finished to instruction immediately after the P

程序员码工的专栏 1267

AI 辅助代码审查:开启代码质量管控的智能时代

AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3228

SAP ABAP开发避坑指南:用PERFORM ON COMMIT解决增强中数据提交不一致的难题

本文深入探讨了SAP ABAP开发中数据提交不一致的问题,重点介绍了如何使用PERFORM ON COMMIT机制解决增强开发中的数据一致性问题。文章详细解析了SAP LUW的工作原理、隐式提交的触发场景,并通过实战案例展示了如何重构代码以确保数据原子性更新,帮助开发者避免常见陷阱。

weixin_30599769的博客 326

ICC2(一)import design —— tluplus

itf转tluplus相关命令 TLUPlus是存储RC系数的二进制表格式。 TLUPlus模型通过包括宽度,空间,密度和温度对电阻系数的影响,可以估算RC计算net delay。 1.2 产生TLUplus的方法 Itf文件转TLUplus的命令: grdgenxo -itf2TLUPlus -i xx.itf-o xx.tlu+ itf: interconnect technology format file 含每层的厚度,面积等参数 itf同样可以转nxtgrd格式文...

m0_61544122的博客 5483

R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)

本教程运用随机森林生存分析筛选与患者生存状态显著相关特征。该方法借随机森林这一强大机器学习算法,构建多棵决策树并集成结果,以提高生存分析准确性,识别关键生物标志物。接着,利用选定特征构建风险得分,将多个特征转化为单一数值,量化患者风险水平。之后,依据风险得分将患者分为高、低风险亚型,为临床治疗提供个性化指导。最后,通过分析时间依赖的 ROC 曲线评估模型长期预测能力。此曲线计算不同阈值下的真正例率与假正例率,在多个时间点评估,全面展现模型长期稳定性与准确性。。并且增加了SHAP值评估特征重要性

专注生信领域 2621

PERFORM参数传递

实参:子例程调用期间用PERFORM语句指定的参数;形参:子例程定义期间用FORM语句定义的参数。

weixin_44686958的博客 2851

Android 系统状态栏中实现高斯模糊背景

至此,我们已经完成了在 Android 系统的 SystemUI 中实现高斯模糊背景的过程。通过以上的布局和代码修改,我们可以在状态栏中看到具有高斯模糊效果的背景。同时,为了在不同版本的 Android 系统上适配高斯模糊效果,可能需要进行一些额外的代码调整和兼容性处理。希望本文能够帮助你理解如何在 Android 系统的 SystemUI 中实现高斯模糊背景,并通过提供的源代码进行相应的开发和调试。首先,我们需要在 SystemUI 的布局文件中添加一个用于展示高斯模糊背景的视图。属性来开启模糊效果。

CyberSparkZ的博客 869

ABAP 内表的定义,与PERFORM传值的定义

问题描述: 许多同学在内表定义还有很多种,其实掌握两种就好了;DATA的用法那么多,该怎么用?还有就是PERFORM创建之后,传值有什么讲究,老是参考定义不对劲。 此博客就是解决这两个问题 一,普通程序需要定义结构 1.全手动定义的结构 TYPES : BEGIN OF typ_alv , aufnr TYPE afpo-aufnr, "生产订单 auart TYPE aufk-auart, "订单类型 mes TYPE cha

寒武青锋的博客 1万+

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

机器学习深度学习业余选手 1146

[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究

上一篇文章详细讲解如何利用数据增强方法实现图像数据集的扩充,并以濒危水书作为案例讲解。这篇文章将详细讲解基于机器学习的水书图像识别方法,以图像像素统计为特征开展图像分类讲解,这是最基础的方法,也为后续深度学习图像分类描述提供支撑。基础性文章,希望对您有所帮助!让我们开始吧,且看且珍惜。

杨秀璋的专栏 989

人大金仓数据库KingbaseES call、select和perform的区别

需要注意的是,CALL和PERFORM在PostgreSQL 中是可选的语法,可以使用 SELECT语句来调用存储过程或函数,或者执行一些没有返回结果的操作。PERFORM`命令通常用于在函数或触发器中执行查询,以验证查询是否返回了所期望的结果,或者用于执行一些与结果无关的操作(如插入、更新或删除数据)。要注意,PERFORM命令不会返回查询结果,因此不适合用于需要获取查询结果的情况。它通常用于执行一些没有返回结果的操作,例如插入、更新或删除数据,或者执行一些存储过程或函数,而不需要获取返回值。

arthemis_14的博客 1095

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

gralloc1_perform具体在干什么

会在特定场景下通过 ioctl调用,执行和操作,确保和之间的数据一致性。

Damon_X的博客 996

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

drf---create方法和perform_create方法有什么区别

1. create&&perform_create介绍 1. 1 介绍 # create 序列化器保存数据的方法 # perform_create 调用保存数据的方法 # perform_create 该方法就是一个serializer.save(),本质上就是调用create 1.2. 源码 def create(self, request, *args, **kwargs): # 外部我们配置序列化器 serializer = self.get_seria

python_web全栈 5577

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Oracle向PG转移建议以及注意点

Oracle向PostgreSQL迁移指南摘要 本文总结了从Oracle数据库迁移到PostgreSQL的关键注意事项:1)语法差异方面,PostgreSQL不支持Package结构需拆分为独立函数/存储过程,变量声明方式不同,异常处理使用RAISE EXCEPTION替代RAISE_APPLICATION_ERROR;2)迁移工具推荐使用ora2pg、AWS Schema Conversion Tool和DataX;3)重要测试建议包括单元测试、性能测试和日志记录;4)提供了函数迁移的完整示例对比;5)特

Aealen的博客 1477
上一篇: DEMO_NATIVE_SQL
下一篇: sap 长文本
java_smalltalk
博客等级 码龄20年 8粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值