用途
该技能用于生成生产级 RAP OData 服务。其核心特点是“研究优先”:在编写任何代码之前,先对目标 SAP 系统进行深入调研、分析最佳实践,并与用户迭代规划,只有在获得用户明确批准后才执行实现。
主要能力
技能会围绕目标 SAP 系统展开多阶段调研,包括:
- 检测系统能力与版本:区分 BTP ABAP Environment 与 On-Premise,识别 ABAP 语言版本(Cloud 或 Standard)、RAP 支持级别、CDS 能力、可用功能(ATC、语法检查、单元测试、传输管理、FLP 定制、abapGit/gCTS、版本历史等)、FLP 支持以及 lint 配置。
- 挖掘现有 RAP 项目模式:搜索现有 BDEF、SRVD、SRVB、DCLS、DDLX 等工件,读取代表性 RAP 栈,提取命名约定、架构风格、注解模式、字段命名、管理字段模式、键策略、行为模式、Draft 处理、OData 暴露方式、近期演进和文档情况。若未找到 Z 开头的 BDEF,则使用确定性回退方案读取系统真实表与 CDS 视图作为基准。
- 检查已有数据库表与领域对象:读取用户提及的表或业务对象,搜索相关 SAP 标准对象,检查 API 发布状态以符合 Clean Core,并使用 CDS 专用影响分析。
- 评估代码质量基线:检查 ATC 配置或自定义检查变式,读取现有 RAP 类并运行 lint 与格式化器发现,了解所执行的 lint 规则、严格级别和关键字/缩进偏好。
- 检索 SAP 官方文档:使用 SAP 文档 MCP 服务器进行有目的的查询,涵盖架构与分层、领域特定示例、架构决策、UI/服务行为、Clean Core/已发布 API,以及边缘情况排查。
使用方式
用户提供自然语言描述的业务需求即可,描述可以模糊也可以详细。仅业务需求是必需的,此阶段不应过度访谈,调研会揭示后续正确的问题。用户可选指定:包(必需,若未提供则询问;仅当用户明确说明时才默认使用 $TMP)、传输请求(仅非 $TMP 包需要,在 Phase 1-pre 解析)、任何已知约束(如必须使用现有表、需要与某模块集成)。
技能内置一组智能默认值,在调研前静默应用、不询问:包使用用户带传输的 Z* 包;键策略使用 UUID(sysuuid_x16)托管编号;行为场景为 Managed;OData 版本为 V4;Draft 优先用于事务性 Fiori Elements UI 服务,但需根据系统版本和 BO 约束验证;严格模式为 strict(2),除非系统模式或 SAP 约束另有理由;命名遵循 SAP 标准,若发现现有系统模式则覆盖;管理字段根据系统类型适配(syuname/timestampl 或 abp_*);服务暴露默认使用 OData V4 UI provider contract。这些默认值是起点,Phase 1 的调研可能基于现有系统模式覆盖它们。
流程上,技能先执行 Phase 1-pre 解析包与传输请求:若未提供包则询问用户,然后解析传输请求(仅当包为 $TMP 时跳过)。若需要传输但不可用,则停止,因为非 $TMP 包的所有写操作都会失败。随后进入 Phase 1 深度系统研究,再基于发现提出针对性澄清问题(Phase 2),最终在用户批准后生成并执行实现计划。
适用场景
适用于需要在 SAP 系统中创建生产级 RAP OData 服务的场景,尤其是希望服务实现与目标系统实际能力、现有代码模式、SAP 文档和用户需求保持一致,并在编码前获得用户批准的情况。可用于从模糊需求(如“我需要跟踪维护订单的东西”)到详细需求(如“用于工厂维护的 REST API,包含设备层级、工单和时间记录”)的各种业务描述。
限制
资料未提供关于收费、价格、平台支持范围、具体效果或性能的说明。技能的实际可用性取决于目标 SAP 系统的能力与版本、传输请求的可用性以及用户是否提供必要的包信息。若需要传输但不可用,技能会停止。部分默认值(如 Draft、strict(2))并非普遍适用,需根据系统版本和 BO 约束验证。资料中未提供完整的 Phase 2 之后内容,因此后续执行细节暂未提供。