设置 Clean Core 开发

学习目标

  • 执行 clean core 开发的前提步骤。

有效执行 Clean Core 开发的有用步骤

要有效地执行基于级别的开发工作,多条信息非常有用:

  • 必须创建软件组件并为其分配包。

  • 必须分配开发人员权限。

  • 应使用 ABAP 测试主控室检查变式。

  • ABAP 语言版本必须分配到开发对象。

要为 ABAP Cloud 开发设置开发人员,请遵循一系列前提条件。软件组件设置,然后是 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 测试主控室检查变式。其中有两个特别重要事项是:

  • 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)建议

发布状态、发布合同和使用可见性

面向 clean core 级别 A 合规性的已发布 API 细节

我们在课程中经常提到已发布 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 官方交互式练习)