Creating a package for development
Glossary Item Box
Introduction
A Creatio package is a collection of configuration elements (schemas, data, scripts, additional libraries) that implements particular block of functionality. In the file system, packages are directories with various subdirectories and files. Basic information about the packages are described in the "Package structure and contents” and “Package dependencies”
How to create a custom package
To create a new custom package, go the [Packages] tab menu of the [Configuration] section and select the [Add] action (Fig. 1. 1).
Fig. 1. How to add a new package
As a result, the package mini-page will open (Fig. 2).
Fig. 2. Package mini-page
Main fields of the package mini-page:
- [Name] - package name. Required field. Name cannot match the names of already existing packages.
- [Position] - package position in hierarchy Required field (see "Configuration localizable resources"). The default value is set to 0.
- [Revision control system storage] — the revision control system storage name to which package modifications will be committed (see "Built-in IDE. The [Configuration] section"). A list of available storages is generated from the list of storages in SVN. Storage located in the configuration storage list but not marked as active will not appear in the drop-down list of available storages. This is a required field.
The [Revision control system storage] is populated, when you create a new package and becomes non-editable. If the revision control system is not used, this field is not displayed.
- [Version] - package version. Required field. The package version can contain digits, Latin characters, "." and "_” symbols. The added value text must begin with digits or letters. All elements of the package are of the same version as the package itself. The package version does not necessarily have to match the version of the application.
- [Description] - package description, for example, extended information about package functions. This is a non-required field.
When you create a new package, you cannot specify its dependencies yet. Add dependencies, when you edit an already created package.
If a user is not logged in the selected package of the revision control system storage, they will be prompted to authorize before creating a package.
The contents of the key package mini-page fields pack will be saved in its metadata:
{ "Descriptor": { "UId": "1c1443d7-87df-4b48-bfb8-cc647755c4c1", "PackageVersion": "7.8.0", "Name": "NewPackage", "ModifiedOnUtc": "\/Date(1522657977000)\/", "Maintainer": "Customer", "DependsOn": [] } }
In addition to these properties, the package metadata contains information about the dependencies (DependsOn property) and the developer (Maintainer). The Maintainer property value is set by using the [Publisher] system setting.
After filling in all the fields and clicking the [OK] button, the package will be created and will appear on the [Packages] tab (Fig. 3).
Fig. 3. New package on the [Packages] tab
For the created package to have all the functionality that is inherent in the system, you need to specify the dependencies. To do this, indicate the last package in a hierarchy of pre-installed packages. To determine which of the packages in the hierarchy of packages is the latest, you need to go to the [Package dependencies] tab of the [Configuration] section. Next, you must find all packages located one level above the [Custom] package. For example, fig. 4 shows that the [SalesEnterpriseSoftkey_ENU] and [SalesEnterpriseSoftkey_Obsolete] packages are last in the hierarchy of packages. How to add the package to the dependencies is described in the "Package dependencies”
You cannot add the [Custom] package to the dependencies of a new package. The reasons for this are described in the "Package [Custom]” article.
Fig. 4. Defining the last package in the hierarchy of pre-installed configuration packages
The [Custom] package must contain all dependencies of all packages of the application. It is therefore necessary to ensure that the [Custom] package contains the dependency of the newly created package.