Understanding decision table support in offline mode

Offline-enabled mobile apps support decision tables to a certain extent. By learning how decision tables work in offline-enabled mobile apps, you can ensure that your offline-enabled mobile app operates reliably.

Pega Platform packages decision tables for use in offline-enabled apps into the mobile app distributable files.

Supported use cases

You can apply decision tables in the following use cases in offline-enabled apps:

  • Referencing a decision table in a flow rule, as a type of decision shape
  • Calling a decision table from a declare expression rule
For other use cases, you can call decision tables with custom code. For more information, see the following section.

Custom use cases

Custom use cases that are not readily available in offline-enabled mobile apps might include, for example:

  • Calling a decision table from a collection rule
  • Evaluating a decision table in an activity, with the Property-Map-DecisionTable method
To run custom scenarios, you can call decision tables by using the pega.process.decisiontable.evaluate() JavaScript method. For example, you can define a variable in the JavaScript code:
var result = pega.process.decisiontable.evaluate("OJMBRV-MyApp-Work-DecTableCase","MyDecisionTable")

Supported features

Offline-enabled mobile apps support the following features that you can use when you design the logic of the decision tables:

  • Conditions:
    • [first value] [relation] [second value]
    • [first string] equals [second string]
    • [first string] does not equal [second string]
    • [string to search on] contains [string to search for]
    • [first String] [relation] [Second String]
    • [first number] [relation] [second number]
    • [First DateTime] [relation] [Second DateTime]
    • [a datetime] is in the [past/future]
    • created within the last [num] days
    • the work object is Resolved
    • the work object's status is [given value]
    • the customer satisfaction status is [given value]
    • [Pagelist Name] contains a page where [Property Name] equals [Value]
    • length of [a pagelist property] is [comparison operator] value
    • [expression evaluates to true]
    • rule [When record evaluates] to true
  • Single-value properties on the following system pages:
    • Data-Admin-Operator-AccessGroup for AccessGroup
    • Data-Admin-Operator-ID for OperatorID
    • Data-Admin-Organization for Org
    • Data-Admin-OrgDivision for OrgDivision
    • Code-Pega-Process for pxProcess
    • Code-Pega-Thread for pxThread
    • Code-Pega-Requestor for pxRequestor
    • Rule-Application for Application
  • All utility functions and libraries that are supported in offline mode. For more information, see Understanding function rule support in offline mode.
  • Nested when rules in the expression that you build with the following functions for the [expression evaluates to true] condition:
    • when
    • callWhen
      Note: The the callWhen function has limited offline support for when rules. For more information, see the following paragraph.

Consider the following information with regard to when rule support by the callWhen function:

  • The third parameter must be myStepPage or pyWorkPage. For example, offline-enabled mobile apps support the following code:
    @callWhen(@getPublicAPI(),"AtCallWhenInner",pyWorkPage)
  • You cannot dynamically call a when rule by using a text reference. For example, offline-enabled mobile apps do not support the following code:
    @callWhen(@getPublicAPI(), .MyTextProperty, myStepPage)

Unsupported features

Offline-enabled mobile apps do not support the following features that are related to the logic of decision tables:
  • Conditional routing
  • Case-wide validation
  • When rules that reference a section parameter page
  • Visibility conditions for layouts
  • Required conditions