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-utilities.md

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

OSE API: Utilities & Helpers

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

Utility and helper classes: bookmarks, comments, dimension/member/measure info, navigation, notifications, variables, and timer.

Classes in This File


<a name="activeselectedmembersoptions"></a>

ActiveSelectedMembersOptions

can be passed as a JSON object to method arguments

Since

2025.7

Property Summary

Name and Description
isFullHierarchyNodes: boolean<br>Specifies whether to return selected nodes and all their descendants (true) or only the selected nodes without descendants (false).
limit: integer<br>Maximum number of returned members, which must be zero or a positive number.
returnNullAsAlias: boolean<br>If true, "@NullMember" is returned as alias for null members.

Property Detail

isFullHierarchyNodes
isFullHierarchyNodes: boolean<br>Specifies whether to return selected nodes and all their descendants (true) or only the selected nodes without descendants (false). The default value is true.
limit
limit: integer<br>Maximum number of returned members, which must be zero or a positive number. If the limit isn't specified or invalid, then the default value is used (default: 100).
returnNullAsAlias
returnNullAsAlias: boolean<br>If true, "@NullMember" is returned as alias for null members. Default is false.

Type Library standard

C


<a name="alias"></a>

Alias

Since

2019.8

Last Update

2020.13

Property Summary

Name and Description
static DefaultTheme: string<br>Represents the default theme.
static FlatHierarchy: string<br>Represents the flat hierarchy.
static MeasureDimension: string<br>Represents the measure dimension.
static NullMember: string<br>Represents the NULL member of a dimension.
static TotalsMember: string<br>Represents the Totals member of a dimension.

Property Detail

DefaultTheme
staticDefaultTheme: string<br>Represents the default theme.<br>Since<br>2020.13
FlatHierarchy
staticFlatHierarchy: string<br>Represents the flat hierarchy.
MeasureDimension
staticMeasureDimension: string<br>Represents the measure dimension.
NullMember
staticNullMember: string<br>Represents the NULL member of a dimension. Such a member can typically be found in SAP HANA models as the result of joining database tables.<br>Since<br>2020.11
TotalsMember
staticTotalsMember: string<br>Represents the Totals member of a dimension. To take effect, enable the display of totals for the dimension.<br>Since<br>2020.11

Type Library standard

C


<a name="arrayutils"></a>

ArrayUtils

Method Summary

Name and Description
static create(type: Type): <empty array of type type><br>Creates and returns an empty array of the specified type.

Method Detail

Name Signature Description
create static create(type: Type): &lt;empty array of type type&gt; Creates and returns an empty array of the specified type.

Parameters

Name Type Description
type Type The type of elements in the array.

Returns

<empty array of type type>

C


<a name="backendconditionproperties"></a>

BackendConditionProperties

Since

2024.20

Property Summary

Name and Description
description: string
id: string

Property Detail

description
description: string
id
id: string

C


<a name="bookmarkinfo"></a>

BookmarkInfo

Since

2019.15

Last Update

2021.11

Property Summary

Name and Description
displayName: string
id: string
isDefault: boolean<br>Specifies whether the bookmark is the default bookmark.
isGlobal: boolean<br>Specifies whether the bookmark is visible globally.
name: string
properties: BookmarkProperties JSON<br>Additional properties of the bookmark, for example, {"property1": "value1", "property2": "value2"}
version: integer

Property Detail

displayName
displayName: string<br>Since<br>2019.16
id
id: string
isDefault
isDefault: boolean<br>Specifies whether the bookmark is the default bookmark.<br>Since<br>2021.11
isGlobal
isGlobal: boolean<br>Specifies whether the bookmark is visible globally.
name
name: string
properties
properties: BookmarkProperties JSON<br>Additional properties of the bookmark, for example, {"property1": "value1", "property2": "value2"}<br>Since<br>2021.11
version
version: integer

Type Library bookmark

C


<a name="bookmarkproperties"></a>

BookmarkProperties

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

Since

2021.11

Type Library bookmark

C


<a name="bookmarksaveinfo"></a>

BookmarkSaveInfo

can be passed as a JSON object to method arguments

Since

2021.11

Last Update

2024.19

Property Summary

Name and Description
isDefault: boolean<br>Specifies whether the bookmark is the default bookmark.
isGlobal: boolean<br>Specifies whether the bookmark is visible globally.
isKeepLastDynamicVariableValue: boolean<br>Specifies whether the bookmark should apply last value of dynamic variable.
name: string<br>Bookmark name
properties: BookmarkProperties JSON<br>Additional properties of the bookmark, for example, {"property1": "value1", "property2": "value2"}
startPageId: string<br>Specifies start page id.

Property Detail

