All skills
secondsky avatar

/sap-sac-scripting

@620a19a
by Eddiesecondsky/sap-skills456 stars
120

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", "Optimized Story Experience API", "OSE scripting", "OSE widget API", "OSE DataSource", "story scripting API", "OSE planning API", "OSE method", "optimized story", "SAC story scripting", "story script", "SAC scripting", "debug SAC runtime in Microsoft Edge via CDP", or works with SAC widgets, planning models, or analytics applications.

Use this Skill: https://skilld.dev/gh/secondsky/sap-skills/sap-sac-scripting

This session only. Nothing lands on disk.

referenceswhats-new-q4-2025.md

≈1.5k tokens on demand. Your agent reads this file only when SKILL.md points to it.

What's New in SAC Scripting - Q4 2025 (2025.21)

Complete overview of new scripting features in SAP Analytics Cloud Q4 2025 release.

Release: Q4 2025 (Version 2025.21) Release Date: December 2025 Documentation: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/c96a267c5da04fff90bb55313ee9f77c.html


Major Scripting Enhancements

1. Chart Variance Script APIs

Story developers can now use script APIs to add, remove, update, or get variances of charts in the optimized story experience.

New Methods:

// Get current variances
var variances = Chart_1.getVariances();

// Add a variance
Chart_1.addVariance({
    referenceMeasure: "Actual",
    comparisonMeasure: "Budget",
    varianceType: VarianceType.Absolute
});

// Update variance settings
Chart_1.updateVariance(varianceId, {
    showAsPercentage: true,
    position: VariancePosition.Right
});

// Remove a variance
Chart_1.removeVariance(varianceId);

Use Cases:

  • Dynamic variance display based on user selection
  • Toggle between absolute and percentage variance
  • Conditional variance visibility

2. Data Actions Enhancements

Automatic Dimension Mapping: Data actions now support automatic dimension mapping for cross-model copy operations.

var dataAction = DataAction_Copy;

// Dimension mapping handled automatically
dataAction.setParameterValue("SourceModel", "Model_A");
dataAction.setParameterValue("TargetModel", "Model_B");
dataAction.execute();

Input Control Binding: Bind input controls directly to data action parameters.

// Bind dropdown to data action parameter
DataAction_1.bindParameterToInputControl("Period", Dropdown_Period);

// Execute with bound values
DataAction_1.execute();

4. Time Series Forecast API (Enhanced)

Additional forecasting controls for programmatic time series analysis.

// Configure forecast
Chart_1.setTimeSeriesForecastOptions({
    forecastPeriods: 4,
    confidenceLevel: 0.95,
    algorithm: ForecastAlgorithm.AutoML
});

// Get forecast results
var forecastData = Chart_1.getTimeSeriesForecastResults();

5. Comments API Enhancements

Extended comment management capabilities.

// Get comments on a widget
var comments = Chart_1.getComments();

// Add a new comment
Chart_1.addComment({
    text: "Review Q4 numbers",
    priority: CommentPriority.High
});

// Table cell comments
Table_1.addCellComment(rowIndex, columnIndex, "Needs verification");

Analytics Designer Updates

New Widget Events

onVarianceChange: Fires when chart variance configuration changes.

// In Chart onVarianceChange event
var newVariance = event.getVariance();
console.log("Variance updated:", newVariance.type);

onForecastComplete: Fires when time series forecast calculation completes.

// In Chart onForecastComplete event
var results = event.getForecastResults();
Text_Status.setText("Forecast complete: " + results.periods + " periods");

Enhanced Export APIs

PDF Export with Variance:

Application.exportToPDF({
    includeVariance: true,
    varianceFormat: "absolute_and_percentage"
});

PowerPoint with Forecast:

Application.exportToPPT({
    includeForecast: true,
    forecastHighlight: true
});

Optimized Story Experience Updates

Script Variables Persistence

Script variables can now persist across page navigation within a story.

// Set persistent variable
Application.setVariable("selectedRegion", "EMEA", {persist: true});

// Retrieve on another page
var region = Application.getVariable("selectedRegion");

Enhanced Input Control APIs

Multi-Select Handling:

// Get all selected values
var selectedKeys = MultiSelect_1.getSelectedKeys();
var selectedTexts = MultiSelect_1.getSelectedTexts();

// Set multiple selections
MultiSelect_1.setSelectedKeys(["US", "UK", "DE"]);

Performance Improvements

Optimized getResultSet()

The getResultSet() method now supports additional filtering options for better performance.

var resultSet = ds.getResultSet({
    dimensions: ["Location", "Product"],
    measures: ["Revenue"],
    limit: 1000
});

Lazy Loading for Large Datasets

// Enable lazy loading for tables
Table_1.setLazyLoadingEnabled(true);
Table_1.setPageSize(50);

Breaking Changes and Deprecations

Deprecated APIs

Deprecated Replacement Remove Version
getData() without options getResultSet() 2026.Q2
getMembers() without accessMode Specify accessMode 2026.Q2

Behavior Changes

  1. Default Refresh Behavior: Multiple filter operations now auto-batch by default
  2. Error Handling: Planning operations throw typed exceptions
  3. Console Logging: Production mode suppresses console.log by default

Migration Guide

From Previous Versions

  1. Update API Calls:

    // Old
    var members = ds.getMembers("Dim");
    
    // New (recommended)
    var members = ds.getMembers("Dim", {accessMode: MemberAccessMode.BookedValues});
  2. Use New Variance APIs:

    // Replace manual variance calculation with built-in APIs
    Chart_1.addVariance({...});
  3. Update Error Handling:

    try {
        planning.publish();
    } catch (e) {
        if (e instanceof PlanningVersionError) {
            // Handle version conflict
        }
    }

Related Resources

  • Chart Variance APIs: references/chart-variance-apis.md
  • Data Actions: references/data-actions-enhancements.md
  • Previous Release: references/whats-new-2025.23.md

Last Updated: 2025-12-27 SAC Version: Q4 2025 (2025.21) API Reference Version: 2025.19

Source: SKILL.md on GitHub

1 alert16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill is a comprehensive reference and template collection for SAP Analytics Cloud (SAC) scripting. It provides secure instructions for setting up an associated Model Context Protocol (MCP) server, including commit pinning and security flags during installation. It also incorporates multiple security best practices for developers, such as origin validation for iframe communication.

  • Socket16d

    1 alert: gptAnomaly

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    32/61 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 620a19a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 months ago
Other metadata
metadata
{
  "maintainer": "Eduard Jiglau",
  "maintainer_email": "hello@sap-ai-skills.com",
  "website": "https://sap-ai-skills.com",
  "version": "2.4.1",
  "last_verified": "2026-06-11",
  "sac_version": "Q2 2026 (2026.8)",
  "api_reference_version": "2025.20 (OSE Q2 2026)",
  "documentation_source": "https://help.sap.com/docs/SAP_ANALYTICS_CLOUD",
  "reference_files": 66,
  "template_patterns": 56,
  "agents": 4,
  "commands": 4,
  "status": "docs_audited_runtime_pending",
  "known_issues": [
    "Live SAC story/runtime checks require tenant evidence before claiming production validation."
  ]
}

README badge

README badge for secondsky/sap-skills/sap-sac-scripting