关于 atc-cloudification
atc-cloudification 是用于配置 ABAP Test Cockpit 检查并对照 SAP Cloudification Repository 分析结果的技能,可将发现映射到 clean core 等级。它帮助 ABAP 团队评估自定义代码、管理传输检查,并规划 SAP Cloud ERP 目标环境中的整改。
主要功能
- 01配置基于仓库数据的 ATC 检查
- 02将发现映射到 clean core A–D 级
- 03设置全局变体和传输门槛
- 04审查豁免和遗留代码基线
- 05用对象变更日志评估升级风险
适用场景
- 01按 clean core 等级评估自定义代码
- 02阻止含优先级 1、2 发现的传输
- 03规划内部或不建议 API 的整改
- 04升级前检查 SAP 对象变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ likweitan/ abap-skills --skill atc-cloudification安装后在 Claude Code 中输入/atc-cloudification确认已加载。
附带文件references/quick-reference.md
详细介绍
ATC 清洁核心与云化仓库检查
针对 SAP 云化仓库配置 ABAP 测试舱(ATC)清洁核心检查,并将检查结果映射到清洁核心级别(A、B、C、D),以便进行治理和修复规划。
清洁核心级别概念取代了原有的三层可扩展性模型。ATC 是用于量化各级别的治理工具:优先级 1 → D 级,优先级 2 → C 级,优先级 3 → B 级,无检查结果 → A 级。
概览
SAP 云化仓库包含 SAP 对象的发布状态和清洁核心分类。其 JSON 文件可用作 ATC 检查内容,使客户和合作伙伴能够分析所有 ECC 和 S/4HANA 版本中的自定义代码。
快速参考
请阅读 references/quick-reference.md,了解:
- 各目标产品和版本对应的 JSON 文件 URL
- ATC 检查变体配置步骤
- 可用的 JSON 文件及其用途
- 设置所需的 SAP Notes
按目标产品配置
SAP Cloud ERP
- 在 ATC 检查变体中启用:“Cloud Readiness” → Usage of Released APIs (Cloudification Repository)
- 在检查属性中输入 URL:
https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfoLatest.json
SAP Cloud ERP Private
- 在 ATC 检查变体中启用:“Clean Core” → Usage of Released APIs (Cloudification Repository)
- 在检查属性中输入对应版本的 URL:
- 最新版本:
https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfo_PCELatest.json - 特定版本:将
PCELatest替换为对应版本,例如 Release 2025 FPS00 对应PCE2025_0
- 最新版本:
新版清洁核心检查(Note 3565942)
对于较新的 ATC 检查 “Usage of APIs” 和 “Allowed Enhancement Technologies”,请使用:
https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectClassifications_SAP.json
清洁核心级别与对象分类
根据使用的 SAP 对象,将扩展划分为清洁核心级别(A–D)。扩展的级别取决于其使用的所有对象中最低的级别。
清洁核心级别概念取代了原有的三层可扩展性模型。
| 清洁核心级别 | SAP 对象限定符 | 含义 | ATC 检查结果 |
|---|---|---|---|
| A 级 | [Released] 远程 API、本地 API、扩展点 | 受正式的稳定性契约约束。所有新开发的目标状态。 | 无检查结果 |
| B 级 | [Classic] SAP API、SAP 扩展点 | SAP 指定的经典 API 和框架。没有稳定性契约,但已证明升级稳定。 | 优先级 3(信息) |
| C 级 | [Internal] SAP 对象 | 任何未另行分类对象的默认级别。未发布、未记录、不受支持。 | 优先级 2(警告) |
| D 级 | [Not recommended] SAP 对象、扩展点或技术 | 明确不适用于客户。风险和技术债务最高。 | 优先级 1(错误) |
清洁核心状态:A 级 = 清洁核心 · B 级和 C 级 = 有条件的清洁核心 · D 级 = 非清洁核心。
关键规则
- Level A(已发布):所有新开发均使用。通过 SAP Business Accelerator Hub、Cloudification Repository 或 ADT 发现。
- Level B(经典 API):没有已发布 API 时,可用于经典 ABAP 开发。经典 API 的封装属于 Level B,可发布以供 ABAP Cloud 使用。不要强制重写稳定的经典代码。
- Level C(内部):尽量减少使用。封装剩余用法,并创建单个 ATC 豁免。使用 SAP 对象变更日志检测即将发生的不兼容变更。
- Level D(不建议):立即消除。包括
noAPI对象、修改、隐式/显式增强、直接写入表、调用 FORM 例程以及关键 ABAP 语句。 - 已弃用:仍属于 Level A/B,但应采用后继 API。
JSON 文件和状态
objectReleaseInfo*.json— SAP 对象的发布状态:released、deprecated、notToBeReleased、notReleasedobjectClassifications_SAP.json— Clean Core 分类:classicAPI(Level B)、noAPI(Level D)、internalAPI(Level C,且有已发布的后继对象可用)- 标签:
remote-enabled(启用 RFC)、transactional-consistent(可在基于 RAP 的应用程序中使用)
分类对象类型:FUNC(函数模块)、CLAS(类)、INTF(接口)、STOB(CDS 视图)、BDEF(BO 接口)。
DDIC 对象(数据元素、结构、表类型)不进行分类,用作数据类型时也不会检查。只有对 SAP 表的 SQL 访问会被检查。
ATC Clean Core 检查
配置一个在开发期间和传输发布时使用的全局检查变体。设置 ATC 传输选项,使优先级 1 和 2 的检查结果阻止发布。
| 检查 | 类别 | 技术名称 | 用途 |
|---|---|---|---|
| API 使用情况 | Clean Core | SYCM_USAGE_OF_APIS | 已发布/经典 API 分类、对 SAP 表和视图的 SQL 操作、对 SAP FORM 例程的调用 |
| 允许的增强技术 | Clean Core | SYCM_ALLOWED_ENH_TECHNOLOGY | 报告采用非允许技术的 ENHO 增强。仅建议使用 BAdI。 |
| 搜索客户修改 | Clean Core | CI_SEARCH_CUST_MODIFICATIONS | 查找已修改的对象(每个对象生成一条检查结果);检查 ABAP Cloud 对象类型支持情况 |
| 关键语句 | Clean Core | CI_CRITICAL_STATEMENTS | 对安全性或程序稳定性有影响的语句(内核调用、EXEC SQL 等) |
| 代码漏洞分析器 | 另行建议 | SLIN_SEC | 安全漏洞 |
如果缺少 API 使用情况或允许的增强技术检查,请实施 SAP Note 3565942。
检查变体模板
ABAP_CLEAN_CORE_DEVELOPMENT— SAP 提供的预定义变体,用于初始设置ABAP_CLOUD_DEVELOPMENT_DEFAULT— 用于补充上述检查的模板ABAP_CLOUD_READINESS— 在切换对象的语言版本前,验证 ABAP Cloud 规则
中央 ATC 系统
为整个系统环境设置中央 ATC 系统:
- SAP BTP 上的公有云解决方案 — SAP 推荐的选项
- 或安装在私有云/本地部署系统环境中
ATC 发现与级别对应关系
| ATC 优先级 | 级别 | 发现 | 建议操作 |
|---|---|---|---|
| Priority 1 (Error) | D | 对象已修改 | 移除修改;改用 BAdI |
| 不允许使用增强技术 | 删除增强实现;改用 BAdI | ||
| 隐式或显式增强(源代码插件) | 删除增强实现;改用 BAdI | ||
| 直接对 SAP 数据库表进行 write 访问 | 使用已发布的 API 或经典 API | ||
| 在 SAP 程序中调用表单例程 | 使用已发布的 API 或经典 API | ||
使用被归类为 noAPI 的 SAP 对象 | 使用已发布的 API 或经典 API;查看后继信息 | ||
| 使用关键 ABAP 语句 | 使用已发布的 API 或经典 API | ||
| Priority 2 (Warning) | C | 直接对 SAP 数据库表/视图进行 read 访问 | 使用已发布的 CDS 视图或经典 API |
| 使用未归类为经典 API(内部)的 SAP 对象,且该对象尚未发布 | 使用已发布的 API 或经典 API | ||
| Priority 3 (Info) | B | 使用已弃用的 API | 改用其后继 API |
| 使用经典 API | — 可接受,无需采取操作 |
涵盖的关键语句
CI_CRITICAL_STATEMENTS 会报告:内核函数调用 · 系统调用 · 编辑器调用 · EXEC SQL · 数据库提示 · 生成报表和 Dynpro · 读取/插入报表 · 读取/插入 Dynpro · 导入/导出 nametab。
豁免策略
- 将豁免重点放在 priority 1 (Error) 和 priority 2 (Warning) 发现上
- 不要豁免 priority 3 (Info) 发现,例如经典 API 的使用
- 对 clean core 发现使用细粒度的、发现级别的豁免——这是最佳治理方式
- 仅对不会修改的旧代码使用 ATC 基线,以隐藏大量发现
- 首选做法:封装 SAP 对象并使用该封装。N 条发现会合并为 1 条,因此只需一个豁免
- 通过 ATC 豁免浏览器监控采用情况
SAP 对象变更日志(C 级缓解)
内部 SAP 对象可能会在升级、导入功能包,甚至导入 SAP Note 时发生变化。变更日志会主动列出即将发布的版本中存在不兼容变更的对象。
不兼容变更包括:删除对象 · 重命名或删除函数模块参数 · 不兼容的参数类型变更 · 重命名或删除 SAP 类中的方法 · 从 CDS 视图中移除字段。
涵盖的对象类型:FUNC、CLAS、INTF、STOB、BDEF。
设置:
- 从 SAP Software Download Center(SAP Support Portal)下载 Simplification Database 文件
- 通过事务
SYCM导入 - 在开发期间运行变更日志 ATC 检查,或像其他简化项检查一样,在升级前运行
变更日志中的对象不会自动降级至 D 级——根据变更的严重程度,可能允许继续使用。使用检查结果推动重构,改用已发布或经典 API。
工作流
- 确定目标产品:SAP Cloud ERP 或 SAP Cloud ERP Private
- 使用快速参考确定正确的 JSON 文件
- 验证前提条件:实施 SAP Note 3565942(clean core 检查),并查看 SAP Note 3578329(经典技术分类)
- 设置中央 ATC 系统(推荐使用 SAP BTP)
- 配置一个全局检查变体,其中包含 clean core 检查和 JSON URL
- 配置传输设置,以便优先级 1 和 2 的检查结果阻止传输发布
- 通过
SYCM导入 SAP 对象变更日志,用于 C 级风险评估 - 对自定义代码运行 ATC 检查
- 将检查结果映射到级别(P1→D、P2→C、P3→B),并确定当前的整体级别
- 规划修复:消除 D 级问题,尽量减少 C 级问题,监控 B 级问题,以 A 级为目标
- 使用针对封装器的细粒度豁免来治理残留用法
输出格式
在帮助处理 ATC clean core 主题时,请按以下格式组织回答:
## ATC Clean Core Guidance
### Configuration
- Target product: [SAP Cloud ERP / SAP Cloud ERP Private]
- JSON file: [URL]
- Check variant: [name and included checks]
### Finding Classification
| ATC finding | Priority | Clean core level | Action |
|-------------|----------|------------------|--------|
| ... | ... | ... | ... |
### Remediation Plan
[Ordered: Level D first, then C, then B]
### Exemption Recommendations
[Which findings justify an exemption and why]
Cloudification API 查看器
使用在线查看器交互式浏览对象分类:
- SAP Cloud ERP(版本信息):https://sap.github.io/abap-atc-cr-cv-s4hc/
- SAP Cloud ERP Private(版本信息):https://sap.github.io/abap-atc-cr-cv-s4hc/?version=objectReleaseInfo_PCELatest.json
- Clean core 分类(经典 API /
noAPI/internalAPI):https://sap.github.io/abap-atc-cr-cv-s4hc/?version=objectClassifications_SAP.json
按 state 筛选:
classicAPI→ B 级候选项internalAPI→ C 级,有可用的已发布后继对象noAPI→ D 级,必须替换
参考资料
- Clean Core Extensibility Whitepaper — clean core 级别概念
- Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions(版本 2.3,2025 年 8 月)
- Cloudification Repository:https://github.com/SAP/abap-atc-cr-cv-s4hc
- SAP Note 3565942 — 提供
SYCM_USAGE_OF_APIS和SYCM_ALLOWED_ENH_TECHNOLOGY - SAP Note 3578329 — 经典技术、重用服务和框架的分类
相关技能
- abap-cloud:用于 clean core 级别定义、开发模型和封装器分类
- abap-cloud-migration:用于运行 ATC 检查后的分级修复指导
- released-abap-classes:用于查找 ATC 识别出的 A 级已发布 API 替代项
- badi-enhancement:用于使用 BAdI 替换 D 级修改和增强