Expressions

Jigx Variables

19min

 has a set of variables that can be used in expressions to manipulate data specific to a , for example, determining the logged-in user, or the organization and solution.

Organization

The organization variable is used to get information about the actual organization in , such as your organization's id.

Configuration

Result

Expression

id

=@ctx.organization.id

Examples and code snippets 

Organization expression
Organization expression


This example returns the organization's id . Each organization configured in Organization Settings in and will have a unique id. See the full code sample in GitHub.

YAML


System

The system variable in an expression is used to get information about devices, for example, you can find information about the internet connection of the device, the language preference, the device's timezone and location details. System expressions are configured by =@ctx.system. followed by the specific variable name.

Configuration

The supported variables for the system variable are:

Variable

Expression

Results

appVersion

=@ctx.system.appVersion

This variable returns the current version of the installed app, which is useful for troubleshooting, crash tracing, and debugging issues. E.g. 1.110.7

deviceType

=@ctx.system.deviceType

The variable returns the current user's device type, such as tablet or handset.

geocodes

=@ctx.system.geocodes



isOffline

=@ctx.system.isOffline

Boolean

isOnline

=@ctx.system.isOnline

Boolean

isPortrait

=@ctx.system.isPortrait

The variable is set with a boolean and is used to configure the behavior of components in either portrait or landscape mode.

locale

=@ctx.system.locale



location Permissions

=@ctx.system.locationPermisions

Status can be:

  • granted : granted: true
  • undetermined : granted: false
  • denied: granted: false

=@ctx.system.locationPermissions.foreground.status

isGranted is determined by the device's location settings for the Jigx app:

  • Always (isGranted: true)
  • While using the app (isGranted: true)
  • Never (isGranted: false)
  • Ask Next time or when I share (isGranted: false)

timezone

=@ctx.system.timezone.offset

Get the information about the device's timezone, it can be: -name: e.g. Europe/Prague -offset: e.g. +200

geolocation

Accuracy: =@ctx.system.geolocation.coords.accuracy Altitude: =@ctx.system.geolocation.coords.altitude Altitude Accuracy: =@ctx.system.geolocation.coords.altitudeAccuracy Location - Heading: =@ctx.system.geolocation.coords.heading Location - Latitude: =@ctx.system.geolocation.coords.latitude Location - Longitude: =@ctx.system.geolocation.coords.longitude Location - Speed: =@ctx.system.geolocation.coords.speed Location - Timestamp: =@ctx.system.geolocation.timestamp Location - Entire array (All details): =$string(@ctx.system.geolocation)



isLocationSharingEnabled

=@ctx.system.isLocationSharingEnabled

Boolean

solution

=@ctx.solution.id

XXXXXXXX-XXX-XXXX-XXXX-XXXXXXXXXXXX

user

=@ctx.user.email or =@ctx.user.id

username@jigx.com or XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Examples and code snippets

System isOffline

System expression
System expression


With this expression, you can disable the action button to prevent it from being pressed if the device is offline.

See the full code sample in GitHub.

isOffline.jigx






System timezone

This example uses system.timezone to get the information about the device's timezone, it can be the name of the timezone or the offset. Use it further to convert date/time using Date & Time expressions into the format that you require.

See the full code sample in GitHub.

YAML




System timezone expression
System timezone expression


System geolocation

system geolocation expression
system geolocation expression




This example shows how you can use system.geolocation to get the device's location (details).

See the full code sample in GitHub.

YAML


System locationPermissions

Location tracking is a powerful feature in mobile apps that enables various functionalities, such as navigation, personalized recommendations, and location-based notifications. However, using location data requires explicit permission from users to ensure privacy and compliance with platform guidelines.

This example, uses the device's privacy and security settings to display a location or deny access to a location. Change your device's settings for the to see the returned permissions.

The following statuses are returned depending on the device's settings:

  • undetermined
  • granted
  • denied

Evaluating whether or not permission has been granted using isGranted returns a boolean.

System Location Permissions
System Location Permissions

YAML
locations (datasource)


System appVersion & deviceType

Device information is important to identify the types of devices and the app version users are using. This is useful for troubleshooting issues and diagnosing app crashes. The details can be retrieved in multiple ways when using the system variable, such as on the app screen or when connected to dev tools in .

Jigx dev tools for debugging
Jigx dev tools for debugging

YAML


System isLocationSharingEnabled

See the example using dynamic data in GitHub.

YAML

Document image


User

Examples and code snippets

The user is used to get information about the logged-in user, for example, name, and email.

Configuration

Result

Expression

Name

=@ctx.user.displayName

Email

=@ctx.user.email

id

=@ctx.user.id

User expression
User expression


See the full code sample in GitHub.

user.jigx


Solution

The solution variable is used to get information about the specific solution, for example, name, and id. Custom variables can be set in Solution Settings in , and the variable value referenced in the solution expression.

Configuration

Result

Expression

name

=@ctx.solution.name

id

=@ctx.solution.id

variable value

=@ctx.solution.settings.custom.variableName

Examples and code snippets

Solution Id and name

Solution expression
Solution expression


This example shows how to get the solution's id and name using the solution variable.

See the full code sample in Github.

YAML


Solution settings - custom variable

Setting Custom Variables
Setting Custom Variables

Showing variable value
Showing variable value

YAML