Import / Export Feature Definitions
Overview
Supported Feature Data Types
When importing feature definitions, feature properties defined in the import data must be specified based on feature’s base data type.
Feature definition import supports the following feature data types:
Compound | Related Value | Table | Search | Boolean | Date | File | Image | Link | Number | String | Text |
No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Compound data type is considered as deprecated and Related Value feature is a special feature type which cannot be imported and has to be set up in Perfion manually.
Feature Properties
Features have several types of properties:
General properties
Data properties
Remote properties
Advanced properties
Validation properties
Feature definition import allows creating and updating feature definitions, but it supports only a subset of feature properties. The table below shows which properties are supported.
Property type | Creation | Update |
General properties | Yes ( ID is controlled by Perfion ) | Yes (translations ) |
Information Groups properties | Yes | Yes |
Data properties | Yes | No |
Remote properties | No | No |
Advanced properties | Yes ( control type ) | No |
Validation properties | No | No |
Feature General Properties
Feature general properties define feature ID, unique name, caption, how and where feature will be shown in Perfion, etc. Refer to Figure 1 to see available feature properties.
Most of feature general properties can be used when importing feature definitions. The exception is feature ID, which cannot be created by user and will be automatically created by Perfion. One can, however, use feature ID when updating existing feature definitions.
Feature Definition Translations
Some of feature general data properties are language controlled and property values can be defined for several languages. The properties are:
Translatable property | Specifications |
Caption | Feature caption. Simple text, max 100 chars. |
Caption Alt | Alternative feature caption. Simple text, max 100 chars. |
Abbr | Abbreviation. Simple text, max 10 chars. |
Unit | Unit identifier. If feature data defines some parameter which have units, then this field can be used to identify those units. For example, if feature defines the length, then unit can be defined as “cm”. Simple text, max 100 chars. |
Help | Help text. It can be used for various purposes. For example, it is used for data validation to describe data validation rules. If help text is defined it will be shown as a hint during data entry in Item Editor window in Perfion. Text without limit. Even if there is no fixed limit how many characters there can be saved, the size of text type data will depend on other limits, e.g. available memory size allocated in database for such type data. This limit is not fixed, but indicative size is around one million bytes. |
Note, in Figure 1 one can see only some of translatable properties. Values for those properties are shown only in one language, which is chosen as default language in Perfion. In order to get access to all translatable properties one has to click a button with down arrow next to Caption property and the new window will open as shown in the Figure 2. From the new window one can define all translatable properties and also add translations for other languages.
Feature definition import fully supports translatable properties. It allows to import new features with translatable properties and also to update existing feature translatable properties.
Feature Data Properties
Feature data properties define how features will behave, how and where actual feature data will be stored, etc. Refer to Figure 1 to see available feature data properties.
There are many data properties and several can be chosen for the same feature. For example, feature can be selectable with sortable multi-value data and that data can also be localizable. The terminology used when describing features will be derived from data property names and therefore, the before mentioned feature, can be called “selectable” feature, “multi-value” feature, “localizable” feature, etc.
Feature data property | Description |
Explicit | The explicit property does not exist, but all features, which does not have selectable data property are called explicit. Explicit feature has its own data value(s) saved in the feature itself. This is the most basic feature. |
Selectable | The selectable data property means that a user can select the value(s) from a list of items instead of typing the value. The list of items can be maintained in feature data and if a value is edited, the change is immediately reflected on all items it is assigned to. |
Selectable with hierarchy (Allow Hierarchy) | If feature is defined to allow hierarchy, then one can define hierarchy for feature’s items. Hierarchy can be defined only if feature has Selectable data property. |
Selectable with custom ordering (Custom Ordering) | Custom ordering controls the native order of selectable items and should be set when you don’t want grid view alphabetically sorted by columns. It is primarily used for categorizers (left hand side) or drop downs where a custom order is desired. Custom ordering can be defined only if feature has Selectable data property. |
Selectable with sortable related items (Sortable Related Items) | Sortable related items are used to control multi-value ordering and overrides custom ordering. Note that the flag is set on the categorizer (left hand side) – not on the item that you want to sort. Its primary use is for output channels where you want to control the order in multiple categories so an item can have different order in different outputs. Sortable related items can be defined only if feature has Selectable data property. |
Localizable | The Localizable data property defines that a feature have different values depending on localization. Localization can also be understood as language/dialect. Example: let’s say there is a string type explicit feature, which describe product colors and this feature is localizable. Then, this feature will have one value for each language, which are defined for Perfion user. For example, if there are “English (en)” and “Danish (dan)” languages specified in Perfion, then localizable feature will have not one value, but two: one for English and one for Danish language. |
Inheritable | Feature with Inheritable data property allows feature values to be inherited. For example, if feature items have hierarchy and if feature has value defined for higher lever hierarchy item, then lower hierarchy level items will not have their own value, but instead will inherit the value from the higher hierarchy level. |
Formula | Formula data property is available only with Text and String type features. Formula is a special property, which allows creating custom data using values from other features by using templates. Features with Formula data property can be used to import data to, but it cannot be used as import key feature. |
Multi-value (Allow Multiple) | Features with Multi-value data property allow to store multiple values. If feature is explicit multi-value feature, then one can save multiple values instead of one. If feature is selectable multi-value feature, then one can select multiple values from selectable feature’s default values instead of one. If feature is localizable multi-value feature, then each feature’s value will also have localizable value for each locale (e.g. language). For example, if feature have three values and three locales, then this feature will have nine values in total. |
Multi-value sortable (Sortable) | The feature is almost the same as multi-value feature (e.g. have the same data structure), but the difference is, that all values have order. That means, that the order of existing values will not change after adding new values. The multi-values without order in most cases will be sorted alphabetically, while the sortable multi-values will be order by their predefined order. |
Read Only | With Read Only, Perfion prevents all users from managing values in this feature. Read Only is typically used to expose values owned by ERP system and synchronized into Perfion. |
Feature definition import allows specifying all data properties when importing new features to Perfion. However, it does not support data property update for features which already exist in Perfion.
Not all feature data properties can be set for features with different data types. The table below shows which feature data types supports which feature data properties.
Data property | Data type | |||||||||
String | Link | Text | Number | File | Image | Date | Table | Search | Boolean | |
Inheritable | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Localizable | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
Formula | Yes | Yes | Yes | No | No | No | No | No | No | No |
Multi-value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Multi-value sortable | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Selectable | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Mandatory | Mandatory | No |
Selectable with hierarchy | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Selectable with custom ordering | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Selectable with sortable related items | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Read Only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
NOTE: In order to set “Multi-value sortable” data property, the property “Multi-value” must be set.
NOTE: In order to set “Selectable with hierarchy”, “Selectable with custom ordering” or “Selectable with sortable related items” properties, the property “Selectable” must be set.
Feature Remote Properties
Remote properties allows changing feature type from normal feature to remote feature. One can also specify remote feature data source and other parameters.
The remote properties are not supported by feature definition import.
Feature Advanced Properties
Advanced feature properties allows further specifying various feature parameters in order to control how the feature will be handled in Perfion. Feature advanced properties are shown in Figure 3.
The feature definition import supports only one advanced feature property - Control Type. This property allows defining the feature data editor, which will be used in Perfion to visualize feature data. Feature definition import allows defining Control Type property for new features, but this property cannot be updated if the feature already exist in Perfion.
Feature Validation Properties
Feature validation properties allows specifying how feature data will be validated during data import or during data entry via Perfion GUI. An example of feature validation properties is shown in Figure 4.
Validation properties are not supported in feature definition import.
Feature Hierarchy
Features may have hierarchy and it determines how feature data will be handled in Perfion. Based on how feature hierarchy relations are set up in Perfion, there can be two types of data handling concepts used:
Direct feature inheritance
Feature identity inheritance
Different types of feature inheritance has influence how data will be handled in feature definition import.
Refer to Figure 5 to see how feature hierarchy looks like.
Direct Feature Inheritance
This type of inheritance does not have any particular meaning in how data will be handled in Perfion and it is only used to group features in Features pane. However, direct feature inheritance is used in feature definition import and allows child features to inherit all parent feature properties if child feature properties are not explicitly defined in import data. The direct feature inheritance will also be used in a similar way in GUI when creating new child features. The child feature’s data properties will be by default pre-set with values from parent feature.
There is a direct feature inheritance when:
Selectable feature inherits from explicit feature
Explicit feature inherits from selectable feature
Explicit feature inherits from another explicit feature
There is no real connection between those two features which form a direct feature inheritance, e.g. these features are absolutely independent from each other.
It is not uncommon to use direct feature inheritance when creating feature categorization by using explicit features which do not have any purpose in data model. These features do not have any influence to other features, but they can be used to combine several other features “under” itself as its children and then use feature’s name as a categorizer label.
Feature Identity Inheritance
Feature identity inheritance is a special concept in Perfion which allows handling data in some special way if feature hierarchy path have multiple selectable features. Requirements and rules:
There should be at least two selectable features in hierarchy path in order to create feature identity inheritance. Note, only features from independent hierarchy paths are used to determine if there is identity inheritance.
It does not matter if selectable features in hierarchy path are adjacent to each other. For example, there could be several explicit features in feature’s hierarchy path in between selectable features. These explicit features will not affect identity inheritance status. Identity inheritance works like independent hierarchy tree of selectable features inside the actual feature hierarchy tree.
There can be several paths in feature hierarchy, which may form feature identity inheritance. Some of those identity inheritances may have the same base feature (e.g. common to both paths) and in this case they will be considered as the same identity inheritance.
When identity inheritance is formed, all child selectable features inherits all feature data values from their base selectable feature. This means that all child selectable features in identity inheritance will not have their own data. All feature data values will be saved only in identity inheritance base feature and child features will inherit base feature values. This is handled automatically in Perfion. For example, during feature data import if one selects to import data to selectable feature which is part of identity inheritance, the data will not be directly imported to that feature, but instead to identity inheritance base selectable feature to which that original selectable child feature belongs to.
When identity inheritance is formed, all child selectable features inherits most of data properties from their base selectable feature. This means that all child selectable features in identity inheritance will have almost the same data properties like their base selectable feature.
If feature belongs to identity inheritance, then it will also affect how it is handled during feature definition import. The importer will check that feature definitions with invalid feature data properties cannot be created, e.g. it will make sure that all data properties from base and child features are in sync.
There are some data properties which are not important from identity inheritance point of view. Refer to the table below to see which data properties must be in sync.
Data property | Must be in sync |
Inheritable | No |
Localizable | Yes |
Formula | Yes |
Multi-value | No |
Multi-value sortable | No |
Selectable | Yes |
Selectable with hierarchy | Yes |
Selectable with custom ordering | Yes |
Selectable with sortable related items | No |
Example of Feature Identity Inheritance
To understand better how feature identity inheritance can be created in Perfion refer to Figure 5 and the table below. The table shows several examples with different situations with identity inheritance and without.
Example | Identity inheritance | Description |
#1 | Yes | Features IdentityBase1, IdentityChild11 and IdentityChild12 forms a single identity inheritance. |
#2 | Yes | Features IdentityBase2, IdentityChild21 and IdentityChild22 forms a single identity inheritance. There are 2 paths which could form independent identity inheritance, but since both share the same base (IdentityBase2), they are treated as a single identity inheritance. |
#3 | Yes | Features IdentityBase3 and IdentityChild31 forms a single identity inheritance. This example shows that the identity base feature should not be a root feature. Identity inheritance can be formed in feature hierarchy sub-nodes. |
#4 | No | Selectable features NotIdentity42 and NotIdentity43 does not form identity inheritance, because they are both in different feature inheritance paths. They do not inherit from each other using parent-child relation and identity inheritance requires minimum 2 features, while in this case both features are independent single features. |
#5 | No | Selectable feature NotIdentity52 does not form identity inheritance, because it is a single feature. There should be at least 2 selectable features in the path in order to form it. |
#6 | Yes, multiple | Features IdentityBase61 and IdentityChild611 forms the first identity inheritance, while features IdentityBase62 and IdentityChild621 forms the second identity inheritance. Both identity inheritance cases are in their independent paths and do not share the same base feature, therefore they both can coexist independently. |