Changes

MetaProperty

8,334 bytes added, 15:36, 12 January 2022
/* Text */
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]].
== Basics ==For enhanced reuse, MetaProperties can be organized in a Pool and linked to many MetaClasses, using the [[SYSREL_METAPROPERTY|Systemrelation MetaProperty]]
In UBIK, a ==Data Types==A MetaProperty describes needs to have a single feature data type that determines which kind of a certain [[MetaClass]]. A MetaProperty will never hold own values, but data should be stored in it serves as a definition for a resulting [[BaseProperty]] on a derived [[ContentClass]].The following data types are currently supported by {{UBIK}}:
For enhanced reuse===Undefined===Default value; will result in an error when attempting to set values. ===Boolean===A [http://en.wikipedia.org/wiki/Boolean_data_type#ALGOL.2C_Java.2C_and_C.23 boolean] value that can be either True or false ===ByteStream===A serialized stream of bytes, MetaProperties 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===[http://en.wikipedia.org/wiki/Double-precision_floating-point_format Double-precision floating-point format], optionally with unit of measurement that can be organized configured with the setting [[#Unit Item|Unit item]]. ===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. If the file should be serialized into the database, the [[MetaProperty#Serialize|Serialize]] attribute has to be checked and a Pool [[MetaProperty#Bytestream_Type|Bytestream Type]] must be chosen. Supported types are PNG and linked JPEG. ===Geographic 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. ===Guid===A pointer to many MetaClassesanother object, using represented with the [http://en.wikipedia.org/wiki/Globally_unique_identifier GUID] of the target object. ===Integer===A discrete [SYSREL_METAPROPERTYhttp://en.wikipedia.org/wiki/Integer_(computer_science) integer] number. ===Text===A [http://en.wikipedia.org/wiki/String_(computer_science) string] value. ===XML===Markup text in [http://en.wikipedia.org/wiki/Xml XML] format. ===Signature===A ByteStream representing a Signature. [[Category:UBIK Object|Systemrelation MetaProperty]] ==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* [[#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 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==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_LiveMode|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 ==See also==* [[Metaclass]]* [[Requirements_for_a_Metaproperty|Requirements]]* [[HowTo:Create_a_new_MetaProperty|Create a new MetaProperty]]
[[Category:UBIK Object|MetaProperty]]