用途
本技能用于 SAP Analytics Cloud(SAC)中的脚本编写与调试,覆盖两个环境:Analytics Designer(基于应用的脚本,完整 API)与 Optimized Story Experience(基于故事的脚本,OSE API v2025.20)。适用场景包括:编写或调试 SAC Analytics Designer 脚本、Optimized Story Experience 脚本、控件 API、数据源过滤/选择逻辑、计划与版本脚本、导出/导航处理、性能敏感的故事逻辑,以及 SAC MCP 辅助自动化。
主要能力
- 环境识别:根据用户提到的 .story、Optimized Story、OSE、Story.、Application.getActivePage() 等信号判断为 OSE;根据 Analytics Designer、AnalyticApplication、Designer、.application 等信号判断为 Analytics Designer;不明确时先询问一次。
- 核心 API 支持:DataSource API(getMembers、getResultSet、setDimensionFilter、setRefreshPaused 等)、Planning API(getPublicVersion/getPrivateVersion、publish、copyFromPublicVersion/copyToPublicVersion、setLock 等)、控件 API(图表 addMeasure/addDimension/getSelections,表格 addDimensionToRows/setZeroSuppressionEnabled,容器 Panel/TabStrip/PageBook)、Application 对象(showBusyIndicator/hideBusyIndicator、showMessage、getUserInfo/getInfo)。
- 性能最佳实践:优先使用 getResultSet() 缓存数据而非 getMembers() 后端调用;用 setRefreshPaused(true/false) 批量执行过滤操作;保持 onInitialization 为空,将重操作延迟到懒加载或首次交互;使用 MemberAccessMode.BookedValues 获取成员。
- 调试:console.log 输出、浏览器 DevTools(F12 → Console,按 Info 过滤)、URL 加 ?APP_PERFORMANCE_LOGGING=true 查看耗时。
- 插件工具:代理 sac-script-debugger(调试脚本错误)、sac-performance-optimizer(性能瓶颈分析)、sac-planning-assistant(计划操作与版本管理)、sac-api-helper(查找 API 与代码示例);命令 /sac-script-template、/sac-debug、/sac-optimize、/sac-planning;以及脚本写入时的自动校验钩子。
- 报告类故事工作流:建立契约(租户、故事、数据源、受众、是否禁止改模型)→ 检查实际元数据(只用模型暴露的维度、度量、层级、时间字段等,不虚构字段)→ 在故事层设计页面/控件/过滤/导航 → 安全实现(保存前确认处于 Story Designer 而非 Modeler)→ 验证或移交。只读契约下允许创建/编辑故事页面、图表、表格、KPI 卡、过滤、导航和故事层计算,允许重命名故事对象并保存,允许检查模型元数据;禁止在未获明确授权时编辑模型维度/度量/属性/连接/日历/分配/设置、创建模型级计算度量、更改主数据/角色/权限、发布计划版本、执行数据操作、更改锁定或回写计划数据。
- 大参考文件检索:先用 rg 搜索再打开,例如 rg -n "class Chart|interface DataSource|enum Feed|setDimensionFilter|getPlanning|PlanningModel" references/ose-api-*.md,然后只读匹配段落。
使用方式
脚本编辑器入口:Analytics Designer 为编辑模式 → 选择控件 → Scripts 标签;Optimized Story Experience 为高级模式 → 选择控件 → Add script。
基础脚本结构示例(Chart_1 的 onSelect 事件处理):
var selections = Chart_1.getSelections();
if (selections.length > 0) {
var selectedValue = selections[0]["Location"];
Table_1.getDataSource().setDimensionFilter("Location", selectedValue);
}
MCP 设置:插件附带 .mcp.json,连接 secondsky/sap_analytics_cloud_mcp 服务器,暴露 11 个服务领域(Content、Data Export、Data Import、Multi Actions、Calendar、Content Transport、User Management、Monitoring、Schedule & Publication、Translation、Smart Query)共 90 个 SAC REST API 工具。该 MCP 为源码安装而非 npm 安装。使用前先检查项目中是否存在 .claude/sac-mcp.local.md 或环境变量 SAC_MCP_PATH;未安装时询问用户一次是否协助安装。安装步骤:
git clone https://github.com/secondsky/sap_analytics_cloud_mcp
cd sap_analytics_cloud_mcp
git checkout 2020235505d98111c2889598ab2217c1619b6943
npm ci --ignore-scripts
npm run build
需配置的环境变量:SAC_MCP_PATH(克隆仓库绝对路径)、SAC_MCP_COMMIT(2020235505d98111c2889598ab2217c1619b6943)、SAC_BASE_URL(SAC 租户根 URL)、SAC_TOKEN_URL(OAuth 令牌端点)、SAC_CLIENT_ID / SAC_CLIENT_SECRET(来自 SAC OAuth 客户端配置)。安装成功后写入 .claude/sac-mcp.local.md(gitignored)记录安装日期、仓库、提交、路径、构建命令与已配置环境变量,避免后续会话重复询问。更改受信任分支或提交固定前,应先用 sap-dependency-security,因为该服务器接收 SAC OAuth 凭据并暴露租户 API 工具。
适用场景
- 编写新的过滤、计划、导航、导出脚本。
- 调试已有脚本、追踪问题。
- 优化性能、查找正确的 API 方法。
- 计划操作(版本管理、数据锁定等)。
- 只读报告类故事与仪表板、管理报表的设计与验证。
- 需要 SAC MCP 辅助的自动化流程。
限制与边界
- 环境不明确时需先询问一次,确认后不再重复询问。
- 只读故事契约下,模型层修改、计划版本发布、数据操作执行、锁定更改、计划数据回写等均被禁止,除非用户明确授权并批准。
- 若模型未暴露所需字段或度量,应省略依赖控件并记录省略原因,不得为迁就设计而修改模型。
- 租户交互受阻时,不得声称故事已创建,应提供完整故事规格供手动执行或后续连接会话使用。
- 浏览器运行时检查应使用 sap-browser-automation 处理认证、Edge/CDP 启动与恢复,本地参考 references/edge-cdp-control.md 了解 SAC 脚本特定边界;CDP 仅用于本地运行时排查、控件状态检查与经批准的截图,不得触碰无关标签页。
- 本技能未提供收费、价格、平台或效果方面的信息。
版本与资源
SAC 版本 Q2 2026(2026.8),API 版本 2025.20(OSE Q2 2026)。Q2 2026 主要脚本增强:增强的 onAfterExecute 事件(上传事件包含 message、statistics、rejected records、target version、filename)、Data Export API 作业监控(新增增量提取与计算作业的作业监控标签)、Data Import Service API(向 SAP Datasphere 公共维度导入主数据;向私有版本导入外部事实数据)、Multi-Action API 步骤(允许 HTTP 204 响应;增强头部字段限制)、Export to S/4HANA 已弃用(改用 write-back 集成场景)、非对称报表(每行/列可有不同时间范围、层级与度量)、复合版本管理(故事设计期间管理多个复合版本)。
内置资源:66 个参考文件,包括核心 API(api-datasource.md、api-widgets.md、api-planning.md)、高级(api-calendar-bookmarks.md、api-advanced-widgets.md)、最佳实践(best-practices-developer.md、best-practices-planning-stories.md)、语言基础(scripting-language-fundamentals.md)、Q2 2026 相关更新(whats-new-qrc2-2026.md、whats-new-2025.23.md、chart-variance-apis.md)、浏览器运行时排查(edge-cdp-control.md);OSE API 完整方法/参数/返回文档共 8 个文件(ose-api-application-core.md、ose-api-widgets.md、ose-api-datasource.md、ose-api-chart-viz.md、ose-api-planning-calendar.md、ose-api-filtering-selection.md、ose-api-utilities.md、ose-api-types-enums.md);56 个模板(templates/common-patterns.js 含 40 个通用模式,templates/planning-operations.js 含 16 个计划专用模式)。
官方文档:Analytics Designer API https://help.sap.com/doc/958d4c11261f42e992e8d01a4c0dde25/release/en-US/ ;Optimized Story Experience API https://help.sap.com/doc/1639cb9ccaa54b2592224df577abe822/release/en-US/ ;SAC 文档 https://help.sap.com/docs/SAP_ANALYTICS_CLOUD ;What's New Q4 2025 https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/c96a267c5da04fff90bb55313ee9f77c.html 。