isDefault
isDefault: boolean<br>Specifies whether the bookmark is the default bookmark.
isGlobal
isGlobal: boolean<br>Specifies whether the bookmark is visible globally.
isKeepLastDynamicVariableValue
isKeepLastDynamicVariableValue: boolean<br>Specifies whether the bookmark should apply last value of dynamic variable.<br>Since<br>2022.7
name
name: string<br>Bookmark name
properties
properties: BookmarkProperties JSON<br>Additional properties of the bookmark, for example, {"property1": "value1", "property2": "value2"}
startPageId
startPageId: string<br>Specifies start page id.<br>Since<br>2024.19

Type Library bookmark

C


<a name="bookmarkset"></a>

BookmarkSet

Since

2019.15

Last Update

2021.11

Method Summary

Name and Description
apply(bookmark: string | BookmarkInfo): boolean<br>Applies the bookmark to the current analytic application.
deleteBookmark(bookmark: string | BookmarkInfo): boolean<br>Deletes a bookmark of the analytic application.
getAll(): BookmarkInfo[]<br>Returns all valid bookmarks of the analytic application.
getAppliedBookmark(): BookmarkInfo<br>Returns the bookmark that was applied to the analytic application.
getVersion(): integer<br>Returns the current bookmark version of the analytic application.
isSameAsApplicationState(bookmark: string | BookmarkInfo): boolean<br>Returns whether the current state of the analytic application is the same as the state stored in a bookmark.
openShareBookmarkDialog(bookmarkId: string): void<br>Opens the Share Bookmark dialog for a bookmark.
save(bookmarkName: string, isGlobal: boolean, overwrite?: boolean): BookmarkInfo<br>Deprecated This method is deprecated, use saveBookmark() instead.
saveBookmark(bookmarkSaveInfo: BookmarkSaveInfo JSON, overwrite?: boolean): BookmarkInfo<br>Saves a bookmark based on the current state of the analytic application.

Method Detail

apply
apply(bookmark: string | BookmarkInfo): boolean

Applies the bookmark to the current analytic application. If the bookmark is accessible to the current user, then true is returned, and false if it isn't.

Parameters

bookmark: string | BookmarkInfo

Returns

boolean

Since

2020.7 |

deleteBookmark
deleteBookmark(bookmark: string | BookmarkInfo): boolean

Deletes a bookmark of the analytic application.

Parameters

bookmark: string | BookmarkInfo

Returns

boolean |

getAll
getAll(): BookmarkInfo[]<br>Returns all valid bookmarks of the analytic application.<br>Returns<br>BookmarkInfo[]
getAppliedBookmark
getAppliedBookmark(): BookmarkInfo<br>Returns the bookmark that was applied to the analytic application.<br>Returns<br>BookmarkInfo
getVersion
getVersion(): integer<br>Returns the current bookmark version of the analytic application.<br>Returns<br>integer
isSameAsApplicationState
isSameAsApplicationState(bookmark: string | BookmarkInfo): boolean

Returns whether the current state of the analytic application is the same as the state stored in a bookmark.

Parameters

bookmark: string | BookmarkInfo

Returns

boolean

Since

2019.23 |

openShareBookmarkDialog
openShareBookmarkDialog(bookmarkId: string): void

Opens the Share Bookmark dialog for a bookmark.

Parameters

bookmarkId: string

Mobile Support

Not supported on mobile devices.

Since

2021.11 |

save
save(bookmarkName: string, isGlobal: boolean, overwrite?: boolean): BookmarkInfo

Deprecated This method is deprecated, use saveBookmark() instead.

Parameters

bookmarkName: string
isGlobal: boolean
overwriteOptional: boolean

Returns

BookmarkInfo

Deprecated

2021.11 |

saveBookmark
saveBookmark(bookmarkSaveInfo: BookmarkSaveInfo JSON, overwrite?: boolean): BookmarkInfo

Saves a bookmark based on the current state of the analytic application. The bookmark save info specifies by default that the bookmark is neither globally visible nor a default bookmark. Optionally, you can specify whether to overwrite a bookmark with the same name (default: false).

Parameters

bookmarkSaveInfo: BookmarkSaveInfo JSON
overwriteOptional: boolean

Returns

BookmarkInfo

Since

2021.11 |

Type Library datasource

C


Math

Type Library: standard

A built-in object that has properties and methods for mathematical constants and functions. Mirrors the standard JavaScript Math object for use in SAC scripting. Note: SAC exposes specific arities for some methods (e.g., max/min take exactly two arguments, hypot takes one) rather than the variadic signatures of standard JS.

Constants (static, read-only):

Constant Type Value
E number Euler's constant (~2.718)
LN10 number Natural log of 10 (~2.302)
LN2 number Natural log of 2 (~0.693)
LOG10E number Base-10 log of E (~0.434)
LOG2E number Base-2 log of E (~1.443)
PI number Ratio of circle circumference to diameter (~3.14159)
SQRT1_2 number Square root of 1/2 (~0.707)
SQRT2 number Square root of 2 (~1.414)

Methods (all static):

