<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wikitest.augmensys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KGR</id>
		<title>UBIK Wiki Test / Augmensys - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wikitest.augmensys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KGR"/>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Special:Contributions/KGR"/>
		<updated>2026-04-29T15:55:37Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29734</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29734"/>
				<updated>2026-04-27T09:07:51Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Customizing / UI Integration (XAML Examples) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= {{UBIK}} Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''{{UBIK}} Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances ({{UBIK}} objects). Unlike traditional {{UBIK}} Properties, which are rigidly bound to a MetaClass, instances of the same entity can contain a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular {{UBIK}} Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
TraitByName is a dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the {{UBIK}} content.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== XAML Customizing / UI Integration ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard {{UBIK}} controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. &lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29733</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29733"/>
				<updated>2026-04-27T09:05:49Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* 3. Values (Raw Data) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= {{UBIK}} Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''{{UBIK}} Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances ({{UBIK}} objects). Unlike traditional {{UBIK}} Properties, which are rigidly bound to a MetaClass, instances of the same entity can contain a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular {{UBIK}} Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
TraitByName is a dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the {{UBIK}} content.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard {{UBIK}} controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29732</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29732"/>
				<updated>2026-04-27T09:05:21Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* 2. TraitByName (Traits Only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= {{UBIK}} Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''{{UBIK}} Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances ({{UBIK}} objects). Unlike traditional {{UBIK}} Properties, which are rigidly bound to a MetaClass, instances of the same entity can contain a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular {{UBIK}} Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
TraitByName is a dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the {{UBIK}} content.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard {{UBIK}} controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29731</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29731"/>
				<updated>2026-04-27T08:45:17Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= {{UBIK}} Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''{{UBIK}} Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances ({{UBIK}} objects). Unlike traditional {{UBIK}} Properties, which are rigidly bound to a MetaClass, instances of the same entity can contain a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular {{UBIK}} Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
A dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the {{UBIK}} content.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard {{UBIK}} controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29730</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29730"/>
				<updated>2026-04-27T08:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* UBIK Traits (Client) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= {{UBIK}} Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''{{UBIK}} Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances (objects). Unlike traditional {{UBIK}} Properties, which are rigidly bound to a MetaClass, instances of the same entity can possess a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular {{UBIK}} Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
A dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the {{UBIK}} content.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard {{UBIK}} controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29727</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29727"/>
				<updated>2026-04-24T12:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UBIK Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''UBIK Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances (objects). Unlike traditional UBIK Properties, which are rigidly bound to a MetaClass, instances of the same entity can possess a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular UBIK Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
A dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the UBIKContent.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard UBIK controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Traits]]&lt;br /&gt;
[[Category:Mobile|Traits]]&lt;br /&gt;
[[Category:MAUI|Traits]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29726</id>
		<title>Traits</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Traits&amp;diff=29726"/>
				<updated>2026-04-24T11:44:37Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: Created page with &amp;quot;= UBIK Traits (Client) =  '''UBIK Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances (objects). Unlike traditional UBIK...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UBIK Traits (Client) =&lt;br /&gt;
&lt;br /&gt;
'''UBIK Traits''' provide the ability to define a dynamic list of lightweight properties for individual instances (objects). Unlike traditional UBIK Properties, which are rigidly bound to a MetaClass, instances of the same entity can possess a different list of traits. &lt;br /&gt;
&lt;br /&gt;
This feature is particularly useful for data that only becomes known at runtime or varies significantly from instance to instance.&lt;br /&gt;
&lt;br /&gt;
{{Attention|This feature must be used wisely, too many traits could impact the performance. Traits do not replace properties.}}&lt;br /&gt;
&lt;br /&gt;
== ViewModel Architecture &amp;amp; Data Access ==&lt;br /&gt;
To work with traits in the UI (XAML), the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; provides several dedicated accessors and collections. &lt;br /&gt;
&lt;br /&gt;
=== 1. ValueAccessors (Recommended for Read/Write) ===&lt;br /&gt;
The &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; acts as a combined dynamic value resolver. It is the '''preferred way''' to read or edit values in the UI because of its built-in fallback logic:&lt;br /&gt;
# '''Trait Lookup:''' First attempts to resolve the value via a trait with the specified name.&lt;br /&gt;
# '''Property Fallback:''' If no trait is found, it queries a regular UBIK Property with that name.&lt;br /&gt;
# '''Default:''' If neither exists, it returns &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 2. TraitByName (Traits Only) ===&lt;br /&gt;
A dedicated collection (&amp;lt;code&amp;gt;ObservableTraitDictionary&amp;lt;/code&amp;gt;) that exclusively loads and initializes traits. Unlike the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt;, this does not fall back to regular properties.&lt;br /&gt;
* '''Usage:''' When you explicitly want to query ''only'' traits (e.g., read-only display in the UI).&lt;br /&gt;
&lt;br /&gt;
=== 3. Values (Raw Data) ===&lt;br /&gt;
This is a combined getter that returns the raw value directly from the dictionary, instead of providing a complex &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PropertyViewModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Usage:''' For pure display purposes or evaluations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commands (Set &amp;amp; Create Values) ==&lt;br /&gt;
&lt;br /&gt;
=== SetValueCommand ===&lt;br /&gt;
This command on the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; orchestrates value assignments and handles the '''creation of new traits''' if necessary.&lt;br /&gt;
* '''If the trait exists:''' The value will be overwritten.&lt;br /&gt;
* '''If a property exists:''' The property's value will be overwritten (if it is not locked/read-only).&lt;br /&gt;
* '''If neither exists:''' A new &amp;lt;code&amp;gt;TraitViewModel&amp;lt;/code&amp;gt; is created and added to the UBIKContent.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Customizing / UI Integration (XAML Examples) ==&lt;br /&gt;
&lt;br /&gt;
To display traits in custom XAML templates, make them editable, or create new ones, standard UBIK controls like &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt; are used. Here are real-world code examples to guide you:&lt;br /&gt;
&lt;br /&gt;
=== 1. Pure Display of All Traits (List View) ===&lt;br /&gt;
If you simply want to display all traits of an object, you can bind directly to &amp;lt;code&amp;gt;Content.Traits&amp;lt;/code&amp;gt;. Here, it is combined with the Syncfusion ListView (&amp;lt;code&amp;gt;SfListViewExt&amp;lt;/code&amp;gt;):&lt;br /&gt;
{{Attention| With that you only bind on DataModel level (changes on viewmodel level are only visible after saving).}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:SfListViewExt ItemsSource=&amp;quot;{Binding Content.Traits}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;
            &amp;lt;Border Padding=&amp;quot;10,8&amp;quot; BackgroundColor=&amp;quot;#FAFAFA&amp;quot; Stroke=&amp;quot;#E0E0E0&amp;quot; StrokeShape=&amp;quot;RoundRectangle 8&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Grid ColumnDefinitions=&amp;quot;0.4*, 0.6*&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;0&amp;quot; FontAttributes=&amp;quot;Bold&amp;quot; Text=&amp;quot;{Binding Name}&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;Label Grid.Column=&amp;quot;1&amp;quot; Text=&amp;quot;{Binding Value, TargetNullValue='Not found'}&amp;quot; TextColor=&amp;quot;#555555&amp;quot; VerticalTextAlignment=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/Grid&amp;gt;&lt;br /&gt;
            &amp;lt;/Border&amp;gt;&lt;br /&gt;
        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:SfListViewExt.ItemTemplate&amp;gt;&lt;br /&gt;
&amp;lt;/controls:SfListViewExt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit a Single Trait or Property (via ValueAccessors) ===&lt;br /&gt;
To dynamically query and edit a specific trait, use the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;ValueAccessors&amp;lt;/code&amp;gt; context. The &amp;lt;code&amp;gt;TwoWay&amp;lt;/code&amp;gt; binding ensures that changes are written directly back to the ViewModel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalS2&amp;quot; Context=&amp;quot;{Binding ValueAccessors}&amp;quot; Expression=&amp;quot;Context[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference S2NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2NameInput&amp;quot; Placeholder=&amp;quot;Enter name...&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;S2ValueInput&amp;quot; Text=&amp;quot;{Binding Result.Value, Source={x:Reference EvalS2}, Mode=TwoWay, FallbackValue='Not found'}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Delete a Trait ===&lt;br /&gt;
Deleting a trait does not require a dedicated command. Instead, it uses an event behavior to directly invoke the &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; method on the evaluator's result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Button Text=&amp;quot;Delete&amp;quot; BackgroundColor=&amp;quot;#D32F2F&amp;quot; TextColor=&amp;quot;White&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.Behaviors&amp;gt;&lt;br /&gt;
        &amp;lt;behaviors:EventHandlerBehavior EventName=&amp;quot;Clicked&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;behaviors:InvokeMethodAction TargetObject=&amp;quot;{Binding Result, Source={x:Reference EvalS2}}&amp;quot; MethodName=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/behaviors:EventHandlerBehavior&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.Behaviors&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Create or Overwrite a Trait (via SetValueCommand) ===&lt;br /&gt;
To create traits entirely from scratch (or explicitly overwrite an existing value), the &amp;lt;code&amp;gt;SetValueCommand&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;ContentViewModel&amp;lt;/code&amp;gt; is used. A &amp;lt;code&amp;gt;KeyValueList&amp;lt;/code&amp;gt; must be passed to this command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid ColumnDefinitions=&amp;quot;*, Auto&amp;quot; ColumnSpacing=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4NameInput&amp;quot; Placeholder=&amp;quot;Name of the (new) trait...&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Entry x:Name=&amp;quot;S4ValueInput&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Placeholder=&amp;quot;Enter value to set...&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button Grid.Column=&amp;quot;1&amp;quot; Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4NameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference S4ValueInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
        &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
    &amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Edit Specific Datatypes (e.g., DatePicker) ===&lt;br /&gt;
Traits store actual underlying datatypes (such as &amp;lt;code&amp;gt;DateTime&amp;lt;/code&amp;gt;). This means you can bind regular UI controls like a &amp;lt;code&amp;gt;DatePicker&amp;lt;/code&amp;gt; directly to the result of the &amp;lt;code&amp;gt;EvalExpression&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controls:EvalExpression x:Name=&amp;quot;EvalDateTime&amp;quot; Context=&amp;quot;{Binding}&amp;quot; Expression=&amp;quot;Context.ValueAccessors[P0]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/controls:EvalExpression&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Entry x:Name=&amp;quot;DateTraitNameInput&amp;quot; Text=&amp;quot;TRAIT_DATETIME&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DatePicker x:Name=&amp;quot;DateTestPicker&amp;quot; Date=&amp;quot;{Binding Result.Value, Source={x:Reference EvalDateTime}}&amp;quot; Format=&amp;quot;dd.MM.yyyy&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Button Command=&amp;quot;{Binding SetValueCommand}&amp;quot; Text=&amp;quot;Set&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
        &amp;lt;classes:KeyValueList&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyName&amp;quot; Value=&amp;quot;{Binding Text, Source={x:Reference DateTraitNameInput}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;classes:KeyValueParameter Key=&amp;quot;PropertyValue&amp;quot; Value=&amp;quot;{Binding Date, Source={x:Reference DateTestPicker}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/classes:KeyValueList&amp;gt;&lt;br /&gt;
    &amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29594</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29594"/>
				<updated>2026-03-17T11:02:58Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|Document properties on WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Document properties on Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail or clicking on the &amp;quot;open external&amp;quot; button inside of the document viewer, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button Mobile Client]]&lt;br /&gt;
[[File:DocumentViewerButton_WinX.png|350px|Left-swipe button WinX Client]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29593</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29593"/>
				<updated>2026-03-17T11:01:31Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|Document properties on WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Document properties on Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail or clicking on the &amp;quot;open external&amp;quot; button inside of the document viewer, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button Mobile client]]&lt;br /&gt;
[[File:DocumentViewerButton_WinX.png|350px|Left-swipe button WinX client]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29592</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29592"/>
				<updated>2026-03-17T10:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|Document properties on WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Document properties on Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail or clicking on the &amp;quot;open external&amp;quot; button inside of the document viewer, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
[[File:DocumentViewerButton_WinX.png|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:DocumentViewerButton_WinX.png&amp;diff=29591</id>
		<title>File:DocumentViewerButton WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:DocumentViewerButton_WinX.png&amp;diff=29591"/>
				<updated>2026-03-17T10:58:38Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29590</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29590"/>
				<updated>2026-03-17T10:52:16Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Image Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|Document properties on WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Document properties on Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29589</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29589"/>
				<updated>2026-03-17T10:51:54Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing or Editing the Object Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|Document properties on WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Document properties on Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29588</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29588"/>
				<updated>2026-03-17T10:47:58Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|Thumbnail preview on WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|Thumbnail preview on MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29585</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29585"/>
				<updated>2026-03-16T09:52:57Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing or Editing the Object Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. The way properties are displayed depends on the client being used. On the '''WinX''' client, the properties are shown directly on the right side of the document viewer. On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_WinX_Client_Basics&amp;diff=29584</id>
		<title>UBIK WinX Client Basics</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_WinX_Client_Basics&amp;diff=29584"/>
				<updated>2026-03-16T09:43:29Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UBIK}} Client is the mobile application for viewing and modifying data, showing documents, starting navigation, visualizing POIs and much more.&lt;br /&gt;
&lt;br /&gt;
Client applications are available for Mobile and WinX, however the features available on each of the platform dependent applications might differ. An overview of the available features can be found in the [[Client_Feature_Table|feature comparison table]].&lt;br /&gt;
&lt;br /&gt;
== Languages ==&lt;br /&gt;
The standard {{UBIK}} client supports multiple languages listed below. {{Version/WinXSince|4.3}}&lt;br /&gt;
* Chinese (Simplified)&lt;br /&gt;
* Czech&lt;br /&gt;
* English&lt;br /&gt;
* German&lt;br /&gt;
* Polish&lt;br /&gt;
* Portuguese&lt;br /&gt;
* Spanish&lt;br /&gt;
{{Attention|As we found out, you can only switch to one of the supported languages if it is installed as a system language in the Windows &amp;quot;Preferred languages / Add a language&amp;quot; setting. For example, if you have only English installed when you install {{UBIK}}, you won't be able to switch to any other languages even if you add those later. In that case, you need to make sure your language of choice is installed in Windows first, then update or reinstall {{UBIK}}. This is a Microsoft Store practice and does not apply to clients installed through sideloading, e.g. from our AppCenter.}}&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
Users need to login in order to access confidential data, this can be done in the [[Login View]].&lt;br /&gt;
&lt;br /&gt;
=== Confirm login === &lt;br /&gt;
{{Version/WinXSince|3.6}}&lt;br /&gt;
Certain pages might require to confirm the login data, even if the user is already logged in. This can be done in the following way: The CheckUserOfflineCommand needs to be called with the username and password as parameter, if the login was valid, the CheckUserOfflineSuccess boolean property is set to true, which causes the text &amp;quot;Login confirmed&amp;quot; to appear in the example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TextBox&lt;br /&gt;
	x:Name=&amp;quot;Sign01User&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&lt;br /&gt;
	PlaceholderText=&amp;quot;User&amp;quot;&lt;br /&gt;
	Text=&amp;quot;{Binding UserName}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;PasswordBox&lt;br /&gt;
	x:Name=&amp;quot;Sign01PW&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&lt;br /&gt;
	PlaceholderText=&amp;quot;Password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
	Command=&amp;quot;{Binding CheckUserOfflineCommand}&amp;quot;&lt;br /&gt;
	Content=&amp;quot;Confirm login&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
		&amp;lt;uc:KeyValueList&amp;gt;&lt;br /&gt;
			&amp;lt;uc:KeyValueParameter Key=&amp;quot;UserName&amp;quot; Value=&amp;quot;{Binding ElementName=Sign01User, Path=Text}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;uc:KeyValueParameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;{Binding ElementName=Sign01PW, Path=Password}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/uc:KeyValueList&amp;gt;&lt;br /&gt;
	&amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;TextBlock Text=&amp;quot;Login confirmed&amp;quot; Visibility=&amp;quot;{Binding AuthenticationViewModel.CheckUserOfflineSuccess, Source={StaticResource Locator}, FallbackValue=false, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
Profiles are used to store connection information for {{UBIK}} services. It specifies the location where to find the service along with other useful informations. Profiles are stored by UBIK whenever the user created connection information and stored it in the settings. However, profiles can also be created and edited with any text editor. Possible settings to be defined are:&lt;br /&gt;
* InternalConnectionSettings: Connections settings how to connect to the Content and the USAM service that has been set up.&lt;br /&gt;
** Application: the [[APPLICATION]] to use with the service&lt;br /&gt;
** AuthenticationPort: Port Number of the authentication (USAM) service (default: 777)&lt;br /&gt;
** AuthenticationProtocol: Protocol of the authentication service (default: https)&lt;br /&gt;
** AuthenticationServer: the ip address of the authentication server&lt;br /&gt;
** AuthenticationService: the path to the authentication service&lt;br /&gt;
** ContentPort: Port Number of the content service (default: 777)&lt;br /&gt;
** ContentProtocol: Protocol of the content service (default: https)&lt;br /&gt;
** ContentServer: the ip address of the content server&lt;br /&gt;
** ContentService: the path to the content service&lt;br /&gt;
** Context: the [[CONTEXT]] to use with the service&lt;br /&gt;
** SyncMode: the used sync mode (Online [= Auto], Manual, Offline; default:Online)&lt;br /&gt;
* IsDefault: true, if the profile should be the default profile&lt;br /&gt;
* Name: the name of the profile (will also be used to identify the database)&lt;br /&gt;
** If the profile name contains invalid characters like: /, &amp;quot;, &amp;lt;, &amp;gt;, ... they will be replaced with %_&lt;br /&gt;
* Project: the project name. Use this to share a single project name with more than one profile. If the project is defined, all profile with the same project will share one database.&lt;br /&gt;
* Customizing: the XAML subfolder to use for customized UI. This parameter can be used to share one single XAML customizing folder for multiple profiles.&lt;br /&gt;
* ShowHiddenSettings: show hidden settings (feault: false)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Profile xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns=&amp;quot;http://schemas.datacontract.org/2004/07/UBIK.WinX.Settings&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Customizing&amp;gt;MYAPPLICATIONUI&amp;lt;/Customizing&amp;gt;&lt;br /&gt;
  &amp;lt;Description i:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;InternalConnectionSettings&amp;gt;&lt;br /&gt;
    &amp;lt;Application&amp;gt;APP_DEMO&amp;lt;/Application&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationPort&amp;gt;777&amp;lt;/AuthenticationPort&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationProtocol&amp;gt;https&amp;lt;/AuthenticationProtocol&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationServer&amp;gt;80.243.175.50&amp;lt;/AuthenticationServer&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationService&amp;gt;UBIK/DBG/AUG/DEMO.250/USAM/USAM.svc&amp;lt;/AuthenticationService&amp;gt;&lt;br /&gt;
    &amp;lt;ContentPort&amp;gt;777&amp;lt;/ContentPort&amp;gt;&lt;br /&gt;
    &amp;lt;ContentProtocol&amp;gt;https&amp;lt;/ContentProtocol&amp;gt;&lt;br /&gt;
    &amp;lt;ContentServer&amp;gt;80.243.175.50&amp;lt;/ContentServer&amp;gt;&lt;br /&gt;
    &amp;lt;ContentService&amp;gt;UBIK/DBG/AUG/DEMO.250/CONTENT/UBIKContent.svc&amp;lt;/ContentService&amp;gt;&lt;br /&gt;
    &amp;lt;Context&amp;gt;CXT_DEMO&amp;lt;/Context&amp;gt;&lt;br /&gt;
    &amp;lt;SyncMode&amp;gt;Online&amp;lt;/SyncMode&amp;gt;&lt;br /&gt;
  &amp;lt;/InternalConnectionSettings&amp;gt;&lt;br /&gt;
  &amp;lt;IsDefault&amp;gt;true&amp;lt;/IsDefault&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;DEMO.250.AT&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Project&amp;gt;DEMO.250&amp;lt;/Project&amp;gt;&lt;br /&gt;
  &amp;lt;ShowHiddenSettings&amp;gt;false&amp;lt;/ShowHiddenSettings&amp;gt;&lt;br /&gt;
&amp;lt;/Profile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Content Browser ==&lt;br /&gt;
Allows to navigate through the entire data model in a hierarchical manner, as it is published by the server.&lt;br /&gt;
&lt;br /&gt;
Initially, a list of objects (&amp;quot;root objects&amp;quot;) is shown. Upon selecting an object, a new browser is opened for that object, showing details about it. When an object is selected in the content browser, it is called the browser's context. For such a contextual object, child objects and selected properties are shown. Also, there is a context menu providing actions related to the currently selected object. &lt;br /&gt;
&lt;br /&gt;
=== Status Bar ===&lt;br /&gt;
==== Saving Indicator ====&lt;br /&gt;
[[File:UI_WinX_DbSavingIndicator.PNG|300 px|thumb|border|alt=Saving Symbol|Saving Symbol]]&lt;br /&gt;
{{Version/WinXSince|2.5.4}}Whenever content is being saved into the local database (for example, after a branch is downloaded from the server), there will be a blinking symbol indicating the saving activity is happening in the background.&lt;br /&gt;
During that time, the user is advised to not logout or close the app because the content might be lost otherwise. However, it is okay to undertake other tasks such as browsing, editing or downloading branches.&lt;br /&gt;
&lt;br /&gt;
==== Uncommitted Changes Indicator ====&lt;br /&gt;
{{Version/WinXSince|4.6.0}} When there are uncommitted changes it is indicated by a button in the Status Bar displaying an icon and the number of uncommitted changes. Pressing this button opens a fly out list with all of the objects that have uncommitted changes to them. Pressing one of those list objects navigates directly to the corresponding object. The Uncommitted Changes Indicator button is only shown when there are uncommitted changes otherwise it is not visible. When in online mode all changes should be committed automatically so the Indicator is mainly useful in Manual or Offline Sync Mode.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Version/WinXSince|4.7.0}} Queries are now excluded from uncommitted changes.&lt;br /&gt;
&lt;br /&gt;
=== Child Page ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChildPage.PNG|400 px|thumb|border|alt=Child Page|Child Page]]&lt;br /&gt;
&lt;br /&gt;
The child page shows the context of a selected object. &lt;br /&gt;
&lt;br /&gt;
The global status bar shows the icon, the name and the description of the selected object. An arrow on the left side allows the user to navigate back to the parent object. On the right side the currently logged-in user is indicated. By clicking on the username one is able to navigate back to the home screen or log off.&lt;br /&gt;
&lt;br /&gt;
The right side of the child page shows child objects of the current object. Each child object is represented by an icon, a name and a description. With the [[SYSCLS_CHILDINFOOWNER|child info owner classification]], one can additionally show the number of documents and regular grandchildren to be expected for a child object.&lt;br /&gt;
&lt;br /&gt;
On the left side of the child page the current object´s high priority properties are shown. By clicking on a live value property, the live value details dialog opens. By clicking on an editable [[UBIK_WinX_Client_Basics#High_priority_properties| high priority property]], an editor opens {{Version/WinXSince|2.5.4}}. If a property was edited a save button is shown in the lower left corner, allowing the user to commit the changes. If a property of a query object was edited an evaluate button is shown in the lower left corner, allowing the user to run the query with the changed propery.&lt;br /&gt;
&lt;br /&gt;
=== Properties Page ===&lt;br /&gt;
&lt;br /&gt;
On the properties page, one can see a list of all the current object's visible properties, and, given the respective rights, a possibility to edit them.&lt;br /&gt;
&lt;br /&gt;
=== Context Menu ===&lt;br /&gt;
&lt;br /&gt;
For any current object, there is a set of potential context-sensitive actions. These are displayed as buttons in the title bar, with a three-dot overflow menu button aggregating all the actions that wouldn't fit there anymore. There are many potential actions; some of them are only enabled for specifically classified objects, like objects with a geo location. Default actions are refresh, various download options, child object creation, copy/paste, commit/revert changes, geo-related actions, etc.&lt;br /&gt;
&lt;br /&gt;
=== Objects ===&lt;br /&gt;
&lt;br /&gt;
==== Root objects vs child objects ====&lt;br /&gt;
&lt;br /&gt;
The first entry point in the ''Content Browser'' is the list of root objects.&lt;br /&gt;
&lt;br /&gt;
==== Task objects ====&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.augmensys.com/index.php?title=MRO_Objects_(Client)#Task|Tasks]] and [[https://wiki.augmensys.com/index.php?title=MRO_Objects_(Client)#Work_Package|work packages]] are special types of {{UBIK}} objects used for maintenance, repair and overhaul (MRO) use-cases.&lt;br /&gt;
&lt;br /&gt;
==== Query objects ====&lt;br /&gt;
&lt;br /&gt;
Queries are special types of {{UBIK}} objects with dynamic children. The child objects are looked up depending on the query object's criteria, which can be specified the same as property values for regular objects. There are [[QUERY|online queries]] evaluated by the server, and [[https://wiki.augmensys.com/index.php?title=Offline_Query_(UBIK_WinX)|offline queries]] evaluated on the client, thus requiring no internet connection.&lt;br /&gt;
&lt;br /&gt;
==== Safety relevant objects ====&lt;br /&gt;
&lt;br /&gt;
Object classified as [[SYSCLS_SAFETY_RELEVANT_OBJECT|safety relevant]] require the user to accept safety instructions to access the object, which can be required for hazardous MRO tasks, for example.&lt;br /&gt;
&lt;br /&gt;
==== Commissioning objects ====&lt;br /&gt;
&lt;br /&gt;
Similar to and based on MRO objects, commissioning objects are tasks and work packages for the commissioning use-case, e.g., [[SYSCLS_COMMISSIONINGCHECK|commissioning check tasks]].&lt;br /&gt;
&lt;br /&gt;
==== Locked objects  ====&lt;br /&gt;
In several use-cases, objects can be [[Locked_Objects|locked]] for editing.&lt;br /&gt;
&lt;br /&gt;
=== Properties ===&lt;br /&gt;
&lt;br /&gt;
==== Authentication Properties ====&lt;br /&gt;
[[SYSCLS_REQUIRE_AUTHENTICATION|Authentication Properties]] are properties which need a user authentication (through a password field) to be edited.&lt;br /&gt;
&lt;br /&gt;
==== Min max properties ====&lt;br /&gt;
See [[Min_Max_Properties]].&lt;br /&gt;
&lt;br /&gt;
==== Live value properties ====&lt;br /&gt;
[[Live_Values]] are specific property values extracted from a process control system like OPC-UA or OSIPI. &lt;br /&gt;
&lt;br /&gt;
==== High priority properties ====&lt;br /&gt;
High priority properties are properties having a priority higher than the [[Settings#Content |priority threshold]].&lt;br /&gt;
&lt;br /&gt;
==== Selective List Properties ====&lt;br /&gt;
For some properties, the user should be able to select from a predefined set of values. Such a predefined set is called a &amp;quot;selective list&amp;quot; in {{UBIK}}. Furthermore, there are [[Dynamic_Selective_List_(Client)|dynamic selective lists]] that can be filtered or assembled based on dependency property values.&lt;br /&gt;
&lt;br /&gt;
==== Properties with value records {{Version/WinXSince|2.5.4}} ====&lt;br /&gt;
[[File:UI_WinX_PropertyWithValueRecords.png|thumb|A property with value records]]&lt;br /&gt;
[[File:UI_WinX_PropertyValueRecords.png|thumb|Property value records dialog]]&lt;br /&gt;
In addition to its value, a property might also bring along a series of value records showing &amp;quot;who changed the value at what time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When such records exist, the property row shows a special symbol on the right side. After a right click (with mouse) or a long tap (with touch) on the property row, a dialog will be shown to present these records (sorted by their time, recent ones on top).&lt;br /&gt;
&lt;br /&gt;
==== String properties with length restrictions ====&lt;br /&gt;
A string property can be configured with a [[MetaProperty#Text_2|length restriction]]. The client property editing UI doesn't allow users to confirm values exceeding the limit.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
==== [[Editors]] ====&lt;br /&gt;
&lt;br /&gt;
See [[Editors]]&lt;br /&gt;
&lt;br /&gt;
=== Documents ===&lt;br /&gt;
UBIK supports and displays document objects and a bunch of actions related to them (editing, redlining, creation, thumbnails, ...).&lt;br /&gt;
See [[Documents_(Client)|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
==== Fit Mode{{Version/WinXSince|3.5}} ====&lt;br /&gt;
See [[Documents_(Client)#Fit_Mode|Fit Mode]]&lt;br /&gt;
&lt;br /&gt;
==== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ====&lt;br /&gt;
See [[Documents_(Client)#Auto_zoom|Auto zoom]]&lt;br /&gt;
&lt;br /&gt;
==== Editing{{Version/WinXSince|2.5.4}} ====&lt;br /&gt;
See [[Documents_(Client)#Editing|Editing]]&lt;br /&gt;
&lt;br /&gt;
==== Offline availability ====&lt;br /&gt;
See [[Documents_(Client)#Offline/Online|Offline/Online]]&lt;br /&gt;
&lt;br /&gt;
==== Clear Online Documents ====&lt;br /&gt;
[[Documents_(Client)#Offline/Online|Offline/Online]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:How-To|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:WinX|UBIK WinX Client Basics]]&lt;br /&gt;
&lt;br /&gt;
== AR Features ==&lt;br /&gt;
&lt;br /&gt;
=== POI View ===&lt;br /&gt;
Brings up the POI View|Augmented Reality view and displays Points of Interest (POI's) related to the current location of the mobile device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Markerless ===&lt;br /&gt;
&lt;br /&gt;
=== Map View ===&lt;br /&gt;
Opens the Map View and displays Points of Interest (POI's) related to the current location of the mobile device.&lt;br /&gt;
&lt;br /&gt;
== Positioning ==&lt;br /&gt;
{{UBIK}} clients use a [[Location_Manager|Location Manager]] in order to gain knowledge about their position, so it can help the user navigate to his/her target.&lt;br /&gt;
&lt;br /&gt;
The user can choose one of different positioning modes optimized for different environments.&lt;br /&gt;
Most of them incorporate multiple technologies for calculating positions or checking their reliability.&lt;br /&gt;
&lt;br /&gt;
=== Positioning modes ===&lt;br /&gt;
&lt;br /&gt;
* ''Use all'' - uses all available position sources&lt;br /&gt;
* ''LLA only mode'' - used for positioning using markers only&lt;br /&gt;
* ''Beacon Proximity mode'' - uses iBeacon proximity and LLA only&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
&lt;br /&gt;
==== GPS ==== &lt;br /&gt;
GPS is used as a primary positioning input source for outdoor areas. Its precision depends on the environment and satellite availability. With good circumstances, the accuracy varies between 1 and 10 meters.&lt;br /&gt;
&lt;br /&gt;
==== LLA markers ==== &lt;br /&gt;
LLA markers basically are QR codes with location data encoded into them - which can be used for positioning when they are scanned.&lt;br /&gt;
&lt;br /&gt;
==== Object Proximity Positioning ====&lt;br /&gt;
The location of nearby Geo-Objects can be used for positioning.&lt;br /&gt;
&lt;br /&gt;
The position of a Geo-Object can be used manually by pushing the button {{key press|Use Location}} in the [[UBIK_WinX_Client_Basics#Context_Menu|Context Menu]]. &lt;br /&gt;
&lt;br /&gt;
The geo information of an object gets used automatically if exactly one single object is found through scanning. If more objects are found, their geo information doesn´t get used. Scanning includes  [[UBIK Client Basics#Bar Code|Bar Code]], [[UBIK Client Basics#QR Code|QR Code]], [[UBIK Client Basics#OCR|OCR]] and [[UBIK Client Basics#RFID|RFID]]. The automatic use of Geo-Object´s location can be turned off by disabling the &amp;quot;EnableObjectProximityPositioning&amp;quot; setting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beacon-Proximity Positioning ====&lt;br /&gt;
The Beacon Proximity Mode detects if the user is in the proximity of a beacon. The proximity region is defined by a proximity distance which creates a sphere around the beacon. Whenever the calculated distance to a beacon is smaller than the proximity distance, the user is supposed to be at the position of the beacon. If multiple regions intersect the user is supposed to be at the position of the nearest beacon. &lt;br /&gt;
In order to use Beacon Proximity as a Positioning System, Bluetooth Low Energy has to be available and enabled on the mobile device. If a new environment should be equipped with iBeacon-Positioning, an expert has to mount iBeacons on known positions and calibrate the propagation factor of these beacons. Proximity beacons can be configured using [[SYSCLS_PROXIMITY_BEACON]]. {{Version/WinXSince|UWP}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Finding Objects ==&lt;br /&gt;
=== Free Text Search ===&lt;br /&gt;
&lt;br /&gt;
=== ID Marker ===&lt;br /&gt;
&lt;br /&gt;
=== QR Code ===&lt;br /&gt;
&lt;br /&gt;
=== Bar Code ===&lt;br /&gt;
&lt;br /&gt;
=== RFID Code ===&lt;br /&gt;
Provides a fast and convenient way for users to find objects that are identifiable through [[RFID tags|RFID tags]].&lt;br /&gt;
&lt;br /&gt;
=== OCR ===&lt;br /&gt;
&lt;br /&gt;
== Linked objects == &lt;br /&gt;
{{Version/WinXSince|3.6}}&lt;br /&gt;
It is possible to display values of linked objects by using the &amp;quot;LinkedLevel&amp;quot; property. An example can be seen here, where Items[0] is a Guid property linking to another object. The ItemsControl then binds to the Properties of the linked object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid DataContext=&amp;quot;{Binding Properties.Items[0].LinkedLevel}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ItemsControl ItemsSource=&amp;quot;{Binding Properties.AllItems}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Client_Feature_Table]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT_FITMODE]]&lt;br /&gt;
* [[SYSCLS_SHOWDOCUMENTS]]&lt;br /&gt;
* [[SYSCLS_SHOWPROPERTIES]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:How-To|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:WinX|UBIK WinX Client Basics]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29581</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29581"/>
				<updated>2026-03-16T09:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Image Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|ImageEditor on WinX Client&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|ImageEditor on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29580</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29580"/>
				<updated>2026-03-16T09:25:58Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|350px|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29579</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29579"/>
				<updated>2026-03-16T09:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.jpeg|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:EditingMAUI.jpeg&amp;diff=29578</id>
		<title>File:EditingMAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:EditingMAUI.jpeg&amp;diff=29578"/>
				<updated>2026-03-16T09:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29577</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29577"/>
				<updated>2026-03-16T09:23:14Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[File:EditingMAUI.png|Left-swipe button]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29576</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29576"/>
				<updated>2026-03-16T09:00:25Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Editing{{Version/WinXSince|2.5.4}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor (WinX). To start editing on the mobile client you have to use the left-swipe functionality on the object. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29575</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29575"/>
				<updated>2026-03-16T08:51:44Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|Document Viewer on WinX Client&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Document Viewer on Mobile Client (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29574</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29574"/>
				<updated>2026-03-16T08:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing or Editing the Object Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|WinX&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the document viewer.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29573</id>
		<title>Documents (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Documents_(Client)&amp;diff=29573"/>
				<updated>2026-03-16T08:47:54Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Viewing/Editing the Object Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DOCUMENT|Documents]] are [[:Category:UBIK Object|{{UBIK}} objects]] referencing a file, e.g. a PDF document.&lt;br /&gt;
Like other {{UBIK}} objects, they can be synchronized to the {{UBIK}} client.&lt;br /&gt;
{{UBIK}} supports and displays document objects and a bunch of actions related to them, including e.g. editing, redlining, creation, and thumbnails.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Document Types ==&lt;br /&gt;
&lt;br /&gt;
* Managed Document - Documents with a locally managed file.&lt;br /&gt;
* Linked Document - Documents with a file linked by an URL, not locally managed by {{UBIK}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Documents ==&lt;br /&gt;
&lt;br /&gt;
Available Documents can be viewed in the documents tab of the current object, they are displayed with a thumbnail preview. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentView_WinX.png|WinX&lt;br /&gt;
File:DocumentView_MAUI.jpeg|MAUI (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On WinX, the display mode for documents can be configured; available display modes are: &amp;lt;br&amp;gt;&lt;br /&gt;
* Gallery View (default)&lt;br /&gt;
* List View&lt;br /&gt;
* Flip View&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:DocumentView_DisplayMode.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Clicking on a document navigates to the corresponding object and opens the internal document viewer.&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:DocumentViewer_WinX.png|WinX&lt;br /&gt;
File:DocumentViewer_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A document can also be viewed by right-clicking on the object's thumbnail. This will open the document in an external editor provided by the operating system.&lt;br /&gt;
In this way, the document can also be edited externally. For more details, see [[Documents_(Client)#Editing|Editing]].&lt;br /&gt;
&lt;br /&gt;
=== Viewing or Editing the Object Data ===&lt;br /&gt;
&lt;br /&gt;
Not only the file itself can be viewed, but also the {{UBIK}} property values of a document object. To access them, click on the document object.&lt;br /&gt;
&lt;br /&gt;
The way properties are displayed depends on the client being used.&lt;br /&gt;
&lt;br /&gt;
On the '''WinX''' client, the properties are shown directly on the right side of the screen.&lt;br /&gt;
&lt;br /&gt;
On the '''Mobile''' client, you need to switch to the Properties tab to view them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Properties_WinX.png|WinX&lt;br /&gt;
File:Properties_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Creating Documents ==&lt;br /&gt;
Depending on the configuration of the {{UBIK}} data model and the [[ACM]], documents can be created as children for existing objects.&lt;br /&gt;
Via the context menu entry you can create such documents. (where it is configured)&lt;br /&gt;
&lt;br /&gt;
{{Attention|File extensions are case-sensitive depending on the OS. On iOS and Android, file systems are case-sensitive, while on Windows, file systems are case-insensitive.}}&lt;br /&gt;
&lt;br /&gt;
=== Taking a Picture ===&lt;br /&gt;
In certain cases, the camera can be used to take a picture and create a document for it - in this case, another &amp;quot;Take Picture&amp;quot; context menu entry is available.&lt;br /&gt;
&lt;br /&gt;
=== Editing and Submitting the newly created Document ===&lt;br /&gt;
After either a document was chosen or a picture was taken, the newly created object is opened in a property view, allowing the user to abort the creation or to enter specific property values (e.g. for the description of the object) and finally save the object.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.6}} uploaded Document objects can potentially  contain [[SYSCLS_FILEDETAILSCLASSIFICATION|detailed Information]] concerning the original file (e.g. file name, path)&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
=== File upload ===&lt;br /&gt;
Regarding the file upload, there is a mechanism [[File_Upload_Size_Restriction|FileUploadRestriction]] that ensures files only get uploaded if the file size is below the configured max upload size.&lt;br /&gt;
&lt;br /&gt;
=== Synchronization ===&lt;br /&gt;
Depending on the connectivity mode, the next synchronization run will bring the new content and file to the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify Documents ==&lt;br /&gt;
&lt;br /&gt;
=== Redlining ===&lt;br /&gt;
[[HowTo:Make_a_Document_ready_for_Redlining|Redlining]] is the process of creating a modified or annotated version of an existing document.&lt;br /&gt;
&lt;br /&gt;
To use this feature, click the “Annotation Tools” button in the document viewer toolbar at the top of the document.&lt;br /&gt;
&lt;br /&gt;
After clicking “Annotation Tools”, the toolbar expands and provides several options for annotating the document, such as drawing freeform shapes, adding comments, selecting different colors ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:Annotation_WinX.png|WinX&lt;br /&gt;
File:Annotation_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous redlining number indicators are replaced by the [[Child_Document_Indicator_(Android)|child document indicators]]. {{Version/AndroidSince|2.4.5}}&lt;br /&gt;
&lt;br /&gt;
=== Editing{{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:Editing_WinX.png|Button to edit a document]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [[SYSCLS_EDITABLEDOCUMENT|editable documents]], there is an {{key press|edit}} button in the top app bar. It allows the user to edit a document file using the default app of the OS. If a file is changed during the edit, the same {{key press|save}} button appears just like it does for content with changed properties.&lt;br /&gt;
{{Hint|Similar to saving, other app features also apply on edited documents. For example, reverting local changes for an edited document will throw away the changed document file and restore it to the server version.}}&lt;br /&gt;
An alternative way to start editing is to right click on a document's thumbnail, which immediately opens the document in an external editor. The difference here is that there is no {{key press|save}} button and any changes are automatically saved (and committed if in online mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Image Editor ==&lt;br /&gt;
In {{UBIK}}, images can be edited using the UBIKImageEditor. When you navigate in a image object, the image editor opens automatically. (if configured)&lt;br /&gt;
&lt;br /&gt;
The editor provides several options for modifying the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:ImageEditor_WInX.png|WinX&lt;br /&gt;
File:ImageEditor_MAUI.jpeg|Mobile (iOS)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PDF Documents ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Renderers  {{Version/WinXSince|4.6.0}} ===&lt;br /&gt;
The Syncfusion PDF control embedded in the WinX client can use two different renderers to render and display PDF documents.&lt;br /&gt;
* The standard Syncfusion renderer which uses [https://learn.microsoft.com/en-us/uwp/api/windows.data.pdf?view=winrt-26100 Windows.Data.PDF]&lt;br /&gt;
* [https://pdfium.googlesource.com/pdfium/ PDFium]&lt;br /&gt;
There can be issues for each renderer when dealing with certain documents. If that's the case, you can try changing the [[Settings#Content|PdfRenderer setting]] in the WinX client and see if the issue still persists.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Generally speaking, the PDFium renderer seems to be more performant in the majority cases. That's why it is the default option.}}&lt;br /&gt;
&lt;br /&gt;
==== Syncfusion ====&lt;br /&gt;
When using this renderer, we have experienced an issue with certain PDF diagrams where certain texts change when you zoom in on the documents. Unfortunately, we are unaware of the reason of this issue and could not find public documentation on similar problems.&lt;br /&gt;
&lt;br /&gt;
==== PDFium ====&lt;br /&gt;
* This renderer currently does not support digital signatures (e.g. created by [https://www.docusign.com Docusign]) unless they are flattened into the PDF documents.&lt;br /&gt;
* With this renderer selected, some documents in the Flip View might appear blank when zooming.&lt;br /&gt;
&lt;br /&gt;
=== PDF Text Search ===&lt;br /&gt;
It is possible to search and highlight arbitrary texts in the {{UBIK}} PDF viewer. By clicking the magnifier button, an input field opens to search for specific text entries in the document. The results will be highlighted in the PDF file. By clicking the arrow buttons, it is possible to switch to the next and previous results.  {{Version/XamarinSince|4.3.0}}&lt;br /&gt;
&lt;br /&gt;
==== Automatic Text Search {{Version/XamarinSince|4.4.0}}{{Version/WinXSince|4.4.0}} ====&lt;br /&gt;
Using the [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION|Document Highlighting Classification]] A PDF document can search for a defined search term from its parents properties automatically as soon as it is being navigated to.&lt;br /&gt;
&lt;br /&gt;
=== Remember Document Settings {{Version/WinXSince|4.9}} ===&lt;br /&gt;
By default, PDFViewer settings are not saved and always reset when reloading a document. The Remember Document Settings feature enables the automatic saving &amp;amp; preserving of the Zoom level, Annotation color, and Stroke width value within a {{UBIK}} session.&lt;br /&gt;
It can be configured in the [[Settings#Content|Settings]].&lt;br /&gt;
With this feature enabled, the PDFViewers Annotation color, Zoom level, and Stroke width value set by the user will be saved and preserved until the user changes them again.&lt;br /&gt;
&lt;br /&gt;
If a document is configured with the [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|Auto Zoom classification]], it will be overruled by the user's value as soon as the user sets it.&lt;br /&gt;
If an [[XAML#UBIKPdfViewer|AnnotationDefaultStrokeWidth]] value is configured, it will be overridden by the user's value as soon as the user sets it.&lt;br /&gt;
&lt;br /&gt;
{{Attention|Saving the Zoom value with touch gestures is not supported. But the SaveZoomSettingsCommand can be used to save the Zoom value manually.}}&lt;br /&gt;
&lt;br /&gt;
The SaveZoomSettingsCommand can be applied to a button as follows:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pdfViewer:SfPdfViewerControl&lt;br /&gt;
      Name=&amp;quot;pdfViewer&amp;quot;&lt;br /&gt;
      ... /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
      Content=&amp;quot;Save Zoom&amp;quot;&lt;br /&gt;
      Command=&amp;quot;{Binding ElementName=PdfViewer, Path=SaveZoomSettingsCommand}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit Mode{{Version/WinXSince|3.5}} ===&lt;br /&gt;
By default, documents are displayed in their original dimensions. But administrators can also [[SYSCLS_DOCUMENT_FITMODE|configure different fit modes]] for each document. The following demonstrates how documents can look under different fit modes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Unspecified / Unscaled / Default !! Fit to container !! Fit to width !!&lt;br /&gt;
|-&lt;br /&gt;
| [[File:UI_UWP_Fit_Mode_Default.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Container.png|240x225px]] || [[File:UI_UWP_Fit_Mode_Width.png|240x225px]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention|When using a FlipView for documents in your customized XAMLs, you need to additionally [[XAML_Tips#Fit_mode|apply the fit mode]] by yourself. }}&lt;br /&gt;
{{Attention|This feature currently only works for PDFs (it is not supported for Images). }}&lt;br /&gt;
&lt;br /&gt;
=== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ===&lt;br /&gt;
When a PDF document is displayed in UBIK, it's possible that [[SYSCLS_AUTO_ZOOM_CLASSIFICATION|an initial zoom level]] is configured and applied to that document.&lt;br /&gt;
&lt;br /&gt;
{{Attention|The configured initial zoom level will be simply ignored if it's beyond the acceptable min/max zoom levels of the PDF viewer.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Offline/Online ==&lt;br /&gt;
&lt;br /&gt;
=== Offline availability ===&lt;br /&gt;
When a user selects a branch to bring offline, files of all document objects underneath are downloaded in principle. However, they can also be selectively configured to be ignored with a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|classification]] on the server-side. Once a document is classified as offline available, the document file will not be removed when the storage for already synchronized document files is cleared.&lt;br /&gt;
{{Hint|This is not to be confused with the accessibility related to [[User_Rights|user rights]]. The logic here is &amp;quot;some documents '''do not have to''' be downloaded&amp;quot;, not &amp;quot;some documents '''can not''' be downloaded/accessed&amp;quot;. In other words, a user can browse to and open the document regardless of this configuration.}}&lt;br /&gt;
&lt;br /&gt;
=== Clear Online Documents ===&lt;br /&gt;
By clearing the online documents, it is possible to free up system memory if needed. It can be triggered by pressing the button &amp;quot;Clear online documents&amp;quot; in the general settings tab. Online documents are documents already uploaded to the server. They can be downloaded anytime again when the client is connected to the server. However, documents classified as offline available will not be affected and will always stay on the device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Document_(UBIK_Android)]]&lt;br /&gt;
* [[HowTo:Make_a_Document_ready_for_Redlining]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_FILEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_EDITABLEDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_REDLINEDFILE]] (Classification)&lt;br /&gt;
* [[SYSCLS_DOCUMENT_HIGHLIGHTING_CLASSIFICATION]] (Classification)&lt;br /&gt;
* [[SYSCLS_URLDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_THUMBNAILEDDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_TEXTDOCUMENT]] (Classification)&lt;br /&gt;
* [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Client|Documents (Client)]]&lt;br /&gt;
[[Category:Document|Documents (UBIK Android)]]&lt;br /&gt;
[[Category:Mobile|Documents (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|Documents (Client)]]&lt;br /&gt;
[[Category:WinX|Documents (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_WinX_Client_Basics&amp;diff=29572</id>
		<title>UBIK WinX Client Basics</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_WinX_Client_Basics&amp;diff=29572"/>
				<updated>2026-03-16T08:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UBIK}} Client is the mobile application for viewing and modifying data, showing documents, starting navigation, visualizing POIs and much more.&lt;br /&gt;
&lt;br /&gt;
Client applications are available for Mobile and WinX, however the features available on each of the platform dependent applications might differ. An overview of the available features can be found in the [[Client_Feature_Table|feature comparison table]].&lt;br /&gt;
&lt;br /&gt;
== Languages ==&lt;br /&gt;
The standard {{UBIK}} client supports multiple languages listed below. {{Version/WinXSince|4.3}}&lt;br /&gt;
* Chinese (Simplified)&lt;br /&gt;
* Czech&lt;br /&gt;
* English&lt;br /&gt;
* German&lt;br /&gt;
* Polish&lt;br /&gt;
* Portuguese&lt;br /&gt;
* Spanish&lt;br /&gt;
{{Attention|As we found out, you can only switch to one of the supported languages if it is installed as a system language in the Windows &amp;quot;Preferred languages / Add a language&amp;quot; setting. For example, if you have only English installed when you install {{UBIK}}, you won't be able to switch to any other languages even if you add those later. In that case, you need to make sure your language of choice is installed in Windows first, then update or reinstall {{UBIK}}. This is a Microsoft Store practice and does not apply to clients installed through sideloading, e.g. from our AppCenter.}}&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
Users need to login in order to access confidential data, this can be done in the [[Login View]].&lt;br /&gt;
&lt;br /&gt;
=== Confirm login === &lt;br /&gt;
{{Version/WinXSince|3.6}}&lt;br /&gt;
Certain pages might require to confirm the login data, even if the user is already logged in. This can be done in the following way: The CheckUserOfflineCommand needs to be called with the username and password as parameter, if the login was valid, the CheckUserOfflineSuccess boolean property is set to true, which causes the text &amp;quot;Login confirmed&amp;quot; to appear in the example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TextBox&lt;br /&gt;
	x:Name=&amp;quot;Sign01User&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&lt;br /&gt;
	PlaceholderText=&amp;quot;User&amp;quot;&lt;br /&gt;
	Text=&amp;quot;{Binding UserName}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;PasswordBox&lt;br /&gt;
	x:Name=&amp;quot;Sign01PW&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&lt;br /&gt;
	PlaceholderText=&amp;quot;Password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
	Command=&amp;quot;{Binding CheckUserOfflineCommand}&amp;quot;&lt;br /&gt;
	Content=&amp;quot;Confirm login&amp;quot;&lt;br /&gt;
	DataContext=&amp;quot;{Binding AuthenticationViewModel, Source={StaticResource Locator}}&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Button.CommandParameter&amp;gt;&lt;br /&gt;
		&amp;lt;uc:KeyValueList&amp;gt;&lt;br /&gt;
			&amp;lt;uc:KeyValueParameter Key=&amp;quot;UserName&amp;quot; Value=&amp;quot;{Binding ElementName=Sign01User, Path=Text}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;uc:KeyValueParameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;{Binding ElementName=Sign01PW, Path=Password}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/uc:KeyValueList&amp;gt;&lt;br /&gt;
	&amp;lt;/Button.CommandParameter&amp;gt;&lt;br /&gt;
&amp;lt;/Button&amp;gt;&lt;br /&gt;
&amp;lt;TextBlock Text=&amp;quot;Login confirmed&amp;quot; Visibility=&amp;quot;{Binding AuthenticationViewModel.CheckUserOfflineSuccess, Source={StaticResource Locator}, FallbackValue=false, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Profiles ==&lt;br /&gt;
Profiles are used to store connection information for {{UBIK}} services. It specifies the location where to find the service along with other useful informations. Profiles are stored by UBIK whenever the user created connection information and stored it in the settings. However, profiles can also be created and edited with any text editor. Possible settings to be defined are:&lt;br /&gt;
* InternalConnectionSettings: Connections settings how to connect to the Content and the USAM service that has been set up.&lt;br /&gt;
** Application: the [[APPLICATION]] to use with the service&lt;br /&gt;
** AuthenticationPort: Port Number of the authentication (USAM) service (default: 777)&lt;br /&gt;
** AuthenticationProtocol: Protocol of the authentication service (default: https)&lt;br /&gt;
** AuthenticationServer: the ip address of the authentication server&lt;br /&gt;
** AuthenticationService: the path to the authentication service&lt;br /&gt;
** ContentPort: Port Number of the content service (default: 777)&lt;br /&gt;
** ContentProtocol: Protocol of the content service (default: https)&lt;br /&gt;
** ContentServer: the ip address of the content server&lt;br /&gt;
** ContentService: the path to the content service&lt;br /&gt;
** Context: the [[CONTEXT]] to use with the service&lt;br /&gt;
** SyncMode: the used sync mode (Online [= Auto], Manual, Offline; default:Online)&lt;br /&gt;
* IsDefault: true, if the profile should be the default profile&lt;br /&gt;
* Name: the name of the profile (will also be used to identify the database)&lt;br /&gt;
** If the profile name contains invalid characters like: /, &amp;quot;, &amp;lt;, &amp;gt;, ... they will be replaced with %_&lt;br /&gt;
* Project: the project name. Use this to share a single project name with more than one profile. If the project is defined, all profile with the same project will share one database.&lt;br /&gt;
* Customizing: the XAML subfolder to use for customized UI. This parameter can be used to share one single XAML customizing folder for multiple profiles.&lt;br /&gt;
* ShowHiddenSettings: show hidden settings (feault: false)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Profile xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns=&amp;quot;http://schemas.datacontract.org/2004/07/UBIK.WinX.Settings&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Customizing&amp;gt;MYAPPLICATIONUI&amp;lt;/Customizing&amp;gt;&lt;br /&gt;
  &amp;lt;Description i:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;InternalConnectionSettings&amp;gt;&lt;br /&gt;
    &amp;lt;Application&amp;gt;APP_DEMO&amp;lt;/Application&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationPort&amp;gt;777&amp;lt;/AuthenticationPort&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationProtocol&amp;gt;https&amp;lt;/AuthenticationProtocol&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationServer&amp;gt;80.243.175.50&amp;lt;/AuthenticationServer&amp;gt;&lt;br /&gt;
    &amp;lt;AuthenticationService&amp;gt;UBIK/DBG/AUG/DEMO.250/USAM/USAM.svc&amp;lt;/AuthenticationService&amp;gt;&lt;br /&gt;
    &amp;lt;ContentPort&amp;gt;777&amp;lt;/ContentPort&amp;gt;&lt;br /&gt;
    &amp;lt;ContentProtocol&amp;gt;https&amp;lt;/ContentProtocol&amp;gt;&lt;br /&gt;
    &amp;lt;ContentServer&amp;gt;80.243.175.50&amp;lt;/ContentServer&amp;gt;&lt;br /&gt;
    &amp;lt;ContentService&amp;gt;UBIK/DBG/AUG/DEMO.250/CONTENT/UBIKContent.svc&amp;lt;/ContentService&amp;gt;&lt;br /&gt;
    &amp;lt;Context&amp;gt;CXT_DEMO&amp;lt;/Context&amp;gt;&lt;br /&gt;
    &amp;lt;SyncMode&amp;gt;Online&amp;lt;/SyncMode&amp;gt;&lt;br /&gt;
  &amp;lt;/InternalConnectionSettings&amp;gt;&lt;br /&gt;
  &amp;lt;IsDefault&amp;gt;true&amp;lt;/IsDefault&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;DEMO.250.AT&amp;lt;/Name&amp;gt;&lt;br /&gt;
  &amp;lt;Project&amp;gt;DEMO.250&amp;lt;/Project&amp;gt;&lt;br /&gt;
  &amp;lt;ShowHiddenSettings&amp;gt;false&amp;lt;/ShowHiddenSettings&amp;gt;&lt;br /&gt;
&amp;lt;/Profile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Content Browser ==&lt;br /&gt;
Allows to navigate through the entire data model in a hierarchical manner, as it is published by the server.&lt;br /&gt;
&lt;br /&gt;
Initially, a list of objects (&amp;quot;root objects&amp;quot;) is shown. Upon selecting an object, a new browser is opened for that object, showing details about it. When an object is selected in the content browser, it is called the browser's context. For such a contextual object, child objects and selected properties are shown. Also, there is a context menu providing actions related to the currently selected object. &lt;br /&gt;
&lt;br /&gt;
=== Status Bar ===&lt;br /&gt;
==== Saving Indicator ====&lt;br /&gt;
[[File:UI_WinX_DbSavingIndicator.PNG|300 px|thumb|border|alt=Saving Symbol|Saving Symbol]]&lt;br /&gt;
{{Version/WinXSince|2.5.4}}Whenever content is being saved into the local database (for example, after a branch is downloaded from the server), there will be a blinking symbol indicating the saving activity is happening in the background.&lt;br /&gt;
During that time, the user is advised to not logout or close the app because the content might be lost otherwise. However, it is okay to undertake other tasks such as browsing, editing or downloading branches.&lt;br /&gt;
&lt;br /&gt;
==== Uncommitted Changes Indicator ====&lt;br /&gt;
{{Version/WinXSince|4.6.0}} When there are uncommitted changes it is indicated by a button in the Status Bar displaying an icon and the number of uncommitted changes. Pressing this button opens a fly out list with all of the objects that have uncommitted changes to them. Pressing one of those list objects navigates directly to the corresponding object. The Uncommitted Changes Indicator button is only shown when there are uncommitted changes otherwise it is not visible. When in online mode all changes should be committed automatically so the Indicator is mainly useful in Manual or Offline Sync Mode.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Version/WinXSince|4.7.0}} Queries are now excluded from uncommitted changes.&lt;br /&gt;
&lt;br /&gt;
=== Child Page ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChildPage.PNG|400 px|thumb|border|alt=Child Page|Child Page]]&lt;br /&gt;
&lt;br /&gt;
The child page shows the context of a selected object. &lt;br /&gt;
&lt;br /&gt;
The global status bar shows the icon, the name and the description of the selected object. An arrow on the left side allows the user to navigate back to the parent object. On the right side the currently logged-in user is indicated. By clicking on the username one is able to navigate back to the home screen or log off.&lt;br /&gt;
&lt;br /&gt;
The right side of the child page shows child objects of the current object. Each child object is represented by an icon, a name and a description. With the [[SYSCLS_CHILDINFOOWNER|child info owner classification]], one can additionally show the number of documents and regular grandchildren to be expected for a child object.&lt;br /&gt;
&lt;br /&gt;
On the left side of the child page the current object´s high priority properties are shown. By clicking on a live value property, the live value details dialog opens. By clicking on an editable [[UBIK_WinX_Client_Basics#High_priority_properties| high priority property]], an editor opens {{Version/WinXSince|2.5.4}}. If a property was edited a save button is shown in the lower left corner, allowing the user to commit the changes. If a property of a query object was edited an evaluate button is shown in the lower left corner, allowing the user to run the query with the changed propery.&lt;br /&gt;
&lt;br /&gt;
=== Properties Page ===&lt;br /&gt;
&lt;br /&gt;
On the properties page, one can see a list of all the current object's visible properties, and, given the respective rights, a possibility to edit them.&lt;br /&gt;
&lt;br /&gt;
=== Context Menu ===&lt;br /&gt;
&lt;br /&gt;
For any current object, there is a set of potential context-sensitive actions. These are displayed as buttons in the title bar, with a three-dot overflow menu button aggregating all the actions that wouldn't fit there anymore. There are many potential actions; some of them are only enabled for specifically classified objects, like objects with a geo location. Default actions are refresh, various download options, child object creation, copy/paste, commit/revert changes, geo-related actions, etc.&lt;br /&gt;
&lt;br /&gt;
=== Objects ===&lt;br /&gt;
&lt;br /&gt;
==== Root objects vs child objects ====&lt;br /&gt;
&lt;br /&gt;
The first entry point in the ''Content Browser'' is the list of root objects.&lt;br /&gt;
&lt;br /&gt;
==== Task objects ====&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.augmensys.com/index.php?title=MRO_Objects_(Client)#Task|Tasks]] and [[https://wiki.augmensys.com/index.php?title=MRO_Objects_(Client)#Work_Package|work packages]] are special types of {{UBIK}} objects used for maintenance, repair and overhaul (MRO) use-cases.&lt;br /&gt;
&lt;br /&gt;
==== Query objects ====&lt;br /&gt;
&lt;br /&gt;
Queries are special types of {{UBIK}} objects with dynamic children. The child objects are looked up depending on the query object's criteria, which can be specified the same as property values for regular objects. There are [[QUERY|online queries]] evaluated by the server, and [[https://wiki.augmensys.com/index.php?title=Offline_Query_(UBIK_WinX)|offline queries]] evaluated on the client, thus requiring no internet connection.&lt;br /&gt;
&lt;br /&gt;
==== Safety relevant objects ====&lt;br /&gt;
&lt;br /&gt;
Object classified as [[SYSCLS_SAFETY_RELEVANT_OBJECT|safety relevant]] require the user to accept safety instructions to access the object, which can be required for hazardous MRO tasks, for example.&lt;br /&gt;
&lt;br /&gt;
==== Commissioning objects ====&lt;br /&gt;
&lt;br /&gt;
Similar to and based on MRO objects, commissioning objects are tasks and work packages for the commissioning use-case, e.g., [[SYSCLS_COMMISSIONINGCHECK|commissioning check tasks]].&lt;br /&gt;
&lt;br /&gt;
==== Locked objects  ====&lt;br /&gt;
In several use-cases, objects can be [[Locked_Objects|locked]] for editing.&lt;br /&gt;
&lt;br /&gt;
=== Properties ===&lt;br /&gt;
&lt;br /&gt;
==== Authentication Properties ====&lt;br /&gt;
[[SYSCLS_REQUIRE_AUTHENTICATION|Authentication Properties]] are properties which need a user authentication (through a password field) to be edited.&lt;br /&gt;
&lt;br /&gt;
==== Min max properties ====&lt;br /&gt;
See [[Min_Max_Properties]].&lt;br /&gt;
&lt;br /&gt;
==== Live value properties ====&lt;br /&gt;
[[Live_Values]] are specific property values extracted from a process control system like OPC-UA or OSIPI. &lt;br /&gt;
&lt;br /&gt;
==== High priority properties ====&lt;br /&gt;
High priority properties are properties having a priority higher than the [[Settings#Content |priority threshold]].&lt;br /&gt;
&lt;br /&gt;
==== Selective List Properties ====&lt;br /&gt;
For some properties, the user should be able to select from a predefined set of values. Such a predefined set is called a &amp;quot;selective list&amp;quot; in {{UBIK}}. Furthermore, there are [[Dynamic_Selective_List_(Client)|dynamic selective lists]] that can be filtered or assembled based on dependency property values.&lt;br /&gt;
&lt;br /&gt;
==== Properties with value records {{Version/WinXSince|2.5.4}} ====&lt;br /&gt;
[[File:UI_WinX_PropertyWithValueRecords.png|thumb|A property with value records]]&lt;br /&gt;
[[File:UI_WinX_PropertyValueRecords.png|thumb|Property value records dialog]]&lt;br /&gt;
In addition to its value, a property might also bring along a series of value records showing &amp;quot;who changed the value at what time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When such records exist, the property row shows a special symbol on the right side. After a right click (with mouse) or a long tap (with touch) on the property row, a dialog will be shown to present these records (sorted by their time, recent ones on top).&lt;br /&gt;
&lt;br /&gt;
==== String properties with length restrictions ====&lt;br /&gt;
A string property can be configured with a [[MetaProperty#Text_2|length restriction]]. The client property editing UI doesn't allow users to confirm values exceeding the limit.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
==== [[Editors]] ====&lt;br /&gt;
&lt;br /&gt;
See [[Editors]]&lt;br /&gt;
&lt;br /&gt;
=== Documents ===&lt;br /&gt;
UBIK supports and displays document objects and a bunch of actions related to them (editing, redlining, creation, thumbnails, ...).&lt;br /&gt;
See [[Documents_(Client)|Documents (Client)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Fit Mode{{Version/WinXSince|3.5}} ====&lt;br /&gt;
See [[Documents_(Client)#Fit_Mode|Fit Mode]]&lt;br /&gt;
&lt;br /&gt;
==== Auto zoom {{Version/WinXSince|4.6}}{{Version/XamarinSince|4.6}} ====&lt;br /&gt;
See [[Documents_(Client)#Auto_zoom|Auto zoom]]&lt;br /&gt;
&lt;br /&gt;
==== Editing{{Version/WinXSince|2.5.4}} ====&lt;br /&gt;
See [[Documents_(Client)#Editing|Editing]]&lt;br /&gt;
&lt;br /&gt;
==== Offline availability ====&lt;br /&gt;
See [[Documents_(Client)#Offline/Online|Offline/Online]]&lt;br /&gt;
&lt;br /&gt;
==== Clear Online Documents ====&lt;br /&gt;
[[Documents_(Client)#Offline/Online|Offline/Online]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:How-To|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:WinX|UBIK WinX Client Basics]]&lt;br /&gt;
&lt;br /&gt;
== AR Features ==&lt;br /&gt;
&lt;br /&gt;
=== POI View ===&lt;br /&gt;
Brings up the POI View|Augmented Reality view and displays Points of Interest (POI's) related to the current location of the mobile device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Markerless ===&lt;br /&gt;
&lt;br /&gt;
=== Map View ===&lt;br /&gt;
Opens the Map View and displays Points of Interest (POI's) related to the current location of the mobile device.&lt;br /&gt;
&lt;br /&gt;
== Positioning ==&lt;br /&gt;
{{UBIK}} clients use a [[Location_Manager|Location Manager]] in order to gain knowledge about their position, so it can help the user navigate to his/her target.&lt;br /&gt;
&lt;br /&gt;
The user can choose one of different positioning modes optimized for different environments.&lt;br /&gt;
Most of them incorporate multiple technologies for calculating positions or checking their reliability.&lt;br /&gt;
&lt;br /&gt;
=== Positioning modes ===&lt;br /&gt;
&lt;br /&gt;
* ''Use all'' - uses all available position sources&lt;br /&gt;
* ''LLA only mode'' - used for positioning using markers only&lt;br /&gt;
* ''Beacon Proximity mode'' - uses iBeacon proximity and LLA only&lt;br /&gt;
&lt;br /&gt;
=== Technologies ===&lt;br /&gt;
&lt;br /&gt;
==== GPS ==== &lt;br /&gt;
GPS is used as a primary positioning input source for outdoor areas. Its precision depends on the environment and satellite availability. With good circumstances, the accuracy varies between 1 and 10 meters.&lt;br /&gt;
&lt;br /&gt;
==== LLA markers ==== &lt;br /&gt;
LLA markers basically are QR codes with location data encoded into them - which can be used for positioning when they are scanned.&lt;br /&gt;
&lt;br /&gt;
==== Object Proximity Positioning ====&lt;br /&gt;
The location of nearby Geo-Objects can be used for positioning.&lt;br /&gt;
&lt;br /&gt;
The position of a Geo-Object can be used manually by pushing the button {{key press|Use Location}} in the [[UBIK_WinX_Client_Basics#Context_Menu|Context Menu]]. &lt;br /&gt;
&lt;br /&gt;
The geo information of an object gets used automatically if exactly one single object is found through scanning. If more objects are found, their geo information doesn´t get used. Scanning includes  [[UBIK Client Basics#Bar Code|Bar Code]], [[UBIK Client Basics#QR Code|QR Code]], [[UBIK Client Basics#OCR|OCR]] and [[UBIK Client Basics#RFID|RFID]]. The automatic use of Geo-Object´s location can be turned off by disabling the &amp;quot;EnableObjectProximityPositioning&amp;quot; setting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beacon-Proximity Positioning ====&lt;br /&gt;
The Beacon Proximity Mode detects if the user is in the proximity of a beacon. The proximity region is defined by a proximity distance which creates a sphere around the beacon. Whenever the calculated distance to a beacon is smaller than the proximity distance, the user is supposed to be at the position of the beacon. If multiple regions intersect the user is supposed to be at the position of the nearest beacon. &lt;br /&gt;
In order to use Beacon Proximity as a Positioning System, Bluetooth Low Energy has to be available and enabled on the mobile device. If a new environment should be equipped with iBeacon-Positioning, an expert has to mount iBeacons on known positions and calibrate the propagation factor of these beacons. Proximity beacons can be configured using [[SYSCLS_PROXIMITY_BEACON]]. {{Version/WinXSince|UWP}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Finding Objects ==&lt;br /&gt;
=== Free Text Search ===&lt;br /&gt;
&lt;br /&gt;
=== ID Marker ===&lt;br /&gt;
&lt;br /&gt;
=== QR Code ===&lt;br /&gt;
&lt;br /&gt;
=== Bar Code ===&lt;br /&gt;
&lt;br /&gt;
=== RFID Code ===&lt;br /&gt;
Provides a fast and convenient way for users to find objects that are identifiable through [[RFID tags|RFID tags]].&lt;br /&gt;
&lt;br /&gt;
=== OCR ===&lt;br /&gt;
&lt;br /&gt;
== Linked objects == &lt;br /&gt;
{{Version/WinXSince|3.6}}&lt;br /&gt;
It is possible to display values of linked objects by using the &amp;quot;LinkedLevel&amp;quot; property. An example can be seen here, where Items[0] is a Guid property linking to another object. The ItemsControl then binds to the Properties of the linked object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid DataContext=&amp;quot;{Binding Properties.Items[0].LinkedLevel}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ItemsControl ItemsSource=&amp;quot;{Binding Properties.AllItems}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Client_Feature_Table]]&lt;br /&gt;
* [[SYSCLS_DOCUMENT_FITMODE]]&lt;br /&gt;
* [[SYSCLS_SHOWDOCUMENTS]]&lt;br /&gt;
* [[SYSCLS_SHOWPROPERTIES]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:How-To|UBIK WinX Client Basics]]&lt;br /&gt;
[[Category:WinX|UBIK WinX Client Basics]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Fast_Startup_(Client)&amp;diff=29540</id>
		<title>Fast Startup (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Fast_Startup_(Client)&amp;diff=29540"/>
				<updated>2026-03-11T12:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Optimization regarding object loading {{Version/WinXSince|3.0.0}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UBIK}} caches all the local content (which exist on the device) in the devices' memory for fast access. However, as the number of objects grows, the device might become less responsive because of the large memory consumption. Also, the initial loading will take a considerable long time. Certain optimizations are added to overcome these problems.&lt;br /&gt;
&lt;br /&gt;
== Optimization regarding object loading {{Version/WinXSince|3.0.0}} ==&lt;br /&gt;
In a lot of scenarios, users want to log into the app and start browsing through the object hierarchy as soon as possible. To offer better efficiency for these users, {{UBIK}} divides the loading of all local objects into two phases during the initial loading.&lt;br /&gt;
* First, the essential objects including the root and the infrastructure are loading during the login process;&lt;br /&gt;
* Then, the login finishes and the user gets to use some basic features of the app while the rest of the objects are being loaded in the background;&lt;br /&gt;
* Once the background loading is finished, all the previously unavailable features will function properly.&lt;br /&gt;
The temporarily unavailable features mentioned above include:&lt;br /&gt;
* [[UBIK_WinX_Client_Basics#Finding_Objects|Search]]&lt;br /&gt;
* Scanning&lt;br /&gt;
* [[MRO_Objects_(UBIK_WinX)#Basic_User_Interface|MRO related]]: During the background loading phase, the status information displayed might not be correct. And actions such as confirming a work package are not possible.&lt;br /&gt;
* Modifying objects (including all special objects such as MRO)&lt;br /&gt;
* Updating or committing objects&lt;br /&gt;
* Sync mode switching&lt;br /&gt;
* Branch download&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Lazy Loading (Client)]]&lt;br /&gt;
[[Category:Mobile|Fast Startup (Client)]]&lt;br /&gt;
[[Category:WinX|Fast Startup (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Optimization regarding property loading{{Version/AndroidSince|2.4.0}}{{Version/WinXSince|2.5.4}} ==&lt;br /&gt;
On the Android client, a  [[UBIK Client Basics#Options|setting]] is provided to control how content is cached in the memory.&lt;br /&gt;
{{Attention|The default value for this setting is [[Memory Usage (Android)#Lazy loading|lazy loading]].}}&lt;br /&gt;
On the WinX client, lazy loading is the only mode. Therefore, there is no such setting.&lt;br /&gt;
&lt;br /&gt;
=== Eager loading ===&lt;br /&gt;
After users log in, all content is initialized and loaded into memory. This includes the content hierarchy, object display names, property values, etc.&lt;br /&gt;
{{Hint|On WinX, this mode is deprecated {{Version/WinXSince|2.5.4}} and the only mode is lazy loading.}}&lt;br /&gt;
&lt;br /&gt;
=== Lazy loading ===&lt;br /&gt;
After users log in, only the essential content is loaded initially into memory. For now, this means everything other than properties and property values, which are not needed at initialization. &lt;br /&gt;
That means some properties and property values are loaded initially as they are for example needed for MRO status calculation or similar. Other properties and property values are then loaded on demand. For example, when&lt;br /&gt;
* The icons of objects are to be displayed;&lt;br /&gt;
* Users need to look at the properties of objects;&lt;br /&gt;
* Documents (Thumbnails) are shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Comparison between eager loading and lazy loading ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting Name !! Memory Usage !! Loading Delay (See hint below) !! Initialization Time after Login&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lazy Loading || Less || More || Less&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Eager Loading || More || Less || More&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Hint|'''Loading delay''' refers to the time it takes before the next level of content is available during content browsing.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Lazy Loading (Client)]]&lt;br /&gt;
[[Category:Mobile|Fast Startup (Client)]]&lt;br /&gt;
[[Category:WinX|Fast Startup (Client)]]&lt;br /&gt;
&lt;br /&gt;
== Technical background ==&lt;br /&gt;
* [[MetaClass]] and [[MetaProperty]] are not affected by the memory usage setting since they're practically needed all the time;&lt;br /&gt;
* Once an object's property values are cached under lazy loading setting, they will remain in the memory until one of the following happens:&lt;br /&gt;
** Offline preparation is finished with branch(es) downloaded.&lt;br /&gt;
* Initially, all properties are loaded without property values. Once property values are requested, they are loaded on demand.&lt;br /&gt;
* However, those that are classification related are loaded initially so that certain classification-based calculations do not lead to all other properties being loaded as well. Since the information regarding which properties should be loaded initially is stored in the database, it is recommended to have a clean installation. If a clean installation is not possible, the app will still function if an old database is found. In that case, the first login will take a much longer time and the database will be automatically upgraded afterwards, which could take a couple of minutes depending on the amount of local content.&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Lazy Loading (Client)]]&lt;br /&gt;
[[Category:Mobile|Fast Startup (Client)]]&lt;br /&gt;
[[Category:WinX|Fast Startup (Client)]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[UBIK Client Basics]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Lazy Loading (Client)]]&lt;br /&gt;
[[Category:WinX|Fast Startup (Client)]]&lt;br /&gt;
[[Category:Mobile|Fast Startup (Client)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=RFID_tags&amp;diff=29539</id>
		<title>RFID tags</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=RFID_tags&amp;diff=29539"/>
				<updated>2026-03-11T12:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order for the users to find objects more efficiently, {{UBIK}} objects can be marked with values for RFID/NFC codes. Whenever a user scans an RFID code, the resulting code value can be used to find all matching objects, namely objects that have the [[#Technical_background|right property]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|[http://en.wikipedia.org/wiki/Near_field_communication NFC] stands for &amp;quot;Near Field Communication&amp;quot; and is a set of ideas and technologies for data transfer between devices, typically in close distances.&lt;br /&gt;
Technically, it is based on [http://en.wikipedia.org/wiki/Radio-frequency_identification RFID] (&amp;quot;Radio-Frequency Identification&amp;quot;), which describes specific technical solutions.}}&lt;br /&gt;
&lt;br /&gt;
Amongst the use cases for NFC, there is communication between smartphones and other devices, but also the scanning of RFID tags.&lt;br /&gt;
&lt;br /&gt;
The {{UBIK}} RFID scanning feature specifically is the ability to scan RFID tags in order to identify {{UBIK}} objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= WinX/Mobile Internal Scanner =&lt;br /&gt;
&lt;br /&gt;
Availability: {{Version/WinXSince|2.5.4}}&lt;br /&gt;
&lt;br /&gt;
== Supported RFID Tags ==&lt;br /&gt;
&lt;br /&gt;
There are three types of RFID markers supported by {{UBIK}}:&lt;br /&gt;
* NfcA (RFID standard: ISO-14443A)&lt;br /&gt;
* NfcB (RFID standard: ISO-14443B)&lt;br /&gt;
* NfcV (RFID standard: ISO-15693) &lt;br /&gt;
&lt;br /&gt;
{{UBIK}} WinX scans these tags for an NDEF message. Tags which are not NDEF formatted are not supported by the WinX client.&lt;br /&gt;
{{UBIK}} Mobile instead just looks for the serial numbers of the tags and use them for searching.&lt;br /&gt;
&lt;br /&gt;
=== Choose which information to use from a tag {{Version/XamarinSince|4.9}} ===&lt;br /&gt;
Starting from version 4.9 (Mobile only), it's possible to choose whether you want to use the NDEF message or the serial number of a scanned tag. The relevant setting in the profile is [[Settings#Scan|&amp;quot;UseNdefMessage&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
{{Attention|This settings determines which information to use in all NFC/RFID usecases in the client, e.g. [[#Presenting_results_of_a_search|scan to search]], [[#Scan_to_input_mode|scan to input]], [[MRO_Objects_(Client)#Supervisor_Task|supervisor task]].}}&lt;br /&gt;
{{Hint|If &amp;quot;UseNdefMessage&amp;quot; is set to true and there is no text NDEF message available in the scanned tag, the client does nothing except logging. A text NDEF message is one with a record of mime type &amp;quot;text/plain&amp;quot;. Although type Uri is also considered text according to our testing.}}&lt;br /&gt;
&lt;br /&gt;
== Supported Devices ==&lt;br /&gt;
When your client supports NFC, you can see this by opening the side menu. If NFC is supported, a NFC button should be enabled.&lt;br /&gt;
&lt;br /&gt;
== Scanning an RFID tag == &lt;br /&gt;
[[File:NFCButton.jpeg|thumb|alt=Scanning for NFC tag|Scanning for NFC tag]]&lt;br /&gt;
A NFC Scan button is shown in the Global App Bar if the device is capable of scanning NFC tags. Pressing the NFC Scan button enables/disables NFC scanning throughout the whole application. That means once the NFC scanning is activated, one can use the application just as usually while {{UBIK}} scans for NFC tags in the background. &lt;br /&gt;
&lt;br /&gt;
== Presenting results of a search ==&lt;br /&gt;
Once a tag is successfully scanned, an object search is executed.&lt;br /&gt;
# if no objects are found a message is popping up at the right side of the screen.&lt;br /&gt;
# if more than one object is found the results are represented in a separate view (dialog in WinX, side panel in Mobile) along with their matching probability. One can than select one object that should be opened in the content browser.&lt;br /&gt;
# if exactly one object is found, this object is directly opened in the content browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;400&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:NFCResultNotFound.jpeg|alt=No object found message|No object found message&lt;br /&gt;
File:NFCResultFound.jpeg|alt=Multiple search results dialog|Multiple search results&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Search modes ==&lt;br /&gt;
&lt;br /&gt;
{{UBIK}} provides two modes for searching objects: [[Sync Mode#Possible sync modes|online and offline]].&lt;br /&gt;
&lt;br /&gt;
=== Searching offline ===&lt;br /&gt;
&lt;br /&gt;
In any case (regardless of the network connection and [[Sync Mode|sync mode]]), {{UBIK}} always goes through all the objects currently available on the device and find the ones that match the scanned results.&lt;br /&gt;
&lt;br /&gt;
=== Searching online ===&lt;br /&gt;
&lt;br /&gt;
When the Internet is avaiable and {{UBIK}} is not running under offline mode, the search result is enhanced by online search. This means any objects that match the scanned results can be found even if they don't yet exist locally.&lt;br /&gt;
&lt;br /&gt;
== Multiple codes on a single object {{Version/WinXSince|4.4}}{{Version/XamarinSince|4.4}} ==&lt;br /&gt;
It's possible have multiple NFC/RFID codes on a single object. This allows the same object to be found when you scan any of those codes.&lt;br /&gt;
For [[SYSCLS_OBJECTWITHRFIDTAGS|such objects]], the general scan and potentially the search behaviors are exactly the same as those with only a single code. For example, if an object with multiple codes is found when you scan one of the codes, it could also get unlocked.&lt;br /&gt;
&lt;br /&gt;
== Scan to input mode {{Version/XamarinSince|4.2}} ==&lt;br /&gt;
Instead of performing object searches for scan results, {{UBIK}} can also use the scan results as input for property value editing. In this so called scan to input mode, no searches are performed.&lt;br /&gt;
&lt;br /&gt;
At the moment, there is no standard UI to control this mode. However, it can be easily customized. The two relevant properties are:&lt;br /&gt;
* AppStatus.ToggleNfcScanToInput: Controls the scan to input mode. True to turn it on, false to turn it off so that it returns to the default scan to search mode. This value automatically resets to the default value false when a property edit session ends;&lt;br /&gt;
* AppStatus.NfcScanToInputResult: The last NFC/RFID scan result while scan to input mode is on. This value gets automatically cleared when a property edit session ends.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Except on iOS, the scan to input mode doesn't override the overall NFC/RFID toggle (AppStatus.ToggleNFCScanning) which controls whether {{UBIK}} should scan NFC/RFID tags. It's different on iOS simply because scanning is performed in a session in general and gets turned off automatically after a scan. }}&lt;br /&gt;
&lt;br /&gt;
== Classifications ==&lt;br /&gt;
&lt;br /&gt;
In order for objects to be identifiable through RFID, they have to carry the [[SYSCLS OBJECTWITHRFIDTAG]] classification or (optional) the new [[SYSCLS OBJECTWITHRFIDTAGS]] {{Version/ServerSince|4.4.0}}.&lt;br /&gt;
&lt;br /&gt;
The service query used for online searching is [[SYSCLS RFIDTAGSCANQUERY]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[SYSCLS OBJECTWITHRFIDTAG]]&lt;br /&gt;
* [[SYSCLS OBJECTWITHRFIDTAGS]]&lt;br /&gt;
* [[SYSCLS RFIDTAGSCANQUERY]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= WinX External Scanner =&lt;br /&gt;
&lt;br /&gt;
Since {{Version/WinX|3.6.0}} it is possible to use external Bluetooth RFID Readers for Scanning RFID Tags. &lt;br /&gt;
&lt;br /&gt;
== Preliminaries ==&lt;br /&gt;
&lt;br /&gt;
To use an external Bluetooth RFID Reader within {{UBIK}}, the device has to be brought into the Bluetooth SPP (Serial Port Profile) Mode first. Check the manual of the device on how to do that. Once SPP is active, the reader has to be paired with the {{UBIK}} host device. Afterwards it can be used for scanning RFID Tags.&lt;br /&gt;
&lt;br /&gt;
== RFID Configuration File ==&lt;br /&gt;
&lt;br /&gt;
Information needed for communicating with an external Bluetooth RFID Reader are stored in a &amp;quot;.rfconfig file&amp;quot;. This file has to be placed in the local RFIDConfiguration folder: ''{AppData}\LocalState\RFIDConfiguration\.rfconfig''. The name of the &amp;quot;.rfconfig&amp;quot; file is irrelevant. The configuration file contains the following information:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Information !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ScannerIdentifier || String || The Bluetooth Name of the RFID Scanner.&lt;br /&gt;
|-&lt;br /&gt;
| DefaultScanning || Boolean (true,false)|| Specifies wheter scanning is active as default or not.&lt;br /&gt;
|-&lt;br /&gt;
| IgnoreReply || Boolean (true,false) || Some Scanners might send reply messages once a Blue-tooth Command was applied. If IgnoreReply is set to true, these messages aren´t used for further processing.&lt;br /&gt;
|-&lt;br /&gt;
| Substring || String of format: x,y || Extracts a substring of the scanned RFID Tag for further processing. x…index of the first character y… length of the substring&lt;br /&gt;
|-&lt;br /&gt;
| Replace || String of format: x,y || Replaces a character of the scanned RFID Tag for further processing. x…old character y…new character&lt;br /&gt;
|-&lt;br /&gt;
| StartCommands || List of Strings || List of Bluetooth Commands that are send to the RFID Reader when scanning is started. &lt;br /&gt;
|-&lt;br /&gt;
| ScanningCommands || List of Strings || List of Bluetooth Commands that are send to the RFID Reader when a Tag got scanned.&lt;br /&gt;
|-&lt;br /&gt;
| StopCommands || List of Strings || List of Bluetooth Commands that are send to the RFID Reader when scanning is stoped.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ScannerIdentifier is typically the Bluetooth Name of the RFID Scanner. In some cases however it might deviate from the Bluetooth Name. The correct ScannerIdentifier can the be found in “Windows Settings&amp;gt;Devices and Printers&amp;gt;Right click on the Bluetooth Device&amp;gt;Properties&amp;gt;Services”.&lt;br /&gt;
Bluetooth Commands are ASCII Strings which can be send to the RFID Reader in the SPP Mode in order to configure the device. These commands can be found in the documentation of the respective RFID Reader. Often they are terminated with a stop character like “\r”.&lt;br /&gt;
An example of an .rfconfig file is given below. Note that elements of the configuration file have to be ordered alphabetically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;RFIDConfiguration xmlns=&amp;quot;UBIK.AR.RFID&amp;quot;&lt;br /&gt;
	xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns:a=&amp;quot;http://schemas.microsoft.com/2003/10/Serialization/Arrays&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;DefaultScanning&amp;gt;false&amp;lt;/DefaultScanning&amp;gt;&lt;br /&gt;
	&amp;lt;IgnoreReply&amp;gt;true&amp;lt;/IgnoreReply&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;),=&amp;lt;/Replace&amp;gt;&lt;br /&gt;
	&amp;lt;ScannerIdentifier&amp;gt;RNI-SPP&amp;lt;/ScannerIdentifier&amp;gt;&lt;br /&gt;
	&amp;lt;ScanningCommands&amp;gt;&lt;br /&gt;
		&amp;lt;a:string&amp;gt;cw 0E,01\r&amp;lt;/a:string&amp;gt;&lt;br /&gt;
	&amp;lt;/ScanningCommands&amp;gt;&lt;br /&gt;
	&amp;lt;StartCommands&amp;gt;&lt;br /&gt;
		&amp;lt;a:string&amp;gt;cw 04,00\r&amp;lt;/a:string&amp;gt;&lt;br /&gt;
		&amp;lt;a:string&amp;gt;cw 0E,01\r&amp;lt;/a:string&amp;gt;&lt;br /&gt;
	&amp;lt;/StartCommands&amp;gt;&lt;br /&gt;
	&amp;lt;StopCommands&amp;gt;&lt;br /&gt;
		&amp;lt;a:string&amp;gt;cw 0E,01\r&amp;lt;/a:string&amp;gt;&lt;br /&gt;
	&amp;lt;/StopCommands&amp;gt;&lt;br /&gt;
	&amp;lt;Substring&amp;gt;0,18&amp;lt;/Substring&amp;gt;&lt;br /&gt;
&amp;lt;/RFIDConfiguration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start Scanning ==&lt;br /&gt;
&lt;br /&gt;
There are two possibilities to start scanning using the configured RFID Reader: Either scanning is active per default (see RFID Configuration) or by pressing the RFID Scan button in the GlobalAppBar. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:NotConnected.PNG]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When pressing the RFID Scan button UBIK tries to establish a Bluetooth connection to the RFID Reader. This is indicated by a Progress Ring on top of the RFID Scan button. If no connection could be established, the RFID Scan button falls back to its original state.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Connecting.PNG]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a connection was successful, the RFID Scan button appears toggled. Afterwards the StartCommands of the RFID Configuration are applied and UBIK starts to listen for Messages from the Bluetooth RFID Reader. That means one can use the application just as usually while UBIK® scans for RFID Tags in the background.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Connected.PNG]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
Once scanning was successfully started as described above, UBIK is continuously listening for new Messages from the RFID Reader. When a RFID Tag gets scanned, the result is received and manipulated based on the RFID Configuration. If the Substring option is configured properly, a substring of the Message is extracted and used for further processing. If the Replace option is configured properly specified characters are replaced. Afterwards processing an action is triggered for the received Message. If a string editor is currently opened, the Message is written into the property field of the editor (Teach-In). Otherwise an object search is triggered. UBIK is then searching for Objects classified as [[SYSCLS_OBJECTWITHRFIDTAG]] having the scanned content as the RFIDTag property value. Finally the ScanningCommands defined in the RFID Configuration are applied. &lt;br /&gt;
&lt;br /&gt;
== Stop Scanning ==&lt;br /&gt;
&lt;br /&gt;
Scanning can be stopped manually by pressing the RFID Scan button in the GlobalAppBar or simply by switching off the RFID Reader. UBIK will notice the device got disconnected and will indicate so using the RFID Scan button state. If the RFID Reader is disconnected by pressing the RFID Scan button manually, StopCommands defined in the RFID Configuration are applied.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
The RFID Scan Button is not visible. Check the following:&lt;br /&gt;
* Is there a .rfconfig file in the specified RFIDConfiguration folder?&lt;br /&gt;
* Is the .rfconfig file formatted properly?&lt;br /&gt;
* Are the elements of the .rfconfig file ordered alphabetically?&lt;br /&gt;
* Are the elements of the .rfconfig file of the correct type?&lt;br /&gt;
* Is the RFID Reader running in Bluetooth SPP Mode?&lt;br /&gt;
* Is the RFID Reader paired with the host device?&lt;br /&gt;
* In the .rfconfig file, does the specified ScannerIdentifier match the Bluetooth name of the RFID Reader?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Its not possible to start scanning. Check the following:&lt;br /&gt;
* Is the RFID Reader on and in the proximity of the host device?&lt;br /&gt;
* Try to restart scanning by again pressing the button&lt;br /&gt;
* Try to restart the RFID Reader&lt;br /&gt;
* Try to restart UBIK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UBIK does not find any RFID Objects. Check the following:&lt;br /&gt;
* Is the RFID Reader properly configured (Some readers need to get pre-configured using Bluetooth Commands in order to send scanned RFID Tags to UBIK – Check the manual)&lt;br /&gt;
* Try to open a String editor and scan a RFID Tag. Is the scanned message as expected?&lt;br /&gt;
* Are the Objects of interest classified as SYSCLS_OBJECTWITHRFIDCODE?&lt;br /&gt;
* Are the Objects of interest properly configured (property value equals the associated RFID Tag)?&lt;br /&gt;
* If no Online Query is defined, are the Objects of interest available locally?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Android (obsolete) =&lt;br /&gt;
&lt;br /&gt;
Availability: {{Version/AndroidSince|2.4.2}}&lt;br /&gt;
&lt;br /&gt;
== Supported RFID Tags ==&lt;br /&gt;
&lt;br /&gt;
There are three types of RFID markers supported by {{UBIK}}:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Standard!! Tested Tag technologies&lt;br /&gt;
|-&lt;br /&gt;
| NfcA (RFID standard: ISO-14443A) {{Version/AndroidSince|2.4.2}} || EV1(MFOUL11), NTAG 216, NTAG 210, NTAG 213&lt;br /&gt;
|-&lt;br /&gt;
| NfcB (RFID standard: ISO-14443B) {{Version/AndroidSince|2.4.5}} || -&lt;br /&gt;
|-&lt;br /&gt;
| NfcV (RFID standard: ISO-15693) {{Version/AndroidSince|2.4.5}} || ICode SLIX(SL2S2002), ICode SLI(SL2ICS20)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFC Scan Result Type ==&lt;br /&gt;
Depending on the [[Settings#AR_settings|NFC Scan Result Type]] setting, {{UBIK}} can extract different types of information from a scanned RFID tag:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! NFC Scan Result Type !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| Identifier (Hexadecimal) {{Version/AndroidSince|2.4.2}} || Extracts the write-protected identifier of a scanned tag in hexadecimal form. The identifier is given by the manufacturer and can´t be manipulated. &lt;br /&gt;
|-&lt;br /&gt;
| Content (Hexadecimal) {{Version/AndroidSince|3.0.0}} || Extracts the raw content of a scanned tag in hexadecimal form. Not supported on the Getac Z710. NfcB tags are not supported.&lt;br /&gt;
|-&lt;br /&gt;
| Content (ASCII) {{Version/AndroidSince|3.0.0}} || Extracts the raw content of a scanned tag in ASCII form. Not supported on the Getac Z710. NfcB tags are not supported.&lt;br /&gt;
|-&lt;br /&gt;
| Content (NDEF) {{Version/AndroidSince|3.0.0}} || Extracts NDEF messages of type &amp;quot;Text&amp;quot; or &amp;quot;text/plain&amp;quot; from a scanned tag. Not supported on the Getac Z710.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configurable start screen RFID button ==&lt;br /&gt;
&lt;br /&gt;
In order to use this feature, a RFID scanning entry point is provided using a [[HowTo:Configure_Start_Screen_Content#Buttons|configurable start start screen button]]. &lt;br /&gt;
The following xml shows an example start screen configuration including RFID scanning entry point: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;StartScreenConfiguration&amp;gt;&lt;br /&gt;
 	    &amp;lt;Tab caption=&amp;quot;Content&amp;quot;&amp;gt;&lt;br /&gt;
	      &amp;lt;ContentBrowserButton caption=&amp;quot;Content Browser&amp;quot;/&amp;gt;&lt;br /&gt;
	      &amp;lt;RFIDScanButton caption=&amp;quot;RFID Scan&amp;quot; /&amp;gt;&lt;br /&gt;
	    &amp;lt;/Tab&amp;gt;&lt;br /&gt;
	  &amp;lt;/StartScreenConfiguration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
== Scanning an RFID tag == &lt;br /&gt;
[[File:rfid_button_on_startscreen.jpg|thumb|alt=RFID button on Start Screen|RFID button on Start Screen]]&lt;br /&gt;
[[File:Scanning.jpg|thumb|alt=Scanning for RFID tag|Scanning for RFID tag]]&lt;br /&gt;
Once the RFID button in the start screen is clicked, the corresponding RFID scanner starts. The user is then able to scan RFID tags continuously.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
== Presenting results of a search ==&lt;br /&gt;
[[File:Scanned_searching.jpg|thumb|alt=Searching for Objects|Searching for Objects]]&lt;br /&gt;
[[File:Scanned_search_result.jpg|thumb|alt=Displaying Objects|Displaying Objects]]&lt;br /&gt;
[[File:Scanned_no_result.jpg|thumb|alt=No corresponding Objects|No corresponding Objects]]&lt;br /&gt;
Once the ID of the tag is scanned, {{UBIK}} starts searching for objects with the scanned RFID.&lt;br /&gt;
# During the search, the list might show a searching text before any objects are found;&lt;br /&gt;
# If any objects are found, they will be displayed in a  list. The users can then browse to any of the objects for more information by clicking on the objects;&lt;br /&gt;
# If no objects are found, the list will show a corresponding text.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
== Searching Mechanism ==&lt;br /&gt;
&lt;br /&gt;
{{UBIK}} provides two mechanisms for searching objects: [[Sync Mode#Possible sync modes|online and offline]].&lt;br /&gt;
&lt;br /&gt;
=== Searching offline ===&lt;br /&gt;
&lt;br /&gt;
In any case (regardless of the network connection and [[Sync Mode|sync mode]]), {{UBIK}} always goes through all the objects currently available on the device and find the ones that match the scanned results.&lt;br /&gt;
&lt;br /&gt;
=== Searching online ===&lt;br /&gt;
&lt;br /&gt;
When the Internet is available and {{UBIK}} is not running under offline mode, the search result is enhanced by online search. This means any objects that match the scanned results can be found even if they don't yet exist locally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical background ==&lt;br /&gt;
&lt;br /&gt;
In order for objects to be identifiable through RFID, they have to carry the [[SYSCLS OBJECTWITHRFIDTAG]] classification.&lt;br /&gt;
&lt;br /&gt;
The service query used for online searching is [[SYSCLS RFIDTAGSCANQUERY]].&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[SYSCLS OBJECTWITHRFIDTAG]]&lt;br /&gt;
* [[SYSCLS RFIDTAGSCANQUERY]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Category/Version|2.4.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:2.4.0|RFID tags]]&lt;br /&gt;
[[Category:Android|RFID tags]]&lt;br /&gt;
[[Category:Mobile|RFID tags]]&lt;br /&gt;
[[Category:Version 2.5|RFID tags]]&lt;br /&gt;
[[Category:Version 3.0|RFID tags]]&lt;br /&gt;
[[Category:WinX|RFID tags]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:NFCResultNotFound.jpeg&amp;diff=29538</id>
		<title>File:NFCResultNotFound.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:NFCResultNotFound.jpeg&amp;diff=29538"/>
				<updated>2026-03-11T12:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:NFCButton.jpeg&amp;diff=29536</id>
		<title>File:NFCButton.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:NFCButton.jpeg&amp;diff=29536"/>
				<updated>2026-03-11T12:29:14Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:NFCResultFound.jpeg&amp;diff=29537</id>
		<title>File:NFCResultFound.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:NFCResultFound.jpeg&amp;diff=29537"/>
				<updated>2026-03-11T12:29:14Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29535</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29535"/>
				<updated>2026-03-11T10:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:MRO_MAUI1.jpeg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
[[File:TechStats_WinX.png|100px|Technical Status Indicator (Winx &amp;amp; Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:ConfirmedWP_WinX.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:ConfirmedWP_MAUI.jpeg|MRO Workpackage Confirmed Indicator (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:ConfirmingWP_WinX.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:MRORevoke_WinX.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:ConfirmingWP_MAUI.jpeg|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:MRORevoke_MAUI.jpeg|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRORevoke_MAUI.jpeg&amp;diff=29533</id>
		<title>File:MRORevoke MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRORevoke_MAUI.jpeg&amp;diff=29533"/>
				<updated>2026-03-11T10:41:20Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRORevoke_WinX.png&amp;diff=29534</id>
		<title>File:MRORevoke WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRORevoke_WinX.png&amp;diff=29534"/>
				<updated>2026-03-11T10:41:20Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:ConfirmingWP_MAUI.jpeg&amp;diff=29531</id>
		<title>File:ConfirmingWP MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:ConfirmingWP_MAUI.jpeg&amp;diff=29531"/>
				<updated>2026-03-11T10:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:ConfirmingWP_WinX.png&amp;diff=29532</id>
		<title>File:ConfirmingWP WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:ConfirmingWP_WinX.png&amp;diff=29532"/>
				<updated>2026-03-11T10:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:ConfirmedWP_WinX.png&amp;diff=29530</id>
		<title>File:ConfirmedWP WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:ConfirmedWP_WinX.png&amp;diff=29530"/>
				<updated>2026-03-11T10:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:ConfirmedWP_MAUI.jpeg&amp;diff=29529</id>
		<title>File:ConfirmedWP MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:ConfirmedWP_MAUI.jpeg&amp;diff=29529"/>
				<updated>2026-03-11T10:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29528</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29528"/>
				<updated>2026-03-11T10:28:15Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: /* Technical Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:MRO_MAUI1.jpeg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
[[File:TechStats_WinX.png|100px|Technical Status Indicator (Winx &amp;amp; Mobile)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:TechStats_WinX.png&amp;diff=29527</id>
		<title>File:TechStats WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:TechStats_WinX.png&amp;diff=29527"/>
				<updated>2026-03-11T10:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29526</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29526"/>
				<updated>2026-03-11T10:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:MRO_MAUI1.jpeg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_TechnicalStatusIndicator.png|thumb|Technical Status Indicator (WinX)&lt;br /&gt;
File:Android_tech_status.PNG|thumb|Technical Status Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI1.jpeg&amp;diff=29525</id>
		<title>File:MRO MAUI1.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI1.jpeg&amp;diff=29525"/>
				<updated>2026-03-11T10:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29524</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29524"/>
				<updated>2026-03-11T10:21:20Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:MRO_MAUI.jpeg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_TechnicalStatusIndicator.png|thumb|Technical Status Indicator (WinX)&lt;br /&gt;
File:Android_tech_status.PNG|thumb|Technical Status Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29523</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29523"/>
				<updated>2026-03-11T10:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_TechnicalStatusIndicator.png|thumb|Technical Status Indicator (WinX)&lt;br /&gt;
File:Android_tech_status.PNG|thumb|Technical Status Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29522</id>
		<title>MRO Objects (Client)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=MRO_Objects_(Client)&amp;diff=29522"/>
				<updated>2026-03-11T10:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MRO_WinX.png|thumb|alt=MRO Child List UI (WinX)|MRO UI (WinX)]]&lt;br /&gt;
[[File:MRO_MAUI.jpeg|thumb|alt=MRO Child List UI (Android)|MRO UI (Android)]]&lt;br /&gt;
The WinX client UI displays MRO configured objects like any other root- or child-object enriched by some additional logic and features.&lt;br /&gt;
&lt;br /&gt;
== Basic User Interface ==&lt;br /&gt;
The representation of MRO features comprises some indicators and interactive controls. In the {{UBIK}} child list, the main object displays cumulated technical and organisational status as well as the overall work progress based on the underlying data branch. Objects classified as MRO objects in general provide indicators for the MRO status. This means the status is shown next to the main icon of a child-/details-/documents-page as well as next to the icons of the child list items:&lt;br /&gt;
&lt;br /&gt;
=== Technical Status ===&lt;br /&gt;
&lt;br /&gt;
The technical status indicator is shown on all objects that represent a technical state or receive the technical status from subsequent objects in the underlying data branch. If e.g. a inventory object is reported as damaged, its parent objects will all display the exclamation mark symbol to indicate that a problem was reported in the child items.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_TechnicalStatusIndicator.png|thumb|Technical Status Indicator (WinX)&lt;br /&gt;
File:Android_tech_status.PNG|thumb|Technical Status Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Organisational Status ===&lt;br /&gt;
The organisational status indicates the amount of confirmed work within the data branch, including already confirmed work packages as well as tasks that are locked by their owning work package. The organisational status indicator is displayed on all objects that represent an organisational state or receive the organisational status from subsequent objects in the underlying data branch, and visualizes the amount of confirmed work performed within that branch.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_OrganisationalStatusIndicator.png|Organisational Status Indicator (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmedIndicator.png|MRO Workpackage Confirmed (Flag) Indicator (WinX)&lt;br /&gt;
File:Android_orga_status.PNG|Organisational Status Indicator (Android)&lt;br /&gt;
File:Android_orga_status_finished.PNG|MRO Workpackage Confirmed Indicator (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Work Progress ===&lt;br /&gt;
The work progress is calculated from the current work progress and from the progress cumulated from subsequent objects in the underlying data branch. This indicator shows the amount of work done in the data branch.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|5.0}} {{Version/MobileSince|5.0}} By default, the progress is displayed with maximum one decimal place. For example, 99.75% is displayed as 99.8%. The format string used to achieve this is &amp;lt;code&amp;gt;{0:0.#}%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If other numeric formats are preferred in your usecases, you can refer to [https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings custom numeric format strings] for more information. The template to customize for this is the UBIKMROProgressBadge within UBIKThemes.&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MRO Objects ==&lt;br /&gt;
A set of specific objects can be used to provide the required structure for MRO:&lt;br /&gt;
&lt;br /&gt;
=== Task Owner ===&lt;br /&gt;
A [[MROCLS_MRO_TASKOWNER|Task Owner]] is an object having a substructure of jobs to be done. It can have a tree of other task owners or work packages underneath that will update the status of the task owner. This status consists of technical, organisational and progress information. With a task owner a user can get an overview of all the work to be done in the underlying job structure.&lt;br /&gt;
&lt;br /&gt;
=== Work Package===&lt;br /&gt;
A [[MROCLS_MRO_WORKPACKAGE|Work Package]] is a collection of objects to collect and summarize other task owning objects, workpackages, or tasks. A simple workpackage has a certain amount of tasks that have to be finished in order to confirm the workpackage as done. More complex workpackages can also own other underlying workpackages that have to be confirmed.  Confirming a workpackage itself requires a progress of 100% of all related tasks, as well as 100% confirmed sub work packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UI_WinX_MRO_WPConfirmButton.png|MRO Workpackage confirm button (WinX)&lt;br /&gt;
File:UI_WinX_MRO_WPRevokeConfirmButton.png|MRO Workpackage revoke confirmation button (WinX)&lt;br /&gt;
File:Android_finish_workpackage.PNG|MRO Workpackage confirm button (Android)&lt;br /&gt;
File:Android reopen workpackage.PNG|MRO Workpackage revoke confirmation button (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task ===&lt;br /&gt;
A [[MROCLS_MRO_TASK|Task]] is an object reporting a certain progress to the owning workpackage. There are several specialized types of task objects. All kinds of tasks have a property called '''VALUE''' in common. It is very important, that this property is able to be validated. Therefore, a MetaAttribute (providing a validation timestamp by default) has to be attached on the used MetaProperty.&lt;br /&gt;
&lt;br /&gt;
On both clients, a Task can be reverted by clicking twice on the Not Applicable button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|The MetaProperty ''VALUE'' has to use [[Attributes]] in order to be validated. Otherwise, the calculation of work progress will not be possible.}}&lt;br /&gt;
&lt;br /&gt;
==== Measurement Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_MEASUREMENT_TASK|Measurement Task]] inherits from [[MROCLS_MRO_TASK|Task]] and documents a measured value (e.g. read from a pressure gauge). Therefore, clicking the value on the shown task opens an editor to enter the desired value. If no value was entered before, an empty line will be shown. Once a value has been entered, the task is finished. Alternatively, the task can also be closed by the option ''Not Applicable'' to document the situation of not being able to fullfill the measurement (e.g. the pressure gauge is broken). An additional small value indicator below the main value can report e.g. the previously entered value. The behaviour of this previous value indicator has to be specified separately in the customizing.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Measurment Task Empty UWP.png|Measurement Task without a reported value (WinX)&lt;br /&gt;
File:Measurment Task Not Empty UWP.png|Measurement Task with a reported value (WinX)&lt;br /&gt;
File:Measurment Task Empty Android.jpg|Measurement Task without a reported value (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Progress Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_PROGRESS_TASK| Progress Task]] inherits from [[MROCLS_MRO_MEASUREMENT_TASK|Task]] and reports a certain progress while fullfilling a task. The progress will influence the overall progress of the owning workpackage. If the task cannot be fullfilled, it can also be finished with the option ''Not Applicable''.&lt;br /&gt;
&lt;br /&gt;
There is also an [[MRO_PROGRESS_TASK_EDITOR|alternative editor]] available for progress tasks.{{Version/WinXSince|2.5.4}}&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Progress Task UWP.png|Progress Task with a reported work progress (WinX)&lt;br /&gt;
File:Progress Task Android.jpg|Progress Task with a reported work progress and a previous progress(Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Check Task ====&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_MRO_CHECK_TASK|Check Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished by reporting ''Done'' or ''Not Applicable''. This is intended for a simple To-Do task that is either done or not.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Check Task finished UWP.png|Unfinished MRO CheckTask (WinX)&lt;br /&gt;
File:Check Task android.jpg|Not Applicable MRO CheckTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Inspection Task ====&lt;br /&gt;
&lt;br /&gt;
[[MROCLS_MRO_INSPECTION_TASK|Inspection Task]] inherits from [[MROCLS_MRO_TASK|Task]] and is finished, when the user reports with a positive or negative answer or ''Not Applicable'' (e.g. reporting a yes/no answer for existing equipment).&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=497px heights=69px&amp;gt;&lt;br /&gt;
File:Finished Inspection Task UWP.png|Finished MRO InspectionTask (WinX)&lt;br /&gt;
File:Inspection task android.jpg|Finished MRO InspectionTask (Android)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Sequential Task ====&lt;br /&gt;
The [[MROCLS_SEQUENTIALTASK|sequential task classification]] allows you to pre-define a sequence in which tasks are to be resolved by users. This means that it is required for one or multiple tasks to be finished in order for other tasks to become &amp;quot;unlocked&amp;quot; and editable. A task can have any number of &amp;quot;predecessors&amp;quot;. Predecessors are the tasks that are required to be finished first.&lt;br /&gt;
&lt;br /&gt;
A task can have predecessors that live anywhere else in the object hierarchy. It is not necessary for a task and its predecessors to be part of the same work package, even though this is likely the most common use case.&lt;br /&gt;
&lt;br /&gt;
The state of a sequential task is evaluated both offline and online to get the best possible user experience. The user will see dependent tasks update immediately if their successors were finished, if those tasks are currently visible in the UI. There is 1 case in which the server-side state will override the client-side (offline) evaluation, discussed below.&lt;br /&gt;
The state of each sequential task is evaluated the following way:&lt;br /&gt;
&lt;br /&gt;
# If the server-side state says the task is open, we consider this as the truthful state and don't do any other evaluation.&lt;br /&gt;
# Check if the task has any predecessors.&lt;br /&gt;
# Try to load each predecessor task.&lt;br /&gt;
#* If loading of any predecessor fails (the object is not available offline), the task will be locked.&lt;br /&gt;
# If all predecessor tasks are finished, the task is open and can be edited. Otherwise, the task is locked.&lt;br /&gt;
&lt;br /&gt;
The customizer setting up the task dependency relations needs to ensure that the dependencies are not cyclical. In this case, it would be impossible for any tasks in the &amp;quot;cycle&amp;quot; to be finished.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
As a demonstration of this feature, see [[Media:Sequential_tasks_winx.mp4|this video]]. The relations between tasks are defined as in [[Media:Task_relations.png|this image]], starting at A1 and A2, which are not dependent on any other tasks. The lines (from left to right) indicate dependencies. This means that B2 has tasks A1 and A2 as its predecessors, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grouped Task {{Version/WinXSince|4.2}}{{Version/XamarinSince|4.2}} ====&lt;br /&gt;
Sometimes, not all tasks have to be finished. More specifically, there might be a predefined condition where you only need to finish a certain number of tasks among a group of them. These are known in {{UBIK}} as [[MROCLS_GROUPEDTASK|grouped tasks]].&lt;br /&gt;
&lt;br /&gt;
The idea is, a group of tasks can be defined as siblings to each other and they also share the same server configured threshold. When the number of finished tasks among that group exceeds the threshold, the entire group is considered as no longer necessary. When reflected in the overall status of the task owner(s), these tasks would appear as if they are finished.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Technically speaking, the finished status is completely independent from the not necessary status on a task. A grouped task which is no longer necessary can be both finished or not yet finished. In other words, users don't have to finish a not necessary grouped task, but they still can.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|The precise status calculation for grouped tasks and their task owners requires the knowledge of all siblings tasks. Imagine 2 out of 3 tasks must be finished but the client only knows 1 in total and the others are only available at the server at that time. This makes it impossible to draw conclusions whether the task(s) should be necessary or not. Under such circumstances, the local status calculation is done as if these are just regular tasks.}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|Like with the other MRO objects, the client always chooses the best available statuses for grouped tasks to present to the users. More specifically, it uses the statuses calculated by the server when the client is not offline and there are no uncommitted local changes on the involved objects. Otherwise, it uses the statuses calculated locally to the best of its knowledge.}}&lt;br /&gt;
&lt;br /&gt;
A task can also be a grouped and a sequential one at the same time. In such a case, the grouped nature of the sibling tasks will affect the way the task sequence completes.&lt;br /&gt;
&lt;br /&gt;
For example, task A1, A2 and A3 are 3 grouped sibling tasks and only 1 of them needs to be finished. At the same time, they are all predecessors of task B. Normally, all predecessors must be finished (and locked) before task B becomes the next one in the sequence and therefore unlocked. In this case, however, as soon as one of the predecessors is finished, all three become unnecessary (and locked) and task B unlocks as a result of that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Supervisor Task {{Version/XamarinSince|4.8}} ====&lt;br /&gt;
As the name suggests, supervisor tasks are those that must be finished under supervision. When users want to finish a [[MROCLS_MRO_SUPERVISOR_TASK|supervisor task]], they must hand over their work devices to a supervisor. The latter checks the work status and scans an NFC tag if the work is approved. If the [[MROCLS_MRO_SUPERVISOR|supervisor]] has sufficient permissions for the task and the correct supervisor PIN is given, the task gets unlocked and the users can proceed to finish it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Before_Verification.jpg|Supervisor Task Before Verification/Unlocking (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_Enter_PIN.jpg|Supervisor Task Enter PIN (Mobile)&lt;br /&gt;
File:UI_Xamarin_Supervisor_Task_After_Verification.jpg|Supervisor Task After Verification/Unlocking (Mobile)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A thing to note is that while the need to verify a supervisor task can be seen as a type of locking, it's certainly not the only reason for a [[Locked_Objects|locked object]]. This means a supervisor task can remain locked (although for different reasons) even after a supervisor has successfully verified it. This can often be the case if you use it in combination with other features such as [[MRO_Objects_(Client)#Sequential_Task|sequential tasks]], [[User_Rights|user rights]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|For security reasons, the verification process is cancelled if the supervisor enters the wrong PIN for three times. Scanning the tag again is required in that case.}}&lt;br /&gt;
{{Hint|A setting controls [[RFID_tags#Choose_which_information_to_use_from_a_tag|which information in a scanned tag is used]] during this process.}}&lt;br /&gt;
&lt;br /&gt;
==== Signature Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
The Signature Task is a task type that is completed by capturing a handwritten signature from the user. The task contains an editor field that serves as the entry point for the signing process. When the user clicks (or taps) on the editor field, a signature dialog opens. Within this dialog, the user can provide their signature. After confirming the input, the signature is saved and the task is automatically marked as completed.&lt;br /&gt;
&lt;br /&gt;
If the task is signed while the client is online:&lt;br /&gt;
* The User (signee) is resolved immediately by the server and displayed.&lt;br /&gt;
* The ValidationTimestamp is generated and displayed.&lt;br /&gt;
* Both values are shown directly in the editor field after signing.&lt;br /&gt;
&lt;br /&gt;
{{Hint|The User only gets resolved by the server and displayed once you're in online mode}}&lt;br /&gt;
&lt;br /&gt;
If the displayed User and/or ValidationTimestamp cannot be fully shown due to limited space in the editor field, the complete information can be accessed via a tooltip.&lt;br /&gt;
&lt;br /&gt;
* In '''UBIK WinX (UWP)''', hover over the editor field with the mouse.&lt;br /&gt;
* In '''UBIK Mobile''', perform a long press on the editor field.&lt;br /&gt;
A tooltip will appear, displaying the full User and ValidationTimestamp without truncation.&lt;br /&gt;
&lt;br /&gt;
==== Picture Task {{Version/MobileSince|5.1}}{{Version/WinXSince|5.1}} ====&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionStart}}&lt;br /&gt;
&lt;br /&gt;
A [[MROCLS_PICTURE_TASK|picture task]] is a check task which can only be finished when it has at least one child document containing a valid file. In the UI, an additional photo button is presented next to the check so users can easily take photos before finishing the tasks.&lt;br /&gt;
* As any other objects, picture tasks can carry and display [[SYSCLS_CHILDINFOOWNER|child count information]]. But that is not a mandatory part of the feature. Even when it's not configured and not visible in the UI, you can still finish the tasks.&lt;br /&gt;
* In WinX/UWP, the UI also presents an expander which allows you to display the child documents of picture tasks. This is not present by default in the Mobile app due to the screen size limit but [[Object_hierarchy_in_XAML:_NextLevel,_ParentLevel,_LinkedLevel#Show_NextLevel_Children.2FDocuments|can be easily customized]].&lt;br /&gt;
&lt;br /&gt;
{{Hint|The task is named as such because pictures are the most commonly used types, but the child documents can be of other types as well. }}&lt;br /&gt;
&lt;br /&gt;
When a user tries to finish a picture task by tapping the check, the app might perform some data synchronization first if in online mode, which includes&lt;br /&gt;
* Syncing the child objects (including documents) of the task.&lt;br /&gt;
* Downloading the file(s) of the child documents.&lt;br /&gt;
During data synchronization, the check button on that task turns into a wait indicator. Afterwards, the app checks if the prerequisites to finish the task are met.&lt;br /&gt;
* If there are no child documents or no local files for the child documents, the task remains unfinished and the user gets informed about the reasons.&lt;br /&gt;
* Otherwise, the task gets finished and the photo button gets disabled.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Setting NA (not applicable) on a picture task is always possible, regardless of the condition of child documents.}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstructionEnd}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MRO objects with project information (WinX only) {{Version/WinXSince|2.5.4}} ===&lt;br /&gt;
[[File:UI_WinX_MRO_ProjectInfo.png|thumb|MRO Object with Project Info (WinX)]]&lt;br /&gt;
An MRO object (except tasks) might also bring along [[MROCLS_PROJECTINFORMATION|project information]]. In this case, the project information together with the MRO progress are displayed in a bar chart. The start &amp;amp; end dates of the MRO object are displayed on the progress bar. The length and the position of the progress bar, together with the current date mark indicate the timeline.&lt;br /&gt;
{{Clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking ==&lt;br /&gt;
When an (MRO) object is locked, editing it becomes impossible. More details about [[Locked_Objects|locked objects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[MRO (Plugin)]]&lt;br /&gt;
* [[MROCLS_PROJECT]]&lt;br /&gt;
* [[MROCLS_PROJECTINFORMATION]]&lt;br /&gt;
* [[MROCLS_SEQUENTIALTASK]]&lt;br /&gt;
* [[MROCLS_GROUPEDTASK]]&lt;br /&gt;
* [[MROCLS_MRO_CHECK_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_INSPECTION_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_MEASUREMENT_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_PROGRESS_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASK]]&lt;br /&gt;
* [[MROCLS_MRO_TASKOWNER]]&lt;br /&gt;
* [[MROCLS_MRO_WORKPACKAGE]]&lt;br /&gt;
* [[MROCLS_PROCEDURE#Procedure Workpackage]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_TASK#Switch Task]] (Classification)&lt;br /&gt;
* [[MROCLS_SWITCH_END_TASK#Switch End Task]] (Classification)&lt;br /&gt;
* [[MROCLS_CALCULATION_TASK#Calculation Task]] (Classification)&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|MRO Objects (UBIK WinX)]]&lt;br /&gt;
[[Category:Client|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Mobile|MRO Objects (Client)]]&lt;br /&gt;
[[Category:Pages with broken file links|MRO Objects (Client)]]&lt;br /&gt;
[[Category:WinX|MRO Objects (UBIK WinX)]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI.jpeg&amp;diff=29521</id>
		<title>File:MRO MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI.jpeg&amp;diff=29521"/>
				<updated>2026-03-11T10:19:48Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: KGR uploaded a new version of File:MRO MAUI.jpeg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI.jpeg&amp;diff=29519</id>
		<title>File:MRO MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRO_MAUI.jpeg&amp;diff=29519"/>
				<updated>2026-03-11T10:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:MRO_WinX.png&amp;diff=29520</id>
		<title>File:MRO WinX.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:MRO_WinX.png&amp;diff=29520"/>
				<updated>2026-03-11T10:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Device_ID&amp;diff=29518</id>
		<title>Device ID</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Device_ID&amp;diff=29518"/>
				<updated>2026-03-11T09:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:DeviceID_WinX.png|thumb|350px| Device ID on UWP Client]]&lt;br /&gt;
The Device ID is a unique identifier of the device, which is fetched from the OS and used to uniquely identify devices to [[HowTo:Restrict_Access_to_known_Devices_(Satellites) |restrict access]] to them. The type of ID and its origin vary by platform. The Device ID is also sent to the Ubik Web Service. &lt;br /&gt;
&lt;br /&gt;
== Accessing the Device ID ==&lt;br /&gt;
Accessing the Device ID is designed to be simple.&lt;br /&gt;
=== Android ===&lt;br /&gt;
On the legacy Android client, the Device ID can be found on the Information page.&lt;br /&gt;
=== UWP ===&lt;br /&gt;
On the Windows client, the Device ID can be accessed on the Connection Settings page.&lt;br /&gt;
=== Mobile {{Version/XamarinSince|1.1}} === &lt;br /&gt;
On the newer Mobile clients (iOS and Android), the Device ID can be inspected on the General Settings page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;220&amp;quot; heights=&amp;quot;360&amp;quot;&amp;gt;&lt;br /&gt;
File:DeviceID_MAUI.jpeg| Device ID on Mobile Client&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Information ==&lt;br /&gt;
The Device ID should be unique enough to exclusively identify a device/client and shouldn't get lost if the app updates.&lt;br /&gt;
=== Windows ===&lt;br /&gt;
This information applies both to the UWP/WinX client as well as the unreleased Mobile Widows client:&lt;br /&gt;
&lt;br /&gt;
In the UWP/WinX client until version 3.7.17, the Device ID is created using the [https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.hardwareidentification.getpackagespecifictoken ASHWID identifier] encoded to a Base64 string. This ID is relatively consistent but can change when e.g. a docking station with a network card is attached.&lt;br /&gt;
&lt;br /&gt;
{{Version/WinXSince|3.7.18}}&lt;br /&gt;
Starting with UWP 3.7.18, the [https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.systemidentification.getsystemidforpublisher SystemIdentification.GetSystemIdForPublisher()] method is used to return a unique system identifier based on the app publisher ID.&lt;br /&gt;
The ID is generated either using a Trusted Platform Module (TPM) if present or a Unified Extensible Firmware Interface (UEFI) if present.&lt;br /&gt;
If neither of these sources is available, this method will return an ID that is backed by the Windows registry.&lt;br /&gt;
If a system does not have a TPM or UEFI support, and thus an ID was obtained from the registry, a clean install of Windows will result in a new, different ID being returned. If no ID could be generated, the old ASHWID identifier is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
On the legacy native Android client, the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID ANDROID_ID (SSAID)] is accessed. Before Android 8, this ID was bound to a device for its lifetime. Since Android 8, the ID is different for every user (if the device has the multi-user feature enabled) and when the device is reset.&lt;br /&gt;
&lt;br /&gt;
On the Mobile Android app, before version 1.0.80, depending on the version of the OS, the [https://developer.android.com/reference/android/os/Build#SERIAL Build.SERIAL] is accessed (below Android 8), and [https://developer.android.com/reference/android/os/Build#getSerial() Build.getSerial] starting with Android 8, also requiring the &amp;lt;code&amp;gt;READ_PHONE_STATE&amp;lt;/code&amp;gt; permission. With Android 10, the function only works for devices enrolled in an organization.&lt;br /&gt;
&lt;br /&gt;
Version 1.0.80 of the Mobile Android app based the device ID onto the [https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID ANDROID_ID (SSAID)], in the same way to how the native Android client does it. This also removed the need for the &amp;lt;code&amp;gt;READ_PHONE_STATE&amp;lt;/code&amp;gt; permission. This method now also works for Android 10+, even for unenrolled devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== iOS ===&lt;br /&gt;
On iOS, the application makes use of the [https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor identifierForVendor]. This is a GUID uniquely identifying a device to an app vendor.&lt;br /&gt;
&lt;br /&gt;
[[Category:Android|Device ID]]&lt;br /&gt;
[[Category:Device management|Device ID]]&lt;br /&gt;
[[Category:Hardware|Device ID]]&lt;br /&gt;
[[Category:Mobile|Device ID]]&lt;br /&gt;
[[Category:WinX|Device ID]]&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:DeviceID_MAUI.jpeg&amp;diff=29516</id>
		<title>File:DeviceID MAUI.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:DeviceID_MAUI.jpeg&amp;diff=29516"/>
				<updated>2026-03-11T09:00:20Z</updated>
		
		<summary type="html">&lt;p&gt;KGR: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>KGR</name></author>	</entry>

	</feed>