Changes

MetaProperty

4,440 bytes added, 15:36, 12 January 2022
/* Text */
==Basics==In {{UBIK}}, a MetaProperty Metaproperty describes a single feature of a certain [[MetaClassMetaclass]]. A MetaProperty Metaproperty will never hold own values, but it serves as a definition for a resulting [[BaseProperty]] on a derived [[Instance|ContentClass]].
For enhanced reuse, MetaProperties can be organized in a Pool and linked to many MetaClasses, using the [[SYSREL_METAPROPERTY|Systemrelation MetaProperty]]
==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 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. ===Geo DataGeographic Coordinate===
Absolute geographic position combined of [http://en.wikipedia.org/wiki/Longitude Longitude], [http://en.wikipedia.org/wiki/Latitude Latitude] and [http://en.wikipedia.org/wiki/Altitude Altitude] in [http://en.wikipedia.org/wiki/World_Geodetic_System WGS84] format.
===Integer===
An A discrete [http://en.wikipedia.org/wiki/Integer_(computer_science) integer] number.
===Text===
===XML===
Markup text in [http://en.wikipedia.org/wiki/Xml XML] format.
 
===Signature===
A ByteStream representing a Signature.
 
[[Category:UBIK Object|MetaProperty]]
==Configuration==
===String Length===
The maximum number of characters for a property value. Only applies to property types that store text values, like
* [[#Text|Text]]
* [[#Source Code|Source Code]]
* [[#File Reference|File Reference]]
* [[#XML|XML]]
===Multilanguage===
If set to true, the property will store values in all configured languages. Only applies to properties of type [[#Text|Text]].
===Reference===
The [[Reference|reference]] to use for pointing to another {{UBIK}} object. Only applies to properties of type [[#Guid|Guid]].
===Selective List===
The [[SelectiveList|Selective List]] to pick values from instead of providing free input of values.
===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===
==== 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
* #.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
* [http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.100).aspx standard numeric format strings] and
* [http://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.100).aspx custom numeric format strings]
 
{{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===
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===={{Attention|Replaced by [[UBIK Attributes]] technique since Version 2.5!}}
===Default value===
The default value of a MetaProperty defines which value will be delivered 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. [[Category:UBIK Object|MetaProperty]]
===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.
[[Category:UBIK Object|MetaProperty]]
==Editing a MetaProperty==
==Released To LiveMode==
A MetaProperty is marked as [[Released_to_LiveMode|released to live mode]] when:
* It is used on at least one [[MetaClass]] which is already [[Released_to_LiveMode|released]].* It is referenced by at least one [[PoolMetaProperty]] which is used on at least one [[MetaClass]] which is already [[Released_to_LiveMode|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.
==See also==
* [[MetaClassMetaclass]]* [[Requirements_for_a_MetaPropertyRequirements_for_a_Metaproperty|Requirements]]* [[HowTo:Create_a_new_MetaProperty|Create a new MetaProperty]]
[[Category:UBIK Object|MetaProperty]]