Since Creatio 8.0 Atlas, Creatio has started transfer to composable architecture and introduced a composable app level. A Freedom UI app can consist of one or more packages. A package is a collection of app elements that implements a particular block of functionality.
Current app package
A package was the only way to transfer changes between environments in Creatio version 7.18.5 or earlier. All implemented customizations were saved to a package that was specified in the “Current package” (“CurrentPackageId” code) system setting. Since Creatio 8.0 Atlas, the app is the main way to transfer changes between environments. This lets you streamline customization, because all changes as well as information about relationships with other apps are automatically saved in the app. Creatio stores Freedom UI app data based on the current app package. A current app package is the package that stores app elements created or modified using the Application Hub. Creatio sets the current app package the first time you open an app or modify any element in the app. Each app has a current app package.
Creatio marks a package as a current app package as follows:
- If an app has one unlocked package, Creatio marks this package as the current app package.
- If an app has multiple unlocked packages, Creatio marks an arbitrary package as the current app package.
- If an app does not have an unlocked package, for example, a base product app or Marketplace app, Creatio creates a new package automatically and marks this package as the current app package.
Change the current app package
You can change the current app package that stores customizations. To do this:
- Click in the top right → “System setup” → “Lookups.”
Click New lookup on the Lookups section toolbar and fill out the lookup properties:
- Enter an arbitrary name in the Name property. For example, “App package.”
- Select “Package in installed application” in the Object property.
- Click Save on the lookup setup page's toolbar.
- Open the App package lookup.
- Add a filter “Installed application = [Name of the app to add or modify the current app package].”
- Select or clear the Application current package checkbox.
- Make sure only one app package has the selected Application current package checkbox.
As a result, all changes executed using the Application Hub will be saved to the app package.
If you delete a current app package using the Creatio IDE, Creatio locks this action and displays an error. You cannot delete a package using Freedom UI Designer.
When you change the current app package, you might need to move functionality between packages. This will cause dependencies to change. Make sure that dependencies do not cause errors.
Move the functionality between packages
- Find the app package on the Advanced settings tab in the Application Hub.
- Click in the top right → “Admin area” → “Advanced settings.”
- Select the needed package from the package list.
- Find the schema that causes the cyclic chain in the package contents.
- Click → “Move to another package.” This opens a box.
- Select the package that you found on step 1 in the box and save the changes.
Ways to store Freedom UI app data
You can modify an app using the following tools:
- Freedom UI Designer. Use it to modify the structure of a Freedom UI app.
- Creatio UI. Use it to modify data connected to a Freedom UI app.
- Creatio IDE. Use it to implement additional functionality that cannot be implemented using Freedom UI Designer. For example, package install scripts.
The way Creatio stores data is based on the tool you use to modify the Freedom UI app.
Store app data modified using the Freedom UI Designer
The mechanism that stores app data modified using the Freedom UI Designer works as follows (Fig. 1):
Store app data modified using Creatio UI
The mechanism that stores app data modified using the Creatio UI works as follows (Fig. 2):
Store app data modified using the Creatio IDE
The mechanism that stores app data modified using the Creatio IDE works as follows (Fig. 3):
I. e., when you create or modify an app element, Creatio stores the element in the package where the schema was opened.