Skip to main content
Version: 8.1

Packages overview

Level: beginner

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:

View comparison of package types in the table below.

Links to other packages

Configuration elements

File content

Development in Creatio IDE

Code compilation path

Simple package and smart activation simple package

+

+

+

+

...\Terrasoft.WebApp\Terrasoft.Configuration\Terrasoft.Configuration.dll

Project package

+

– (use an external IDE)

For .NET Framework: ...\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\SomePackageName\Files\Bin\SomePackageName.dll
For .NET Core and .NET 6: ...\Terrasoft.Configuration\Pkg\SomePackageName\Files\Bin\netstandard\SomePackageName.dll

Assembly package and smart activation assembly package

+

+ (with restrictions)

+

+

For .NET Framework: ...\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\SomePackageName\Files\Bin\SomePackageName.dll
For .NET Core and .NET 6: ...\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

branches directory

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.

Schemas directory

Stores the package schemas.

Assemblies directory

Stores third-party builds bound to the package.

Data directory

Stores data bound to the package.

SqlScripts directory

Stores SQL scripts bound to the package.

Resources directory

Stores the localized package resources.

Files directory

Stores the package file content. Available in the file system.

tags directory

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.

descriptor.json file

Stores the package metadata in JSON. The package metadata includes the ID, title, version, dependencies, etc.

Package dependencies and hierarchy 

Creatio application 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.

Creatio supports the following dependency types:

  • If the current package must inherit the entire Creatio functionality, set the package next to the Custom package in the hierarchy as the parent package.
  • If the current package must inherit the functionality of a package, set the package with the functionality to inherit as the parent package.

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.

Creatio adds dependencies of custom 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.

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.

Creatio package hierarchy

Package dependencies diagram stores the package hierarchy and dependencies. Instructions: Manage packages. This opens package dependencies diagram in a new tab.

Click a diagram node with the package name to view the package dependencies as animated arrows. For example, the SalesEnterpriseSoftkey_Obsolete package in the SalesEnterprise product depends only on the SalesEnterpise package and its parent packages. Also, the SalesEnterpriseSoftkey_Obsolete package is a parent package to the Custom package.

Add package dependencies

You can add dependencies to a custom package at any time.

To add dependencies:

  1. Go to the package page.
  2. Click Add on the Depends on packages detail in the Dependencies tab. This opens the package lookup dialog.
  3. Select the desired package in the dialog and click Select.

As a result, Creatio will display the selected package in the current package’s list of dependencies. If you add other dependencies to the current package, Creatio will hide the packages you have already selected from the lookup.

Creatio adds new packages to the dependencies of the Custom preinstalled package automatically.

List of dependencies in the package metadata

Creatio stores the list of dependencies in the package metadata. View the metadata in the DependsOn property of the object defined in the descriptor.json file.

The DependsOn property is an array of objects that contain the package name, version, and unique ID. Use the ID to define the package in the Creatio database. Creatio adds separate descriptor.json files for each package version.

descriptor.json file
{
"Descriptor": {
"UId": "51b3ed42-678c-4da3-bd16-8596b95c0546",
"PackageVersion": "7.18.0",
"Name": "UsrDependentPackage",
"ModifiedOnUtc": "\/Date(1522653150000)\/",
"Maintainer": "Customer",
"DependsOn": [
{
"UId": "e14dcfb1-e53c-4439-a876-af7f97083ed9",
"PackageVersion": "7.18.0",
"Name": "SalesEnterprise"
}
]
}
}

See also

Simple package

Project package

Assembly package

Automatically activated package

Operations in Creatio IDE


E-learning courses

Working with packages