sync-entities

This action can be used to sync your local database with your live database on the server. There are multiple ways to set up a sync-entities action within a jig:

  1. Under action button

  2. In action list

  3. In onPress/onChange events (if the component has these options)

  4. In onRefresh/onFocus

  5. Dynamically sync multiple entities

Examples and code snippets

sync-entities in action

In this example, when tapping the Sync entities button the action.sync-entities is used to show a list of employees.

Example: The full example of sync-entities in action you can find in GitHub

Sync-entities action
Sync-entities action
sync-entities-action.jigx
actions:
  - children:
    - type: action.sync-entities
      options:
        title: Sync entities
        provider: DATA_PROVIDER_DYNAMIC
        entities:
          - default/employees    

sync-entities in the action list

sync-entities action
sync-entities action

In this example the action.sync-entities is used to linkt to the a different jig.

Example: The full example of sync-entities in an action list you can find in GitHub.

sync-entities in onPress/onChange event

Here is the example of sync-entities in onPress/onChange event in list-item

Example:

The full example of sync-entities in onChange you can find in GitHub. The full example of sync-entities in onPress you can find in GitHub.

Sync-entities action with onPress
Sync-entities action with onPress

sync-entities in onRefresh/onFocus

sync-entities action with onRefresh
sync-entities action with onRefresh

Example:

See the full example of sync-entities on onRefresh action in GitHub.

If you want to use onLoad or onFocus just change the onRefresh to onLoad or onFocus

Dynamically sync multiple entities

When building a solution, the number of entities to sync and the parameters for each are not always known; for example, when syncing the attachments, files, or documents for a message, there can be zero, one, or more. It is necessary to dynamically specify a list of the entities, functions, and function parameters to return from the database using an expression.

Considerations

  • The expression is specified in the action.sync-entities action either as a local action in the jig or as a global action.

  • Dynamic sync-entities apply to the REST, OneDrive, and Salesforce data providers.

  • Any of the following can be synced dynamically: entity, functions, and function parameters.

Expression structure

  • The basic expression structure is =$.map(array, function).

    • Specify the array you will consult, i.e., a datasource @ctx.datasources.{datasourceName}.

    • For the function, specify ($item).

    • Example of the basic structure =$map(@ctx.datasources.{datasourceName}, function($item)).

  • After defining the basic structure, map out relevant properties from the array to the relevant entity/function/parameters and specify the dynamic entry using the $.item property, e.g., "calenderId": $.item.id. This will run through all the records in the datasource and perform a sync-entities action for each record in the table.

Example sync-entities dynamically for calendars (full input source)

To return all records from the input source use $item.id. In this example, a jig has two lists; the first list shows all the user's calendars, and the second list uses the ids from the first list to return all the events for all the calendars. A summary component shows a count of the number of events.

Sync calendars and events
Sync calendars and events

Example sync-entities dynamically for a selected calendar

To return all records for a selected calendar use =$map(@ctx.action.parameters.selected, function($item) in the global action. In this example, a jig has a dropdown to select the calendar and a Show events button syncs the entries in the selected calendar. A summary component shows a count of the number of events in the selected calendar.

Sync events for the birthday calendar
Sync events for the birthday calendar

Last updated

Was this helpful?