关于 ABAP 开发对象的命名空间
存储库对象是通过 ABAP Workbench 工具进行编辑的开发对象。每个存储库对象都会被分配到一个包中。包不仅封装了这些存储库对象,还通过包接口使一些对象能够在包外使用。这与面向分离关注点(SoC)原则是一致的。
从语义上来说,包代表着声明的一个上下文,这个上下文比 ABAP 程序的上下文高一个层级。与 ABAP 程序的上下文(例如程序、类、过程)不同,包并不会生成单独的命名空间。
存储库对象的命名空间定义如下:
前缀命名空间
开发组织(包括 SAP 部门、SAP 合作伙伴和 SAP 客户)可以为他们的开发系统申请前缀命名空间。前缀命名空间的名称至少为 5 位字符,最多为 10 位字符,且首尾字符必须为斜杠(/…/)。在分配命名空间后,存储库对象只能在系统中创建,前提是通过在名称前添加 /…/ 来启用命名空间。如果在这种前缀命名空间内创建包,则该包只能包含属于相同命名空间的存储库对象。不过,在单个前缀命名空间内可以创建多个包。由于命名空间前缀(包括斜杠)的长度,实际名称的可用长度会有所减少。
客户命名空间
如果没有前缀命名空间可用,那么在客户系统或非 SAP 开发系统中创建的存储库对象的名称必须以 Y 或 Z 开头。这意味着它们位于客户命名空间中。以 Z 开头的存储库对象也可以位于以 Y 开头的包中,反之亦然。
SAP 命名空间
如果没有前缀命名空间,那么在 SAP 自有开发系统中创建的存储库对象的名称没有严格的限制。SAP 命名空间涵盖整个 AS ABAP 环境。无论存储库对象位于哪个命名空间,其名称在当前的 AS ABAP 系统中都是唯一的。因此,在引用对象时,无需指定其他内容。命名空间(特别是前缀命名空间)的设置是为了避免在系统间传输和升级过程中出现命名冲突。对于 SAP 自有的开发系统,存在一个跨系统的表格,用于确保 SAP 命名空间内名称的唯一性。
- 点赞
- 收藏
- 关注作者
评论(0)