Difference between revisions of "MetaProperty"
(→Configuration) |
(→Text) |
||
(33 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | In {{UBIK}}, a Metaproperty describes a single feature of a certain [[Metaclass]]. A Metaproperty will never hold own values, but it serves as a definition for a resulting [[BaseProperty]] on a derived [[Instance|ContentClass]]. | |
− | In {{UBIK}}, a | + | |
For enhanced reuse, MetaProperties can be organized in a Pool and linked to many MetaClasses, using the [[SYSREL_METAPROPERTY|Systemrelation MetaProperty]] | For enhanced reuse, MetaProperties can be organized in a Pool and linked to many MetaClasses, using the [[SYSREL_METAPROPERTY|Systemrelation MetaProperty]] | ||
==Data Types== | ==Data Types== | ||
− | A MetaProperty needs to have a data type that determines which kind of data should be stored in it. The following data types are supported by {{UBIK}}: | + | A MetaProperty needs to have a data type that determines which kind of data should be stored in it. The following data types are currently supported by {{UBIK}}: |
===Undefined=== | ===Undefined=== | ||
+ | Default value; will result in an error when attempting to set values. | ||
===Boolean=== | ===Boolean=== | ||
Line 26: | Line 26: | ||
===File reference=== | ===File reference=== | ||
A path to a physical file in [http://en.wikipedia.org/wiki/Path_(computing)#MS-DOS.2FMicrosoft_Windows_style DOS/Windows]- or [http://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention UNC] notation. | A path to a physical file in [http://en.wikipedia.org/wiki/Path_(computing)#MS-DOS.2FMicrosoft_Windows_style DOS/Windows]- or [http://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention UNC] notation. | ||
+ | |||
+ | If the file should be serialized into the database, the [[MetaProperty#Serialize|Serialize]] attribute has to be checked and a [[MetaProperty#Bytestream_Type|Bytestream Type]] must be chosen. Supported types are PNG and JPEG. | ||
===Geographic Coordinate=== | ===Geographic Coordinate=== | ||
Line 34: | Line 36: | ||
===Integer=== | ===Integer=== | ||
− | + | A discrete [http://en.wikipedia.org/wiki/Integer_(computer_science) integer] number. | |
===Text=== | ===Text=== | ||
Line 41: | Line 43: | ||
===XML=== | ===XML=== | ||
Markup text in [http://en.wikipedia.org/wiki/Xml XML] format. | Markup text in [http://en.wikipedia.org/wiki/Xml XML] format. | ||
+ | |||
+ | ===Signature=== | ||
+ | A ByteStream representing a Signature. | ||
+ | |||
+ | [[Category:UBIK Object|MetaProperty]] | ||
==Configuration== | ==Configuration== | ||
Line 51: | Line 58: | ||
* [[#File Reference|File Reference]] | * [[#File Reference|File Reference]] | ||
* [[#XML|XML]] | * [[#XML|XML]] | ||
− | |||
===Multilanguage=== | ===Multilanguage=== | ||
Line 60: | Line 66: | ||
===Selective List=== | ===Selective List=== | ||
− | The [[Selective List | + | The [[SelectiveList|Selective List]] to pick values from instead of providing free input of values. |
===Unit Item=== | ===Unit Item=== | ||
− | The [[Unit Item | + | The [[UnitItem|Unit Item]] that shall be assigned to the value of the property. Only applies to properties of type [[#Floating Point|floating point]]. |
===Format=== | ===Format=== | ||
− | The format how a numeric value should be displayed. Only applies to properties of type [[Floating Point|floating point]]. Some examples: | + | ==== Numeric ==== |
+ | The format how a numeric value should be displayed. Only applies to properties of type [[#Floating Point|floating point]]. Some examples: | ||
* #.### will result in a number with a maximum of 3 digits right of the decimal point | * #.### will result in a number with a maximum of 3 digits right of the decimal point | ||
Line 76: | Line 83: | ||
{{Attention|Please be ware that the result of the formatting is also depending on the regional/cultural settings of your machine}} | {{Attention|Please be ware that the result of the formatting is also depending on the regional/cultural settings of your machine}} | ||
+ | |||
+ | ==== File Reference ==== | ||
+ | For a file reference property, a list of supported file extensions can be supplied so that the file selection on the client is constrained to certain file types. | ||
+ | |||
+ | Example: the format string ''*.xls; *.xlsx'' will allow allow selection of Excel files on the client for this property. | ||
+ | |||
+ | ==== Text ==== | ||
+ | For a [[#Text|text/string property]], a format string can be used to limit the number of characters client users are allowed to enter. | ||
+ | * To specify a lower bound, use e.g. <code>Length[10]</code> which requires a text input of at least 10 characters; | ||
+ | * To specify a lower bound and an upper bound, use e.g. <code>Length[10;20]</code> which requires a text input of 10 to 20 characters. | ||
+ | |||
+ | {{Hint|<code>Length[0;X]</code> should be used when you only want to specify an upper bound since there's always a lower bound of 0. Note: <code>X</code> has to be an actual number, it doesn't work as a wildcard. For example, <code>Length[10;X]</code> doesn't mean a length greater than 10. Instead, the entire format string will be considered invalid and ignored.}} | ||
+ | |||
+ | [[Category:UBIK Object|MetaProperty]] | ||
===Value Validation=== | ===Value Validation=== | ||
+ | Provide absolute lower and upper limits as well as a warning scope for the property values. The system evaluates the configured validation object as | ||
+ | * Value will be discarded if it exceeds lower or upper limits | ||
+ | * Input field will be marked with a yellow border if the value is within the warning boundaries | ||
− | ===Needs Validation=== | + | ===Meta Attribute=== |
+ | If an [[Attribute]] object has been set the system will automatically store extended information for a property value, for example a validation time stamp. | ||
+ | ====Needs Validation==== | ||
+ | {{Attention|Replaced by [[UBIK Attributes]] technique since Version 2.5!}} | ||
===Default value=== | ===Default value=== | ||
− | The default value of a MetaProperty defines which value will be | + | The default value of a MetaProperty defines which value will be displayed on the client by a property if it doesn't have an own value set. |
===Initial value=== | ===Initial value=== | ||
− | The initial value of a MetaProperty defines which value will be set to the property initially when a new instance of it is created. Once the value is changed, the initial value is lost for this instance. | + | The initial value of a MetaProperty defines which value will be set to the property initially when a new instance of it is created. This can be a constant value, or an [[Offline Expression]] that is evaluated on the client. Once the value is changed, the initial value is lost for this instance. |
+ | |||
+ | [[Category:UBIK Object|MetaProperty]] | ||
===Index Keys=== | ===Index Keys=== | ||
+ | Enter the index keys as a comma separated list of strings, for example "a,b,c,d" (INDEXCOUNT = 4). | ||
===Index Count=== | ===Index Count=== | ||
+ | Set the number of named index keys, for example to 4. | ||
===Index Type=== | ===Index Type=== | ||
===Bytestream Type=== | ===Bytestream Type=== | ||
+ | Defines how the data is serialized in the database, possbile types are | ||
+ | * PNG | ||
+ | * JPEG | ||
+ | * Text (string) [but which is not supported by subsequent features yet] | ||
===Order=== | ===Order=== | ||
+ | Defines the ordering of the MetaProperty with an integer number in ascending order, so the lowest number will be first in order. | ||
===Serialize=== | ===Serialize=== | ||
− | If | + | If true, the value of the property will be serialized when it is set or changed. |
===Category=== | ===Category=== | ||
− | The category | + | The category the property shall be assigned to. This is used for grouping purposes in various UI elements, where properties of the same assigned category will be displayed together. |
+ | |||
+ | [[Category:UBIK Object|MetaProperty]] | ||
==Editing a MetaProperty== | ==Editing a MetaProperty== | ||
Line 112: | Line 150: | ||
==Released To LiveMode== | ==Released To LiveMode== | ||
A MetaProperty is marked as [[Released_to_LiveMode|released to live mode]] when: | A MetaProperty is marked as [[Released_to_LiveMode|released to live mode]] when: | ||
− | * It is used on at least one [[MetaClass]] which is already | + | * It is used on at least one [[MetaClass]] which is already released. |
− | * It is referenced by at least one [[PoolMetaProperty]] which is used on at least one [[MetaClass]] which is already | + | * It is referenced by at least one [[PoolMetaProperty]] which is used on at least one [[MetaClass]] which is already released. |
Editing a released MetaProperty is restricted to properties that have no effect on the released table structure. The System uses a [[Rule]] to validate the edited properties and creates a [[RuleViolation]] whenever a "locked" property is edited. | Editing a released MetaProperty is restricted to properties that have no effect on the released table structure. The System uses a [[Rule]] to validate the edited properties and creates a [[RuleViolation]] whenever a "locked" property is edited. | ||
Line 127: | Line 165: | ||
==See also== | ==See also== | ||
− | * [[ | + | * [[Metaclass]] |
− | * [[ | + | * [[Requirements_for_a_Metaproperty|Requirements]] |
− | * [[Create_a_new_MetaProperty|Create a new MetaProperty]] | + | * [[HowTo:Create_a_new_MetaProperty|Create a new MetaProperty]] |
− | [[Category:UBIK Object]] | + | [[Category:UBIK Object|MetaProperty]] |
Latest revision as of 15:36, 12 January 2022
In UBIK®, a Metaproperty describes a single feature of a certain Metaclass. A Metaproperty will never hold own values, but it serves as a definition for a resulting BaseProperty on a derived ContentClass.
For enhanced reuse, MetaProperties can be organized in a Pool and linked to many MetaClasses, using the Systemrelation MetaProperty
Contents
- 1 Data Types
- 2 Configuration
- 3 Editing a MetaProperty
- 4 Released To LiveMode
- 5 See also
Data Types
A MetaProperty needs to have a data type that determines which kind of data should be stored in it. The following data types are currently supported by UBIK®:
Undefined
Default value; will result in an error when attempting to set values.
Boolean
A boolean value that can be either True or false
ByteStream
A serialized stream of bytes, non human readable.
Source Code
A compressed text value, typically used to store texts with lots of white spaces and formatting information, such as source code.
Date/Time
Date and time in a combined value, where the actual format is depending on the cultural/regional settings of the machine.
Floating point
Double-precision floating-point format, optionally with unit of measurement that can be configured with the setting Unit item.
File reference
A path to a physical file in DOS/Windows- or UNC notation.
If the file should be serialized into the database, the Serialize attribute has to be checked and a Bytestream Type must be chosen. Supported types are PNG and JPEG.
Geographic Coordinate
Absolute geographic position combined of Longitude, Latitude and Altitude in WGS84 format.
Guid
A pointer to another object, represented with the GUID of the target object.
Integer
A discrete integer number.
Text
A string value.
XML
Markup text in XML format.
Signature
A ByteStream representing a Signature.
Configuration
A MetaProperty can be configured with various additional options which are described in the following.
String Length
The maximum number of characters for a property value. Only applies to property types that store text values, like
Multilanguage
If set to true, the property will store values in all configured languages. Only applies to properties of type Text.
Reference
The Reference to use for pointing to another UBIK® object. Only applies to properties of type Guid.
Selective List
The Selective List to pick values from instead of providing free input of values.
Unit Item
The Unit Item that shall be assigned to the value of the property. Only applies to properties of type floating point.
Format
Numeric
The format how a numeric value should be displayed. Only applies to properties of type floating point. Some examples:
- #.### will result in a number with a maximum of 3 digits right of the decimal point
- #.0 will result in a number with a 0 or one digit right of the decimal point
For a full list of formatting options please refer to Microsoft's documentation about
Please be ware that the result of the formatting is also depending on the regional/cultural settings of your machine |
File Reference
For a file reference property, a list of supported file extensions can be supplied so that the file selection on the client is constrained to certain file types.
Example: the format string *.xls; *.xlsx will allow allow selection of Excel files on the client for this property.
Text
For a text/string property, a format string can be used to limit the number of characters client users are allowed to enter.
- To specify a lower bound, use e.g.
Length[10]
which requires a text input of at least 10 characters; - To specify a lower bound and an upper bound, use e.g.
Length[10;20]
which requires a text input of 10 to 20 characters.
Value Validation
Provide absolute lower and upper limits as well as a warning scope for the property values. The system evaluates the configured validation object as
- Value will be discarded if it exceeds lower or upper limits
- Input field will be marked with a yellow border if the value is within the warning boundaries
Meta Attribute
If an Attribute object has been set the system will automatically store extended information for a property value, for example a validation time stamp.
Needs Validation
Replaced by UBIK Attributes technique since Version 2.5! |
Default value
The default value of a MetaProperty defines which value will be displayed on the client by a property if it doesn't have an own value set.
Initial value
The initial value of a MetaProperty defines which value will be set to the property initially when a new instance of it is created. This can be a constant value, or an Offline Expression that is evaluated on the client. Once the value is changed, the initial value is lost for this instance.
Index Keys
Enter the index keys as a comma separated list of strings, for example "a,b,c,d" (INDEXCOUNT = 4).
Index Count
Set the number of named index keys, for example to 4.
Index Type
Bytestream Type
Defines how the data is serialized in the database, possbile types are
- PNG
- JPEG
- Text (string) [but which is not supported by subsequent features yet]
Order
Defines the ordering of the MetaProperty with an integer number in ascending order, so the lowest number will be first in order.
Serialize
If true, the value of the property will be serialized when it is set or changed.
Category
The category the property shall be assigned to. This is used for grouping purposes in various UI elements, where properties of the same assigned category will be displayed together.
Editing a MetaProperty
Once a MetaProperty is used on a single MetaClass editing of properties is restricted to properties that may not effect data validity. The System uses a Rule to validate the edited properties and creates a RuleViolation whenever a "locked" property is edited. Following properties may not be changed/edited for a "used" MetaProperty:
- Name
- PropertyType
Released To LiveMode
A MetaProperty is marked as released to live mode when:
- It is used on at least one MetaClass which is already released.
- It is referenced by at least one PoolMetaProperty which is used on at least one MetaClass which is already released.
Editing a released MetaProperty is restricted to properties that have no effect on the released table structure. The System uses a Rule to validate the edited properties and creates a RuleViolation whenever a "locked" property is edited. Following properties may not be changed/edited for a released MetaProperty:
- Name
- PropertyType
- StringLen
- Multilanguage
- Indexcount
- Serialize
- NeedsValidation
- IndexType