转载!abap代码规范

01、在增强里面禁止显式或者隐式提交(ZILOG所在函数如果用在增强里面,不要COMMIT)

02、WAIT、异步RFC,都会触发隐式提交,所以禁止在增强内以及禁止提交的场合使用

03、FOR ALL ENTRIES一定要判断内表是否为空且尽量删除重复,SELECT的字段包含所有KEY,避免DISTINCT导致数据错误

04、READ TABLE尽量使用使用二分法或者SORTED KEY,如果用二分法内表不要忘记升序排序

05、DELETE ADJACENT DUPLICATES一定要先排序

06、禁止使用MESSAGE 'XXXX' TYPE 'S'.尽量使用Z消息类,不建议使用通用消息类

07、IN UPDATE TASK的函数,一定要注意性能,不然容易引起更新堵塞和导致数据更新失败

08、BDC的数值、日期字段先WRITE为字符格式

09、VFOM写的例程,传到生产还得再用程序RV80HGEN激活一下

10、修改数据、更新表,先加锁

11、调用RFC的时候,两个EXCEPTIONS不要忘:system_failure和communication_failure

12、PAI中,OK_CODE赋值给SAVE_OK,然后清空OK_CODE

13、避免全局变量和局部变量同名

14、直接Insert/Update表的时候,要转成内部格式

15、在使用SAP锁的时候,用正确的_scope

16、使用递归子程序的时候,尽量使用传值方式避免错误

17、创建表的时候MANDT不能少

18、如果程序不是特别巨大,不要分成几个INCLUDE程序,运维太烦

19、尽量做到代码简洁明了,重视程序性能

20、DELETE DB和UPDATE DB语句,一定要注意使用WHERE语句的限制条件

21、数据库的增删改尽量放到程序的最后,一起进行,如果是在增强里面,使用UPDATE TASK

22、A类型MESSAGE程序会自动回滚,并退出程序。X类型MESSAGE会回滚并DUMP,E类型MESSAGE报错但不回滚,如果需要回滚需要显式ROLLBACK WORK

23、在多个表取数,如果符合使用JOIN的原则,则尽量使用JOIN

24、LOOP大内表的时候,尽量使用二分法READ TABLE和LOOP结合的方法,或者使用SORTED KEY

25、在更新进程里面,不要使用SELECT SINGLE * FOR UPDATE 和 AUTHORITY-CHECK

26、在更新进程里面,不允许使用SUBMIT,CALL DIALOG,CALL SCREEN,CALL TRANSACTION,COMMIT WORK,ROLLBACK WORK

27、如果使用Webservice或者WebUI,日期格式使用YYYY-MM-DD

28、如果需要等BAPI执行结束和更新结束拿到结果,用SET UPDATE TASK LOCAL,不要使用等待语句(WAIT UP TO XXX SECONDS)

29、如果需要在增强中更新表,使用IN UPDATE TASK,并注意V1还是V2更新

30、非必要不使用宏,尤其是给ALV的FieldCat赋值的时候

31、流水码(编号范围SNRO),如果允许跳号,一定要设置缓冲

32、如果可能,尽量避免硬代码(自开发程序似乎没法完全避免)

33、在实施项目中,往往到上线前才会传输请求到PRD,之前传输请求到在QAS建议使用副本请求,避免最后请求混乱

34、SELECT JOIN的时候,注意两个表的连接字段可能都为空的情况,会造成笛卡尔积,数据量急剧变大

35、如果没有使用逻辑数据库(LDB),没有必要使用事件END-OF-SELECTION

36、往其他系统推送数据的RFC,尽量使用bgRFC,使用tRFC容易占用进程过多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考高级第四版备考--第13天(规划资源管理)Plan Resoure Management

