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.

referencesose-api-filtering-selection.md

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

OSE API: Filtering & Selection

Version: 2025.20 | SAC Release: Q2 2026 (2026.8) | Full API Docs: SAP Help Portal

Filter and selection classes: filter lines, filter values (single/multiple/range), data selection context, and sort order.

Classes in This File


<a name="filterline"></a>

FilterLine

extends Widget

Last Update

2021.1

Method Summary

Name and Description
setModel(modelId: string): boolean<br>Sets the model and replaces the old one.
Inherited from Widget
getCssClass, getLayout, isVisible, setCssClass, setVisible

Method Detail

setModel
setModel(modelId: string): boolean

Sets the model and replaces the old one. Note: This operation is only supported for filter lines set to mode "Group Filter".

Parameters

modelId: string

Returns

boolean

Since

2021.1 |

C


<a name="filterpanel"></a>

FilterPanel

Since

2023.13

Method Summary

Name and Description
isVisible(): boolean<br>Returns whether FilterPanel is visible.
setVisible(visible: boolean): void<br>Shows or hides FilterPanel.

Method Detail

isVisible
isVisible(): boolean<br>Returns whether FilterPanel is visible.<br>Returns<br>boolean
setVisible
setVisible(visible: boolean): void

Shows or hides FilterPanel.

Parameters

visible: boolean

Type Library datasource

C


<a name="filtervalue"></a>

FilterValue

can be passed as a JSON object to method arguments

An object representing a filter value

Direct Subclasses

MultipleFilterValue, RangeFilterValue, SingleFilterValue

Since

2020.7

Last Update

2020.13

Property Summary

Name and Description
type: FilterValueType<br>Type of the filter value

Property Detail

type
type: FilterValueType<br>Type of the filter value<br>Since<br>2020.13

Type Library datasource

E


<a name="filtervaluetype"></a>

FilterValueType

Since

2020.13

Property Summary

Name and Description
static Multiple: FilterValueType<br>An object representing multiple filter values, like: {values: ['<memberId1>', '<memberId2>']} or {values: ['<memberId1>', '<memberId2>'], exclude: true}
static Range: FilterValueType<br>An object representing a range of filter values from dimension members, like: {<operator>: '<memberId>'}, with operator being one of "from", "to", "less", "greater", "lessOrEqual", or "greaterOrEqual".
static Single: FilterValueType<br>An object representing a single filter value, like: {value: '<memberId>'} or {value: '<memberId>', exclude: true}

Property Detail

Multiple
staticMultiple: FilterValueType<br>An object representing multiple filter values, like: {values: ['<memberId1>', '<memberId2>']} or {values: ['<memberId1>', '<memberId2>'], exclude: true}
Range
staticRange: FilterValueType<br>An object representing a range of filter values from dimension members, like: {<operator>: '<memberId>'}, with operator being one of "from", "to", "less", "greater", "lessOrEqual", or "greaterOrEqual".
Single
staticSingle: FilterValueType<br>An object representing a single filter value, like: {value: '<memberId>'} or {value: '<memberId>', exclude: true}

C


<a name="multiactionallmemberselection"></a>

MultiActionAllMemberSelection

extends MultiActionParameterValue, can be passed as a JSON object to method arguments

An object defining a multi action parameter all member selection

Since

2025.13

Property Summary

| |
| --- |
| Name and Description |
| hierarchy: string<br>Hierarchy name |

| |
| --- |
| Inherited from MultiActionParameterValue |
| type |

Property Detail

| |
| --- |
| hierarchy |
| hierarchy: string<br>Hierarchy name |

Type Library
multi-action

C
\


<a name="multiplefiltervalue"></a>

MultipleFilterValue

extends FilterValue, can be passed as a JSON object to method arguments

An object representing multiple filter values

Since

2020.7

Last Update

2023.25

Property Summary

| |
| --- |
| Name and Description |
| descriptions: string[]<br>Multiple filter descriptions |
| exclude: boolean<br>Indicates whether to exclude the filter values. |
| values: string[]<br>Multiple filter values |

| |
| --- |
| Inherited from FilterValue |
| type |

Property Detail

| |
| --- |
| descriptions |
| descriptions: string[]<br>Multiple filter descriptions<br>Since<br>2023.25 |

| |
| --- |
| exclude |
| exclude: boolean<br>Indicates whether to exclude the filter values. |

| |
| --- |
| values |
| values: string[]<br>Multiple filter values |

Type Library
datasource

C
\


<a name="rangefiltervalue"></a>

