目前笔者大部分时间,都投入了日常开发工作的 Angular 技术研究中。
剩下的业余时间,主要花费在笔者下面五套 SAP 开发技术教程的持续更新上:
SAP ABAP 开发教程
SAP UI5 开发教程
SAP OData 开发教程
SAP Fiori Elements 开发教程
SAP CDS View 开发教程
从今天起笔者新起一个日更栏目,主要分享一些不为大众所知的 ABAP 冷门知识点,每个知识点五分钟即可浏览完毕。
知识点分享主要发布在笔者的知识星球,不定期也会同步到这个公众号上。
本栏目第一个知识点分享:到底哪些单词不能作为 ABAP 透明表名称使用?
在 SE11 事务码里试图创建一张名叫 ABSOLUTE 的透明表。
遇到错误消息:ABSOLUTE is a reserved word.
ABSOLUTE 单词是保留字,让我们换一个名称。
保留字是我们在大学学习《编程语言与程序设计》专业课上学到的一个概念。
编程语言把一组字面量标记为 reserved word,这些字面量拥有不可变更的内部含义,程序员不得把它们当作自定义标识符使用。这样做能消除解析歧义,提高编译器词法与语法分析的确定性。
在许多教程与文献里,reserved word 与 keyword 被混用,但二者并非严格等价。
在语言标准层面,keyword 集合是 reserved word 的集合真子集,即前者包含于后者。
差异体现在两个方面:
时间维度:保留字可能是未来关键字的候选之一。比如 ECMAScript 把 enum、implements 等单词提前锁定,避免后来引入新特性时造成代码冲突。
上下文维度:有的单词只在特定编译模式或作用域内成为保留字。例如 JavaScript 编程里的 await,仅在严格模式或模块顶层被视作保留字。
那回到 ABAP 世界,SE11 里创建 ABAP 透明表时,到底哪些名称不能使用呢?
查表 TRESE 即可。T 代表 Terminology,RESE 即 Reserved 的缩写。
第一列 NAME 列出了保留字的名称,第二列 SOURCEHINT 意思是该保留字在哪些数据库管理系统里引入。
ABAP 透明表这个术语本身的字面含义,就反映了其关键特性:在应用层和数据库层面表的结构是完全一致的。
这意味着,透明表在 ABAP 数据字典即 SE11 事务码中的定义,与应用服务器连接的数据库中表的实际物理结构相同。透明表通过 SAP 系统与应用程序逻辑紧密集成。
在 SAP 系统中,透明表具有以下特点:
1. 每个透明表都有一个唯一的名称和定义,与数据库中的物理表一一对应。透明表的字段在数据字典中定义,并映射到实际的数据库字段。这就是即便在 ABAP 应用层创建透明表的同时,也要遵循底层数据库管理系统引入的保留字限制的原因所在。
2. 可以通过 ABAP OPEN SQL 语句查询或修改透明表中的数据。
什么?你问我怎么知道这个表的名称的?
点上图这个 View details 超链接即可。
关注笔者的 SAP 开发知识星球,每日分享一个不为大众所知的 ABAP 冷门知识点:
领取专属 10元无门槛券
私享最新 技术干货