L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

sap-sac-planning

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.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: sap-sac-planning description: >- 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. trigger: keywords: - SAC planning - planning model - allocation - data action - value driver tree - BPC migration - SAC calendar - predictive forecast intent: >- Build SAC planning models, allocations, data actions, value driver trees, and manage BPC migrations. file_patterns: - "planningmodel*"

SAP Analytics Cloud Planning

SAC Planning = Model (structure) → Process (actions) → Governance (versions, calendars). Each layer builds on the previous.

Prerequisites

  • SAC tenant with Planning license (not BI-only)
  • Model Builder role or planning_model.create permission
  • Source data: BW/4HANA, S/4HANA, or flat-file upload
  • BPC migration: access to BPC 10.x/11.x (NW or MS) environment

1. Planning Model

Model: 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"}'

2. Version Management

VersionPurposeBehavior
ActualHistorical dataRead-only, loaded from source
BudgetAnnual planLocked after approval
ForecastRolling forecastOpen to contributors
PlanWhat-if scenarioTemporary, 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}'

3. Allocation Process

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.

4. Data Actions

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"}}'

5. Value Driver Trees (VDT)

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.

6. Calendar Tasks

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"}'

7. BPC → SAC Migration

BPC ConceptSAC EquivalentNotes
EnvironmentPlanning ModelOne model per BPC app
Input SchedulesStories + TablesRebuild as grid widgets
Script LogicData ActionsRewrite in Advanced Formula
Work StatusCalendar TasksMap locks to task gates
EPM Add-inSAC Excel Add-inRe-link to SAC model
DimensionsDimensionsMax 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%).

8. Predictive Forecasting

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"]}'

Pitfalls

  • 20 dimensions max — BPC models with more need consolidation
  • 100 Data Action steps max — split complex chains into sequential actions
  • Actual is read-only — copy to planning version before writing
  • Allocation driver scope — must be same model; cross-model needs workaround
  • Currency conversion — set up rates table before loading data; retroactive triggers full recalc
  • Version proliferation — each public version costs storage; archive quarterly
  • Calendar ownership — if assignee leaves, task stalls; set fallback owner
  • BPC *WHEN/*IS — don't map 1:1 to SAC Advanced Formula; 30–40% rewrite
  • Large model perf — > 100M cells degrades rendering; use private versions

Verification

# 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

Quick Reference

  • Max dims: 20 | Max DA steps: 100 | Alloc methods: COPY, PERCENTAGE, SHARE
  • Versions: Public (shared), Private (user-scoped)
  • API: https://$SAC_TENANT/api/v1/ | Auth: OAuth 2.0 (Settings → App Integration)
Skills enregistrées