SuperAPI AI 工具集

generate-analytics-star-schema

数据与分析

查看项目

更新于 10-15 09:22

技能介绍

用途

该技能在 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 视图)。

使用方式

  1. 前置条件:需要 SAP_BASIS 7.5x 且具备分析注解。通过 SAPManage(action="probe") 验证 rap.available;若 RAP/CDS 不可用则停止。
  2. 输入:用户提供 RAP 业务对象根实体/行为池(如 ZBP_R_TRAVEL 或 ZI_Travel)、DDIC 表(如 ZTRAVEL)或用作事实源的接口 CDS 视图。可选指定哪些数值字段为度量、哪些为维度、目标包,以及是否生成新维度视图或复用已有。
  3. 步骤:
    • 步骤 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)。
  4. 智能默认值(静默应用,不询问):对象类型 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),而非重新生成。