定义:定义如何估算、获取、管理和利用团队以及实物资源的过程。 作用:根据项目类型和复杂程度确定适用与项目资源的管理方法和管理程度 输入:项目章程、项目管理计划(质量管理计划、范围基准)、项目文件(…

域渗透与横向渗透:获取域控制器最高权限的技术与策略

域渗透与横向渗透:获取域控制器最高权限的技术与策略 引言 域控制器是组织网络中的核心组件,负责管理用户账户、安全策略和网络资源访问。横向渗透是攻击者在内网中移动并控制更多系统的过程。获取域控制器的最高权限意味着攻击者可以对整个网络进行操…

windows10下的游戏怎么卸载?

在Windows 10中卸载游戏可以通过多种途径进行,下面是一些常见的方法: 方法一:通过“设置”应用卸载 1. 点击左下角的“开始”按钮,打开“开始”菜单。 2. 选择“设置”图标(齿轮形状)。 3. 在“设置”窗…

2024年5款最佳免费博客程序——对比和测评

多年来,我试用了许多不同的博客网站,并评估了它们在各种需求上的表现。这篇文章记录了我的发现(截至2024年),旨在帮助您为您的项目选择最佳解决方案。 我将介绍五个非常优秀的博客平台,它们让您能够轻松创建…

QTreeWidget 树遍历

在项目中遇到一个问题:需要将QString路径,做成一棵树的样式展示出来。其实倒不是说是问题,只是记录写这块儿的代码的思路 前提:我的所有的QString都是用"/"进行分割的,分割后的list中第一个元素是公共的路径…

知识改变命运 第二集:Java的数据类型与变量

数据类型与变量 1. 字面常量2. 数据类型3. 变量3.1 变量概念3.2 语法格式3.3 整型变量3.3.1 整型变量3.3.2 长整型变量3.3.3 短整型变量3.3.4 字节型变量 3.4 浮点型变量3.4.1 双精度浮点型3.4.2 单精度浮点型 3.5 字符型变量3.6 布尔型变量3.7 类型转换3.7.1 自动类型转换(隐式…

mybatilsplaus 常用注解

官网地址 baomidou注解配置

CATIA二次开发VBA入门(5)——catia文档操作vb.net程序案例,打开catia文件,进行视图操作,退出程序

目录 引出catia文档操作案例1.初始化窗体,始终置顶始终置顶方式2 2.打开文件3.视图切换4.退出5.完整代码 总结认识CATIA二次开发刘瑞欣 vb程序设计教程Excel中的vba开发catia中的vba开发 宏的录制、回放和编辑宏代码精简画圆柱阵列宏Macro文件的3种类型宏的保存&…

CSS 指南

CSS 指南 引言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于控制网页的布局和样式,使网页更加美观和易于浏览。本指南将为您提供CSS的基础知识,包括选择器、属性、值以及如何将CSS应用于HTML元素。 CSS基础 选择器 选择器是CSS中用于选择HTML元素的部分…

如何安全隐藏IP地址,防止网络攻击?

当您想在互联网上保持隐私或匿名时,您应该做的第一件事就是隐藏您的 IP 地址。您的 IP 地址很容易被追踪到您,并被用来了解您的位置。下面的文章将教您如何隐藏自己,不让任何试图跟踪您的活动的人发现。 什么是 IP 地址? 首先&am…

Apache Flink核心特性应用场景

Flink的定义 Apache Flink是一个分布式处理引擎,用于处理 无边界数据流, 有边界数据流上金秀贤有状态的计算。Flink能在所有常见的集群环境中运行,并能以内存速度和任意规模进行计算如下Flink官网的一张图 Flink 与Spark的区别 Flink 中处…

keep-alive缓存组件

keep-alive缓存组件是Vue.js中的一个特殊组件&#xff0c;主要用于缓存内部组件的数据状态&#xff0c;以提高应用的性能和用户体验。以下是关于keep-alive缓存组件的详细解析&#xff1a; 一、作用 缓存组件状态&#xff1a;当组件在<keep-alive>内部切换时&#xff0…

白盒测试的概念、特点、应用阶段、实施流程、现状与前景

文章目录 前言一、白盒测试的应用阶段二、白盒测试的特点三、白盒测试的流程四、白盒测试的现状与前景总结 前言 白盒测试&#xff08;White Box Testing&#xff09;&#xff0c;又称为结构测试&#xff08;Structural Testing&#xff09;、透明盒测试&#xff08;Glass Box…

Riscv 调试系统的合规测试

Riscv debug release框图 仿真环境下的Riscv debug框图 平头哥调试环境 XuanTie DebugServer是一个调试代理软件&#xff0c;它通过CKLINK&#xff0c;以JTAG的方式连接目标板&#xff0c;并支持“GDB Remote Protocol” 。开发者可以通过GDB对运行在玄铁800系列和玄铁900系列处…

24.可乐机拓展练习--综合训练

&#xff08;1&#xff09;设计要求&#xff1a;仍以可乐机为背景&#xff0c;一瓶可乐的价格是2.5 元&#xff0c;用按键控制投币&#xff08;加入按键消抖功能&#xff09;&#xff0c;可以投 0.5 元硬币和 1元硬币&#xff0c;投入 0.5 元后亮一个灯&#xff0c;投入 1元后亮…

从微软 Word 中提取数据

从 Microsoft Word 文档中提取数据可以通过编程来实现&#xff0c;有几种常见的方法&#xff0c;其中之一是使用 Python 和 python-docx 库。python-docx 是一个处理 .docx 文件&#xff08;Microsoft Word 文档&#xff09;的 Python 库&#xff0c;可以读取和操作 Word 文档的…

语雀平替,一款私有化功能丰富的开源知识库系统

背景介绍 现代企业面临的文档管理挑战日益严峻&#xff0c;包括信息冗余&#xff0c;存在多份数据&#xff0c;难以做到统一 &#xff0c;文档数量激增&#xff0c;查找麻烦&#xff0c;知识的信息安全问题频发以及团队协作需求不断上升。同时&#xff0c;随着知识管理在企业运…

洞察插槽和 v-slot:组件插槽案例的分类解读

目录 插槽和v-slot介绍 组件插槽 默认插槽 具名插槽 条件插槽 动态插槽 作用域插槽 插槽和v-slot介绍 Vue插槽(Slot)是Vue.js框架中用于实现组件间内容传递和模板通信的一种机制。通过插槽,父组件可以向子组件的指定位置插入HTML结构或内容,从而实现更灵活和…

华为HCIP Datacom H12-821 卷31

1、PBR&#xff08;Policy-Based-Route&#xff09;可以执行以下哪些操作 A、修改匹配数据包的LSP B、修改匹配流量的下一跳地址 C、修改匹配流量的出接口 D、修改匹配流量的Qos信息 正确答案&#xff1a; A,B,C,D 解析&#xff1a;PBR可以设置本地路由策略动作&#x…

文章SameStr(二):图2代码

title: “Publication Figure 2” 百度云盘链接: https://pan.baidu.com/s/15g7caZp354zIWktpnWzWhQ 提取码: 4sh7 Libraries Standard Import library(tidyverse) library(cowplot) library(scales) library(ggpubr)Special library(lme4) library(sjPlot) library(sjst…