sap-sac-scripting

secondsky's avatarfrom secondsky

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.

⭐5stars🔀0forks📁View on GitHub🕐Updated Dec 28, 2025

When & Why to Use This Skill

The SAP Analytics Cloud (SAC) Scripting skill is a comprehensive developer assistant designed to accelerate the creation, debugging, and optimization of scripts within SAC Analytics Designer and Optimized Story Experience. It leverages the latest Q4 2025 API standards to provide expert guidance on DataSource manipulations, planning operations, and performance best practices, significantly reducing development time for enterprise analytics applications.

Use Cases

  • Rapid Script Development: Generate production-ready code templates for common SAC tasks such as dynamic dimension filtering, table manipulations, and widget event handling.
  • Performance Tuning: Identify and fix script-related bottlenecks by implementing batching operations and optimized data retrieval methods like getResultSet() to ensure smooth dashboard interactions.
  • Complex Planning Workflows: Automate sophisticated financial planning operations, including version management, data locking, and public-to-private version synchronization using the Planning API.
  • API Troubleshooting & Debugging: Resolve runtime errors and logic issues in the Analytics Designer with interactive debugging support and real-time reference to the latest SAC API documentation.
  • Modernizing Analytics: Seamlessly integrate new Q4 2025 features such as Chart Variance APIs, Time Series Forecasting, and enhanced Data Actions into existing analytics stories.
namesap-sac-scripting
description|
licenseGPL-3.0
version3.0.0
last_verified2025-12-27
sac_version"Q4 2025 (2025.21)"
api_reference_version"2025.19"
documentation_sourcehttps://help.sap.com/docs/SAP_ANALYTICS_CLOUD
reference_files55
template_patterns56
agents4
commands4
statusproduction

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 issues
  • sac-performance-optimizer - Analyze and fix performance bottlenecks
  • sac-planning-assistant - Guide planning operations and version management
  • sac-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 efficiently
  • getResultSet() - Cached data access (preferred over getData())
  • setDimensionFilter(dim, value) - Apply filters
  • setRefreshPaused(true/false) - Batch multiple operations

Planning API

Access via Table.getPlanning(). Key operations:

  • getPublicVersion() / getPrivateVersion() - Version access
  • publish() - Submit private to public
  • copyFromPublicVersion() / copyToPublicVersion() - Data copy
  • setLock(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

  1. Minimize Backend Calls

    // Use getResultSet() (cached) instead of getMembers() (backend)
    var data = ds.getResultSet();
    
  2. Batch Filter Operations

    ds.setRefreshPaused(true);
    ds.setDimensionFilter("Dim1", value1);
    ds.setDimensionFilter("Dim2", value2);
    ds.setRefreshPaused(false); // Single refresh
    
  3. Keep onInitialization Empty Defer heavy operations to lazy loading or first interaction.

  4. 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

  1. Press F12 → Console tab
  2. Filter by "Info" type
  3. Add ?APP_PERFORMANCE_LOGGING=true to 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 patterns
  • templates/planning-operations.js - 16 planning-specific patterns

Official Documentation


Version: 3.0.0 | Last Verified: 2025-12-27 | SAC Version: Q4 2025 (2025.21) | API Version: 2025.19