关于 ABAP 开发对象的命名空间

举报
汪子熙 发表于 2024/10/02 22:26:33 2024/10/02
【摘要】 存储库对象是通过 ABAP Workbench 工具进行编辑的开发对象。每个存储库对象都会被分配到一个包中。包不仅封装了这些存储库对象,还通过包接口使一些对象能够在包外使用。这与面向分离关注点(SoC)原则是一致的。从语义上来说,包代表着声明的一个上下文,这个上下文比 ABAP 程序的上下文高一个层级。与 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 命名空间内名称的唯一性。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。