Best practice
State manages the state of the app, including the UI's data and the user's interactions, and is best used in scenarios with a one-to-one relationship; for example, a field services person selects one job or task to complete, or a pilot selects one mission to fly.
Design Pattern: Singletons
- Set the ID to be stored in the solution state, using the set-state action. The ID is the least amount of data required to identify each job uniquely. The ID is used throughout the solution to reference the necessary data in each of the solution's s.
- In the datasource queries use the ID to return the required data.
- In a global datasource query reference the data required. The global datasource is referenced in each where the data is required.
- In the individual 's datasource query. The query is configured to only return the exact data required for that using the ID as the unique identifier.
State resources and code samples:
Inputs are used in complex apps to pass multiple variables between s using parameters, and is best used in scenarios where there is a one-to-many relationship, for example, a manager needs to check on the progress of each field service worker.
Design Pattern: Mediator
- Set up parameters in the that needs to pass data, then in the needing to receive the data set up inputs. Multiple parameters and inputs can be configured on a single .
- In the components of the use expressions to reference the data passed in, for example, [email protected].
Input resources and code samples:
Outputs are used to combine multiple s into one . Outputs pass variables from each into the next , and is best used in scenarios where there is a many-to-one relationship, for example, a manager needs to report on the progress of the team. Creating a master detail form is another usecase for outputs.
Design Pattern: Observer
- In the that will pass the data define the output property with an expression that will pass the variable, such as an ID.
- In the composite , which combines multiple s, define the input property on the that must receive the variable.
Output resources and code samples:
Using an id in your datasource enhances performance, particularly when handling large volumes of records.