JEXL Functions: Runtime Utilities
Function Reference
This section lists the non-entity JEXL helper functions currently available in tSM configuration. Entity calls such as crm.customer.find(...) are covered separately in the Public API section.
Pipe Transforms
Pipe transforms use the value on the left side of | as the first argument.
value | transformName
Use them for short display or serialization transformations. When a transformation can throw, guard the input first.
translate
Translates a translation key through the frontend translation service.
'common.save' | translate
Practical usage:
($context.form.installationMethod == 'self'
? 'order.installation.self'
: 'order.installation.technician') | translate
Use this when a configured expression must return localized UI text. Do not use it for stable business codes or API parameters.
json
Serializes an object or array to JSON text.
{ product: $context.form.productInternet.code, price: $context.form.productInternet.recurring.amount } | json
This is mainly useful in debugging, preview fields, or technical display fields where the user needs to see the complete object shape.
jsonParse
Parses a JSON string into an object or array.
'{"code":"Internet","active":true}' | jsonParse
Example with guarded form input:
$context.form.rawJson
? ($context.form.rawJson | jsonParse).code
: null
Invalid JSON throws an error. Use jsonParse only when the value is known to be valid JSON or when the field is controlled by configuration.
Utilities And Current Context
getUuid()
Generates a new UUID.
getUuid()
Do not use it as a stable identifier in an expression that can be re-evaluated repeatedly. Each evaluation can produce a new value.
currentUserId()
Returns the ID of the currently logged-in user.
currentUserId()
Use case:
createObject('assignee.id', currentUserId())
currentOrganizationId()
Returns the current organization ID.
currentOrganizationId()
Use case:
createObject('organization.id', currentOrganizationId())
configUi(attribute)
Reads a value from UI configuration.
configUi('url')
Use it when a configured UI attribute is needed inside an expression.
getLocationOrigin()
Returns the origin of the current browser URL.
getLocationOrigin()
// for example 'https://iss-dev.slovanet'
getLocationHref()
Returns the full current browser URL.
getLocationHref()
getLocationHost()
Returns the host part of the current browser URL.
getLocationHost()
// for example 'iss-dev.slovanet'
hasPriv(priv)
Returns whether the current user has a given privilege.
hasPriv('Tick.Ticket.View')
Use it for UI visibility or readonly logic that depends on privileges.
hasPolicy(policyName, params)
Evaluates a named policy with parameters.
hasPolicy('ticketDefaultPolicy', [$context.ticket])
Use it when access depends on a policy and not just a single privilege or role.
hasRole(roleCode)
Returns whether the current user has a role.
hasRole('Admin')
Use it for role-based UI logic.
attachmentCount(ownerId, ownerType)
Returns the number of attachments for an owner.
attachmentCount($context.entity.id, 'Ticket')
Typical ownerType values depend on the entity area, for example 'Ticket'.
attachmentCountTypes(ownerId, ownerType)
Returns attachment counts grouped by attachment type.
attachmentCountTypes($context.entity.id, 'Ticket')
The result is an object where keys are attachment type identifiers and values are counts.
evalScriptById(scriptId, scriptData?, disableCache = false, disableToast = false)
Evaluates a script by script ID.
evalScriptById(
'9d1548e7-26df-4ec2-8931-b86581b21672',
{ parameter: $value.text }
)
Use this for configured script-backed data sources. Be careful with side effects and repeated evaluation.
evalScriptByCode(scriptCode, scriptData?, disableCache = false)
Evaluates a script by script code.
evalScriptByCode('myScriptCode', { parameter: $value.text })
Use this when the script is referenced by stable code instead of ID. Be careful with side effects and repeated evaluation.
tsmModule(id)
Loads a tSM module by ID.
tsmModule('9d1548e7-26df-4ec2-8931-b86581b21672')
The result is an identified pack containing the module data.
findProblemAllowedValues(ticket)
Returns allowed problem values for a ticket. If the ticket category has category-specific values, those are used; otherwise the function falls back to the general problem values from the ticket type registry.
findProblemAllowedValues($context.ticket)
findResolutionAllowedValues(ticket)
Returns allowed resolution values for a ticket. If the ticket category has category-specific values, those are used; otherwise the function falls back to the general resolution values from the ticket type registry.
findResolutionAllowedValues($context.ticket)
toISOString(value)
Converts a value to an ISO string.
Behavior:
- falsy value returns
null, - string is returned unchanged,
- object with
.toISOString()is converted through that method.
toISOString($context.form.validFrom)
If you already have a string and want to keep it unchanged, this function is safer than toIso.
ticketLinks(links, linkType)
Checks whether a ticket has a link of a specific type and direction. It expects an array of objects with a typeAndDirection property.
ticketLinks($context.entity.links, 'PARENT_OUT')
Behavior:
nullor empty array ->null,- matching link found ->
true, - no matching link ->
false.