Method Signature Returns Description
abs (x: number): number number Absolute value
acos (x: number): number number Arccosine in radians
acosh (x: number): number number Hyperbolic arccosine
asin (x: number): number number Arcsine in radians
asinh (x: number): number number Hyperbolic arcsine
atan (x: number): number number Arctangent in radians
atan2 (y: number, x: number): number number Arctangent of y/x
atanh (x: number): number number Hyperbolic arctangent
cbrt (x: number): number number Cube root
ceil (x: number): integer integer Smallest integer >= x
clz32 (x: number): integer integer Leading zero bits in 32-bit representation
cos (x: number): number number Cosine
cosh (x: number): number number Hyperbolic cosine
exp (x: number): number number E^x
expm1 (x: number): number number exp(x) - 1
floor (x: number): integer integer Largest integer <= x
fround (x: number): integer integer Nearest single-precision float
hypot (value: number): number number Square root of sum of squares
imul (a: number, b: number): integer integer 32-bit integer multiplication
log (x: number): number number Natural logarithm (ln)
log10 (x: number): number number Base-10 logarithm
log1p (x: number): number number Natural log of (1 + x)
log2 (x: number): number number Base-2 logarithm
max (a: number, b: number): number number Largest of arguments
min (a: number, b: number): number number Smallest of arguments
pow (base: number, exponent: number): number number base^exponent
random (): number number Pseudo-random in [0, 1)
round (x: number): integer integer Round to nearest integer
sign (x: number): integer integer Sign of number (-1, 0, 1)
sin (x: number): number number Sine
sinh (x: number): number number Hyperbolic sine
sqrt (x: number): number number Square root
tan (x: number): number number Tangent
tanh (x: number): number number Hyperbolic tangent
trunc (x: number): integer integer Integer part (remove fractional digits)
var radius = 5;
var area = Math.PI * Math.pow(radius, 2);
var rounded = Math.round(area * 100) / 100;
var clamped = Math.max(0, Math.min(100, someValue));

<a name="commentinfo"></a>

CommentInfo

Since

2019.18

Property Summary

Name and Description
commentId: string
createdAt: string
createdBy: UserInfo
numberOfLikes: integer
text: string

Property Detail

commentId
commentId: string
createdAt
createdAt: string
createdBy
createdBy: UserInfo
numberOfLikes
numberOfLikes: integer
text
text: string

Type Library visualization-controls

C


<a name="convertutils"></a>

ConvertUtils

Method Summary

Name and Description
static numberToString(value: number): string<br>Returns a string representation of the number value.
static stringToInteger(value: string): integer<br>Returns the integer value represented by the string.
static stringToNumber(value: string): number<br>Returns the number value represented by the string.

Method Detail

numberToString
staticnumberToString(value: number): string

Returns a string representation of the number value. If the value is undefined, then the string "undefined" is returned.

Parameters

value: number

Returns

string |

stringToInteger
staticstringToInteger(value: string): integer

Returns the integer value represented by the string. If the string can't be parsed to a decimal integer, then NaN is returned.

Parameters

value: string

Returns

integer |

stringToNumber
staticstringToNumber(value: string): number

Returns the number value represented by the string. If the string can't be parsed to a decimal number, then NaN is returned.

Parameters

value: string

Returns

number |

C


<a name="crosspagepopupsizeoptions"></a>

CrossPagePopupSizeOptions

Since

2024.25

Property Summary

Name and Description
static height: integer<br>Height
static heightUnit: PopupSizeUnit<br>Height Unit
static width: integer<br>Width
static widthUnit: PopupSizeUnit<br>Width Unit

Property Detail

height
staticheight: integer<br>Height
heightUnit
staticheightUnit: PopupSizeUnit<br>Height Unit
width
staticwidth: integer<br>Width
widthUnit
staticwidthUnit: PopupSizeUnit<br>Width Unit

C


<a name="dimensioninfo"></a>

DimensionInfo

can be passed as a JSON object to method arguments

Last Update

2022.1

Property Summary

Name and Description
description: string
id: string
modelId: string

Property Detail

description
description: string
id
id: string<br>Since<br>2019.7
modelId
modelId: string<br>Since<br>2022.1

Type Library datasource

C


<a name="dimensionpropertyinfo"></a>

DimensionPropertyInfo

Since

2020.7

Property Summary

Name and Description
description: string
id: string

Property Detail

description
description: string
id
id: string

Type Library standard

E


<a name="hierarchyinfo"></a>

HierarchyInfo

can be passed as a JSON object to method arguments

Property Summary

Name and Description
description: string
id: string

Property Detail

description
description: string
id
id: string

Type Library table2

C


<a name="measureinfo"></a>

MeasureInfo

can be passed as a JSON object to method arguments

Since

2019.1

Last Update

2022.1

Property Summary

Name and Description
description: string
dimensionId: string
id: string
modelId: string

