SuperAPI AI 工具集

migrate-segw-to-rap

编程与开发

查看项目

更新于 10-15 09:03

技能介绍

用途

该技能用于将经典的 SEGW OData V2 服务(由 MPC/DPC/MPC_EXT/DPC_EXT 类构成)逆向工程为现代 RAP 服务,目标是在同一 SAP 系统上生成 CDS 根视图、投影视图、行为定义(BDEF)、服务定义(SRVD)、服务绑定(SRVB)以及行为池类。迁移过程与旧服务并行运行:旧服务保持在线,新 RAP 服务落在独立、可重置的包中。

主要能力

  • 授权预检:在建模前检查系统能力、RAP/CDS 端点可用性、传输 API 可用性、ADT 对象搜索权限、传输读取权限,以及对源 MPC 类的读取权限和目标包的写入权限。
  • 发现旧服务:解析 MPC 类名,确认 MPC、MPC_EXT、DPC、DPC_EXT 四个类存在并记录元数据。
  • 提取 OData 模型:从 MPC 类的 DEFINE_* 方法中解析实体类型、实体集、属性、关联、导航属性、函数导入等,编译为结构化模型。
  • 提取行为:从 DPC_EXT 类中识别重定义方法,将 GET 方法映射为 CDS 读取(托管场景下免费),将函数导入映射为 BDEF 动作,将自定义创建/更新/删除映射为 BDEF 确定/验证。
  • 读取底层表:读取相关 DDIC 表结构,记录字段、键、管理字段约定、外键引用。
  • 设计计划与用户确认:在写入前展示完整 RAP 设计计划(命名、组合树、动作、服务绑定 URL),等待用户明确批准。
  • 智能默认值:发现策略默认使用 MPC 类源码(Tier 1);目标包若未提供则创建源包的子包 <source_package>_RAP;目标传输自动创建;OData 版本默认 V4;RAP 场景默认托管内部编号;草稿默认关闭(除非旧服务暴露 CUD 且用户需要 Fiori Elements 兼容);严格模式 strict(2);强制投影层;命名遵循 SAP 标准 Z<prefix>_<entity>。

使用方式

用户需至少提供以下之一:SEGW 服务技术名、包含 SEGW 生成类的包、或 MPC 类名。还需提供目标包(若未提供且源包已知,技能会创建 <source_package>_RAP;否则询问;仅当用户明确要求时才回退到 $TMP)以及非 $TMP 写入所需的传输(现有或自动创建)。可选参数包括 RAP 场景、草稿开关、OData 版本、命名覆盖。若仅提供旧标识符,技能会应用智能默认值并在阶段 5 展示解析后的计划供用户确认后再写入。

技能按阶段执行:阶段 0 授权预检;阶段 1 发现旧服务;阶段 2 从 MPC 源码提取 OData 模型;阶段 3 从 DPC_EXT 提取行为;阶段 4 读取底层表;阶段 5 设计计划与用户批准;阶段 6 写入。非交互模式下,若初始提示已提供阶段 5 等效输入并说明“端到端运行”或“不停止审查”,则跳过确认门,直接打印计划清单并进入阶段 6。

适用场景

适用于需要将 SAP 系统中基于 SEGW 的 OData V2 服务迁移到现代 RAP V4 服务的场景,尤其是希望保留旧服务在线、并行运行新服务,并利用 RAP 托管场景简化读写逻辑的情况。技能模板使用 Project → Tasks → TimeEntries 领域示例(实体名如 ZR_DM_PROJECT、ZBP_DM_PROJECT、ZDM_PROJECT_D),实际运行时需替换为用户实体。

限制

  • 需要 SAP 系统暴露 RAP/CDS 端点,且传输 API 可用。
  • 需要相应的 SAP 授权对象(如 S_DEVELOP、S_TRANSPRT)。
  • 草稿表字段名需使用 BO 别名大小写(无下划线),如 projectid、startdate,而非 project_id、start_date。
  • 在 7.58 上,托管组合语法不接受 on 子句;@Semantics.* 注解中 createdAt、lastChangedAt、localInstanceLastChangedAt 以及 businessDate.from/to 均有效。
  • 投影层必须始终创建,服务绑定暴露投影而非根视图。
  • provider contract 仅放在根投影上,不放在根视图或子投影上。
  • 具体收费、价格、平台支持范围等信息暂未提供。