The Solution Sets Concept¶
A solution set defines the name, inital brand theming (e.g. background images) and most importantly which capabilities are available to use in an IFS Cloud soution. IFS Cloud is includes a number of pre-defined solutions sets for industry or functional solutions. These serve as baselines, but are adjusted for each customers based on which sales parts that were included on the order the customer placed. The customer's order is always based on one solution set, but can include (or exclude) individual sales parts as needed.
When you install IFS Cloud all components are installed, but only those listed as activie (based on the chosen sales parts) in the solution set definition are enabled for use. The static component dependencies are still valid and must be followed, validation is done when building.
A solution set configuration file (solutionset.yaml) is what controls the solution set. This file is typically generated from the customer order for IFS Cloud in IFSbiz. The file contains:
- ID and name of the solution set
- List of active components (not listed components are considered as inactive
- Any components added as part of a customization that should also be included in the solution set
Behavior for server/database artifacts¶
In the database, the code for both active inactive components are deployed but dynamic calls to inactive components are disabled with use of conditional compilation.
Filters are added on entitiies to hide records, which content belong to inactive components.
Pods are not started if they are dependent on inactive components.
Behavior for API and user interface artifacts¶
Inactive client code is excluded in code generation and dropped in deployment when it comes to
- Navigator entries
Deployment of IFS Cloud includes all technical components but only a subset are considered to be active and available for use.
Adding or modifying a solution set must be done as a delivery. Such delivery might only contain the solutionset.yaml file as input, but it will generate an install.tem for redeploy of all clients and projections.
Dynamic dependent objects inside a projection are included or excluded depending on if these objects are coming from an active or inactive component.
When deploying, component status is set in module_tab and Conditional compilation is false for inactive components. All Post Installation files are touched and by that re-executed if the settings says so.
Installer handling of Solutionset.yaml for Middle tier¶
The installer will by default read the solutionset.yaml from the ifsinstaller folder. The installer will use the solutionset.yaml to determine which containers to deploy in middle tier (the conditions can be seen in the installation parameters ). If the installer is not fed with a solutionset.yaml (or can't find it in ifsinstaller folder) it assume all components are active and deploy all available containers.