设置 Clean Core 开发
学习目标
执行 clean core 开发的前提步骤。
有效执行 Clean Core 开发的有用步骤
要有效地执行基于级别的开发工作,多条信息非常有用:
必须创建软件组件并为其分配包。
必须分配开发人员权限。
应使用 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。
使用情况可见性 可为使用可见性设置以下两个选项:
在关键用户应用中 用于关键用户可扩展性工具要使用的已发布对象。
在云开发中 用于旨在供堆栈上开发人员可扩展性使用的已发布对象。
有关面向 Eclipse 的 ABAP 开发工具如何提供不同的功能以支持使用 ABAP Cloud 的开发任务的附加信息,请查看博客:利用面向 Eclipse 的 ABAP 开发工具 (ADT) 中的 ABAP Cloud 支持。
为 ABAP Cloud 和 ABAP 传统开发设置软件组件
练习:开始练习(SAP 官方交互式练习)
设置 ABAP Cloud 和 ABAP 经典开发的开发人员权限
练习:开始练习(SAP 官方交互式练习)
将 ABAP 语言版本分配到开发对象
练习:开始练习(SAP 官方交互式练习)