...
Page Properties |
---|
| Status | status |
colour | Yellow |
---|
title | progress |
---|
Priority | Product Version |
|
---|
Report Note |
|
---|
Assignee | Antje |
---|
Resources & Remarks Remarks- Antje: page created as a copy of the schema tutorial
- Inga - Review
- Überschriften für Tutorials sind aktiv formuliert - was mache ich ... Using property definitions several times | Overwriting property attribute "required"
- Einsortieren würde ich erst einmal vor dem Tagging in der Navigation
- "property type" (e.g. integer / date / string) vs. "property definition"
- "object type" vs "object type definitions" - siehe z.B. im excerpt
- defined properties are "referenced" in an object type definition vs. "selected"
- Heading "Overwriting by a Secondary Object Type Definition" - An alternative possibility is the usage of a secondary object type on which the object type definition can be based. => verstehe den Satz nicht - was meint hier "based" - "enhanced" und nicht die OTdefinition, sondern die Instanz selbst ...
- "non-static" vs. "floating" - wenn dies dann zur Laufzeit oder direkt beim Import hinzugefügt wird ... fehlt mir noch als Info in dem Absatz
- Ich fände es gut, wie property definition mit in jedem Beispiel aufzuführen - damit der Initalwert sichtbarer ist - sind zwar 6 Zeilen aber wäre mir leichter gefallen zu lesen
- Heading "Handling of Multiple Property References"
- specifying ... es wird nur das Attribut genannt - wäre es nicht sinnvoll dies mit
propertyreference zu erwähnen - CODE - zweiter SOT ist ohne attribute - ist das richtig so? / initial ist es ebenfalls auf
false gesetzt - wird dann überschrieben?
Modification History Name | Date | Product Version | Action |
---|
Antje | 08 FEB 2021 | 2.4 | New page properties macro. |
|
Excerpt |
---|
This tutorial shows how to use reference the same property type definition in different object typestype definitions, in some of them as a required property type and in others as a non-required property type. |
Section |
---|
|
Column |
---|
Table of Contents Table of Contents |
---|
maxLevel | 3 |
---|
exclude | (Table of Contents|Read on|Another Tutorial|Another Concept Article|Another interesting Tutorial|Managing the Schema|Schema - Defining Object Types|DMS Endpoints) |
---|
|
|
|
Introduction
The metadata structure of object types has to be defined in the schema. In this definition, properties are selected referenced that should be connected to the object type. Each property is in turn defined in the schema by the specification of its attributes. The properties can be selected referenced or not selected referenced in object type definitions, but their attributes are fixed and can not cannot be modified. There The required
attribute is the only exception as it can be overwritten by a propertyReference
in object type definitions. This makes it possible to decide for each property individually whether it is required in every single object type definition or not. Since schema structures can even be changed at runtime, yuuvis® Momentum offers a high flexibility in terms of document lifecycle management.
Requirements
To work through this tutorial, the following is required:
- Set-up yuuvis® Momentumsystem (see minikube setup, for example Installation Guide)
- A user with read and write permissions on a document type in the system (see tutorial for permissions)
Overwriting the required
Attribute of Properties
All property definitions in the schema need the specification of the required
attribute. Its boolean value decides if the corresponding property is mandatory (true
) or optional (false
) for an object. However, the value of the required
attribute can be overwritten by a propertyReference
in object type definitions or secondary object type definitions.
Property Definition
In an import management system, documents might may be imported with less properties than they will have lateron in their lifecycle. A freshly imported object for example does not necessarily have an editor. Later in the document lifecycle, this information may be required. By overwriting the required
attribute of the editor
property editor
, it is possible to use the same property throughout the entire lifecycle.
In the example code below, the editor
property is defined. The required
attribute of the editor
property is set to true
. If not overwritten by a propertyReference
, the editor
property will be mandatory for any object of a type including containing the editor
property in its definition.
Code Block |
---|
language | ymlxml |
---|
title | Property definition |
---|
linenumbers | true |
---|
|
<propertyStringDefinition>
<id>editor</id>
<propertyType>string</propertyType>
<cardinality>single</cardinality>
<required>true</required>
</propertyStringDefinition> |
Overwriting Using
...
a Document Type Definition
In an object a document type definition, a propertyReference
can be used to set a value for the required
attribute of a property. This value can be different from the value specified in the property definition. In this case, the value of the required
attribute will have the value soecified be specified in the object document type definition.
Since the editor
property should be optional for an imported1
document, the required
attribute is set to false
by means of a propertyReference
.
Code Block |
---|
language | ymlxml |
---|
title | Overwriting of the required attribute by object document type definition |
---|
linenumbers | true |
---|
|
<propertyStringDefinition>
<id>editor</id>
<propertyType>string</propertyType>
<cardinality>single</cardinality>
<required>true</required>
</propertyStringDefinition>
<typeDocumentDefinition>
<id>imported1</id>
<baseId>system:document</baseId>
<propertyReference required="false">editor</propertyReference>
<contentStreamAllowed>allowed</contentStreamAllowed>
</typeDocumentDefinition> |
Overwriting Using a Secondary Object Type Definition
An alternative possibility is using a option to reference a property in an object type definition is to include a floating secondary object type on which . In the secondary object type definition can be based. Also, a propertyReference
can be used to set a value for the required
attribute for a property in the definition of the secondary object type. The required
attribute value specified in the original property definition is again overwritten.
In the example code below, the editor
property is not included directly in the imported2
document type definition. But it is based on the non-static (floating) secondary object type noeditor
. The definition of noeditor
uses the editor
property and sets its required
attribute to false
by means of a propertyReference
. Thus, for objects documents of the type imported2
, the editor
property will be available and optional.
Code Block |
---|
language | ymlxml |
---|
title | Overwriting of the required attribute by secondary object type definition |
---|
linenumbers | true |
---|
|
<propertyStringDefinition>
<id>editor</id>
<propertyType>string</propertyType>
<cardinality>single</cardinality>
<required>true</required>
</propertyStringDefinition>
<typeDocumentDefinition>
<id>imported2</id>
<baseId>system:document</baseId>
<contentStreamAllowed>allowed</contentStreamAllowed>
<secondaryObjectTypeId static="false">noeditor</secondaryObjectTypeId>
</typeDocumentDefinition>
<typeSecondaryDefinition>
<id>noeditor</id>
<baseId>system:secondary</baseId>
<propertyReference required="false">editor</propertyReference>
</typeSecondaryDefinition> |
Handling Multiple Property References
In an object a document type definition, it is possible to set a value for the required
attribute of a property, and additionally include multiple secondary object types specifying the required
attribute for the same property as well. If at least one definition implies required=true
, this attribute will be true
for every object document of the corresponding type. The value true
dominates over false
regardless of the location of the propertyReference
.
In the example code below, an object a document type imported3
is defined. The editor
property is included, but the required
attribute is overwritten to false
. Thus, which makes the editor
property would be property optional. However, the two secondary object types noeditor
and witheditor
may have different values specified for the required
attribute of the editor
property.
Code Block |
---|
language | ymlxml |
---|
title | Object Document type definition and secondary object type definitions |
---|
linenumbers | true |
---|
|
<propertyStringDefinition>
<id>editor</id>
<propertyType>string</propertyType>
<cardinality>single</cardinality>
<required>true</required>
</propertyStringDefinition>
<typeDocumentDefinition>
<id>imported3</id>
<baseId>system:document</baseId>
<propertyReference required="false">editor</propertyReference>
<contentStreamAllowed>allowed</contentStreamAllowed>
<secondaryObjectTypeId static="false">noeditor</secondaryObjectTypeId>
<secondaryObjectTypeId static="false">witheditor</secondaryObjectTypeId>
</typeDocumentDefinition>
<typeSecondaryDefinition>
<id>noeditor</id>
<baseId>system:secondary</baseId>
<propertyReference required="false">editor</propertyReference>
</typeSecondaryDefinition>
<typeSecondaryDefinition>
<id>witheditor</id>
<baseId>system:secondary</baseId>
<propertyReference>editor</propertyReference>
</typeSecondaryDefinition> |
The definition of the secondary object type noeditor
overwrites the required
attribute of the editor
property to false
. This value equals the specification in the imported3
object document type definition. In contrast, the definition of witheditor
includes the editor
property by means of a propertyReference
but does not explicitly specify a value for the required
attribute. This means that the value true
from the property definition will be used for witheditor
.
If an object a document of type imported3
has none of the two secondary object types, the editor
property is optional.
If an object a document of type imported3
has the secondary object type noeditor
, nothing changes. The editor
property is still optional.
But if an object a document of type imported3
has the secondary object type witheditor
, the property editor
is mandatory in this object.
Summary
This tutorial gave an introduction into the possibilities provided by the option of overwriting the required
attribute of properties. Since this topic plays a role in the handling of the schema, also the following pages might be interesting for to you.
Info |
---|
|
Read on
Section |
---|
Column |
---|
| Insert excerpt |
---|
| Managing the Schema |
---|
| Managing the Schema |
---|
nopanel | true |
---|
| Keep reading
|
Column |
---|
| Insert excerpt |
---|
| Schema - Defining Object Types |
---|
| Schema - Defining Object Types |
---|
nopanel | true |
---|
| Keep reading |
Column |
---|
| To update the instance of an object type with the property group of a floating secondary object type as well as specific values use one of the two endpoints for updating metadata. Keep reading |
|
|
...