Comprehensive SAC scripting skill for SAP Analytics Cloud Analytics Designer and Optimized Story Experience. This skill should be used when the user asks to "create SAC script", "debug Analytics Designer", "optimize SAC performance", "planning operations in SAC", "filter data in SAC", "use DataSource API", "chart scripting", "table manipulation", "SAC event handlers", "version management", "data locking", or works with SAC widgets, planning models, or analytics applications.
/plugin marketplace add secondsky/sap-skills/plugin install sap-sac-scripting@sap-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdreferences/analytics-designer-restrictions.mdreferences/api-advanced-widgets.mdreferences/api-application.mdreferences/api-calendar-bookmarks.mdreferences/api-data-operations.mdreferences/api-datasource.mdreferences/api-planning.mdreferences/api-widgets.mdreferences/auth-required.mdreferences/automatic-refactoring.mdreferences/best-practices-developer.mdreferences/best-practices-planning-stories.mdreferences/bind-widget-values.mdreferences/blending-limitations.mdreferences/bookmark-set-tech-object.mdreferences/bookmark-settings.mdreferences/calendar-integration-tech-object.mdreferences/chart-variance-apis.mdreferences/check-errors.mdComprehensive skill for scripting in SAP Analytics Cloud (SAC) Analytics Designer and Optimized Story Experience.
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 examplesCommands (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 templatesHooks:
Key scripting enhancements in the latest SAC release:
See references/whats-new-q4-2025.md for complete details.
// 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);
}
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 operationsAccess via Table.getPlanning(). Key operations:
getPublicVersion() / getPrivateVersion() - Version accesspublish() - Submit private to publiccopyFromPublicVersion() / copyToPublicVersion() - Data copysetLock(true/false) - Data lockingaddMeasure(), addDimension(), getSelections()addDimensionToRows(), setZeroSuppressionEnabled()Global utilities:
Application.showBusyIndicator() / hideBusyIndicator()Application.showMessage(type, text)Application.getUserInfo() / getInfo()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});
console.log("Debug:", myVariable);
console.log("Selections:", JSON.stringify(Chart_1.getSelections()));
?APP_PERFORMANCE_LOGGING=true to URL for timingReference Files (55 files):
references/api-datasource.md, references/api-widgets.md, references/api-planning.mdreferences/api-calendar-bookmarks.md, references/api-advanced-widgets.mdreferences/best-practices-developer.md, references/best-practices-planning-stories.mdreferences/scripting-language-fundamentals.mdreferences/whats-new-q4-2025.md, references/chart-variance-apis.mdTemplates (56 patterns):
templates/common-patterns.js - 40 general scripting patternstemplates/planning-operations.js - 16 planning-specific patternsVersion: 3.0.0 | Last Verified: 2025-12-27 | SAC Version: Q4 2025 (2025.21) | API Version: 2025.19
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.