mcpField
A
atc-cloudification

atc-cloudification

github.com/likweitan测试与质量7284 次安装2 周前更新
代码仓库

关于 atc-cloudification

atc-cloudification 是用于配置 ABAP Test Cockpit 检查并对照 SAP Cloudification Repository 分析结果的技能,可将发现映射到 clean core 等级。它帮助 ABAP 团队评估自定义代码、管理传输检查,并规划 SAP Cloud ERP 目标环境中的整改。

主要功能

  1. 01配置基于仓库数据的 ATC 检查
  2. 02将发现映射到 clean core A–D 级
  3. 03设置全局变体和传输门槛
  4. 04审查豁免和遗留代码基线
  5. 05用对象变更日志评估升级风险

适用场景

  1. 01按 clean core 等级评估自定义代码
  2. 02阻止含优先级 1、2 发现的传输
  3. 03规划内部或不建议 API 的整改
  4. 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
  1. 在 ATC 检查变体中启用:“Cloud Readiness” → Usage of Released APIs (Cloudification Repository)
  2. 在检查属性中输入 URL:
    https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfoLatest.json
    
SAP Cloud ERP Private
  1. 在 ATC 检查变体中启用:“Clean Core” → Usage of Released APIs (Cloudification Repository)
  2. 在检查属性中输入对应版本的 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、notReleased
  • objectClassifications_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 CoreSYCM_USAGE_OF_APIS已发布/经典 API 分类、对 SAP 表和视图的 SQL 操作、对 SAP FORM 例程的调用
允许的增强技术Clean CoreSYCM_ALLOWED_ENH_TECHNOLOGY报告采用非允许技术的 ENHO 增强。仅建议使用 BAdI。
搜索客户修改Clean CoreCI_SEARCH_CUST_MODIFICATIONS查找已修改的对象(每个对象生成一条检查结果);检查 ABAP Cloud 对象类型支持情况
关键语句Clean CoreCI_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。

设置:

  1. 从 SAP Software Download Center(SAP Support Portal)下载 Simplification Database 文件
  2. 通过事务 SYCM 导入
  3. 在开发期间运行变更日志 ATC 检查,或像其他简化项检查一样,在升级前运行

变更日志中的对象不会自动降级至 D 级——根据变更的严重程度,可能允许继续使用。使用检查结果推动重构,改用已发布或经典 API。

工作流

  1. 确定目标产品:SAP Cloud ERP 或 SAP Cloud ERP Private
  2. 使用快速参考确定正确的 JSON 文件
  3. 验证前提条件:实施 SAP Note 3565942(clean core 检查),并查看 SAP Note 3578329(经典技术分类)
  4. 设置中央 ATC 系统(推荐使用 SAP BTP)
  5. 配置一个全局检查变体,其中包含 clean core 检查和 JSON URL
  6. 配置传输设置,以便优先级 1 和 2 的检查结果阻止传输发布
  7. 通过 SYCM 导入 SAP 对象变更日志,用于 C 级风险评估
  8. 对自定义代码运行 ATC 检查
  9. 将检查结果映射到级别(P1→D、P2→C、P3→B),并确定当前的整体级别
  10. 规划修复:消除 D 级问题,尽量减少 C 级问题,监控 B 级问题,以 A 级为目标
  11. 使用针对封装器的细粒度豁免来治理残留用法

输出格式

在帮助处理 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 查看器

使用在线查看器交互式浏览对象分类:

按 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 级修改和增强

评论

支持 Markdown