要有效地执行基于级别的开发工作,多条信息非常有用:
- 必须创建软件组件并为其分配包。
- 必须分配开发人员权限。
- 应使用 ABAP 测试主控室检查变式。
- ABAP 语言版本必须分配到开发对象。

要为基于级别的开发工作设置 SAP S/4HANA Cloud Private Edition 系统,请考虑以下因素:
- 初始设置
- 了解发布状态、发布合同和使用可见性
- 了解开发人员权限
- 了解 ABAP 测试主控室检查
初始设置
初始设置包括以下内容:
软件组件设置
使用自 ABAP 平台 2022 起可用的报表 RSMAINTAIN_SWCOMPONENTS,管理员可以创建和配置软件组件。创建的软件组件将分类为"ABAP Cloud"或"ABAP Classic",以及可传输性(可传输或本地)。
在 ABAP 云类型的软件组件中创建的所有对象都必须遵循 ABAP 云开发模型。相反,ABAP 经典类型的软件组件中的对象可以是任何类型。基于 ABAP Cloud 的软件组件有效映射到 clean core 级别 "A",基于 ABAP 经典的软件组件分别映射到级别 "B"、"C" 和 "D"。
结构包
为便于构建客户软件项目,应为客户创建的每个软件组件创建结构包。
开发包
在结构包下,可以创建一个或多个开发包(取决于单个项目需求)以容纳所有需要的开发部件。
权限
有一些权限对象需要记录。首先,对于设置软件组件的管理员,需要权限对象 S_CTS_ADMI。
其次,如果客户希望仅限制开发人员到级别 A 开发,或者如果某些开发人员将在级别 A 工作,而其他开发人员将在级别 B、C 和 D 中工作,则可以使用权限对象 S_ABPLNGVS 为开发人员设计相应的权限。过程如下:
- 使用事务代码 SACF,使用权限对象 S_ABPLNGVS 激活权限检查。
创建两个角色。一个角色将分配给仅限于级别 A 开发的开发人员。另一个将分配给允许在客户适用的情况下在所有其他级别(即 B、C 或 D)进行开发的开发人员。可以使用事务代码 PFCG 和角色 SAP_BC_ABAP_DEVELOPER_5 作为复制模板来创建这两个角色。此角色包含 S_ABPLNGVS 权限对象。
维护每个开发人员的权限字段 ABP_LNG_VS。对于将仅在 A 级别进行开发的开发人员,要维护的值为适用于云开发的 ABAP。对于所有其他开发人员,该值为所有活动(即级别 B、C 或 D) 。
ABAP 测试主控室检查变式

开发人员应熟悉多个 ABAP 测试主控室检查变式。其中有两个特别重要事项是:
- ABAP_CLOUD_DEVELOPMENT_DEFAULT
此变式可用于确认 ABAP 代码符合云要求。通过此检查变式,可以强制执行基本 ABAP 云规则。
- ABAP_CLOUD_READINESS
在检查代码以查看代码是否为"ABAP Cloud 就绪"时,此变式非常有用。它检查是否仅开发 ABAP Cloud 中可用的对象类型,仅使用 ABAP Cloud 语言语句,以及是否仅调用已发布的 SAP API。使用此变式时,将显示 ATC 结果的工作清单,详细说明需要修复的问题。根据问题,可以使用"快速修复"功能立即调整代码。
设置 Clean Core 检查的 ATC 检查变式
除上述两个变式外,客户还可以创建针对新的 clean core 级别指南(即已发布 API、经典 API 等)定制的自定义变式,这些变式将基于这些指南验证 SAP 标准对象的使用。使用时,ATC 结果将显示以下内容:
- 已发布 API:级别 A:在 ATC 中没有结果。
- 经典 API:级别 B:优先级 3(信息消息)。
- 内部对象:级别 C:优先级 2(警告消息)。
- 不建议:级别 D:优先级 1(错误消息)。
创建此自定义变式非常简单。只需执行以下步骤:
- 将上面列出的 ABAP_CLOUD_DEVELOPMENT_DEFAULT 变式复制到新命名的变式中。
- 向该新命名的变式添加以下附加 ATC 检查:
- 允许的 SAP 增强技术
- API 的使用
- 关键语句
- 搜索客户修改
- Code Vulnerability Analyzer (CVA)(如果 CVA 获得相应许可)
有关面向 Eclipse 的 ABAP 开发工具如何提供不同功能以使用 clean core 支持开发任务的附加信息,请查看博客:针对 clean core ABAP 开发治理的 ABAP 测试主控室(ATC)建议。
发布状态、发布合同和使用可见性

我们在课程中经常提到已发布 API 的重要性。Clean Core 级别合规性仅需要使用已发布的 API。如前所述,云软件的软件更新会定期进行,在升级 时,在 A 级设计和实施的扩展不会遇到客户的任何中断。
为了提高稳定性和透明度,旨在与扩展开发一起使用的开发对象将显式发布,并通过发布合同和使用可见性进行维护。所有三个选项都在同一屏幕上同时维护。
必须维护的选项如下:
- 发布状态
此参数指示开发对象已"释放"(即,可供使用)。
- 发布合同
- 扩展 (C0)
为可扩展性启用的开发对象已分配审批合同延期 (C0)。根据相关对象的类型,在定义扩展点之前可能存在附加前提条件。
- 在内部使用系统 (C1)
此指定为用于消耗的开发对象。如果 clean core 级别 A 是目标,则扩展实施中使用的任何开发对象都需要分配 C1。
- 使用情况可见性
可为使用可见性设置以下两个选项:
- 在关键用户应用中 用于关键用户可扩展性工具要使用的已发布对象。
- 在云开发中 用于旨在供堆栈上开发人员可扩展性使用的已发布对象。
- 扩展 (C0)
有关面向 Eclipse 的 ABAP 开发工具如何提供不同的功能以支持使用 ABAP Cloud 的开发任务的附加信息,请查看博客:利用面向 Eclipse 的 ABAP 开发工具 (ADT) 中的 ABAP Cloud 支持。