用途
该技能在 RAP 业务对象或普通 DDIC 表之上生成 CDS 分析模型,即星型模式,由立方体视图(@Analytics.dataCategory: #CUBE)、一个或多个维度视图(#DIMENSION)以及文本视图(#TEXT)组成。它复刻 SAP Joule 的“CDS 分析模型生成”能力(基本与扩展范围),通过结合 ARC-1(SAP 系统访问)与 mcp-sap-docs(文档与最佳实践)实现。基本范围 = 立方体 + 复用已有维度;扩展范围 = 还生成新维度,并支持从 DDIC 表(而非仅 RAP BO)出发。
主要能力
- 从 RAP 业务对象根实体、DDIC 表或接口 CDS 视图解析并读取源结构。
- 识别度量字段(数值、可加总,如金额/数量/计数)与维度字段(特征,如地区、客户、日期)。
- 发现可复用的已发布维度视图(如 I_Country、I_CalendarDate),避免重复生成。
- 依据当前文档生成符合分析注解的立方体、维度与文本视图。
- 以批量创建并延迟激活的方式写入,确保交叉引用一次性解析。
- 提供验证步骤,并可选地引导生成分析查询(可消费的 KPI 视图)。
使用方式
- 前置条件:需要 SAP_BASIS 7.5x 且具备分析注解。通过 SAPManage(action="probe") 验证 rap.available;若 RAP/CDS 不可用则停止。
- 输入:用户提供 RAP 业务对象根实体/行为池(如 ZBP_R_TRAVEL 或 ZI_Travel)、DDIC 表(如 ZTRAVEL)或用作事实源的接口 CDS 视图。可选指定哪些数值字段为度量、哪些为维度、目标包,以及是否生成新维度视图或复用已有。
- 步骤:
- 步骤 1:解析并读取源(RAP BO 输入查找绑定 CDS 根实体;DDIC 表输入读取表结构;CDS 视图输入读取源与元素)。
- 步骤 2:发现可复用维度(SAPSearch 查询 <dimension_keyword>,objectType="DDLS")。
- 步骤 3:查找当前分析注解(search 查询相关文档)。
- 步骤 4:组合模型(使用立方体、维度、文本视图模板,并强制组合规则)。
- 步骤 5:以树形展示计划,然后批量创建(SAPWrite(action="batch_create", activateAtEnd=true, objects=[...]),按依赖顺序 text → dimension → cube)。
- 步骤 6:验证(SAPRead(type="DDLS", name="ZI_Sales_Cube", include="elements"))。
- 步骤 7:提供查询层(询问是否生成分析查询,指向 generate-cds-analytical-query)。
- 智能默认值(静默应用,不询问):对象类型 DDLS;包 $TMP;激活 batch_create + activateAtEnd: true;授权 #NOT_REQUIRED(立方体/维度);命名 ZI_<X>Cube、ZI<X>Dim、ZI<X>_Txt。
适用场景
- 需要在 SAP 系统中基于 RAP 业务对象或 DDIC 表快速构建分析星型模型。
- 希望复用 SAP 标准维度(如 I_CalendarDate、I_Country、I_Currency)而非重新生成。
- 需要生成可消费的分析查询(KPI 视图)的基础模型。
- 适用于基本范围(复用已有维度)或扩展范围(生成新维度,支持 DDIC 表作为事实源)。
限制
- 需要 SAP_BASIS 7.5x 且具备分析注解;若 RAP/CDS 不可用则无法使用。
- 输出为相互依赖的 CDS 视图,必须作为非活动草稿批量创建并一次性激活,否则交叉引用可能无法解析。
- 若批量创建并延迟激活不被支持(旧版本),需回退为逐个创建后统一激活。
- 该技能仅构建模型;可消费的查询是单独步骤(generate-cds-analytical-query)。
- 对于事务性 RAP 服务(非分析),应使用 generate-rap-service。
- 组合规则必须遵守:立方体至少一个度量(@Aggregation.default);每个金额度量需 @Semantics.amount.currencyCode 且货币字段被投影,每个数量度量需 @Semantics.quantity.unitOfMeasure 且单位字段被投影;每个立方体到维度关联必须为 [1..1] 且维度键字段携带 @ObjectModel.foreignKey.association;每个维度需有 representativeKey;文本视图使用 @ObjectModel.dataCategory: #TEXT + @Semantics.text/language。
- 错误处理:立方体无度量、关联基数错误、foreignKey.association 放置错误、文本视图被拒(误用 @Analytics.dataCategory)、交叉引用未解析、缺少 representativeKey 等均有对应修复方式。
备注
- 基本与扩展范围:基本 = 复用已有维度(步骤 2 查找已发布 #DIMENSION 视图);扩展 = 还生成新 ZI_DIM + ZI_TXT 并接受 DDIC 表作为事实源(步骤 1b)。
- 尽可能复用 SAP 标准维度(I_CalendarDate、I_Country、I_Currency),而非重新生成。