sap-sac-scripting
npx skills add https://github.com/secondsky/sap-skills --skill sap-sac-scripting
Agent 安装分布
Skill 文档
SAP Analytics Cloud Scripting
Comprehensive skill for scripting in SAP Analytics Cloud (SAC) Analytics Designer and Optimized Story Experience.
Plugin Components
This plugin provides specialized tools for SAC development:
Agents (use via Task tool):
sac-script-debugger– Debug script errors, trace issuessac-performance-optimizer– Analyze and fix performance bottleneckssac-planning-assistant– Guide planning operations and version managementsac-api-helper– Find correct APIs and provide code examples
Commands (use via /command):
/sac-script-template– Generate script templates (filter, planning, export, etc.)/sac-debug– Interactive debugging guidance/sac-optimize– Performance analysis and recommendations/sac-planning– Planning operation templates
Hooks:
- Automatic validation on SAC script writes for common issues
What’s New in Q4 2025 (2025.21)
Key scripting enhancements in the latest SAC release:
- Chart Variance APIs – Script control over chart variance display
- Compass for Seamless Planning – Enhanced planning integration
- Data Actions Enhancements – Automatic dimension mapping, input control binding
- Time Series Forecast API – Programmatic forecasting control
- Comments APIs – Widget and cell comment management
See references/whats-new-q4-2025.md for complete details.
Quick Start
Script Editor Access
- Analytics Designer: Edit mode â Select widget â Scripts tab
- Optimized Story Experience: Advanced Mode â Select widget â Add script
Basic Script Structure
// Event handler example (onSelect on Chart_1)
var selections = Chart_1.getSelections();
if (selections.length > 0) {
var selectedValue = selections[0]["Location"];
Table_1.getDataSource().setDimensionFilter("Location", selectedValue);
}
Core APIs
DataSource API
Access via Widget.getDataSource(). Key methods:
getMembers(dim, {accessMode: MemberAccessMode.BookedValues})– Get dimension members efficientlygetResultSet()– Cached data access (preferred over getData())setDimensionFilter(dim, value)– Apply filterssetRefreshPaused(true/false)– Batch multiple operations
Planning API
Access via Table.getPlanning(). Key operations:
getPublicVersion()/getPrivateVersion()– Version accesspublish()– Submit private to publiccopyFromPublicVersion()/copyToPublicVersion()– Data copysetLock(true/false)– Data locking
Widget APIs
- Charts:
addMeasure(),addDimension(),getSelections() - Tables:
addDimensionToRows(),setZeroSuppressionEnabled() - Containers: Panel, TabStrip, PageBook for layout
Application Object
Global utilities:
Application.showBusyIndicator()/hideBusyIndicator()Application.showMessage(type, text)Application.getUserInfo()/getInfo()
Performance Best Practices
-
Minimize Backend Calls
// Use getResultSet() (cached) instead of getMembers() (backend) var data = ds.getResultSet(); -
Batch Filter Operations
ds.setRefreshPaused(true); ds.setDimensionFilter("Dim1", value1); ds.setDimensionFilter("Dim2", value2); ds.setRefreshPaused(false); // Single refresh -
Keep onInitialization Empty Defer heavy operations to lazy loading or first interaction.
-
Use BookedValues for Members
var members = ds.getMembers("Dim", {accessMode: MemberAccessMode.BookedValues});
Debugging
Console Logging
console.log("Debug:", myVariable);
console.log("Selections:", JSON.stringify(Chart_1.getSelections()));
Browser DevTools
- Press F12 â Console tab
- Filter by “Info” type
- Add
?APP_PERFORMANCE_LOGGING=trueto URL for timing
Bundled Resources
Reference Files (55 files):
- Core APIs:
references/api-datasource.md,references/api-widgets.md,references/api-planning.md - Advanced:
references/api-calendar-bookmarks.md,references/api-advanced-widgets.md - Best Practices:
references/best-practices-developer.md,references/best-practices-planning-stories.md - Language:
references/scripting-language-fundamentals.md - Q4 2025:
references/whats-new-q4-2025.md,references/chart-variance-apis.md
Templates (56 patterns):
templates/common-patterns.js– 40 general scripting patternstemplates/planning-operations.js– 16 planning-specific patterns
Official Documentation
- 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 Documentation: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD
- What’s New Q4 2025: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/c96a267c5da04fff90bb55313ee9f77c.html
Version: 3.0.0 | Last Verified: 2025-12-27 | SAC Version: Q4 2025 (2025.21) | API Version: 2025.19