RangeFilterValue

extends FilterValue, can be passed as a JSON object to method arguments

An object representing a range filter value

Since

2020.7

Property Summary

| |
| --- |
| Name and Description |
| from: string<br>Start filter value of a range |
| greater: string<br>Filter value specifying a range of filter values greater than this filter value |
| greaterOrEqual: string<br>Filter value specifying a range of filter values greater or equal than this filter value |
| less: string<br>Filter value specifying a range of filter values less than this filter value |
| lessOrEqual: string<br>Filter value specifying a range of filter values less or equal than this filter value |
| to: string<br>End filter value of a range |

| |
| --- |
| Inherited from FilterValue |
| type |

Property Detail

| |
| --- |
| from |
| from: string<br>Start filter value of a range |

| |
| --- |
| greater |
| greater: string<br>Filter value specifying a range of filter values greater than this filter value |

| |
| --- |
| greaterOrEqual |
| greaterOrEqual: string<br>Filter value specifying a range of filter values greater or equal than this filter value |

| |
| --- |
| less |
| less: string<br>Filter value specifying a range of filter values less than this filter value |

| |
| --- |
| lessOrEqual |
| lessOrEqual: string<br>Filter value specifying a range of filter values less or equal than this filter value |

| |
| --- |
| to |
| to: string<br>End filter value of a range |

Type Library
input-controls

C
\


<a name="selection"></a>

Selection

is an object<string>, can be passed as a JSON object to method arguments

A selection consists of property-value pairs specifying one row, column, or data cell. The property represents the dimension ID, the value represents the member ID of the dimension. You can create a selection with an object expression, for example: var selection = {"colorDimension": "red", "customerDimension": "SAP"};. You can access the selected member of a dimension, for example: var memberId = selection["colorDimension"];. You can iterate over all dimensions of a selection using a for-in loop, for example: for (var dimensionId in selection) {var memberId = selection[dimensionId];}

Since

2019.7

Type Library
datasource

C
\


<a name="selectioncontext"></a>

SelectionContext

is an object<string[]>, can be passed as a JSON object to method arguments

A selection context consists of property-value pairs specifying rows, columns, or data cells. The property represents the dimension ID, the value represents the member IDs of the dimension. You can create a selection context with an object expression, for example: var context = {"colorDimension": ["red", "blue"], "customerDimension": "SAP"};. You can access the member of a dimension in a selection context, for example: var memberId = context["colorDimension"];. You can iterate over all dimensions of a selection context using a for-in loop, for example: for (var dimensionId in context) {var memberId = context[dimensionId];}

Since

2019.20

C
\


<a name="singlefiltervalue"></a>

SingleFilterValue

extends FilterValue, can be passed as a JSON object to method arguments

An object representing a single filter value

Since

2020.7

Last Update

2023.25

Property Summary

| |
| --- |
| Name and Description |
| description: string<br>Filter description |
| exclude: boolean<br>Indicates whether to exclude the filter value. |
| value: string<br>Filter value |

| |
| --- |
| Inherited from FilterValue |
| type |

Property Detail

| |
| --- |
| description |
| description: string<br>Filter description<br>Since<br>2023.25 |

| |
| --- |
| exclude |
| exclude: boolean<br>Indicates whether to exclude the filter value. |

| |
| --- |
| value |
| value: string<br>Filter value |

Type Library
datasource

C
\


<a name="sortorder"></a>

SortOrder

A set of values describing the sort order

Since

2021.12

Property Summary

| |
| --- |
| Name and Description |
| static Ascending: SortOrder<br>Ascending order of sorting (lowest to highest for a measure, earliest to latest for a time-based dimension, and alphabetically ascending for a non-time-based dimension) |
| static Default: SortOrder<br>Default order of sorting |
| static Descending: SortOrder<br>Descending order of sorting (highest to lowest for a measure, latest to earliest for a time-based dimension, and alphabetically descending for a non-time-based dimension) |

Property Detail

| |
| --- |
| Ascending |
| staticAscending: SortOrder<br>Ascending order of sorting (lowest to highest for a measure, earliest to latest for a time-based dimension, and alphabetically ascending for a non-time-based dimension) |

| |
| --- |
| Default |
| staticDefault: SortOrder<br>Default order of sorting |

| |
| --- |
| Descending |
| staticDescending: SortOrder<br>Descending order of sorting (highest to lowest for a measure, latest to earliest for a time-based dimension, and alphabetically descending for a non-time-based dimension) |

C
\


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