rry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应。那时候Jerry深深地怀念之前在C/C++编程时遵循的驼峰命名法和匈牙利命名法。
驼峰命名法:函数名中的每一个逻辑断点都有一个大写字母来标记。方法和变量名的首字母一般小写,这叫小驼峰命名法,例如printEmployeePaychecks. 类名的首字母一般大写,这叫大驼峰命名法,比如EmployeeBonusPlanManager.
匈牙利命名法: 变量名= 类型 + 描述。类型一般以一个或多个小写字母开头作为前缀,后面跟着一个或多个单词描述该变量的用途。
Jerry上大学的时候,用的C/C++教程里的示例代码全部采取的匈牙利命令法。
这两种命名方式各有优缺点,网上有很多文章阐述,大家感兴趣的话自行查阅。
那么ABAP呢?在Jerry的文章 SAP官方发布的ABAP编程规范 里能够发现,ABAP的变量命名采取的是一种综合了匈牙利命名法和下划线命名法的混合方式。有的时候,这种命名方式会给ABAP开发人员带来一些烦恼。看一个实际的例子,来自2017年Jerry还在SAP成都研究院CRM开发团队工作时,大家讨论的一个变量命名的问题。
假设有这样一段简单的ABAP代码,通过OPEN SQL从名为I_Product的CDS view里读取数据到内表lt_table里。
ABAP变量名是大小写无关的,下图红色下划线lt_table是一个“匈牙利命名法+下划线命名法”的例子,lt是local table的缩写, 说明这个变量是一个局部内表变量。
通常情况下我们期望ABAP里的变量名都统一用小写,为此只需在SAP GUI的ABAP Editor设置里,打开Pretty Printer配置页面,将Keyword Uppercase的勾打上。
这样我们在使用IDE里提供的Pretty Printer,即代码美化功能时,即使ABAP变量里出现了大小写混杂的情况,也会全部自动转换为小写。
然而Pretty Printer的这种行为会带来一个小问题,如果代码里访问了某个CDS view,比如例子中的I_Product,因为它不是一个ABAP关键字,所以也会被转换成全部是小写字母的组合:i_product.
当时我们对这个行为有些不满意,因为按照我们内部开发规范,CDS view的首字母和下划线之后的第一个字母必须大写。我们期望的结果是,当Pretty Printer执行后,代码中CDS view的名称仍然是I_Product, 而不是现在的i_product.
后来Jerry想了个办法,即修改Pretty Printer的处理逻辑:如果扫描到代码里出现的单词代表一个CDS view时,让Pretty Printer高抬贵手,不对这个单词进行任何操作。
我把这个方法分享到了SAP社区上:
Bypass CDS view name case conversion in ABAP source code pretty printer
测试结果:红色下划线标注的ABAP变量名被自动格式化成全部小写,而CDS view的名称I_Product仍然保持不变。这正是我们期望的结果。
两年过去了。如今,这个问题已经有了优雅的解决方案:如果想使用驼峰命名法,只需要在ABAP Development Tool里把Keep Camel Case Identifiers前面的勾选上即可。
大家可以比较一下这个勾如果不打上会是什么样的效果:
这意味着偏爱驼峰命名法的ABAP开发人员,如今也可以在IDE的支持下进行ABAP代码编写了。
SAP社区上有ABAP开发人员声称,这是他们盼望了很久的功能:
注意:目前这个功能只在S/4HANA和SAP云平台ABAP编程环境可用。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
SAP ABAP 开发环境和开发工具介绍 SAP ABAP 开发环境和开发工具是 SAP 系统中最重要的组件之一,它提供了一个强大的开发平台,允许开发者创建、测试和部署 ABAP 程序。ABAP 是 SAP 系统中的主要编程语言,用于开发...
### ABAP开发环境的安装与配置 #### 一、安装前的准备工作 ##### 1. 系统备份 - **建议使用系统备份软件**(如GHOST)对当前的操作系统进行完整备份,以便在安装失败时能够快速恢复系统状态。 ##### 2. 分区格式 ...
ABAP开发规范和命名规则是IBM提供的一套开发标准和命名惯例,为ABAP开发者提供了详细的开发指南和命名规则,以确保开发的程序代码质量和可读性。本文将对ABAP开发规范和命名规则进行详细的解释和说明。 一、文档...
ABAP JSON 字段名映射 name_mappings支持字段名大写,小写,驼峰等。 完整代码,可以直接运行。
SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得企业能够根据自身需求定制化SAP系统。 首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,...
从零开始,教授如何配置 Eclipse 开发 SAP ABAP 程序环境。2020 年最新版本操作笔记。对于初学者十分友好。 ABAP Development Tool的Java端实现就是Eclipse的一个扩展,使用JCO(Java Connector)连接ABAP后台的adt...
"ABAP调用函数自动填充模式"是一种提高开发效率的工具,它允许在编写代码时快速填充函数调用的参数,并自动声明对应的变量。这个功能在处理复杂的函数模块调用时尤其有用,可以显著减少手动输入的时间,降低出错的...
### ABAP开发环境和总体介绍 #### 1.1 ABAP开发环境 ABAP(Advanced Business Application Programming)是一种专门用于SAP系统开发的高级编程语言。根据提供的内容,我们可以了解到ABAP开发可以在三种不同的环境下...
内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据...
13. **ABAP Development Tools (ADT)**:ADT是现代ABAP开发的集成开发环境,提供图形化的代码编辑、版本控制和协同开发功能。 学习《SAP ABAP开发详解与高端应用》,你将掌握ABAP的核心概念和高级特性,能有效提升...
SAP ABAP开发快捷键 SAP ABAP开发是一种功能强大且灵活的编程语言,用于开发SAP系统中的业务逻辑。然而,在ABAP开发过程中,效率是一个非常重要的因素。为了提高开发效率,熟悉ABAP开发快捷键是非常必要的。在本文...
例如,ABAP Workbench提供了一个集成化的开发环境,支持代码编辑、调试、版本控制等功能;而ABAP Dictionary则作为数据字典,存储了所有数据元素的定义与描述,是开发人员创建数据结构的重要参考。 #### ABAP语法与...
- **Eclipse with SAP Plugin for Web IDE (WebIDE)**:这是一种基于Eclipse的集成开发环境,支持ABAP开发。 - **ABAP in the Cloud**:这是一个云平台,允许开发者在云端进行ABAP开发。 #### 三、ABAP基本语法 - ...
标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...
### 使用Eclipse进行ABAP开发 #### 一、安装与配置 ##### 1.1 先决条件 在开始使用Eclipse进行ABAP开发之前,需要确保满足以下先决条件: - **GUI版本**:必须是7.4或更高版本。 - **Eclipse版本**:推荐使用...
ABAP工作台是SAP系统中用于编写、测试和调试ABAP程序的集成开发环境(IDE)。它包含了多种工具和服务,如编辑器、调试器、版本管理等,帮助开发者完成软件开发的全过程。 #### 三、ABAP基础内容 ##### 1. 数据类型...
《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAP ABAP开发的相关知识点,详细介绍了SAP ABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象...
1. **第一章 ABAP开发环境和总体介绍**:这部分内容会引导初学者了解ABAP的开发环境,包括SE80事务码的使用,如何创建和管理源代码,以及如何在SAP系统中调试和测试程序。理解开发环境是学习任何编程语言的第一步,...