技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
sap-sac-planning【数据与研究】SAC Planning — models, versions, allocations, data actions, value driver trees, calendar tasks, predictive forecasting, BPC migration. Use when building SAC planning apps, creating allocations, or migrating from BPC.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
SAC Planning = Model (structure) → Process (actions) → Governance (versions, calendars). Each layer builds on the previous.
planning_model.create permissionModel: Financial_Plan
├── Dimensions (max 20): Account, CostCenter, Time, Version, Currency
├── Measures: Amount, Quantity, Price, Calculated
├── Versions: Actual (RO), Budget, Forecast, Plan (what-if)
└── Security: R/W per dimension member
curl -X POST "https://$SAC_TENANT/api/v1/planningmodels" \
-H "Authorization: Bearer $SAC_TOKEN" -H "Content-Type: application/json" \
-d '{"name":"Financial_Plan","dimensions":["Account","CostCenter","Time","Version","Currency"],"defaultCurrency":"USD"}'
| Version | Purpose | Behavior |
|---|---|---|
| Actual | Historical data | Read-only, loaded from source |
| Budget | Annual plan | Locked after approval |
| Forecast | Rolling forecast | Open to contributors |
| Plan | What-if scenario | Temporary, user-scoped |
curl -X POST "https://$SAC_TENANT/api/v1/versions" \
-H "Authorization: Bearer $SAC_TOKEN" \
-d '{"model":"Financial_Plan","source":"Actual","target":"Budget_2026","copyData":true}'
Distributes costs from source to targets using a driver measure.
// SAC Data Action — Allocation step (Advanced Formula)
var alloc = PlanningModel_1.createAllocationStep({
source: { dimension:"CostCenter", member:"CC_ADMIN", measure:"Amount",
filter:[["Account","=","SALARIES"]] },
target: { dimension:"CostCenter", members:["CC_SALES","CC_MKTG","CC_RD"],
driver:{ measure:"Headcount", includeZero:false } },
method:"COPY", amount:100 // COPY | PERCENTAGE | SHARE, % of source
});
alloc.execute();
Key: Driver measure must be in the same model. Cross-model references require a calculated measure workaround.
Multi-step scripts that copy/transform/calculate plan data across versions.
Data Action: Copy_Plan_to_Forecast
Step 1 — Copy: Plan/2026 → Forecast/2026
Step 2 — Override: SALARIES × 1.05 (5% raise)
Step 3 — Allocate: Overhead by revenue share
Step 4 — Publish: Lock Forecast version
curl -X POST "https://$SAC_TENANT/api/v1/dataactions/Copy_Plan_to_Forecast/execute" \
-H "Authorization: Bearer $SAC_TOKEN" \
-d '{"parameters":{"SOURCE_VERSION":"Plan","TARGET_VERSION":"Forecast_2026"}}'
Decompose KPIs into adjustable levers for what-if simulation.
Revenue
├── Price × Quantity
│ ├── Price ──→ Pricing Strategy (manual input)
│ └── Quantity ──→ Market Size × Market Share
└── [ML: Market Share = 73% influence — top driver]
RAG insight: SAC augmented analytics auto-detects KPI drivers via ML. Use "Smart Insights" on VDT nodes to surface hidden correlations before manual modeling. Build planning models from predictive forecasts to blend ML + human input.
Orchestrates planning workflows with task dependencies and lock gates.
Q4 Cycle:
Task 1 (Oct 1–7): CC Managers → Input headcount & expenses
Task 2 (Oct 8–14): Finance → Review & consolidate
Task 3 (Oct 15–21): Controller → Finalize, allocate, lock
curl -X POST "https://$SAC_TENANT/api/v1/calendar/tasks" \
-H "Authorization: Bearer $SAC_TOKEN" \
-d '{"name":"Input_Headcount_Q4","model":"Financial_Plan","assignees":["cc_sales_mgr"],"startDate":"2026-10-01","endDate":"2026-10-07","taskType":"DATA_ENTRY"}'
| BPC Concept | SAC Equivalent | Notes |
|---|---|---|
| Environment | Planning Model | One model per BPC app |
| Input Schedules | Stories + Tables | Rebuild as grid widgets |
| Script Logic | Data Actions | Rewrite in Advanced Formula |
| Work Status | Calendar Tasks | Map locks to task gates |
| EPM Add-in | SAC Excel Add-in | Re-link to SAC model |
| Dimensions | Dimensions | Max 20 (BPC allowed more) |
Steps: Export BPC metadata → Create SAC model → Migrate master data → Rebuild script logic as Data Actions (30–40% rewrite) → Recreate schedules as Stories → Map work status → Calendar → Validate row-by-row (delta < 0.01%).
curl -X POST "https://$SAC_TENANT/api/v1/predictive/forecasts" \
-H "Authorization: Bearer $SAC_TOKEN" \
-d '{"model":"Financial_Plan","target":"Revenue","horizon":12,"version":"Forecast_2026","explanatoryVariables":["Price","Quantity","MarketShare"]}'
*WHEN/*IS — don't map 1:1 to SAC Advanced Formula; 30–40% rewrite# 1. Model structure
curl -s "https://$SAC_TENANT/api/v1/planningmodels/Financial_Plan" \
-H "Authorization: Bearer $SAC_TOKEN" | jq '.dimensions, .versions'
# 2. Data action status
curl -s "https://$SAC_TENANT/api/v1/dataactions/Copy_Plan_to_Forecast/status" \
-H "Authorization: Bearer $SAC_TOKEN" | jq '.status, .lastRun, .rowsAffected'
# 3. Allocation check (source zeroed, targets populated)
curl -s "https://$SAC_TENANT/api/v1/dataexport/Financial_Plan" \
-H "Authorization: Bearer $SAC_TOKEN" \
-d '{"filter":{"CostCenter":"CC_ADMIN","Account":"SALARIES"}}' | jq '.data'
# 4. Open calendar tasks
curl -s "https://$SAC_TENANT/api/v1/calendar/tasks?status=OPEN" \
-H "Authorization: Bearer $SAC_TOKEN" | jq '.tasks | length'
# 5. BPC migration — row count delta < 0.01% = pass
https://$SAC_TENANT/api/v1/ | Auth: OAuth 2.0 (Settings → App Integration)