Packages overview
A Creatio package is a collection of configuration elements that implement certain functionality. On the file system level, a package is a directory that defines a set of subdirectories and files. Any Creatio product is a set of packages.
Package types
Creatio includes the following package types:
- Simple package. Learn more: Simple package.
- Project package. Learn more: Project package.
- Assembly package. Learn more: Assembly package.
View comparison of package types in the table below.
Feature | Package type | ||
---|---|---|---|
Simple package and smart activation simple package | Project package | Assembly package and smart activation assembly package | |
Links to other packages | + | – | + |
Configuration elements | + | – | + |
File content | + | + | + |
Development in Creatio IDE | + | – | + |
Code compilation path for .NET Framework | ...\Terrasoft.WebApp\ Terrasoft.Configuration\ Terrasoft.Configuration.dll | ...\Terrasoft.WebApp\ Terrasoft.Configuration\ Pkg\ SomePackageName\ Files\ Bin\ SomePackageName.dll | ...\Terrasoft.WebApp\ Terrasoft.Configuration\ Pkg\ SomePackageName\ Files\ Bin\ SomePackageName.dll |
Code compilation path for .NET Core and .NET 6 | ...\Terrasoft.Configuration\ Pkg\ SomePackageName\ Files\ Bin\ netstandard\ SomePackageName.dll | ...\Terrasoft.Configuration\ Pkg\ SomePackageName\ Files\ Bin\ netstandard\ SomePackageName.dll |
Package structure
If you upload the package to the version control system, Creatio creates the directory that matches the package name in the package repository.
View the structure elements of the package directory in the table below.
Structure element | Structure element description |
---|---|
| Stores the versions of the current package. Each version is a subdirectory whose name matches the package version number in Creatio. For example, 7.18.0. |
| Stores the package schemas. |
| Stores third-party builds bound to the package. |
| Stores data bound to the package. |
| Stores SQL scripts bound to the package. |
| Stores the localized package resources. |
| Stores the package file content. Available in the file system. |
| Stores tags. The tags in the version control system are a snapshot of the project, i. e., a static copy of files made to preserve a development stage. |
| Stores the package properties in JSON. The package properties includes the ID, title, version, dependencies, etc. |
Package dependencies and hierarchy
Creatio app development follows the basic principles of software design, including the "don’t repeat yourself" (DRY) principle. Creatio implements this principle using package dependencies. Each package contains certain Creatio functionality, which the other packages should not duplicate. If a package requires functionality from a different package, set up dependencies between the corresponding packages. Learn more: Set up the package dependencies.
Packages can have multiple dependencies. For example, package C
depends on packages A
and D
. Thus, the functionality of packages A
and D
is available in package C
.
Package dependencies form hierarchical chains. This means that the package contains the functionality of the inheritor package and the functionality of all packages that depend on the inheritor. The closest analogy to the package hierarchy is the class inheritance hierarchy in object-oriented programming. For example, package E
contains not only functionality of package C
on which it depends, but also the functionality of packages A
, B
, and D
. In addition, package F
contains the functionality of packages B
and D
.
As of version 8.0.1, Creatio adds dependencies of user-made packages automatically. Dependencies are added based on the entire package hierarchy. This lets you add fewer dependencies manually. For example, if a business process uses configuration elements of the CrtBase
, CrtUIv2
, and Completeness
packages, only the Completeness
package is added as a dependency of the current package, since it depends on the CrtUIv2
package, which, in turn, depends on the CrtBase
package.
Since Creatio version 8.0.10, Creatio lets you use smart activation packages. The package is installed into the environment and activated automatically when all its dependencies are available. Smart activation packages do not block deleting the linked packages/apps. Learn more: Smart activation package.
See also
Automatically activated package
Set up the package dependencies