关于 sap-sac-planning
面向 SAP Analytics Cloud 规划应用开发者的技能,涵盖规划模型、数据录入、版本、数据操作和工作流。还提供 Datasphere、BPC 连接及调试参考,并强调执行写回或发布操作前须获明确批准。
主要功能
- 01规划模型与数据录入配置
- 02数据操作和多操作编排
- 03版本、任务与数据锁管理
- 04规划 API 与高级公式
- 05数据操作追踪与问题排查
适用场景
- 01构建预算和预测应用
- 02配置分配及跨模型规划工作流
- 03管理版本发布与审批任务
- 04追踪数据操作并分析中间结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ secondsky/ sap-skills --skill sap-sac-planning安装后在 Claude Code 中输入/sap-sac-planning确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdagents/openai.yamlreferences/advanced-formulas.mdai-planning-analytics.mdallocations.mdanalytics-designer-planning.mdapi-reference.mdapi-snippets.mdbpc-live-connection.mddata-action-tracing.mddata-actions.mddata-locking.mdedge-cdp-control.mdinput-tasks.mdjavascript-patterns.mdjob-monitoring.mdmodeling-basics.mdmulti-actions.mdplanning-workflows.mdpredictive-conversion.mds4hana-acdocp-export.mdscheduling-calendar.mdseamless-planning-datasphere.mdvalue-driver-trees.mdversion-edit-modes.mdversion-management.mdversion-publishing-notes.mdwhats-new-2026-planning.mdtemplates/data-action-checklist.mdmulti-action-checklist.md详细介绍
SAP Analytics Cloud Planning 技能
相关技能
- sap-sac-scripting:用于编写可自动执行规划交互的 Analytics Designer/OSE 脚本
- sap-datasphere:用于使用 Datasphere 进行无缝规划和设计数据基础
- sap-sac-custom-widget:用于规划应用包含自定义小组件时
- sap-dependency-security:用于设置源固定的 SAC MCP 并确保本地工具链可信
用于使用 SAP Analytics Cloud 构建企业级规划应用的综合技能。
参考补充内容(2026)
- 执行指南:
references/data-actions.md、references/multi-actions.md、references/allocations.md、references/scheduling-calendar.md、references/data-locking.md - 建模与治理:
references/modeling-basics.md、references/version-management.md、references/version-edit-modes.md、references/version-publishing-notes.md - 计算与智能分析:
references/advanced-formulas.md、references/predictive-conversion.md、references/ai-planning-analytics.md、references/api-snippets.md - 工作流辅助工具:
references/input-tasks.md、references/job-monitoring.md - 浏览器问题排查:共享的
sap-browser-automation,用于在应用内手动进行身份验证、复制获准的 Edge 配置文件、设置全新的 Edge/CDP、使用DevToolsActivePort备用方案以及选择目标;本地references/edge-cdp-control.md保留规划回写安全规范 - 2025 年新增:
references/seamless-planning-datasphere.md、references/bpc-live-connection.md、references/value-driver-trees.md、references/data-action-tracing.md - 2026 年新增:
references/whats-new-2026-planning.md - 可直接使用的模板:
templates/data-action-checklist.md、templates/multi-action-checklist.md、templates/parameter-table.md
使用这些内容可让本文件中的说明保持简洁,同时只需单击一次即可深入查看详细内容。
对于需要身份验证的 SAC 规划浏览器检查,请使用 sap-browser-automation 处理浏览器和身份验证层,并加载本地 references/edge-cdp-control.md 了解规划专属边界。使用 CDP 对规划表、控制台错误、数据操作状态和获准的屏幕截图进行本地只读问题排查;任何回写、发布、数据操作、多重操作或更改锁定状态的交互,都必须事先获得明确批准。
目录
适用场景
在处理以下任务时使用此技能:
规划应用程序开发:
- 创建支持规划和数据输入的故事
- 构建用于规划的分析设计器应用程序
- 实现输入表单和规划表
- 配置包含 Version 和 Date 维度的规划模型
- 为规划场景设置数据源
数据操作和多重操作:
- 创建用于复制、分配和计算的数据操作
- 构建用于编排规划操作的多重操作
- 配置参数(成员、数字、字符串、日期时间类型)
- 实现嵌入式数据操作
- 设置用于外部集成的 API 步骤
版本管理:
- 管理公共版本和私有版本
- 发布工作流(Publish As、Publish Private Data)
- 与协作者共享私有版本
- 通过 API 创建和删除版本
规划工作流:
- 设置基于日历的规划流程
- 创建常规任务、审核任务和复合任务
- 实现多级审批工作流
- 配置数据锁定任务
- 管理任务依赖关系
JavaScript 规划 API:
- 使用 getPlanning() API 输入数据
- 使用 PlanningModel API 处理主数据
- 实现 DataSource API 进行筛选和查询
- 编写用于规划自动化的脚本
- 通过 API 处理版本管理
数据输入和分配:
- 实现扩展(分配至子成员)
- 配置分布(在同级成员之间分配)
- 设置基于规则的分配
- 在规划表中执行复制/粘贴操作
- 使用高级公式进行计算
数据锁定:
- 在模型上配置数据锁定
- 设置锁定状态(已锁定、受限、开放)
- 在日历中创建数据锁定任务
- 实现基于事件的数据锁定
- 在多重操作中集成数据锁定
与 Datasphere 无缝规划(2025):
- 使用 Datasphere 存储的规划模型
- 使用统一数据进行跨模型规划
- 直接持久化到 Datasphere
- 面向规划的企业数据治理
BPC 实时连接:
- 使用 S/4HANA 上的 BPC Embedded 进行规划
- 从 SAC 运行 BPC 规划序列
- 通过 BPC 进行主数据规划
- 配置实时数据连接
价值驱动树:
- 构建业务价值链可视化
- 进行假设分析和场景模拟
- 基于驱动因素进行规划
- 创建交互式规划仪表板
数据操作调试:
- 跟踪数据操作执行过程
- 添加跟踪点以进行调试
- 分析中间结果
- 排查分配问题
快速入门
创建支持规划的故事
-
创建规划模型,并添加所需维度:
- Version 维度(必需)
- Date 维度(必需)
- Account 维度(推荐)
- 其他业务维度
-
将表格控件添加到故事,并关联规划模型
-
在表格中启用规划:
- 选择表格 → Planning 面板 → Enable Planning
- 配置版本选择(公共版本或私有版本)
-
配置数据输入:
- 设置可编辑的度量值/账户
- 配置扩展行为
- 设置验证规则
创建分析设计器规划应用程序
- 创建分析应用程序(而非 Optimized Story)
- 添加规划模型作为数据源
- 添加表格控件并启用规划
- 编写脚本以实现:
- 版本选择
- 数据提交
- 自定义验证
- 工作流触发器
核心概念
模型类型
规划模型:
- 支持数据回写
- 需要 Version 和 Date 维度
- 支持扩展、分布和分配
- 支持数据锁定
- 用于预算、预测和规划
分析模型:
- 只读(不支持回写)
- 不需要特定维度
- 报告性能更佳
- 不需要规划时使用
版本管理
公共版本:
- 对所有有权访问的用户可见
- 在整个组织内共享
- 更新需要发布
私有版本:
- 仅创建者可见(除非已共享)
- 用于模拟和假设分析
- 可以发布为公共版本或新版本
编辑模式:
- 编辑公共版本时创建临时私有副本
- 发布前,只有编辑者能看到更改
- 发布时自动验证
参考:有关详细工作流,请参阅 references/version-management.md。
规划 API 概览
getPlanning() API — 表规划操作:
// Check if planning is enabled
var isEnabled = Table_1.getPlanning().isEnabled();
// Get public versions
var publicVersions = Table_1.getPlanning().getPublicVersions();
// Get private version
var privateVersion = Table_1.getPlanning().getPrivateVersion();
// Set user input (data entry)
Table_1.getPlanning().setUserInput(selection, value);
// Submit data changes
Table_1.getPlanning().submitData();
PlanningModel API — 主数据操作:
// Get dimension members with properties
var members = PlanningModel_1.getMembers("CostCenter");
// Create new members
PlanningModel_1.createMembers("CostCenter", [
{id: "CC100", description: "Marketing"}
]);
// Update existing members
PlanningModel_1.updateMembers("CostCenter", [
{id: "CC100", description: "Marketing Dept"}
]);
// Delete members
PlanningModel_1.deleteMembers("CostCenter", ["CC100"]);
DataSource API — 筛选和查询:
// Set dimension filter
Table_1.getDataSource().setDimensionFilter("Version",
"[Version].[parentId].&[public.Actual]");
// Get members with booked values only
var members = Table_1.getDataSource().getMembers("Account",
{accessMode: MemberAccessMode.BookedValues});
// Remove filter
Table_1.getDataSource().removeDimensionFilter("Version");
参考:有关完整的 API 文档,请参阅 references/api-reference.md。
数据操作
数据操作可在规划模型上执行计算和数据处理。
步骤类型
| 步骤类型 | 用途 |
|---|---|
| Copy | 在维度/版本之间移动数据 |
| Advanced Formula | 复杂计算 |
| Allocation | 基于规则进行分配 |
| Currency Conversion | 转换货币 |
| Embedded Data Action | 运行另一个数据操作 |
创建 Copy 步骤
Source:
Version = Actual
Year = 2024
Target:
Version = Budget
Year = 2025
Mapping:
Account = Account (same)
CostCenter = CostCenter (same)
Advanced Formula 示例
// Calculate forecast = Actual + (Budget - Actual) * 0.5
[Version].[Forecast] = [Version].[Actual] +
([Version].[Budget] - [Version].[Actual]) * 0.5
参数
添加参数,让数据操作可重复使用:
- 成员参数:选择维度成员
- 数字参数:输入数值
- 字符串参数:输入文本(2025+)
- 日期时间参数:选择日期/时间(2025+)
参考:有关完整的配置指南,请参阅 references/data-actions.md。
多重操作
多重操作可在模型和版本之间编排多个规划操作。
可用步骤类型
- 数据操作步骤:使用参数运行数据操作
- 版本管理步骤:发布版本
- 预测步骤:运行预测场景
- 数据导入步骤:从 SAP 源导入
- API 步骤:调用外部 HTTP API
- 数据锁定步骤:锁定/解锁数据切片
- PaPM 步骤:运行盈利能力与绩效管理
多重操作流程示例
1. Clean target version (Data Action)
2. Import actuals (Data Import)
3. Run forecast (Predictive)
4. Calculate allocations (Data Action)
5. Publish to public version (Version Management)
6. Lock published data (Data Locking)
跨模型参数
使用公共维度时,创建跨模型参数,以便在不同模型的步骤之间共享值。
参考:有关多重操作配置,请参阅 references/data-actions.md。
S/4HANA ACDOCP 导出
用于将 SAC 中的原生规划数据导出到 SAP S/4HANA 的 ACDOCP 表(ERP 计划数据的集中存储)的旧版/已弃用路径。截至 2026 年第 2 季度,SAP 已弃用将模型数据导出到 SAP S/4HANA 的方式,并建议改用回写集成场景。保留本节是为了维护现有 环境,而非作为新规划解决方案的默认设计。
架构
SAC Planning Model → Data Export Service → Cloud Connector → API_PLPACDOCPDATA_SRV → ACDOCP
前提条件
| 要求 | 详情 |
|---|---|
| 旧版模式 | 必须在规划模型上启用 |
| OData 服务 | 在 /IWFND/MAINT_SERVICE 中激活 API_PLPACDOCPDATA_SRV |
| Cloud Connector | 用于本地部署的 S/4HANA |
导出所需维度
- 版本(计划类别):只能导出公共版本
- FiscalYearPeriod:必须包含在导出范围内
- 度量值:每个导出作业只能有一个目标度量值
- G/L 科目:ACDOCP 映射所必需
导出行为
- 导出的数据会覆盖范围内的现有数据
- S/4HANA 会为更改生成增量记录
- 删除不会传递:将值设为 0 并重新导出,以清除 ACDOCP 数据
- 创建导出作业后无法更改筛选条件——请使用描述性名称命名作业
旧版维护清单
对于新实现,不要创建此路径,除非已确认弃用影响、SAP Note 3707288 指南以及受支持的迁移路径。
- 在规划模型上启用旧版模式
- 使用 Cloud Connector 创建 S/4HANA 连接
- 数据管理 → 创建数据导出作业
- 将维度映射到 ACDOCP 字段
- 定义导出范围(FiscalYearPeriod + PlanningCategory 为必填项)
- 计划或运行导出
参考:有关旧版配置详情,请参阅 references/s4hana-acdocp-export.md;有关 2026 年第二季度弃用说明,请参阅 references/whats-new-2026-planning.md。
使用 Datasphere 实现无缝规划
无缝规划将 SAC 规划与 SAP Datasphere 统一起来,为计划数据提供企业级存储和治理。
架构概览
SAC (Planning Logic & UX) ──Direct Persistence──► Datasphere (Data Storage & Governance)
保留在 SAC 中的内容:规划计算、版本管理、数据操作、日历工作流 迁移到 Datasphere 的内容:事实数据、公共维度、物理存储、数据治理
主要优势
| 优势 | 说明 |
|---|---|
| 统一数据 | 集中存储确保一致性 |
| 直接持久化 | SAC 中的更改会立即反映到 Datasphere 中 |
| 优化资源 | 减少 SAC 的内存和存储占用 |
| 企业级复用 | Datasphere 建模可扩展至规划数据 |
先决条件
- 基于 SAP HANA Cloud 的 SAC 租户 - 在系统 → 关于中确认
- 共置租户 - 位于同一个 SAP 数据中心区域
- 1:1 租户关联 - 一个 SAC 租户对应一个 Datasphere 租户
- 一致的 IdP - 使用相同的 SAML 身份提供商
- Datasphere 空间角色 - DW Modeler、DW Integrator 或 DW Space Administrator
快速设置
- 创建新的规划模型
- 选择 SAP Datasphere Space 作为数据存储位置
- 配置维度(公共维度存储在 Datasphere 中)
- 在模型详情中启用 Expose to Datasphere
- 在 SAC 中正常规划 - 更改会自动持久化
跨模型规划
用于跨模型操作(数据操作、多重操作)的所有模型都必须位于同一个 Datasphere 空间中。
参考:有关详细架构、配置和故障排除,请参阅 references/seamless-planning-datasphere.md。
BPC 实时连接
SAC 支持与 S/4HANA 上的 BPC Embedded 建立实时数据连接,既可使用 BPC 引擎进行规划,又可使用 SAC 的现代界面。
支持的 BPC 版本
| 版本 | 规划支持 |
|---|---|
| BPC Embedded (S/4HANA) | 完整规划功能 |
| BPC for NetWeaver | 有限支持(只读) |
| BPC Standard | 需要导出到 BPC |
通过 BPC Live 使用的规划功能
- 数据输入:直接向 BPC 模型输入数据
- 规划序列:从 SAC 执行 FOX 脚本
- 版本管理:由 BPC 控制的类别
- 主数据规划:更新维度属性
- 数据锁定:BPC 锁定集成
运行 BPC 规划序列
// Execute BPC planning sequence
PlanningSequence_1.setParameterValue("FISCAL_YEAR", "2025");
PlanningSequence_1.setParameterValue("VERSION", "PLAN");
PlanningSequence_1.execute().then(function() {
Table_1.getDataSource().refreshData();
});
何时使用 BPC Live,何时使用 SAC 原生规划
在以下情况下使用 BPC Live:已有 BPC 投资、复杂的 FOX 脚本、与 BW 报表集成 在以下情况下使用 SAC 原生规划:全新实现、需求较简单、移动优先的应用
参考:有关设置、先决条件和故障排除,请参阅 references/bpc-live-connection.md。
价值驱动因素树
价值驱动因素树(VDT)可视化规划模型中的值流动方式,从而支持基于驱动因素的规划和假设分析。
使用场景
| 场景 | 示例 |
|---|---|
| 基于驱动因素的规划 | 建模价格、员工人数如何影响收入 |
| 假设分析 | 模拟场景,查看连锁影响 |
| 战略规划 | 可视化价值链影响 |
| 高管演示 | 适合触摸屏的会议室显示内容 |
创建价值驱动因素树
- 将 Value Driver Tree 小组件添加到故事或应用程序
- 选择包含 Date 维度的计划模型
- 添加节点(从模型自动创建或手动添加)
- 为每个节点配置度量和结构
- 链接节点(驱动因素在右侧,结果在左侧)
- 设置展示日期范围
节点配置
| 设置 | 说明 |
|---|---|
| 1 个账户 + 1 个结构 | 单行值 |
| 多个账户 | 每个账户占一行(例如,销售额 + 数量) |
| 多个结构 | 比较情景/货币 |
JavaScript API
// Get VDT reference
var vdt = ValueDriverTree_1;
// Get selected node value
var value = vdt.getSelectedNode().getValue("Revenue", "2025Q1");
// Collapse/expand nodes
vdt.collapseNode("Node_Revenue");
vdt.expandNode("Node_Revenue");
参考:有关详细设置说明和最佳实践,请参阅 references/value-driver-trees.md。
数据操作跟踪
数据操作跟踪是一种调试工具,用于检查数据操作执行过程中的中间结果。
何时使用跟踪
| 场景 | 跟踪的帮助 |
|---|---|
| 新开发 | 验证每个步骤是否生成预期结果 |
| 调试故障 | 找出导致数据错误的步骤 |
| 性能调查 | 查看哪些步骤处理的数据最多 |
| 分配调试 | 验证驱动因素比率和分布 |
添加跟踪点
- 在 Data Action Designer 中打开数据操作
- 导航到要跟踪的步骤
- 单击 Add Tracepoint(或右键单击 → Add Tracepoint)
- 使用描述性名称(例如,“复制步骤后”、“分配前”)
运行跟踪模式
- 在设计器中打开数据操作
- 单击 Run with Tracing
- 设置所需参数
- 执行——将在每个跟踪点捕获数据
- 在 Tracing Results Panel 中查看结果
分析结果
| 视图 | 说明 |
|---|---|
| 跟踪点处的数据 | 该点的所有值 |
| 与上一跟踪点相比的变化 | 跟踪点之间的差值 |
| 筛选视图 | 聚焦于特定数据 |
高级公式中的 TRACE()
// Add tracepoints in script
[Revenue] = [Quantity] * [Price]
TRACE("After_Revenue_Calc")
[Final] = [Revenue] * (1 + [Tax])
TRACE("After_Tax")
参考:有关完整的调试指南,请参阅 references/data-action-tracing.md。
计划工作流(Calendar)
SAP Analytics Cloud 日历用于组织协作式计划流程。
任务类型
常规任务:由受派人员录入数据
- 附加工作文件(故事/应用程序)
- 设置截止日期和通知
- 跟踪完成状态
审核任务:审批工作流
- 审核常规任务的结果
- 批准或拒绝提交内容
- 状态更改时自动通知
复合任务:结合录入和审核
- 简化单级工作流的审批流程
- 支持用于区域计划的驱动维度
数据锁定任务:计划锁定状态更改
- 指定要锁定/解锁的数据切片
- 设置目标锁定状态
- 基于事件触发
多级审批
Round 1: Regional Managers review regional plans
↓ (on approval)
Round 2: Finance Director reviews consolidated plan
↓ (on approval)
Round 3: CFO final approval
↓ (on approval)
Data Locking: Lock approved plan data
任务依赖关系
配置前置任务以创建顺序工作流:
- 前置任务完成后,审核任务会自动启动
- 数据锁定任务会在审批事件发生时触发
参考:有关日历配置,请参阅 references/planning-workflows.md。
扩展与分配
扩展(纵向)
将值从父成员分配给子成员:
- 平均扩展:在子成员之间平均分配
- 按比例扩展:保持现有比例
- 自动:由 SAC 确定最佳方法
// Spreading happens automatically when entering at aggregate level
// Example: Enter 1000 at "Total Regions" spreads to child regions
分配(横向)
在同一层级的成员之间移动值:
- 选择源单元格和目标单元格
- 选择分配方法
- 通过上下文菜单或脚本应用
按规则分配
在数据操作中配置结构化分配:
- 定义用于百分比分配的驱动因素账户
- 设置分配目标
- 通过数据操作或多重操作执行
数据锁定
在计划周期内及周期结束后保护计划数据。
锁定状态
| 状态 | 数据录入 | 所有者可以编辑 |
|---|---|---|
| 开放 | 可以 | 可以 |
| 受限 | 不可以(所有者除外) | 可以 |
| 已锁定 | 不可以 | 不可以 |
| 混合 | 不定 | 不定(所选内容包含多种状态) |
配置
- 启用数据锁定:在规划模型上启用
- 定义驱动维度(例如,Region、Version)
- 分配所有者:为数据切片分配所有者
- 配置锁定区域:通过模型设置进行配置
脚本示例
// Get data locking object
var dataLocking = Table_1.getPlanning().getDataLocking();
// Get lock state for selection
var selection = Table_1.getSelections()[0];
var lockState = dataLocking.getState(selection);
// Check if locked
if (lockState === DataLockingState.Locked) {
Application.showMessage("This data is locked.");
}
参考:有关数据锁定模式,请参阅 references/planning-workflows.md。
动态创建成员
在运行时动态创建、更新和删除维度成员。
支持的操作
// Create new member
PlanningModel_1.createMembers("CostCenter", {
id: "CC_NEW",
description: "New Cost Center"
});
// Update existing member
PlanningModel_1.updateMembers("CostCenter", {
id: "CC_NEW",
description: "Updated Description"
});
// Get single member
var member = PlanningModel_1.getMember("CostCenter", "CC_NEW");
// Get members with pagination
var members = PlanningModel_1.getMembers("CostCenter", {
offset: "0",
limit: "100"
});
重要限制
- 维度类型:仅支持“Generic”维度(不支持 Account、Version、Time、Organization)
- 需要刷新:更改成员后调用
Application.refreshData() - 自定义属性:使用前缀以避免命名冲突(例如,“CUSTOM_Region”)
参考:完整的 API 文档请参阅 references/analytics-designer-planning.md。
常见 JavaScript 模式
根据属性查找活动版本
var allVersions = PlanningModel_1.getMembers("Version");
var activeVersion = "";
for (var i = 0; i < allVersions.length; i++) {
if (allVersions[i].properties.Active === "X") {
activeVersion = allVersions[i].id;
break;
}
}
console.log("Active Version: " + activeVersion);
根据规划周期设置筛选器
Application.showBusyIndicator();
Table_1.setVisible(false);
// Find active planning cycle
var cycles = PlanningModel_1.getMembers("PlanningCycle");
var activeCycle = "";
for (var i = 0; i < cycles.length; i++) {
if (cycles[i].properties.Flag === "ACTIVE") {
activeCycle = cycles[i].id;
break;
}
}
// Apply MDX filter
Table_1.getDataSource().setDimensionFilter("Date",
"[Date].[YQM].&[" + activeCycle + "]");
Table_1.setVisible(true);
Application.hideBusyIndicator();
版本发布
// Get forecast version
var forecastVersion = Table_1.getPlanning().getPublicVersion("Forecast2025");
// Check if changes need publishing
if (forecastVersion.isDirty()) {
forecastVersion.publish();
Application.showMessage("Version published successfully.");
}
数据操作执行
// Execute data action with parameters
DataAction_1.setParameterValue("Version", "Budget");
DataAction_1.setParameterValue("Year", "2025");
DataAction_1.execute();
// Or execute in background
DataAction_1.executeInBackground();
参考:更多示例请参阅 references/javascript-patterns.md。
性能最佳实践
数据操作优化
- 使用输入控件:关联到参数以缩小数据范围
- 嵌入相关操作:在同一模型/版本上组合操作
- 尽量减少跨模型操作:尽可能将数据保留在单个模型中
- 使用批处理:在单个事务中分组执行操作
Story 性能
- 有选择地启用数据锁定:仅在需要的模型上启用
- 使用增长模式:适用于带分页的大型表格
- 限制可见维度:减少显示的数据单元格
- 优化筛选器:在数据输入前应用 Story 筛选器
API 性能
- 使用已过账值筛选器:仅检索已过账数据
- 限制
getMembers()结果:设置 limit 参数 - 缓存成员列表:重复使用时将其存储在脚本变量中
- 使用忙碌指示器:提升感知性能
故障排除
问题:数据未保存
检查:
- 表格是否已启用规划?
- 用户是否具有规划权限?
- 数据是否已锁定?
- 验证规则是否未通过?
调试:
console.log("Planning enabled: " + Table_1.getPlanning().isEnabled());
var lockState = Table_1.getPlanning().getDataLocking().getState(selection);
console.log("Lock state: " + lockState);
问题:版本未发布
检查:
- 是否仅包含有效更改?(无效更改会被丢弃)
- 数据访问控制是否允许写入?
- 版本是否尚未发布?
问题:数据操作失败
检查:
- 源数据是否存在?
- 目标版本是否可写?
- 维度映射是否正确?
- 参数是否设置正确?
调试:使用数据操作跟踪表,并启用“仅显示叶节点”选项。
问题:getMembers() 返回空结果
检查:
- 维度名称是否正确?
- 模型是否已连接?
- 用户是否具有读取权限?
- 是否使用了正确的 API(PlanningModel 还是 DataSource)?
官方文档链接
重要资源:
- SAP Analytics Cloud 帮助:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e
- API 参考(2026.8):https://help.sap.com/doc/958d4c11261f42e992e8d01a4c0dde25/2026.8/en-US/index.html
- Analytics Designer 概览:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/0798b81f9130425389dec84e19326b93.html
- 规划概览:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/cd897576c3344475a208c2f7a52f151e.html 计划模型与数据:
- 计划模型数据:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/bc9f0eb2da1848dd9d3925ec29337e9f.html
- 模型概览:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/0ace2c43b92b41099b1cd964b4ff198a.html
- 数据基础:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/6f6e75a5e60a4d099939196a97a25814.html
数据操作与多重操作:
- 运行数据操作:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/69a370e6cfd84315973101389baacde0.html
- 数据操作入门:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/2850221adef14958a4554ad2860ff412.html
- 创建数据操作:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/e28c7a30978b406aa5e24318206f6443.html
- 添加参数:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/4835429d35534add875bae17e93b12e1.html
版本管理:
- 版本管理概览:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/9d9056a13b764ad3aca8fef2630fcc00.html
- 创建版本:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/3b7f87c3d9cb49b7a6fef3f5cb0a6250.html
- 公共版本:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/b6e3d093988e4c3eba7eb6c1c110e954.html
- 私有版本:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/1a011f8041a84e109a3b6bf8c1c81bc1.html
数据锁定:
- 配置数据锁定:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/e07d46e950794d5a928a9b16d1394de6.html
- 数据锁定状态:https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/91fa3cbbd46d457ab04f9ef3c7901655.html Calendar & Workflows:
- Calendar Overview: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/af4b7e39edd249d3b59fa7d4ab110a7a.html
- Planning Processes: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/f6189755175940f3a4e007c3d6b83ee5.html
- Task Types: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/32c739d6f05b4990a08ef3948b18a1aa.html
Allocations & Spreading:
- Allocation Overview: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/de944ce1189543e5858798036d576094.html
- Value Driver Trees: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/18850a0e13944f53aa8a8b7c094ea29e/b4d2b021719f4d958afd0922ac7de8d1.html
Learning Resources:
- Planning Learning Journey: https://learning.sap.com/learning-journeys/leveraging-sap-analytics-cloud-functionality-for-enterprise-planning
- Advanced Planning Course: https://learning.sap.com/courses/leveraging-advanced-features-in-sap-analytics-cloud-for-planning
捆绑的参考文件
此技能包含全面的参考文档(26 个文件):
API 和脚本:
- references/api-reference.md:用于规划的完整 Analytics Designer API
- references/analytics-designer-planning.md:规划脚本、setUserInput、版本、数据锁定、即时创建成员
- references/api-snippets.md:API 代码示例和代码片段速查
核心规划功能: 4. references/data-actions.md:Data Actions、Multi Actions、参数和步骤 5. references/multi-actions.md:编排多个规划操作 6. references/allocations.md:基于规则的分配和分摊 7. references/advanced-formulas.md:复杂计算和公式 8. references/predictive-conversion.md:预测性预测集成
工作流和协作: 9. references/planning-workflows.md:日历、任务、审批、数据锁定 10. references/scheduling-calendar.md:规划日历设置 11. references/input-tasks.md:协作式数据录入任务 12. references/job-monitoring.md:跟踪数据操作执行情况
版本管理: 13. references/version-management.md:版本、发布、共享、编辑模式 14. references/version-edit-modes.md:版本编辑工作流 15. references/version-publishing-notes.md:发布最佳实践
集成和高级功能: 16. references/s4hana-acdocp-export.md:面向现有系统环境的旧版/已弃用 S/4HANA ACDOCP 导出参考 17. references/ai-planning-analytics.md:AI 驱动的规划功能
开发:
18. references/javascript-patterns.md:代码片段、模式和最佳实践
19. references/modeling-basics.md:规划模型基础知识
20. references/data-locking.md:配置和管理数据锁定
21. references/edge-cdp-control.md:SAC 规划浏览器插件,用于共享的 sap-browser-automation 身份验证、Edge/CDP 和恢复层
2025 年新增: 22. references/seamless-planning-datasphere.md:Seamless Planning 架构、前提条件,以及与 SAP Datasphere 的配置 23. references/bpc-live-connection.md:BPC Embedded 实时连接、规划序列、主数据规划 24. references/value-driver-trees.md:价值驱动树设置、节点配置、JavaScript API 25. references/data-action-tracing.md:数据操作跟踪、跟踪点、调试技巧
2026 年新增: 26. references/whats-new-2026-planning.md:2026 年 QRC1 和 QRC2 规划功能、非对称报表、复合版本控制、AI 辅助数据操作、API 增强
Claude 的说明
使用此技能时:
- 先检查模型类型——确保使用规划模型(而非分析模型)执行写入操作
- 确认已启用规划——表必须启用规划功能
- 使用适当的 API——主数据使用 PlanningModel,事务使用 getPlanning()
- 正确处理版本——草稿使用私有版本,准备就绪后发布为公共版本
- 遵守数据锁定——建议编辑前检查锁定状态
- 使用忙碌指示器——对于长时间运行的操作,使用忙碌指示器来改善用户体验
- 遵循 MDX 语法——对于维度筛选器:
[Dim].[Hierarchy].&[Member] - 测试数据操作——部署到生产环境前使用跟踪功能
- 考虑性能——应用筛选器以缩小数据范围
- 链接到文档——在回复中包含相关的 SAP 帮助链接
故障排除:
- 检查控制台中的脚本错误
- 验证模型连接
- 查看数据操作日志
- 先使用简化的场景进行测试
- 检查用户权限和数据访问权限
2026 年新增内容
QRC1 2026 (2026.3)
- AI 辅助数据操作:根据自然语言注释生成高级公式脚本,或根据现有脚本生成注释。
- 实时连接 Snowflake 数据:支持规划功能的模型可实时连接 Snowflake。
- 故事版本管理:每个故事最多支持 10 个主要版本,便于安全地迭代开发。
QRC2 2026 (2026.8)
- 非对称报表:表格的每行或每列可使用不同的时间范围、层级和度量。支持录入规划数据。
- 复合项版本管理:最多可管理 10 个复合项版本,并支持回滚。
- 作业监控器中的数据导出 API:跟踪数据提取和增量计算作业。
- 数据导入服务 API 增强:将主数据导入 Datasphere 公共维度;将外部事实数据导入无缝规划私有版本。
- onAfterExecute 事件增强:提供额外的上传信息(消息、统计信息、被拒记录、目标版本、文件名)。
- 多操作 API 步骤:HTTP 204 响应:接受为成功响应。
- 日历:保留团队引用:事件激活时自动同步团队。
- 在 Just Ask 中混用高级筛选器:使用日期范围筛选器排除日期成员。
- 弃用:将模型数据导出到 S/4HANA:请改用写回集成。
参考:详细说明、使用说明和来源引用请参阅 references/whats-new-2026-planning.md。
捆绑资源
参考文档
references/data-actions.md- 数据操作配置与执行references/multi-actions.md- 多操作编排references/allocations.md- 分配方法与分摊references/scheduling-calendar.md- 工作流调度references/data-locking.md- 数据锁定配置references/version-management.md- 版本管理最佳实践references/api-reference.md- 规划 API 参考references/javascript-patterns.md- JavaScript 脚本模式references/edge-cdp-control.md- 适用于共享sap-browser-automationEdge/CDP 和身份验证层的规划专用附加组件
模板
templates/data-action-checklist.md- 数据操作实施检查清单templates/multi-action-checklist.md- 多操作设置指南templates/parameter-table.md- 参数表模板
许可证:GPL-3.0 版本:1.5.0 维护者:Eduard Jiglau 电子邮箱:[email protected] 网站:https://sap-ai-skills.com 代码仓库:https://github.com/secondsky/sap-skills