SuperAPI AI 工具集

cds10-migration

编程与开发

查看项目

更新于 10-16 02:37

技能介绍

用途:指导将 SAP CAP 项目迁移到 CDS 10 / @sap/cds 10。参考资料为 CAP 官方发布说明与迁移指南(URL 见资料)。

版本要求:所有 @cap-js 包需主版本对齐,Node.js 需 >=22(v20 已 EOL,v24 推荐);不要混用 @sap/cds 10.x 与 @sap/cds-mtxs 3.x 或 @cap-js/hana 2.x。CAP Java 5 需 JDK 21(最低)或 25(推荐)、Spring Boot 4.1+、Spring Security 7.0+、Maven 3.9.14+。

主要能力与用法:先 npm install -g @sap/cds-dk 后可运行 cds upgrade(CDS 10 中为 Alpha)扫描破坏性变更并给出迁移指引。用 npm install @sap/cds@latest 等升级依赖;用 cds compile '*' 找出编译错误。编译器现将安全注解不匹配、重复元素扩展、结构化元素无效默认值等从警告升级为错误。

破坏性行为变更:一是默认 bypass_draft: true,直接访问活动实体跳过草稿流程,可将 cds.fiori.bypass_draft 设为 false 恢复旧行为,验证处理器需同时处理草稿与活动实体路径;二是写入结果变化,INSERT 返回可迭代数组(不含生成键访问方式),UPDATE/DELETE 返回 { affected };三是默认启用 IEEE754Compatible,Decimal 与 Int64 返回字符串,可按需 parseFloat 或 Decimal 转换,可用 cds.env.build.ieee754compatible = false 关闭(不推荐);四是 srv.entities 变为 getter,不能再调用 srv.entities()。部分 cds.compat 标志被移除。

其他:CDS 10 去除 axios、better-sqlite3、generic-pool、@sap-cloud-sdk/http-client 等第三方依赖改为 Node 原生能力,但生产/混合场景需要 BTP Destination OAuth 时仍需显式安装 @sap-cloud-sdk/http-client。测试建议从 Jest 迁移到 Vitest(配合 chai)。CAP Java 可用 OpenRewrite 配方 com.sap.cds.services.migrations.Cap_5.0 自动迁移。最后运行 cds compile '*'、npm test 及若干 grep 检查验证迁移。限制:cds upgrade 在 CDS 10 中为 Alpha;关闭 ieee754compatible 不推荐。