Property Detail

description
description: string
dimensionId
dimensionId: string<br>Since<br>2019.7
id
id: string<br>Since<br>2019.7
modelId
modelId: string<br>Since<br>2022.1

Type Library datasource

E


<a name="memberinfo"></a>

MemberInfo

can be passed as a JSON object to method arguments

Last Update

2022.1

Property Summary

Name and Description
description: string
dimensionId: string
displayId: string
id: string
modelId: string

Property Detail

description
description: string
dimensionId
dimensionId: string<br>Since<br>2019.7
displayId
displayId: string
id
id: string<br>Since<br>2019.7
modelId
modelId: string<br>Since<br>2022.1

Type Library datasource

C


<a name="membersoptions"></a>

MembersOptions

can be passed as a JSON object to method arguments

A set of values to describe the members to retrieve

Since

2021.1

Property Summary

Name and Description
accessMode: MemberAccessMode<br>Type of members to retrieve (default: MemberAccessMode.MasterData)
hierarchyId: string<br>Hierarchy ID (default: currently active hierarchy)
limit: integer<br>Maximum number of returned members, which must be zero or a positive number.

Property Detail

accessMode
accessMode: MemberAccessMode<br>Type of members to retrieve (default: MemberAccessMode.MasterData)
hierarchyId
hierarchyId: string<br>Hierarchy ID (default: currently active hierarchy)
limit
limit: integer<br>Maximum number of returned members, which must be zero or a positive number. If the limit isn't specified or invalid, then the default value is used (default: 200).

Type Library multi-action

C


<a name="navigationpaneloptions"></a>

NavigationPanelOptions

can be passed as a JSON object to method arguments

An object specifying navigation panel options

Since

2020.13

Property Summary

Name and Description
expanded: boolean<br>Indicates whether the navigation panel opens in expanded state.

Property Detail

expanded
expanded: boolean<br>Indicates whether the navigation panel opens in expanded state.

Type Library standard

C


<a name="navigationutils"></a>

NavigationUtils

Since

2019.7

Last Update

2025.5

Method Summary

Name and Description
static createApplicationUrl(appId: string, parameters?: UrlParameter | UrlParameter[]): string<br>Creates an analytic application URL.
static createStoryUrl(storyId: string, pageId: string, parameters?: UrlParameter | UrlParameter[]): string<br>Creates a story URL.
static openApplication(appId: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void<br>Opens an analytic application.
static openDataAnalyzer(connection?: string, dataSourceName?: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void<br>Opens the Data Analyzer.
static openInsight(insightId: string, urlParameters?: UrlParameter | UrlParameter[], newTab?: boolean): void<br>Opens the Insight.
static openStory(storyId: string, pageId: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void<br>Opens a story.
static openUrl(url: string, newTab?: boolean): void<br>Opens a URL.

Method Detail

createApplicationUrl
staticcreateApplicationUrl(appId: string, parameters?: UrlParameter | UrlParameter[]): string

Creates an analytic application URL.

Parameters

appId: string
parametersOptional: UrlParameter | UrlParameter[]

Returns

string

Mobile Support

Not supported on mobile devices. |

createStoryUrl
staticcreateStoryUrl(storyId: string, pageId: string, parameters?: UrlParameter | UrlParameter[]): string

Creates a story URL.

Parameters

storyId: string
pageId: string
parametersOptional: UrlParameter | UrlParameter[]

Returns

string

Mobile Support

Not supported on mobile devices. |

openApplication
staticopenApplication(appId: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void

Opens an analytic application. Note: This operation is ignored when scheduling a publication.

Parameters

appId: string
parametersOptional: UrlParameter | UrlParameter[]
newTabOptional: boolean
openDataAnalyzer
staticopenDataAnalyzer(connection?: string, dataSourceName?: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void

Opens the Data Analyzer. Note: This operation is ignored when scheduling a publication.

Parameters

connectionOptional: string
dataSourceNameOptional: string
parametersOptional: UrlParameter | UrlParameter[]
newTabOptional: boolean

Since

2019.14 |

openInsight
staticopenInsight(insightId: string, urlParameters?: UrlParameter | UrlParameter[], newTab?: boolean): void

Opens the Insight. Note: This operation is ignored when scheduling a publication.

Parameters

insightId: string
urlParametersOptional: UrlParameter | UrlParameter[]
newTabOptional: boolean

Mobile Support

Not supported on mobile devices.

Since

2024.25

Last Update

2025.5 |

openStory
staticopenStory(storyId: string, pageId: string, parameters?: UrlParameter | UrlParameter[], newTab?: boolean): void

Opens a story. Note: This operation is ignored when scheduling a publication.

Parameters

storyId: string
pageId: string
parametersOptional: UrlParameter | UrlParameter[]
newTabOptional: boolean
openUrl
staticopenUrl(url: string, newTab?: boolean): void

Opens a URL. Note: This operation is ignored when scheduling a publication.

Parameters

url: string
newTabOptional: boolean

Type Library standard

C


<a name="notificationoptions"></a>

NotificationOptions

can be passed as a JSON object to method arguments

Since

2020.7

Last Update

2020.17

Property Summary

Name and Description
content: string<br>Content of the notification
isSendEmail: boolean<br>Indicates whether an email notification is sent to the receivers (default: false).
isSendMobileNotification: boolean<br>Indicates whether a mobile notification is sent to the receivers (default: false).
mode: ApplicationMode<br>Mode in which the analytic application is displayed when it is opened from the notification (default: Present)
parameters: UrlParameter[]<br>URL parameters to be used when opening the analytic application
receivers: string[]<br>Users to receive the notification.
title: string<br>Title of the notification

Property Detail

content
content: string<br>Content of the notification
isSendEmail
isSendEmail: boolean<br>Indicates whether an email notification is sent to the receivers (default: false).
isSendMobileNotification
isSendMobileNotification: boolean<br>Indicates whether a mobile notification is sent to the receivers (default: false).<br>Since<br>2020.17
mode
mode: ApplicationMode<br>Mode in which the analytic application is displayed when it is opened from the notification (default: Present)
parameters
parameters: UrlParameter[]<br>URL parameters to be used when opening the analytic application
receivers
receivers: string[]<br>Users to receive the notification. If no receivers are specified, then the receiver is the creator of the calendar task that runs the analytic application by the scheduling service.
title
title: string<br>Title of the notification

Type Library standard

O

Number

The Number JavaScript object is a wrapper object allowing you to work with numerical values.

Property Summary

Name and Description
static EPSILON: number<br>Difference between 1 and the smallest value greater than 1 that can be represented as a Number.
static MAX_SAFE_INTEGER: integer<br>Maximum safe integer in JavaScript (2^53 - 1).
static MAX_VALUE: number<br>Maximum numeric value representable in JavaScript.
static MIN_SAFE_INTEGER: integer<br>Minimum safe integer in JavaScript (-(2^53 - 1)).
static MIN_VALUE: number<br>Smallest positive numeric value representable in JavaScript.
static NEGATIVE_INFINITY: number<br>Negative Infinity value.
static POSITIVE_INFINITY: number<br>Positive Infinity value.

Method Summary

Name and Description
static isFinite(testValue: <any type>): boolean<br>Returns whether the value is a finite number.
static isInteger(testValue: <any type>): boolean<br>Returns whether the value is an integer.
static isNaN(testValue: <any type>): boolean<br>Returns whether the value is NaN and its type is a Number.
static isSafeInteger(testValue: <any type>): boolean<br>Returns whether the value is a safe integer.
static parseFloat(string: string): number<br>Parses a string and returns a floating-point number.
static parseInt(string: string, radix?: number): integer<br>Parses a string and returns an integer of the specified radix or base.
toExponential(significantDigits?: number): string<br>Returns a string representing the number in exponential notation.
toFixed(significantDigits?: number): string<br>Returns a string representing the number in fixed-point notation.
toPrecision(significantDigits?: number): string<br>Returns a string representing the number to the specified precision.
toString(radix?: number): string<br>Returns a string representing the number in the (optionally) specified radix or base.

Property Detail

EPSILON
staticEPSILON: number<br>Difference between 1 and the smallest value greater than 1 that can be represented as a Number.
MAX_SAFE_INTEGER
staticMAX_SAFE_INTEGER: integer<br>Maximum safe integer in JavaScript (2^53 - 1).
MAX_VALUE
staticMAX_VALUE: number<br>Maximum numeric value representable in JavaScript.
MIN_SAFE_INTEGER
staticMIN_SAFE_INTEGER: integer<br>Minimum safe integer in JavaScript (-(2^53 - 1)).
MIN_VALUE
staticMIN_VALUE: number<br>Smallest positive numeric value representable in JavaScript.
NEGATIVE_INFINITY
staticNEGATIVE_INFINITY: number<br>Negative Infinity value.
POSITIVE_INFINITY
staticPOSITIVE_INFINITY: number<br>Positive Infinity value.

Method Detail

isFinite
staticisFinite(testValue: <any type>): boolean

Returns whether the value is a finite number.

Parameters

testValue: <any type>

Returns

boolean |

isInteger
staticisInteger(testValue: <any type>): boolean

Returns whether the value is an integer.

Parameters

testValue: <any type>

Returns

boolean |

isNaN
staticisNaN(testValue: <any type>): boolean

Returns whether the value is NaN and its type is a Number.

Parameters

testValue: <any type>

Returns

boolean |

isSafeInteger
staticisSafeInteger(testValue: <any type>): boolean

Returns whether the value is a safe integer. A safe integer is an integer that can be exactly represented as an IEEE-754 double precision number and whose IEEE-754 representation can't be the result of rounding any other integer to fit the IEEE-754 representation.

Parameters

testValue: <any type>

Returns

boolean |

parseFloat
staticparseFloat(string: string): number

Parses a string and returns a floating-point number.

Parameters

string: string

Returns

number |

parseInt
staticparseInt(string: string, radix?: number): integer

Parses a string and returns an integer of the specified radix or base.

Parameters

string: string
radixOptional: number

Returns

integer |

toExponential
toExponential(significantDigits?: number): string

Returns a string representing the number in exponential notation. It has one digit before the decimal point and is rounded to significantDigits digits after the decimal point.

Parameters

significantDigitsOptional: number

Returns

string |

toFixed
toFixed(significantDigits?: number): string

Returns a string representing the number in fixed-point notation. It is rounded to significantDigits digits after the decimal point.

Parameters

significantDigitsOptional: number

Returns

string |

toPrecision
toPrecision(significantDigits?: number): string

Returns a string representing the number to the specified precision. It is rounded to significantDigits digits after the decimal point.

Parameters

significantDigitsOptional: number

Returns

string |

toString
toString(radix?: number): string

Returns a string representing the number in the (optionally) specified radix or base.

Parameters

radixOptional: number

Returns

string |

Type Library standard

C


<a name="privateversionpublishoptions"></a>

PrivateVersionPublishOptions

can be passed as a JSON object to method arguments

Private version publish options

Since

2023.15

Property Summary

Name and Description
privatePublishConflict: PrivatePublishConflict<br>Used for handling conflicting changes.

Property Detail

privatePublishConflict
privatePublishConflict: PrivatePublishConflict<br>Used for handling conflicting changes. The values correspond to showing the conflict warning dialog, overwriting user's changes without showing the dialog respectively.

Type Library planning

E


<a name="publicversionpublishoptions"></a>

PublicVersionPublishOptions

can be passed as a JSON object to method arguments

Public version publish options

Since

2023.15

Property Summary

Name and Description
publicPublishConflict: PublicPublishConflict<br>Used for handling conflicting changes.

Property Detail

publicPublishConflict
publicPublishConflict: PublicPublishConflict<br>Used for handling conflicting changes. The values correspond to showing the conflict warning dialog, overwriting user's changes without showing the dialog, and reverting the version without showing the dialog respectively.

Type Library input-controls

C


<a name="resultmemberinfo"></a>

ResultMemberInfo

can be passed as a JSON object to method arguments

A result member info contains information about a member. You can retrieve this information with DataSource.getResultMember(). For example, a result member info is {description: "World(root)", id: "[t.TEST:Location_Hier_World_2].[parentId].&[World]", parentId: undefined, properties: {}}.

Since

2019.20

Last Update

2020.10

Property Summary

Name and Description
description: string<br>Member description
id: string<br>Member ID
parentId: string<br>Parent ID of member
properties: ResultMemberProperties<br>Properties of a dimension

Property Detail

description
description: string<br>Member description
id
id: string<br>Member ID
parentId
parentId: string<br>Parent ID of member
properties
properties: ResultMemberProperties<br>Properties of a dimension<br>Since<br>2020.10

Type Library datasource

C


<a name="resultmemberproperties"></a>

ResultMemberProperties

is an object<string>

Properties

Since

2020.10

Type Library datasource

C


<a name="rssfeedinfo"></a>

RssFeedInfo

Property Summary

Name and Description
title: string
url: string

Property Detail

title
title: string
url
url: string

Type Library visualization-controls

C


<a name="rssreader"></a>

RssReader

extends Widget

Method Summary

Name and Description
addFeed(title: string, url: string): void<br>Adds a new RSS feed to the RSS feeds.
getAllFeeds(): RssFeedInfo[]<br>Returns all RSS feeds.
getSelectedFeed(): RssFeedInfo<br>Returns the selected RSS feed.
removeAllFeeds(): void<br>Removes all RSS feeds.
removeFeed(url: string): void<br>Removes any RSS feed with this URL from the RSS feeds.
setSelectedFeed(url: string): void<br>Selects the first RSS feed with this URL.
Inherited from Widget
getCssClass, getLayout, isVisible, setCssClass, setVisible

Method Detail

addFeed
addFeed(title: string, url: string): void

Adds a new RSS feed to the RSS feeds. If an RSS feed with the same title and URL is already present, then the new RSS feed is still added.

Parameters

title: string
url: string
getAllFeeds
getAllFeeds(): RssFeedInfo[]<br>Returns all RSS feeds.<br>Returns<br>RssFeedInfo[]
getSelectedFeed
getSelectedFeed(): RssFeedInfo<br>Returns the selected RSS feed.<br>Returns<br>RssFeedInfo
removeAllFeeds
removeAllFeeds(): void<br>Removes all RSS feeds.
removeFeed
removeFeed(url: string): void

Removes any RSS feed with this URL from the RSS feeds. If an RSS feed is removed that is selected, then that RSS feed is removed, and the first RSS feed of the RSS feeds is selected. If there is no RSS feed with this URL, then this operation is ignored.

Parameters

url: string
setSelectedFeed
setSelectedFeed(url: string): void

Selects the first RSS feed with this URL. If there is no RSS feed with this URL, then this operation is ignored.

Parameters

url: string

Type Library advanced-controls

C


<a name="searchtoinsight"></a>

SearchToInsight

Since

2019.14

Last Update

2020.1

Method Summary

Name and Description
applySearchToChart(question: string, chart: Chart): boolean<br>Applies the Search to Insight result to a chart.
closeDialog(): void
getVariables(modelId: string): VariableInfo[]<br>Returns the variable values stored in this Search to Insight component.
openDialog(question: string, mode: SearchToInsightDialogMode, cleanHistory?: boolean, autoSearch?: boolean): void
setVariableValue(modelId: string, variable: string | VariableInfo, variableValue: string | number | VariableValue JSON | VariableValue[]JSON): void<br>Stores a variable value in this Search to Insight component.

Method Detail

applySearchToChart
applySearchToChart(question: string, chart: Chart): boolean

Applies the Search to Insight result to a chart. The chart also applies variable values set by earlier calls of SearchToInsight.setVariableValue().

Parameters

question: string
chart: Chart

Returns

boolean

Since

2020.1 |

closeDialog
closeDialog(): void
getVariables
getVariables(modelId: string): VariableInfo[]

Returns the variable values stored in this Search to Insight component.

Parameters

modelId: string

Returns

VariableInfo[]

Since

2020.1 |

openDialog
openDialog(question: string, mode: SearchToInsightDialogMode, cleanHistory?: boolean, autoSearch?: boolean): void

Parameters

question: string
mode: SearchToInsightDialogMode
cleanHistoryOptional: boolean
autoSearchOptional: boolean

Mobile Support

Not supported on mobile devices. |

setVariableValue
setVariableValue(modelId: string, variable: string | VariableInfo, variableValue: string | number | VariableValue JSON | VariableValue[]JSON): void

Stores a variable value in this Search to Insight component. The variable value is applied to a chart when calling SearchToInsight.applySearchToChart().

Parameters

modelId: string
variable: string | VariableInfo
variableValue: string | number | VariableValue JSON | VariableValue[]JSON

Since

2020.1 |

Type Library search-to-insight

E


<a name="searchtoinsightdialogmode"></a>

SearchToInsightDialogMode

Since

2019.14

Property Summary

Name and Description
static Advanced: SearchToInsightDialogMode<br>Advanced Search to Insight dialog with model selection and suggestions
static Simple: SearchToInsightDialogMode<br>Simple Search to Insight dialog

Property Detail

Advanced
staticAdvanced: SearchToInsightDialogMode<br>Advanced Search to Insight dialog with model selection and suggestions
Simple
staticSimple: SearchToInsightDialogMode<br>Simple Search to Insight dialog

Type Library datasource

C


<a name="setmodeloptions"></a>

SetModelOptions

can be passed as a JSON object to method arguments

Since

2025.6

Property Summary

Name and Description
suppressPromptDialog: boolean<br>suppress prompt dialog

Property Detail

suppressPromptDialog
suppressPromptDialog: boolean<br>suppress prompt dialog

Type Library datasource

C


<a name="setvariablevalueoptions"></a>

SetVariableValueOptions

can be passed as a JSON object to method arguments

A set of values to describe the variables to retrieve

Since

2021.17

Property Summary

Name and Description
loadDescriptions: boolean<br>Specifies whether to load the variable value descriptions for the Prompt dialog and for dynamic texts (default: true).

Property Detail

loadDescriptions
loadDescriptions: boolean<br>Specifies whether to load the variable value descriptions for the Prompt dialog and for dynamic texts (default: true). If set to false, then this may improve the performance of the analytic application, however at the cost of displaying variable value IDs instead of variable value descriptions in the Prompt dialog and in dynamic texts.

Type Library visualization-controls

C


<a name="teaminfo"></a>

TeamInfo

Since

2023.9

Property Summary

Name and Description
description: string
name: string

Property Detail

description
description: string
name
name: string

Type Library visualization-controls

C


<a name="timer"></a>

Timer

Since

2019.20

Last Update

2019.21

Method Summary

Name and Description
isRunning(): boolean<br>Returns whether the timer is running.
start(delayInSeconds: number): void<br>Starts the timer.
stop(): void<br>Stops the timer.

Event Summary

Name and Description
onTimeout(): void<br>Called when the set timespan of the timer has elapsed.

Method Detail

isRunning
isRunning(): boolean<br>Returns whether the timer is running.<br>Returns<br>boolean
start
start(delayInSeconds: number): void

Starts the timer.

Parameters

delayInSeconds: number
stop
stop(): void<br>Stops the timer.

Event Detail

onTimeout
onTimeout(): void<br>Called when the set timespan of the timer has elapsed.<br>Since<br>2019.21

Type Library datasource

C


<a name="timerange"></a>

TimeRange

Method Summary

Name and Description
static create(granularity: TimeRangeGranularity, start: Date, end: Date): TimeRange<br>Creates a time range with the specified granularity, start date, and end date.
static createMonthRange(startYear: integer, startMonth: integer, endYear: integer, endMonth: integer): TimeRange<br>Creates a time range with the specified start and end years and months.
static createWeekRange(startYear: integer, startWeek: integer, endYear: integer, endWeek: integer): TimeRange<br>Creates a time range with the specified start and end years and weeks.
static createYearRange(start: integer, end: integer): TimeRange<br>Creates a time range with the specified start year and end year.

Method Detail

create
staticcreate(granularity: TimeRangeGranularity, start: Date, end: Date): TimeRange

Creates a time range with the specified granularity, start date, and end date.

Parameters

granularity: TimeRangeGranularity
start: Date
end: Date

Returns

TimeRange |

createMonthRange
staticcreateMonthRange(startYear: integer, startMonth: integer, endYear: integer, endMonth: integer): TimeRange

Creates a time range with the specified start and end years and months.

Parameters

startYear: integer
startMonth: integer
endYear: integer
endMonth: integer

Returns

TimeRange |

createWeekRange
staticcreateWeekRange(startYear: integer, startWeek: integer, endYear: integer, endWeek: integer): TimeRange

Creates a time range with the specified start and end years and weeks.

Parameters

startYear: integer
startWeek: integer
endYear: integer
endWeek: integer

Returns

TimeRange |

createYearRange
staticcreateYearRange(start: integer, end: integer): TimeRange

Creates a time range with the specified start year and end year.

Parameters

start: integer
end: integer

Returns

TimeRange |

Type Library datasource

E


<a name="timerangegranularity"></a>

TimeRangeGranularity

Property Summary

Name and Description
static Day: TimeRangeGranularity<br>A range of days
static HalfYear: TimeRangeGranularity<br>A range of half-years
static Hour: TimeRangeGranularity<br>A range of hours
static Millisecond: TimeRangeGranularity<br>A range of milliseconds
static Minute: TimeRangeGranularity<br>A range of minutes
static Month: TimeRangeGranularity<br>A range of months
static Quarter: TimeRangeGranularity<br>A range of quarters
static Second: TimeRangeGranularity<br>A range of seconds
static Year: TimeRangeGranularity<br>A range of years

Property Detail

Day
staticDay: TimeRangeGranularity<br>A range of days
HalfYear
staticHalfYear: TimeRangeGranularity<br>A range of half-years
Hour
staticHour: TimeRangeGranularity<br>A range of hours
Millisecond
staticMillisecond: TimeRangeGranularity<br>A range of milliseconds
Minute
staticMinute: TimeRangeGranularity<br>A range of minutes
Month
staticMonth: TimeRangeGranularity<br>A range of months
Quarter
staticQuarter: TimeRangeGranularity<br>A range of quarters
Second
staticSecond: TimeRangeGranularity<br>A range of seconds
Year
staticYear: TimeRangeGranularity<br>A range of years

Type Library standard

E

Type

Property Summary

Name and Description
static boolean: Type<br>The "boolean" type
static integer: Type<br>The "integer" type
static number: Type<br>The "number" type
static string: Type<br>The "string" type

Property Detail

boolean
staticboolean: Type<br>The "boolean" type
integer
staticinteger: Type<br>The "integer" type
number
staticnumber: Type<br>The "number" type
string
staticstring: Type<br>The "string" type

Type Library standard

O

undefined

The value undefined.

Type Library standard

C


<a name="urlparameter"></a>

UrlParameter

An object representing a URL parameter

Since

2019.7

Method Summary

Name and Description
static create(parameterName: string, parameterValueNotEncoded: string): UrlParameter<br>Creates a URL parameter.

Method Detail

create
staticcreate(parameterName: string, parameterValueNotEncoded: string): UrlParameter

Creates a URL parameter.

Parameters

parameterName: string
parameterValueNotEncoded: string

Returns

UrlParameter |

Type Library standard

E


<a name="userinfo"></a>

UserInfo

Since

2019.5

Property Summary

Name and Description
displayName: string
id: string

Property Detail

displayName
displayName: string
id
id: string

Type Library standard

E


<a name="variableinfo"></a>

VariableInfo

Since

2019.22

Last Update

2022.1

Property Summary

Name and Description
description: string
id: string
isInputEnabled: boolean
modelId: string

Property Detail

description
description: string
id
id: string
isInputEnabled
isInputEnabled: boolean
modelId
modelId: string<br>Since<br>2022.1

Type Library datasource

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