<?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=LDO</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=LDO"/>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Special:Contributions/LDO"/>
		<updated>2026-04-30T02:01:44Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29633</id>
		<title>Configure UBIK Archon Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29633"/>
				<updated>2026-03-30T06:17:18Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The UBIK.Archon WebService is the central information hub that is responsible for managing the set of available licenses for one subscription&lt;br /&gt;
This page describes how to setup the system.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
* Make sure the [[HowTo:Install_UBIK_Web_Service#UBIK.C2.AE_Authentication_Web_Service_USAM.svc|USAM]] is installed on the IIS Server.&lt;br /&gt;
* Install the UBIK Archon Webservice on the IIS Server.&lt;br /&gt;
* If the IIS Server does not have it installed, download and install the .NET 8.0 Hosting Bundle from Microsoft. This bundle includes the .NET Runtime and the ASP.NET Core Runtime required for hosting ASP.NET Core applications on IIS.&lt;br /&gt;
* Make sure the URL Rewrite Module is installed on the IIS Server.&lt;br /&gt;
* Make sure all files are accessible&lt;br /&gt;
&lt;br /&gt;
= Installation UBIK Archon =&lt;br /&gt;
* Download the UBIK Archon Webservice from the release portal.&lt;br /&gt;
* Deploy the UBIK Archon Webservice to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)&lt;br /&gt;
** IIS Manager setting check: see [[Configure_EventNotification_Endpoint_and_Enterprise_Service_for_CUI#IIS_Manager|IIS Manager]]&lt;br /&gt;
&lt;br /&gt;
== IIS Manager ==&lt;br /&gt;
* Add a new website under the &amp;quot;Sites&amp;quot; folder in IIS Manager.&lt;br /&gt;
** &amp;quot;Site Name&amp;quot;, &amp;quot;Application pool&amp;quot;, &amp;quot;Physical path&amp;quot;, &amp;quot;Binding&amp;quot;, &amp;quot;Host Name&amp;quot;, &amp;quot;Port&amp;quot; and &amp;quot;SSL Certificate&amp;quot;  should be adapted accordingly.&lt;br /&gt;
* ''' Example settings'''. &amp;lt;br/&amp;gt; [[Image:IIS1.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
{{Hint| When setting up the IIS Application Pool responsible for the Archon Service the Load User Profile setting must be set to &amp;quot;true&amp;quot;. This way Archon can create the necessary files under the specified User in the File System}}&lt;br /&gt;
&lt;br /&gt;
= Setting up UBIK Archon =&lt;br /&gt;
&lt;br /&gt;
== Firewall settings ==&lt;br /&gt;
Firewall and Router settings must adapted so the Archon service can be accessible from outside of the IIS Server&lt;br /&gt;
* A New Inbound rule must be created in the IIS Server &amp;quot;Firewall Settings&amp;quot;, using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
* A new Port forwarding rule must also be added in the Router &amp;quot;Firewall Settings&amp;quot; using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
== Secret ==&lt;br /&gt;
The secret must be defined once for an Archon Service.&lt;br /&gt;
Even if the secret can be defined implicit by the very first time an USAM registers at the Archon we recommend to define the secret in advance using the following URL: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToArchon/api/admin/_put_your_secret_here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USAM ==&lt;br /&gt;
The UBIK Archon URL must be configured in the USAM's AppSettings.config file, e.g.:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;appSettings&amp;gt;&lt;br /&gt;
 &amp;lt;add key=&amp;quot;UBIK.Service.ArchonUrl&amp;quot; value=&amp;quot;https://hostname:port/api&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connecting UBIK Archon with USAM ==&lt;br /&gt;
The UBIK Archon service has to be connected to the USAM service. ''This must be done only once for each Database.'' This can be achieved using a URL schema, the user has to provide hostname:port/path to Usam service/ the method &amp;quot;register&amp;quot; and a couple of parameters. The list of parameters differ in newer Ubik Versions.&lt;br /&gt;
&lt;br /&gt;
=== Parameters until Version 4.9 ===&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot;: The &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parameters since Version 5.0 ===&lt;br /&gt;
* Parameter USAM-Name: human readable name of the USAM service. We recommend to use the name of the Usecase  (e.g. &amp;quot;Productive System&amp;quot;).&lt;br /&gt;
* Parameter License - Mode: The license mode defines how a license is evaluated by the Archon for the given USAM :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=50%&lt;br /&gt;
|-&lt;br /&gt;
! width=10% | Value  !! width=20% | Mode !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Standard || Archon compares Login Name and Device - ID.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Login || Archon compares Login Name only. The Device ID will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Device || Archon compares Device ID only. The Login Name will be ignored.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot; (the &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator). &lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_usam-name_here_/_put_license-mode_here_/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hint|One USAM can only be registered once. If you want to register it again or use a different Archon Service you need to unregister it first.}}&lt;br /&gt;
{{Hint|A registration key is saved encrypted in the UBIK Database (as setting).}}&lt;br /&gt;
&lt;br /&gt;
=== Disconnecting an USAM from the Archon ===&lt;br /&gt;
&lt;br /&gt;
There is also the possibility to unconnect the USAM service from the Archon Service.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/unregister&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using UBIK Archon =&lt;br /&gt;
== Archon ==&lt;br /&gt;
=== Archon Web UI ===&lt;br /&gt;
Using swagger a test Web UI can be accessed.&lt;br /&gt;
* ''' Example:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/swagger/index.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to fetch unique Archon Id ===&lt;br /&gt;
* ''' Example using Postman Get:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/api/admin/key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== USAM ==&lt;br /&gt;
=== Session Details ===&lt;br /&gt;
The UBIK Archon service can provide detailed Session Information. Session details can be called using a web service method and will provide additional information about the currently active sessions:&lt;br /&gt;
* How many users were logged in, &lt;br /&gt;
* on which day, &lt;br /&gt;
* with how many sessions, &lt;br /&gt;
* how many users were online simultaneously, &lt;br /&gt;
* and average session duration.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/session-details/2024.06-11/2024.06-11&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;AverageSessionDuration&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;Concurrent&amp;quot;: 7,&lt;br /&gt;
        &amp;quot;Day&amp;quot;: &amp;quot;/Date(1718056800000+0200)/&amp;quot;,&lt;br /&gt;
        &amp;quot;Logins&amp;quot;: 25,&lt;br /&gt;
        &amp;quot;Sessions&amp;quot;: 48&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Archon cannot be contacted =&lt;br /&gt;
One of the most common reasons for being unable to contact the Archon or register a USAM is the WebDAV Publishing module, which may be preinstalled on the IIS server. This module interferes with the requests sent by the Archon, preventing certain methods from executing correctly. You can verify whether WebDAV is installed by checking the Server Manager on the IIS machine.&lt;br /&gt;
&lt;br /&gt;
To prevent this interference, you must explicitly '''disable WebDAV''' in the Archon’s web.config file.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
    &amp;lt;modules&amp;gt;&lt;br /&gt;
        &amp;lt;remove name=&amp;quot;WebDAVModule&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
However, it’s very important to note that adding this configuration when the WebDAV module is not installed can also cause communication issues with the Archon. For that reason, only apply this configuration if you have confirmed that the WebDAV module is actually present on the IIS server.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&amp;lt;!-- DO NOT MODIFY THE NAME OF THIS SECTION, BUT REMOVE IT IF NOT REQUIRED --&amp;gt;&lt;br /&gt;
* [[UBIK_LICENSE_MONITORING]]&lt;br /&gt;
* [[HowTo:Configure_Microsoft_IIS_for_UBIK]]&lt;br /&gt;
* [[HowTo:Install_Microsoft_IIS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installing|Configure UBIK Archon Service]]&lt;br /&gt;
[[Category:Login management|Configure UBIK Archon Service]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29629</id>
		<title>Configure UBIK Archon Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29629"/>
				<updated>2026-03-26T12:35:42Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The UBIK.Archon WebService is the central information hub that is responsible for managing the set of available licenses for one subscription&lt;br /&gt;
This page describes how to setup the system.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
* Make sure the [[HowTo:Install_UBIK_Web_Service#UBIK.C2.AE_Authentication_Web_Service_USAM.svc|USAM]] is installed on the IIS Server.&lt;br /&gt;
* Install the UBIK Archon Webservice on the IIS Server.&lt;br /&gt;
* If the IIS server does not have it installed, download and install the .NET 8.0 Hosting Bundle from Microsoft. This bundle includes the .NET Runtime and the ASP.NET Core Runtime required for hosting ASP.NET Core applications on IIS.&lt;br /&gt;
* Make sure the URL Rewrite Module is installed on the IIS Server.&lt;br /&gt;
* Make sure all files are accessible&lt;br /&gt;
&lt;br /&gt;
= Installation UBIK Archon =&lt;br /&gt;
* Download the UBIK Archon Webservice from the release portal.&lt;br /&gt;
* Deploy the UBIK Archon Webservice to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)&lt;br /&gt;
** IIS Manager setting check: see [[Configure_EventNotification_Endpoint_and_Enterprise_Service_for_CUI#IIS_Manager|IIS Manager]]&lt;br /&gt;
&lt;br /&gt;
== IIS Manager ==&lt;br /&gt;
* Add a new website under the &amp;quot;Sites&amp;quot; folder in IIS Manager.&lt;br /&gt;
** &amp;quot;Site Name&amp;quot;, &amp;quot;Application pool&amp;quot;, &amp;quot;Physical path&amp;quot;, &amp;quot;Binding&amp;quot;, &amp;quot;Host Name&amp;quot;, &amp;quot;Port&amp;quot; and &amp;quot;SSL Certificate&amp;quot;  should be adapted accordingly.&lt;br /&gt;
* ''' Example settings'''. &amp;lt;br/&amp;gt; [[Image:IIS1.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
{{Hint| When setting up the IIS Application Pool responsible for the Archon Service the Load User Profile setting must be set to &amp;quot;true&amp;quot;. This way Archon can create the necessary files under the specified User in the File System}}&lt;br /&gt;
&lt;br /&gt;
= Setting up UBIK Archon =&lt;br /&gt;
&lt;br /&gt;
== Firewall settings ==&lt;br /&gt;
Firewall and Router settings must adapted so the Archon service can be accessible from outside of the IIS Server&lt;br /&gt;
* A New Inbound rule must be created in the IIS Server &amp;quot;Firewall Settings&amp;quot;, using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
* A new Port forwarding rule must also be added in the Router &amp;quot;Firewall Settings&amp;quot; using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
== Secret ==&lt;br /&gt;
The secret must be defined once for an Archon Service.&lt;br /&gt;
Even if the secret can be defined implicit by the very first time an USAM registers at the Archon we recommend to define the secret in advance using the following URL: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToArchon/api/admin/_put_your_secret_here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USAM ==&lt;br /&gt;
The UBIK Archon URL must be configured in the USAM's AppSettings.config file, e.g.:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;appSettings&amp;gt;&lt;br /&gt;
 &amp;lt;add key=&amp;quot;UBIK.Service.ArchonUrl&amp;quot; value=&amp;quot;https://hostname:port/api&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connecting UBIK Archon with USAM ==&lt;br /&gt;
The UBIK Archon service has to be connected to the USAM service. ''This must be done only once for each Database.'' This can be achieved using a URL schema, the user has to provide hostname:port/path to Usam service/ the method &amp;quot;register&amp;quot; and a couple of parameters. The list of parameters differ in newer Ubik Versions.&lt;br /&gt;
&lt;br /&gt;
=== Parameters until Version 4.9 ===&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot;: The &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parameters since Version 5.0 ===&lt;br /&gt;
* Parameter USAM-Name: human readable name of the USAM service. We recommend to use the name of the Usecase  (e.g. &amp;quot;Productive System&amp;quot;).&lt;br /&gt;
* Parameter License - Mode: The license mode defines how a license is evaluated by the Archon for the given USAM :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=50%&lt;br /&gt;
|-&lt;br /&gt;
! width=10% | Value  !! width=20% | Mode !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Standard || Archon compares Login Name and Device - ID.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Login || Archon compares Login Name only. The Device ID will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Device || Archon compares Device ID only. The Login Name will be ignored.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot; (the &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator). &lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_usam-name_here_/_put_license-mode_here_/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hint|One USAM can only be registered once. If you want to register it again or use a different Archon Service you need to unregister it first.}}&lt;br /&gt;
{{Hint|A registration key is saved encrypted in the UBIK Database (as setting).}}&lt;br /&gt;
&lt;br /&gt;
=== Disconnecting an USAM from the Archon ===&lt;br /&gt;
&lt;br /&gt;
There is also the possibility to unconnect the USAM service from the Archon Service.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/unregister&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using UBIK Archon =&lt;br /&gt;
== Archon ==&lt;br /&gt;
=== Archon Web UI ===&lt;br /&gt;
Using swagger a test Web UI can be accessed.&lt;br /&gt;
* ''' Example:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/swagger/index.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to fetch unique Archon Id ===&lt;br /&gt;
* ''' Example using Postman Get:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/api/admin/key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== USAM ==&lt;br /&gt;
=== Session Details ===&lt;br /&gt;
The UBIK Archon service can provide detailed Session Information. Session details can be called using a web service method and will provide additional information about the currently active sessions:&lt;br /&gt;
* How many users were logged in, &lt;br /&gt;
* on which day, &lt;br /&gt;
* with how many sessions, &lt;br /&gt;
* how many users were online simultaneously, &lt;br /&gt;
* and average session duration.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/session-details/2024.06-11/2024.06-11&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;AverageSessionDuration&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;Concurrent&amp;quot;: 7,&lt;br /&gt;
        &amp;quot;Day&amp;quot;: &amp;quot;/Date(1718056800000+0200)/&amp;quot;,&lt;br /&gt;
        &amp;quot;Logins&amp;quot;: 25,&lt;br /&gt;
        &amp;quot;Sessions&amp;quot;: 48&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Archon cannot be contacted =&lt;br /&gt;
One of the most common reasons for being unable to contact the Archon or register a USAM is the WebDAV Publishing module, which may be preinstalled on the IIS server. This module interferes with the requests sent by the Archon, preventing certain methods from executing correctly. You can verify whether WebDAV is installed by checking the Server Manager on the IIS machine.&lt;br /&gt;
&lt;br /&gt;
To prevent this interference, you must explicitly '''disable WebDAV''' in the Archon’s web.config file.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
    &amp;lt;modules&amp;gt;&lt;br /&gt;
        &amp;lt;remove name=&amp;quot;WebDAVModule&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
However, it’s very important to note that adding this configuration when the WebDAV module is not installed can also cause communication issues with the Archon. For that reason, only apply this configuration if you have confirmed that the WebDAV module is actually present on the IIS server.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&amp;lt;!-- DO NOT MODIFY THE NAME OF THIS SECTION, BUT REMOVE IT IF NOT REQUIRED --&amp;gt;&lt;br /&gt;
* [[UBIK_LICENSE_MONITORING]]&lt;br /&gt;
* [[HowTo:Configure_Microsoft_IIS_for_UBIK]]&lt;br /&gt;
* [[HowTo:Install_Microsoft_IIS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installing|Configure UBIK Archon Service]]&lt;br /&gt;
[[Category:Login management|Configure UBIK Archon Service]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29628</id>
		<title>Configure UBIK Archon Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Configure_UBIK_Archon_Service&amp;diff=29628"/>
				<updated>2026-03-26T12:33:01Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The UBIK.Archon WebService is the central information hub that is responsible for managing the set of available licenses for one subscription&lt;br /&gt;
This page describes how to setup the system.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
* Make sure the [[HowTo:Install_UBIK_Web_Service#UBIK.C2.AE_Authentication_Web_Service_USAM.svc|USAM]] is installed on the IIS Server.&lt;br /&gt;
* Install the UBIK Archon Webservice on the IIS Server.&lt;br /&gt;
* If the IIS server does not have it installed, download and install the .NET 8.0 Hosting Bundle from Microsoft. This bundle includes the .NET Runtime and the ASP.NET Core Runtime required for hosting ASP.NET Core applications on IIS.&lt;br /&gt;
* Make sure the URL Rewrite Module is installed on the IIS Server.&lt;br /&gt;
* Make sure all files are accessible&lt;br /&gt;
&lt;br /&gt;
= Installation UBIK Archon =&lt;br /&gt;
* Download the UBIK Archon Webservice from the release portal.&lt;br /&gt;
* Deploy the UBIK Archon Webservice to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)&lt;br /&gt;
** IIS Manager setting check: see [[Configure_EventNotification_Endpoint_and_Enterprise_Service_for_CUI#IIS_Manager|IIS Manager]]&lt;br /&gt;
&lt;br /&gt;
== IIS Manager ==&lt;br /&gt;
* Add a new website under the &amp;quot;Sites&amp;quot; folder in IIS Manager.&lt;br /&gt;
** &amp;quot;Site Name&amp;quot;, &amp;quot;Application pool&amp;quot;, &amp;quot;Physical path&amp;quot;, &amp;quot;Binding&amp;quot;, &amp;quot;Host Name&amp;quot;, &amp;quot;Port&amp;quot; and &amp;quot;SSL Certificate&amp;quot;  should be adapted accordingly.&lt;br /&gt;
* ''' Example settings'''. &amp;lt;br/&amp;gt; [[Image:IIS1.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
{{Hint| When setting up the IIS Application Pool responsible for the Archon Service the Load User Profile setting must be set to &amp;quot;true&amp;quot;. This way Archon can create the necessary files under the specified User in the File System}}&lt;br /&gt;
&lt;br /&gt;
= Setting up UBIK Archon =&lt;br /&gt;
&lt;br /&gt;
== Firewall settings ==&lt;br /&gt;
Firewall and Router settings must adapted so the Archon service can be accessible from outside of the IIS Server&lt;br /&gt;
* A New Inbound rule must be created in the IIS Server &amp;quot;Firewall Settings&amp;quot;, using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
* A new Port forwarding rule must also be added in the Router &amp;quot;Firewall Settings&amp;quot; using the same &amp;quot;Port&amp;quot; as the one specified in the website &amp;quot;Binding&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
== Secret ==&lt;br /&gt;
The secret must be defined once for an Archon Service.&lt;br /&gt;
Even if the secret can be defined implicit by the very first time an USAM registers at the Archon we recommend to define the secret in advance using the following URL: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToArchon/api/admin/_put_your_secret_here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USAM ==&lt;br /&gt;
The UBIK Archon URL must be configured in the USAM's AppSettings.config file, e.g.:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;appSettings&amp;gt;&lt;br /&gt;
 &amp;lt;add key=&amp;quot;UBIK.Service.ArchonUrl&amp;quot; value=&amp;quot;https://hostname:port/api&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connecting UBIK Archon with USAM ==&lt;br /&gt;
The UBIK Archon service has to be connected to the USAM service. ''This must be done only once for each Database.'' This can be achieved using a URL schema, the user has to provide hostname:port/path to Usam service/ the method &amp;quot;register&amp;quot; and a couple of parameters. The list of parameters differ in newer Ubik Versions.&lt;br /&gt;
&lt;br /&gt;
=== Parameters until Version 4.9 ===&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot;: The &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parameters since Version 5.0 ===&lt;br /&gt;
* Parameter USAM-Name: human readable name of the USAM service. We recommend to use the name of the Usecase  (e.g. &amp;quot;Productive System&amp;quot;).&lt;br /&gt;
* Parameter License - Mode: The license mode defines how a license is evaluated by the Archon for the given USAM :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=50%&lt;br /&gt;
|-&lt;br /&gt;
! width=10% | Value  !! width=20% | Mode !! Description &lt;br /&gt;
|-&lt;br /&gt;
| 0 || Standard || Archon compares Login Name and Device - ID.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Login || Archon compares Login Name only. The Device ID will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Device || Archon compares Device ID only. The Login Name will be ignored.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Parameter &amp;quot;secret&amp;quot; (the &amp;quot;secret&amp;quot; is the password selected by the Archon Administrator). &lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
The following example URL registers the UBIK Archon service on the USAM and the USAM on the Archon service:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/register/_put_usam-name_here_/_put_license-mode_here_/_put_secret_here_&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hint|One USAM can only be registered once. If you want to register it again or use a different Archon Service you need to unregister it first.}}&lt;br /&gt;
{{Hint|A registration key is saved encrypted in the UBIK Database (as setting).}}&lt;br /&gt;
&lt;br /&gt;
=== Disconnecting an USAM from the Archon ===&lt;br /&gt;
&lt;br /&gt;
There is also the possibility to unconnect the USAM service from the Archon Service.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/unregister&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using UBIK Archon =&lt;br /&gt;
== Archon ==&lt;br /&gt;
=== Archon Web UI ===&lt;br /&gt;
Using swagger a test Web UI can be accessed.&lt;br /&gt;
* ''' Example:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/swagger/index.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to fetch unique Archon Id ===&lt;br /&gt;
* ''' Example using Postman Get:''' &lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/api/admin/key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== USAM ==&lt;br /&gt;
=== Session Details ===&lt;br /&gt;
The UBIK Archon service can provide detailed Session Information. Session details can be called using a web service method and will provide additional information about the currently active sessions:&lt;br /&gt;
* How many users were logged in, &lt;br /&gt;
* on which day, &lt;br /&gt;
* with how many sessions, &lt;br /&gt;
* how many users were online simultaneously, &lt;br /&gt;
* and average session duration.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
https://hostname:port/PathToUsam/USAM.svc/session-details/2024.06-11/2024.06-11&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;AverageSessionDuration&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;Concurrent&amp;quot;: 7,&lt;br /&gt;
        &amp;quot;Day&amp;quot;: &amp;quot;/Date(1718056800000+0200)/&amp;quot;,&lt;br /&gt;
        &amp;quot;Logins&amp;quot;: 25,&lt;br /&gt;
        &amp;quot;Sessions&amp;quot;: 48&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Archon cannot be contacted ===&lt;br /&gt;
One of the most common reasons for being unable to contact the Archon or register a USAM is the WebDAV Publishing module, which may be preinstalled on the IIS server. This module interferes with the requests sent by the Archon, preventing certain methods from executing correctly. You can verify whether WebDAV is installed by checking the Server Manager on the IIS machine.&lt;br /&gt;
&lt;br /&gt;
To prevent this interference, you must explicitly '''disable WebDAV''' in the Archon’s web.config file.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
    &amp;lt;modules&amp;gt;&lt;br /&gt;
        &amp;lt;remove name=&amp;quot;WebDAVModule&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
However, it’s very important to note that adding this configuration when the WebDAV module is not installed can also cause communication issues with the Archon. For that reason, only apply this configuration if you have confirmed that the WebDAV module is actually present on the IIS server.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
&amp;lt;!-- DO NOT MODIFY THE NAME OF THIS SECTION, BUT REMOVE IT IF NOT REQUIRED --&amp;gt;&lt;br /&gt;
* [[UBIK_LICENSE_MONITORING]]&lt;br /&gt;
* [[HowTo:Configure_Microsoft_IIS_for_UBIK]]&lt;br /&gt;
* [[HowTo:Install_Microsoft_IIS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installing|Configure UBIK Archon Service]]&lt;br /&gt;
[[Category:Login management|Configure UBIK Archon Service]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=SYSCLS_MIN_MAX_CLASSIFICATION&amp;diff=28608</id>
		<title>SYSCLS MIN MAX CLASSIFICATION</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=SYSCLS_MIN_MAX_CLASSIFICATION&amp;diff=28608"/>
				<updated>2025-09-04T10:12:10Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClassificationInfoBox&lt;br /&gt;
| title = Min/Max Classification Object &lt;br /&gt;
| name = {{PAGENAMEE}}&lt;br /&gt;
| inheritance = -&lt;br /&gt;
| namespace = System.Classification.Content&lt;br /&gt;
| purpose = Classify properties as Min/Max to extend the set of values.&lt;br /&gt;
| version = 4.7.0+&lt;br /&gt;
| id = {233C318B-45E0-4C4D-A37A-5547D2F83226}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If a property is classified as Min/Max property, it will have 2 values (Min - Value and Max - Value)&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
To classify a property using the Min/Max fields, simply set the VALUE_TYPE of the respective property to 'MinMax'. The system will automatically apply the classification, which can then be reviewed in the ACM Manager.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_MetaProperty#VALUE_TYPE|Value Type]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Category/Version|4.7.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:4.7.0|Min Max]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=SYSCLS_MIN_NORM_MAX_CLASSIFICATION&amp;diff=28607</id>
		<title>SYSCLS MIN NORM MAX CLASSIFICATION</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=SYSCLS_MIN_NORM_MAX_CLASSIFICATION&amp;diff=28607"/>
				<updated>2025-09-04T10:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClassificationInfoBox&lt;br /&gt;
| title = Min/Norm/Max Classification Object &lt;br /&gt;
| name = {{PAGENAMEE}}&lt;br /&gt;
| inheritance = -&lt;br /&gt;
| namespace = System.Classification.Content&lt;br /&gt;
| purpose = Classify properties as Min/Norm/Max to extend the set of values.&lt;br /&gt;
| version = 4.7.0+&lt;br /&gt;
| id = {DCD66C9E-8B98-4535-A7A3-792B6A47FFDD}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If a property is classified as Min/Norm/Max property, it will have three values (Min - Value, Normal - Value and Max - Value)&lt;br /&gt;
 &lt;br /&gt;
== Implementation ==&lt;br /&gt;
To classify a property using the Min/Norm/Max fields, simply set the VALUE_TYPE of the respective property to 'MinNormMax'. The system will automatically apply the classification, which can then be reviewed in the ACM Manager.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_MetaProperty#VALUE_TYPE|Value Type]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Category/Version|4.7.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:4.7.0|Min Value Max]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Import_Runs&amp;diff=28479</id>
		<title>Import Runs</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Import_Runs&amp;diff=28479"/>
				<updated>2025-08-11T10:03:21Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Attention|This page is under construction.}}&lt;br /&gt;
= Equipment Import =&lt;br /&gt;
&lt;br /&gt;
To import Equipments following columns are required:&lt;br /&gt;
* EquipmentID (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' “CoordinateLong”, “CoordinateLat” and “CoordinateAltitude” must be formatted as Number!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* PIDNumber (Text)&lt;br /&gt;
* Medium (Text)&lt;br /&gt;
* System (Text)&lt;br /&gt;
* SystemDescription (Text)&lt;br /&gt;
* PlanNumber (Text)&lt;br /&gt;
* GridCode (Text)&lt;br /&gt;
* Location (Text)&lt;br /&gt;
* LocationStage (Text)&lt;br /&gt;
* LocationHeight (Text)&lt;br /&gt;
* Plant (Text)&lt;br /&gt;
* Tag_Nr (Text)&lt;br /&gt;
* EquipmentDescription (Text)&lt;br /&gt;
* Maint_Plant (Text)&lt;br /&gt;
* AssistingSystem1 (Text)&lt;br /&gt;
* AssistingSystem2 (Text)&lt;br /&gt;
* Subsystem (Text)&lt;br /&gt;
* SubsystemDescription (Text)&lt;br /&gt;
* Zone (Text)&lt;br /&gt;
* CoordinateLong (Number)&lt;br /&gt;
* CoordinateLat (Number)&lt;br /&gt;
* CoordinateAltitude (Number)&lt;br /&gt;
* PrioritySAP (Text)&lt;br /&gt;
* EquipmentType (Text)&lt;br /&gt;
* EquipmentGroup (Text)&lt;br /&gt;
&lt;br /&gt;
= Workorder Import =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To import WorkOrders following column is required:&lt;br /&gt;
* Workorder (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* EquipmentID (Text)&lt;br /&gt;
* Description (Text)&lt;br /&gt;
* WBS (Text)&lt;br /&gt;
* Comment (Text)&lt;br /&gt;
* Longtext (Text)&lt;br /&gt;
* DrainlistDocument (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Following columns are optional, as we recommend to import them directly using the Equipment.import instead:&lt;br /&gt;
* EquipmentType (Text)&lt;br /&gt;
* EquipmentGroup (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Progress Operation Import =&lt;br /&gt;
&lt;br /&gt;
To import Operations following columns are required:&lt;br /&gt;
* OperationID (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' “Number” and “NormalDuration” must be formatted as Number and all dates must be formatted as TT/MM/JJJJ hh:mm!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* Workorder (Text)&lt;br /&gt;
* Operation (Text)&lt;br /&gt;
* ShortText (Text)&lt;br /&gt;
* Number (Number)&lt;br /&gt;
* NormalDuration (Number)&lt;br /&gt;
* NormalDurationUnit (Text)&lt;br /&gt;
* Work (Number)&lt;br /&gt;
* WorkUnit (Text)&lt;br /&gt;
* Workcenter (Text)&lt;br /&gt;
* ActivityCode (Text)&lt;br /&gt;
* eStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* eFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* Company (Text)&lt;br /&gt;
* CompanyCode (Text)&lt;br /&gt;
* LongText (Text)&lt;br /&gt;
* Comment (Text)&lt;br /&gt;
* PermitCode (Text)&lt;br /&gt;
* Planner (Text)&lt;br /&gt;
* Suboperation (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QRF Operation Import =&lt;br /&gt;
&lt;br /&gt;
To import Operations following columns are required:&lt;br /&gt;
* OperationID (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' “Number” and “NormalDuration” must be formatted as Number and all dates must be formatted as TT/MM/JJJJ hh:mm!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* Workorder (Text)&lt;br /&gt;
* Operation (Text)&lt;br /&gt;
* ShortText (Text)&lt;br /&gt;
* Number (Number)&lt;br /&gt;
* NormalDuration (Number)&lt;br /&gt;
* NormalDurationUnit (Text)&lt;br /&gt;
* Work (Number)&lt;br /&gt;
* WorkUnit (Text)&lt;br /&gt;
* Workcenter (Text)&lt;br /&gt;
* ActivityCode (Text)&lt;br /&gt;
* eStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* eFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* Company (Text)&lt;br /&gt;
* CompanyCode (Text)&lt;br /&gt;
* LongText (Text)&lt;br /&gt;
* Comment (Text)&lt;br /&gt;
* PermitCode (Text)&lt;br /&gt;
* Planner (Text)&lt;br /&gt;
* Suboperation (Text)&lt;br /&gt;
* QRFKey (Text)&lt;br /&gt;
* QRFDescription (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Check Operation Import =&lt;br /&gt;
&lt;br /&gt;
To import Operations following columns are required:&lt;br /&gt;
* OperationID (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' “Number” and “NormalDuration” must be formatted as Number and all dates must be formatted as TT/MM/JJJJ hh:mm!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* Workorder (Text)&lt;br /&gt;
* Operation (Text)&lt;br /&gt;
* ShortText (Text)&lt;br /&gt;
* Number (Number)&lt;br /&gt;
* NormalDuration (Number)&lt;br /&gt;
* NormalDurationUnit (Text)&lt;br /&gt;
* Work (Number)&lt;br /&gt;
* WorkUnit (Text)&lt;br /&gt;
* Workcenter (Text)&lt;br /&gt;
* ActivityCode (Text)&lt;br /&gt;
* eStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* eFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* Company (Text)&lt;br /&gt;
* CompanyCode (Text)&lt;br /&gt;
* LongText (Text)&lt;br /&gt;
* Comment (Text)&lt;br /&gt;
* PermitCode (Text)&lt;br /&gt;
* Planner (Text)&lt;br /&gt;
* Suboperation (Text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scheduling Import  (for Operations)=&lt;br /&gt;
&lt;br /&gt;
To import scheduling data of Operations the following columns are required:&lt;br /&gt;
* OperationID (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' All dates must be formatted as TT/MM/JJJJ hh:mm!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* eStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* eFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lStart (TT/MM/JJJJ hh:mm)&lt;br /&gt;
* lFinish (TT/MM/JJJJ hh:mm)&lt;br /&gt;
&lt;br /&gt;
= User Import =&lt;br /&gt;
&lt;br /&gt;
To import users following columns are required:&lt;br /&gt;
* DesktopLogin (Text)&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* Name (Text) &lt;br /&gt;
* NFC (Text)&lt;br /&gt;
* MobileLogin (Text)&lt;br /&gt;
* Password (Text) &lt;br /&gt;
* CompanyCode (Text)&lt;br /&gt;
* ReportingUserrights (Text)&lt;br /&gt;
* PunchpointUserrights (Text) &lt;br /&gt;
* ScopechangeUserrights (Text) &lt;br /&gt;
* SuperuserUserrights (Text) &lt;br /&gt;
* Comment (Text)&lt;br /&gt;
* Position (Text) &lt;br /&gt;
* Availability (Text) &lt;br /&gt;
* Adress (Text) &lt;br /&gt;
* Skype (Text)&lt;br /&gt;
* Telephone (Text)&lt;br /&gt;
* Email (Text)&lt;br /&gt;
&lt;br /&gt;
= Company Import =&lt;br /&gt;
&lt;br /&gt;
To import companies following columns are required:&lt;br /&gt;
* CompanyCode (Text)&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* Company (Text)&lt;br /&gt;
&lt;br /&gt;
= Material Import =&lt;br /&gt;
&lt;br /&gt;
To import materials following columns are required:&lt;br /&gt;
* OperationId (Text)&lt;br /&gt;
* MaterialNr (Text)&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' “Quantity” must be formatted as Number!&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* MaterialDescr (Text)&lt;br /&gt;
* BOMItemNr (Text)&lt;br /&gt;
* ItemCategory (Text)&lt;br /&gt;
'''NOTE:''' To ensure the correct icon is displayed on the client, the “ItemCategory” must have a value of either '0' which is translated to Category Stock or '1' which is translated to Category Skid!&lt;br /&gt;
* Quantity (Number)&lt;br /&gt;
* Unit (Text)&lt;br /&gt;
* ReservationStatus (Text)&lt;br /&gt;
&lt;br /&gt;
= Preparation Document Import =&lt;br /&gt;
&lt;br /&gt;
To import materials following columns are required:&lt;br /&gt;
* Workorder (Text)&lt;br /&gt;
* FilePath (Text)&lt;br /&gt;
&lt;br /&gt;
Columns that can be imported additionally:&lt;br /&gt;
* FileName (Text)&lt;br /&gt;
&lt;br /&gt;
{{Attention|This page is under construction.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:MaTaP|Import Runs]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28166</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28166"/>
				<updated>2025-05-13T10:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png]] &lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method itertaes through all instances which are marked for soft-deletion, updates the instance's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28165</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28165"/>
				<updated>2025-05-13T10:52:32Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png]] &lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28164</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28164"/>
				<updated>2025-05-13T10:49:49Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png]] &lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28163</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28163"/>
				<updated>2025-05-13T10:49:31Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png]] &lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28162</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28162"/>
				<updated>2025-05-13T10:48:44Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:DeleteConfigExample.PNG]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28161</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28161"/>
				<updated>2025-05-13T10:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example DeleteConfig.PNG]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28160</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28160"/>
				<updated>2025-05-13T10:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.PNG]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28159</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28159"/>
				<updated>2025-05-13T10:44:42Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
Example: Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.PNG]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:Example_DeleteConfig.png&amp;diff=28158</id>
		<title>File:Example DeleteConfig.png</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:Example_DeleteConfig.png&amp;diff=28158"/>
				<updated>2025-05-13T10:43:55Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28157</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28157"/>
				<updated>2025-05-13T10:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be marked as soft-deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are marked as hard-deleted and can be permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
Example: Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png|350x100px]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Auto Deletion]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28156</id>
		<title>Auto Deletion</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Auto_Deletion&amp;diff=28156"/>
				<updated>2025-05-13T10:39:41Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: Created page with &amp;quot;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses. This can be done via the MetaClass DELETE_CONFIGU...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UBIK includes a configurable approach to automatic instance deletion, allowing flexibility in managing different MetaClasses.&lt;br /&gt;
This can be done via the MetaClass DELETE_CONFIGURATION which is provided from a UBIK database and can be found under System.Main.Base.&lt;br /&gt;
&lt;br /&gt;
The deletion configuration is divided into two main categories:&lt;br /&gt;
===Soft Deletion===&lt;br /&gt;
A soft delete limit can be set, specifying the number of days beyond which records older than the CTS (Creation Timestamp) will be deleted. When an instance undergoes soft deletion, its delete status is updated to deleted, making it invisible within UBIK. However, the record remains in the SQL database, where it is marked as deleted for reference purposes.&lt;br /&gt;
&lt;br /&gt;
===Hard Deletion===&lt;br /&gt;
''(Not Yet Functional)'' A hard delete limit can be configured, specifying the number of days where soft-deleted records are permanently removed from the database. While soft deletion is currently functional, hard deletion is planned for future implementation. &lt;br /&gt;
&lt;br /&gt;
Example: Delete Configuration for the Progress Task MetaClass where limit is set to 30 days&lt;br /&gt;
[[File:Example_DeleteConfig.png|350x100px]]&lt;br /&gt;
Result: All Instances of this MetaClass which have an older CTS than 30 days will be marked for soft-deletion.&lt;br /&gt;
&lt;br /&gt;
===Deletion Workflow===&lt;br /&gt;
The DeleteManager component needs to be initialized (via WhoBert for example) to handle the deletion process.&lt;br /&gt;
Within the DeleteManager, this method must be executed:&lt;br /&gt;
&lt;br /&gt;
ExecuteSoftDelete: This method updates the record's delete status and ensures it can no longer be accessed in UBIK Studio while retaining the record in SQL for reference.&lt;br /&gt;
Future steps involve finalizing the DeleteManager and implementing hard deletion to complete the workflow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
DeleteManager delmanager = new DeleteManager();&lt;br /&gt;
delManager.ExecuteSoftDelete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Version_4.9.0_(Server)&amp;diff=27978</id>
		<title>Version 4.9.0 (Server)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Version_4.9.0_(Server)&amp;diff=27978"/>
				<updated>2025-03-18T09:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kernel =&lt;br /&gt;
== Features ==&lt;br /&gt;
* UBIK provides the possibility to customize an online text search. See [[SYSCLS_CUSTOMTEXTQUERY|Custom Text Search Classification]].&lt;br /&gt;
* Human-readable database views can be created in the same database instance where the data is stored.&lt;br /&gt;
* Custom code for MetaProxies can now be edited and transported using SmartStudio.&lt;br /&gt;
* UBIK.Studio provides the possibility to define the UID for a new derived MetaClass now.&lt;br /&gt;
* UBIK CUI Interface supports the (re)import of undeleted Comos objects now.&lt;br /&gt;
* UBIK StandardImport supports null values for strings, (nullable) GUIDs, and geodata now. Depending on the import configuration, these null values will be processed and imported to the ubiqule.&lt;br /&gt;
* A custom query-based search is now available to be used in customizing.&lt;br /&gt;
* UBIK OLEDB Plugin supports customizing the OLEDB provider string now.&lt;br /&gt;
* An improved configuration dialog for the auto-create MetaClassScope drag &amp;amp; drop action was created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bug Fixes ==&lt;br /&gt;
* A bug in managing changelog/history items for properties with configured MetaAttributes was fixed.&lt;br /&gt;
* A problem in handling references to deleted objects was fixed: misleading exceptions are not thrown anymore.&lt;br /&gt;
* An issue where custom code couldn't be transported for system meta classes using SmartStudio was fixed.&lt;br /&gt;
* Fixed the bug where the Instance Picker results were not shown when clicking the three-dot symbol for the first time in SmartStudio and AdminTool.&lt;br /&gt;
* New instances created in the AdminTool are now also saved if a refresh occurs beforehand.&lt;br /&gt;
* A problem in the new support to undelete CUI objects was fixed: the ID of the target object does not change when executing the undelete.&lt;br /&gt;
* System.Memory.dll is now provided in the release packages.&lt;br /&gt;
* OSIPI and ModuleReporting Plugins support the newest version of System.Memory now.&lt;br /&gt;
* A bug in the UBIK.NotificationEndPoint Service was fixed: it can handle subfolders in the Queue directory now.&lt;br /&gt;
* A bug when flattening Annotations and Hotspots into Document Revisions was fixed.&lt;br /&gt;
* Improved Exception Handling when saving objects and proxies during the interface execution, result in a higher stability as customizing related crashes do not stop the process any more.&lt;br /&gt;
* Fixed an issue in the AdminTool that permitted manipulation of locked properties.&lt;br /&gt;
* An issue where values for new languages weren't saved was fixed.&lt;br /&gt;
* A bug in the handling of History/Changelog items for MRO tasks was fixed: if the value is set directly to N.A., a changelog item gets created now.&lt;br /&gt;
* A Issue was fixed where the PunchPoint link was not visualized in the &amp;quot;Punchpoint Attachments&amp;quot; use case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
* UBIK Standard-Import supports null values for strings, (nullable) GUIDs, and geodata now. Depending on the import configuration, these null values will be processed and imported to the ubiqule.&lt;br /&gt;
* A possibility to customize &amp;quot;real&amp;quot; property values for system design objects via Plugin was provided. Further, CUI system definitions can now be used without deriving.&lt;br /&gt;
* MetaProxy properties are now modeled more consistently in SmartStudio.&lt;br /&gt;
* A set of vulnerable 3rd party components were updated.&lt;br /&gt;
* For reduced RAM consumption, a system classification SYSCLS_PREVENT_CACHING was provided, and future measures were triggered.&lt;br /&gt;
* UBIK supports *.docx as standard filetype now&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MaTaP Improvements and fixes ==&lt;br /&gt;
* Fixed an issue where QRF and Check Operations were not included in Mile Stone Calculation of Workorder.&lt;br /&gt;
* Predefined views get saved and are available for Admin Tools now.&lt;br /&gt;
* The Project Usecase in the MATAP Admin Tool is standardized now: Job Descriptions + presented columns.&lt;br /&gt;
* MATAP supports encrypted passwords for imported MATAP users now.&lt;br /&gt;
* MATAP supports Quality Record Forms now.&lt;br /&gt;
* MATAP supports Check Tasks now.&lt;br /&gt;
* MATAP Wallpaper Client supports project-related Punchpoint columns now.&lt;br /&gt;
* The Project Status is now managed on the Project Instance itself.&lt;br /&gt;
* UBIK MATAP supports project-related data caching on the View Cache now.&lt;br /&gt;
* The communication feature is now available in MATAP.&lt;br /&gt;
* All operation imports support the import of a work property.&lt;br /&gt;
* MATAP supports reports now.&lt;br /&gt;
* Admin Tool shows the duration of a successful job run now instead of presenting start and end timestamps.&lt;br /&gt;
* MATAP supports the import and presentation of materials per operation now.&lt;br /&gt;
* In the Admin Tool, the (Turnaround) Project Usecase does not show SAP-specific columns anymore.&lt;br /&gt;
* In the Admin Tool, the Operation Usecases do not show SAP and Primavera-specific columns anymore.&lt;br /&gt;
* Identified an issue where activity codes were cut off when the project name was too long.&lt;br /&gt;
* Identified an issue where companies were cut off when the project name was too long.&lt;br /&gt;
* Deletion of default activity codes works now.&lt;br /&gt;
* Reimporting deleted objects is now possible.&lt;br /&gt;
* Wallpaper Client does not crash when opening a Scope Change anymore.&lt;br /&gt;
* A bug in evaluating the code was fixed. Configured grouped codes are no longer ignored.&lt;br /&gt;
* The Admin Tool is now able to download the customizing.&lt;br /&gt;
* Operations being set to Not Applicable show the right status color now (gray).&lt;br /&gt;
* Scheduling import works now for check and QRF operations too.&lt;br /&gt;
* Wallpaper does not crash anymore during progress reporting.&lt;br /&gt;
* Location assigning performance was improved.&lt;br /&gt;
* A misconfiguration that caused duplicated scope changes to also duplicate the progress was fixed.&lt;br /&gt;
* Fixed an issue where Punchpoint numbers were overwritten multiple times causing the number to unnecessarily increase.&lt;br /&gt;
* Fixed the bug where the Instance Picker results were not shown when clicking the three-dot symbol for the first time.&lt;br /&gt;
* MATAP now provides the possibility to schedule nightly app pool restarts for all active projects.&lt;br /&gt;
* MATAP imports will not overwrite once edited string data with empty values anymore.&lt;br /&gt;
* The &amp;quot;Turnaround Project&amp;quot; use case was renamed to &amp;quot;Project&amp;quot;.&lt;br /&gt;
* The description for the Currency Setting Property was wrong. It shows &amp;quot;Currency Settings&amp;quot; now.&lt;br /&gt;
* The currency on projects is now set to &amp;quot;€&amp;quot; by default.&lt;br /&gt;
* Key and unique filename have now been removed from the Plot Plans use case.&lt;br /&gt;
* Description has been replaced with Name in the Plot Plans use case (Admin Tool)&lt;br /&gt;
* The Plot Plan Name is now displayed in Plant Layouts (Client)&lt;br /&gt;
* Removed columns &amp;quot;Offline Sync Configuration&amp;quot; and &amp;quot;Branch Download&amp;quot; from Admin Tool &amp;quot;Functionality&amp;quot; use case.&lt;br /&gt;
* Removed columns &amp;quot;Unique Filename&amp;quot; and &amp;quot;Path to local file&amp;quot; from Admin Tool &amp;quot;Daily HSE&amp;quot; use case.&lt;br /&gt;
* Vertical and horizontal scroll bars now remain in their last set position after the saving process.&lt;br /&gt;
* The Zone column is now available in the Commissioning Package Usecase.&lt;br /&gt;
* Systems and subsystems are available in the Commissioning Tasks use case now.&lt;br /&gt;
* Documents below work orders are sorted by their type now.&lt;br /&gt;
* Names for systems and subsystems show in the expected order now.&lt;br /&gt;
* MATAP allows project names with a length of up to 100 characters now.&lt;br /&gt;
* New instances are now also saved if a refresh occurs beforehand.&lt;br /&gt;
* SC Desc., Operation No., and Estimated Costs are now displayed as saved after saving.&lt;br /&gt;
* Timesheets calculation issue for standard operations was solved.&lt;br /&gt;
* A sorting error for operations was fixed.&lt;br /&gt;
* When selecting import files, the file picker now remembers its last position.&lt;br /&gt;
* Template Usecases will now be replicated including their column configurations.&lt;br /&gt;
* Precom Activity Code cells show default operations information on the Turnaround Wallpaper now.&lt;br /&gt;
* An unused property (MATAP_PROJECT_ID) has been removed from the standard property pool.&lt;br /&gt;
* A new property (MATAP_ID) has been added to the standard property pool and integrated into the Activity Code Use Cases.&lt;br /&gt;
* The Admin Tool Turnaround Project Usecase now provides project creation status information.&lt;br /&gt;
* A problem in the Admin Tool which led to random warnings is solved now.&lt;br /&gt;
* MATAP Wallpaper Client now shows correct labels for Check/Operation detail tabs.&lt;br /&gt;
* Fixed recurring warnings in UBIK.Studio.&lt;br /&gt;
* Fixed recurring warnings in Admin Tool.&lt;br /&gt;
* The key column for MATAP users gets automatically filled if the object is created manually.&lt;br /&gt;
* Document system property will not be delivered to the client anymore.&lt;br /&gt;
* Fixed the issue where setting an operation status to N/A could cause the client to freeze or crash.&lt;br /&gt;
* The scope change workflow shows the user details again.&lt;br /&gt;
* A problem in the View Item Setup for the Communication Feature was fixed.&lt;br /&gt;
* Cells on the Commissioning Wallpaper only show the last change date if the task is considered to be finished.&lt;br /&gt;
* CODE_TYPE property doesn't get replicated when creating a Scope Change.&lt;br /&gt;
* A bug was fixed where empty Meta Classes were created after removing the MATAP plugin.&lt;br /&gt;
* Performance improvements and general bug fixes for Admin Tool.&lt;br /&gt;
* The Bulk Editor scroll bars now retain their positions after a refresh.&lt;br /&gt;
* Admin Tool shows the name of the referenced project when displaying use cases now.&lt;br /&gt;
* Punchpoints show a changelog for the 'Responsibility' property now.&lt;br /&gt;
* The Admin - Tool Scope Change Usecase shows scope changes only now.&lt;br /&gt;
* Import of EquipmentGroup and EquipmentType data is standardized now: the standard import supports import via the Equipment instance.&lt;br /&gt;
* The Admin - Tool Scope Change Attachment Usecase works now.&lt;br /&gt;
* Import of Equipments support a complex plant-system-subsystem structure as well as plant zone structure. it is not required any more that system and subsystem names are unique.&lt;br /&gt;
* Execution Documents show the Local Full Path in the AdminTool now.&lt;br /&gt;
* Punchpoints now show a changelog for the 'Responsibility' and 'Due Date' properties.&lt;br /&gt;
* A digit counter was added for Operation, Operation Description and ScopeChange Description in the Wallpaper Client.&lt;br /&gt;
* The current Project Status can now be seen in the project header of the start screen.&lt;br /&gt;
* In the Admin Tool, the Task - Progress is now displayed in the corresponding column.&lt;br /&gt;
* The filtering of instances in the Picker within the Admin Tool is now possible without reopening the popup.&lt;br /&gt;
* A Issue was fixed where the link to the PunchPoint was not visualized in the PunchpointAttachment usecase in the Admin Tool&lt;br /&gt;
* Users can change a project name only until the creation is finished.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* Exclusive Access is not fully supported (missing aspect: lock on database level)&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=View_Cache_Launcher&amp;diff=27612</id>
		<title>View Cache Launcher</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=View_Cache_Launcher&amp;diff=27612"/>
				<updated>2024-12-17T12:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;={{UBIK}} View Cache Launcher (VCL)=&lt;br /&gt;
&lt;br /&gt;
The VCL is an installable windows system service which can be used to automaically trigger one or more UBIK contexts(s) provided by an UBIK IIS service to build up its view cache.&lt;br /&gt;
&lt;br /&gt;
After unpacking the VCL binaries and config-files, move the files to a directory where the local system account (or the specified one configured to run the VCL service) is allowed to execute the &amp;quot;install.bat&amp;quot;. This file installs the UBIK.VCL.Service.exe as a service.&lt;br /&gt;
&lt;br /&gt;
The VCL is configured in “UBIK.VCL.Service.exe.config&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | width = &amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Attribute!!Purpose!!Optional!!Obsolete (since V4.8+)&lt;br /&gt;
|-&lt;br /&gt;
| '''Protocol'''|| choose your wanted transport-protocol (https, http) || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Url'''|| URL of the webserver || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Port'''|| port which is assigned to the webserver || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Path'''|| specify the path where the CONTENT webservice is placed || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''App'''|| application name of your use-case|| ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Context'''|| context name of your use-case|| ||&lt;br /&gt;
|-&lt;br /&gt;
| '''TriggerInterval'''|| specify the interval in seconds how often a viewcache rebuild is triggered  || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''OfflineCheckInterval'''|| specify the interval in seconds how often the server-status is checked || ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Inactive'''|| possibility to configure a timespan in which no rebuild is triggered (from;to) in (hh:mm;hh:mm) || X ||&lt;br /&gt;
|-&lt;br /&gt;
| '''LogPath'''|| specify the path where your logs should be placed || || &lt;br /&gt;
|-&lt;br /&gt;
| '''USAMUrl'''||  Webserver URL of the USAM ||  || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMPort'''|| port which is assigned to the USAM webserver ||  || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMProtocol'''|| choose your wanted transport-protocol (https, http) ||  || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMPath'''|| specify the path where the USAM webservice is placed ||  || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMLogin'''|| specify the login name which is used for triggering the viewcache build ||   || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMPwd'''||  specify the password which is used for triggering the viewcache build||  || X&lt;br /&gt;
|-&lt;br /&gt;
| '''USAMDeviceName'''||  specify the device name which is used for triggering the viewcache build ||  || X&lt;br /&gt;
|-|-&lt;br /&gt;
| '''PushUrl'''||  Webserver URL of the PUSH || X || X&lt;br /&gt;
|-&lt;br /&gt;
| '''PushPort'''|| port which is assigned to the PUSH webserver || X || X&lt;br /&gt;
|-&lt;br /&gt;
| '''PushProtocol'''|| choose your wanted transport-protocol (https, http) || X || X&lt;br /&gt;
|-&lt;br /&gt;
| '''PushPath'''|| specify the path where the PUSH webservice is placed || X || X&lt;br /&gt;
|-&lt;br /&gt;
| '''Action'''|| Two options: ''ViewCacheUpdate'' (default value if the parameter is not set specifically); ''GetContent'' (can update one specific content object via an UID set with the Content parameter) || X ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Content'''|| UID of a content object || X ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example===&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;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;startup&amp;gt; &lt;br /&gt;
        &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.5.1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/startup&amp;gt;&lt;br /&gt;
    &amp;lt;appSettings&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;Protocol&amp;quot; value=&amp;quot;https&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;Url&amp;quot; value=&amp;quot;127.0.0.1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;Port&amp;quot; value=&amp;quot;443&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;Path&amp;quot; value=&amp;quot;UBIKService/CONTENT&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;App&amp;quot; value=&amp;quot;APP_01&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;Context&amp;quot; value=&amp;quot;CXT_01&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;TriggerInterval&amp;quot; value=&amp;quot;3000&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;OfflineCheckInterval&amp;quot; value=&amp;quot;64&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;LogPath&amp;quot; value=&amp;quot;C:\UBIK\VCL\log\log.txt&amp;quot;/&amp;gt;     &lt;br /&gt;
    &amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configure more than one service and/or context to be updated====&lt;br /&gt;
&lt;br /&gt;
Please duplicate the entries used and add a number suffix. Here is an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;add key=&amp;quot;Protocol&amp;quot; value=&amp;quot;https&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;add key=&amp;quot;Protocol01&amp;quot; value=&amp;quot;https&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Remark''': The number should be continously incremented by one, if there is a number missing in-between (-&amp;gt; e.g. Protocol, Protocol01, Protocol03,..), the last executed will be Protocol01.&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27214</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27214"/>
				<updated>2024-09-16T07:52:53Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview_Communication.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[File:CompanyAndUsers3.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Communication]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27213</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27213"/>
				<updated>2024-09-16T07:52:27Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview_Communication.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[:File:CompanyAndUsers3.PNG|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Communication]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers3.PNG&amp;diff=27212</id>
		<title>File:CompanyAndUsers3.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers3.PNG&amp;diff=27212"/>
				<updated>2024-09-16T07:51:37Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:Overview_Communication.PNG&amp;diff=27211</id>
		<title>File:Overview Communication.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:Overview_Communication.PNG&amp;diff=27211"/>
				<updated>2024-09-16T07:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27210</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27210"/>
				<updated>2024-09-16T07:50:44Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[File:CompanyAndUsers2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Communication]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:Overview2.PNG&amp;diff=27208</id>
		<title>File:Overview2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:Overview2.PNG&amp;diff=27208"/>
				<updated>2024-09-16T07:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers2.PNG&amp;diff=27209</id>
		<title>File:CompanyAndUsers2.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers2.PNG&amp;diff=27209"/>
				<updated>2024-09-16T07:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27207</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27207"/>
				<updated>2024-09-16T07:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[File:CompanyAndUsers.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Communication]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27206</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27206"/>
				<updated>2024-09-16T07:48:02Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview.png|600px]] [[File:Overview.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[File:CompanyAndUsers.png|600px]] [[File:CompanyAndUsers.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with broken file links|Communication]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27205</id>
		<title>Communication</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Communication&amp;diff=27205"/>
				<updated>2024-09-16T07:47:30Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: Created page with &amp;quot;= Functionality = The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows u...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Functionality =&lt;br /&gt;
The Communication functionality is designed to prvide a clear and organized view of companies and users involved in a project. The hierarchical view allows users to easily navigate through the different companies and their sub-companies. This functionality ensures that project managers and team members can easily access and manage information about the companies and users involved in their projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview.png|600px]] [[File:Overview.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Companies Overview ==&lt;br /&gt;
When entering communication, the company section initially displays a list of all companies associated with the project. Sub-companies are shown under their parent companies, providing a clear organizational structure.&lt;br /&gt;
&lt;br /&gt;
== Users Overview ==&lt;br /&gt;
When entering communication, the user section initially displays a list of all users associated with the project. Users can view more detailed information about their roles and activities within the project.&lt;br /&gt;
Clicking on a company name will filter the right section to show only the users associated with that company and its sub-companies.&lt;br /&gt;
&lt;br /&gt;
[[File:CompanyAndUsers.png|600px]] [[File:CompanyAndUsers.png|600px]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers.PNG&amp;diff=27204</id>
		<title>File:CompanyAndUsers.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:CompanyAndUsers.PNG&amp;diff=27204"/>
				<updated>2024-09-16T07:46:59Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=File:Overview.PNG&amp;diff=27203</id>
		<title>File:Overview.PNG</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=File:Overview.PNG&amp;diff=27203"/>
				<updated>2024-09-16T07:46:58Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=HowTo:Implementing_Live_Values&amp;diff=26962</id>
		<title>HowTo:Implementing Live Values</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=HowTo:Implementing_Live_Values&amp;diff=26962"/>
				<updated>2024-07-04T10:24:54Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check out the [[Live_Values|Overview of Live Values]] before!&lt;br /&gt;
&lt;br /&gt;
== How Live Values Work ==&lt;br /&gt;
Live values are special properties without a value that is persisted in the database. Instead, they get their current value frequently from a live value server, including a measurement quality indicator and a read timestamp, among other details. Live values can be used to display trends and current values (e.g., sensor values) from dynamic sources like process control systems (e.g., via OPC-UA).&lt;br /&gt;
&lt;br /&gt;
In {{UBIK}}, live value properties are defined by a special kind of [[MetaProperty]], a live value meta property. So, if you want to add a live value to a {{UBIK}} object, you first need to add such a meta property to the metaclass of the object in question. You can get such a live value meta property from creating an instance of the [[MetaClass]] ''LIVEVALUE_METAPROPERTY''. This way, for example, you could define a property &amp;quot;temperature&amp;quot; on a metaclass &amp;quot;cooling unit&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
So, following this example, how do individual &amp;quot;cooling unit&amp;quot; instances know their specific &amp;quot;temperature&amp;quot; values? An individual live value property holds the answer: It actually ''has'' a persisted value - a reference to a so-called live value data point. Such a data point knows a live value server (providing access to a process control system for example), and an identifier of (or path to) a dynamic variable, e.g. representing a specific temperature sensor in the process control system. This means, for a specific &amp;quot;cooling unit&amp;quot; instance, we want to configure the correct live value data point as a value of the &amp;quot;temperature&amp;quot; live value property.&lt;br /&gt;
&lt;br /&gt;
Hence, we require a live value data point and a live value server. There is a {{UBIK}} plugin UBIK.Interface.Module.OPCUA which we can use for getting those. That module implements a specific kind of live value server, namely the OPC-UA live value server. It is represented by a metaclass ''OPC_SERVER'', and instances thereof can be used to configure a connection to a specific OPC server. Similarly, there is a metaclass ''OPC_DATAPOINT'' representing variable configurations. We want to have a data point instance with a link to a server instance (and a path to the variable we need). This data point instance must be set on the &amp;quot;temperature&amp;quot; property in our example.&lt;br /&gt;
&lt;br /&gt;
With the UBIK.Interface.Module.OPCUA plugin, {{UBIK}} will detect that there is a live value server and it will host a live value data service, supplying our &amp;quot;cooling unit&amp;quot; objects with their current &amp;quot;temperature&amp;quot; values.&lt;br /&gt;
&lt;br /&gt;
== Implementing Live Values in {{UBIK}} Studio ==&lt;br /&gt;
First of all, download the UBIK.Interface.Module.OPCUA from the ''Augmensys Realease Portal/Plugins'' and copy them into the injections folder from your {{UBIK}} Studio as well as in the injection folder of the Web Service.&lt;br /&gt;
&lt;br /&gt;
# Navigate to the [[MetaClass]] ''OPC_SERVER'' via the ''[[Class Browser]]''.&amp;lt;br/&amp;gt; [[File:OPCServer.PNG|330 px|border]]&lt;br /&gt;
# Add a new instance (OPC Server) to the [[MetaClass]] by using the [[Bulk Editor]].&lt;br /&gt;
# Navigate to the [[MetaClass]] ''OPC_DATAPOINT'' via the ''[[Class Browser]]''.&amp;lt;br/&amp;gt; [[File:OPCDATAPOINT.PNG|330 px|border]]&lt;br /&gt;
# Add a new instance (OPC Datapoint) to the [[MetaClass]] by using the [[Bulk Editor]]. Configure the correct path to the OPC variable represented by this datapoint. As ''REF_OPC_SERVER'' take the server created before in step 2.&amp;lt;br/&amp;gt; [[File:OPCDatapointInstance.PNG|770 px|border]]&lt;br /&gt;
# Navigate to the [[MetaClass]] ''LIVEVALUE_METAPROPERTY'' via the ''[[Class Browser]]''.&amp;lt;br/&amp;gt; [[File:LMP.PNG|330 px|border]]&lt;br /&gt;
# Add a new instance (Live Value MetaProperty) to the [[MetaClass]] by using the [[Bulk Editor]].&lt;br /&gt;
# Add the newly created ''Live Value MetaProperty'', from step 6, to the ''Metaclass'' where you want to have the live Values to be shown. &lt;br /&gt;
# Add the created Datapoint from step 4 to an instance of the above ''Metaclass'' to which it concerns. &amp;lt;br/&amp;gt; [[File:AddDatapoint.PNG|770 px|border]]&lt;br /&gt;
# Save the changes with {{key press|Ctrl|S}} or the save command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing Live Values in {{UBIK}} Studio ==&lt;br /&gt;
Example how a LiveValue can be accessed within WhoBert for debugging purposes for example. Can also be adapted to be used within the database code customizing.&lt;br /&gt;
&lt;br /&gt;
The first part of the code ensures that live value servers are initialized and running before attempting to retrieve live values.&lt;br /&gt;
Afterwards Live Value Information can be used as it retrieves and logs information about live values, such as their value, read timestamp, and age.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using UBIK.Kernel;&lt;br /&gt;
using UBIK.Runtime;&lt;br /&gt;
using UBIK.Runtime.Sys;&lt;br /&gt;
using UBIK.Compiler;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using UBIK.Interface;&lt;br /&gt;
using UBIK.Injection;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
&lt;br /&gt;
namespace Studio&lt;br /&gt;
{&lt;br /&gt;
	public class ObjectTest&lt;br /&gt;
	{&lt;br /&gt;
		public void TestObject (params BaseClass[] InVariables)&lt;br /&gt;
		{&lt;br /&gt;
			Debugger.Output(this, &amp;quot;*** Started&amp;quot;);&lt;br /&gt;
			foreach (BaseClass obj in InVariables)&lt;br /&gt;
			{&lt;br /&gt;
				List&amp;lt;IUBIKLiveValueServer&amp;gt; servers = obj.Environment.GetInjectionManager().Plugins&amp;lt;IUBIKLiveValueServer&amp;gt;(TargetApplication.UBIK_WebService);&lt;br /&gt;
				foreach (IUBIKLiveValueServer server in servers)		&lt;br /&gt;
				{				&lt;br /&gt;
					if (!server.GetStatus().Running)&lt;br /&gt;
					{&lt;br /&gt;
						server.InitLiveValueServer(obj.Environment);&lt;br /&gt;
						server.Startup();&lt;br /&gt;
					}&lt;br /&gt;
					UBIK.Interface.LiveValues.ILiveValueInformation value;&lt;br /&gt;
                                         //UID from the LiveValue Datapoint&lt;br /&gt;
					if (server.TryGetLiveValue(new Guid(&amp;quot;UID&amp;quot;), out value))&lt;br /&gt;
					{&lt;br /&gt;
						if (value.Value != null)&lt;br /&gt;
						Debugger.Output(this, value.Value.ToString());&lt;br /&gt;
								&lt;br /&gt;
						if (value.ReadTimeStamp != null)&lt;br /&gt;
						Debugger.Output(this, value.ReadTimeStamp.ToString());&lt;br /&gt;
								&lt;br /&gt;
						if (value.Age != null)&lt;br /&gt;
						Debugger.Output(this, value.Age.ToString());&lt;br /&gt;
					}&lt;br /&gt;
					Debugger.Output(this, server.GetStatus().ToString());&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			Debugger.Output(this, &amp;quot;*** Finished&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ILiveValueInformation ===&lt;br /&gt;
The method TryGetLiveValue delivers LiveValueInformation objects:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
namespace UBIK.Interface.LiveValues&lt;br /&gt;
{&lt;br /&gt;
    public interface ILiveValueInformation&lt;br /&gt;
    {&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the value.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The value.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        object Value { get; }&lt;br /&gt;
&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the quality.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The quality.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        QualityTypes Quality { get; }&lt;br /&gt;
&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the quality description.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The quality description.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        string QualityDescription { get; }&lt;br /&gt;
&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the read time stamp.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The read time stamp.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        DateTime? ReadTimeStamp { get; }&lt;br /&gt;
&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the age.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The age.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        int? Age { get; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Information can be also extended using: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
namespace UBIK.Interface.LiveValues&lt;br /&gt;
{&lt;br /&gt;
    public interface ILiveValueInformationV264 : ILiveValueInformation&lt;br /&gt;
    {&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Attributes provides a possibility to add (any) information to a live value.&lt;br /&gt;
        /// This gives us the possibility to hand over any back end server specific information to the client.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// The attributes.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        UBIK.Service.DTO.V264.LiveValueAttribute[] Attributes { get; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Plugins]]&lt;br /&gt;
* [[HowTo:Add a MetaProperty to a MetaClass]]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-To|Live Values]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Version_4&amp;diff=25183</id>
		<title>Version 4</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Version_4&amp;diff=25183"/>
				<updated>2023-08-09T06:37:13Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h2&amp;gt;'''Under Construction'''&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{RoadmapDetailHeader}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.6&lt;br /&gt;
| date=2024 &lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | feature=Prefilter Objects with the same QR code. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Xamarin}} | feature=Customizable Visibility of appbar Menu Button.}}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Productization of MaTaP Features. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.5&lt;br /&gt;
| date=October 2023&lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Reset of Proxies. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Comos Reference Documents. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Comos DocObjs. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Properties as Live Value Attributes. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Support for Bing Road Map. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-WinX}} | feature=Auto Search and Highlight on PDF Preview. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.4&lt;br /&gt;
| date=October 2023&lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | feature=Experimental SSO features. | descr=Experimental SSO features are now available in the Xamarin Android client and the web client.}}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Xamarin}} | feature=Scanning of small QR-Codes. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Lazy Loading Queries. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Studio}} | feature=Classification-Based Creation of MetaProperties. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=n-to-1: Optical Code Scanning. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Focus highlight text in PDF. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-iOS}} | feature=Signature Editing. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Non-native Comos Documents. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Import DisplayValue with Unit. | descr=CUI MetaProxy Properties support a new configuration setting called &amp;quot;Import Type&amp;quot; The default value &amp;quot;Standard&amp;quot; will import Property Values as before If set to &amp;quot;DisplayValue&amp;quot; CUI will import the Display Value including the physical Unit from a Comos Specification. Export of such MetaProxy Properties is no supported. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of GeoData. | descr=CUI supports the import and export of Properties of type GeoData? now. For this a MetaProxyProperty of type string must be used on the MetaProxy. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Version 4]]&lt;br /&gt;
[[Category:Release notes|Version 4]]&lt;br /&gt;
[[Category:Server|Version 4]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Version_4&amp;diff=25182</id>
		<title>Version 4</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Version_4&amp;diff=25182"/>
				<updated>2023-08-09T06:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;'''Under Construction'''&amp;lt;/p&amp;gt;&lt;br /&gt;
{{RoadmapDetailHeader}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.6&lt;br /&gt;
| date=2024 &lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | feature=Prefilter Objects with the same QR code. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Xamarin}} | feature=Customizable Visibility of appbar Menu Button.}}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Productization of MaTaP Features. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.5&lt;br /&gt;
| date=October 2023&lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Reset of Proxies. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Comos Reference Documents. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Comos DocObjs. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Properties as Live Value Attributes. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Support for Bing Road Map. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-WinX}} | feature=Auto Search and Highlight on PDF Preview. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{RoadmapDetailItem &lt;br /&gt;
| version=4.4&lt;br /&gt;
| date=October 2023&lt;br /&gt;
| status={{RoadmapChip-Announced}} &lt;br /&gt;
| content=&lt;br /&gt;
{{RoadmapDetailFeature | feature=Experimental SSO features. | descr=Experimental SSO features are now available in the Xamarin Android client and the web client.}}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Xamarin}} | feature=Scanning of small QR-Codes. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Lazy Loading Queries. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-Studio}} | feature=Classification-Based Creation of MetaProperties. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=n-to-1: Optical Code Scanning. }}&lt;br /&gt;
{{RoadmapDetailFeature | feature=Focus highlight text in PDF. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-iOS}} | feature=Signature Editing. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of Non-native Comos Documents. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Import DisplayValue with Unit. | descr=CUI MetaProxy Properties support a new configuration setting called &amp;quot;Import Type&amp;quot; The default value &amp;quot;Standard&amp;quot; will import Property Values as before If set to &amp;quot;DisplayValue&amp;quot; CUI will import the Display Value including the physical Unit from a Comos Specification. Export of such MetaProxy Properties is no supported. }}&lt;br /&gt;
{{RoadmapDetailFeature | product={{RoadmapChip-CUI}} | feature=Support of GeoData. | descr=CUI supports the import and export of Properties of type GeoData? now. For this a MetaProxyProperty of type string must be used on the MetaProxy. }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|Version 4]]&lt;br /&gt;
[[Category:Release notes|Version 4]]&lt;br /&gt;
[[Category:Server|Version 4]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=25042</id>
		<title>Template:RoadmapOverview</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=25042"/>
				<updated>2023-08-07T07:19:34Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; justify-content: space-between; align-items: center; font-size: 23px; flex-wrap: wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;margin-right: 10px;&amp;quot;&amp;gt;'''Product Roadmap'''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin-right: 10px;&amp;quot;&amp;gt;All v4 Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin: 0;&amp;quot;&amp;gt;|&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin-left: 10px;&amp;quot;&amp;gt;All Older Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; background-color: #FFFFFFFF; justify-content: space-evenly; flex-wrap: wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px; display: flex; flex-direction: column; min-height: 100px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Latest Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFF; padding-right: 20px; flex-grow: 1; display: flex; flex-direction: column;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; flex: 1; margin: 0;&amp;quot;&amp;gt;'''v4.3'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: auto; border-radius: 2px; width: 68px; height: 22px; background-color: #8CCE59; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;font-size: 13px; line-height: 22px; margin: 0;&amp;quot;&amp;gt;'''12.04.23'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Developer Mode.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Dynamic Live Mode (DLM).'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''In-PDF Searching.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px; margin: 0;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px; display: flex; flex-direction: column; min-height: 100px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Next Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFF; padding-right: 20px; flex-grow: 1; display: flex; flex-direction: column;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.4'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: 147px; margin-top: 10px; border-radius: 2px; width: 68px; height: 22px; border: 2px solid #8CCE59;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 8px; padding-top: 1px; font-size: 13px;&amp;quot;&amp;gt;'''Q3 2023'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Signature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px;&amp;quot;&amp;gt;    &lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Future Planned Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF; padding-right: 20px; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.5'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''2024'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px; flex-wrap: none;&amp;quot;&amp;gt;'''Cool Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Exciting Feature!'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;padding-left: 50px; height: 100%; background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.6'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''tbd.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''A Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 10px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div  id=&amp;quot;mainPageDiv&amp;quot; &amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;border: none;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=25038</id>
		<title>Template:RoadmapOverview</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=25038"/>
				<updated>2023-08-03T11:25:54Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; justify-content: space-between; align-items: center; font-size: 23px; flex-wrap: wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;margin-right: 10px;&amp;quot;&amp;gt;'''Product Roadmap'''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin-right: 10px;&amp;quot;&amp;gt;All v4 Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin: 0;&amp;quot;&amp;gt;|&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;margin-left: 10px;&amp;quot;&amp;gt;All Older Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; background-color: #FFFFFFFF; justify-content: space-evenly; flex-wrap: wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px; display: flex; flex-direction: column; min-height: 100px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Latest Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFF; padding-right: 20px; flex-grow: 1; display: flex; flex-direction: column;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex; align-items: center;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; flex: 1; margin: 0;&amp;quot;&amp;gt;'''v4.3'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: auto; border-radius: 2px; width: 68px; height: 22px; background-color: #8CCE59; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;font-size: 13px; line-height: 22px; margin: 0;&amp;quot;&amp;gt;'''12.04.23'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Developer Mode.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Dynamic Live Mode (DLM).'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''In-PDF Searching.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px; margin: 0;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px; display: flex; flex-direction: column; min-height: 100px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Next Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFF; padding-right: 20px; flex-grow: 1; display: flex; flex-direction: column;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.4'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: 147px; margin-top: 10px; border-radius: 2px; width: 68px; height: 22px; border: 2px solid #8CCE59;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 8px; padding-top: 1px; font-size: 13px;&amp;quot;&amp;gt;'''Q3 2023'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Signature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px;&amp;quot;&amp;gt;    &lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Future Planned Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF; padding-right: 20px; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.5'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''2024'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px; flex-wrap: none;&amp;quot;&amp;gt;'''Cool Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Exciting Feature!'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;padding-left: 50px; height: 100%; background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.6'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''tbd.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''A Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; min-width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 10px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div  id=&amp;quot;mainPageDiv&amp;quot; &amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;border: none;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Impressium --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;UBIK&amp;quot; class=&amp;quot;mainpage-bottom&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Augmensys_Logo_2019_small.png|center|link=Augmensys GmbH]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;user&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFUSERS}}]] users registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;online&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFACTIVEUSERS}}]] users active in the last 30 days&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles currently added&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hide Desktop content from Mobile view --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN DESKTOP DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nodesktop&amp;quot;&amp;gt;&lt;br /&gt;
  {{:Main_Page_Mobile}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Template:RoadmapDetailItem&amp;diff=24877</id>
		<title>Template:RoadmapDetailItem</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Template:RoadmapDetailItem&amp;diff=24877"/>
				<updated>2023-07-25T12:01:36Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: Created page with &amp;quot;&amp;lt;!--Header--&amp;gt; &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;     &amp;lt;p style=&amp;quot;padding-left: 28px; font-size: 13px;&amp;quot;&amp;gt;'''''Version'''''&amp;lt;/p&amp;gt;     &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 60px;&amp;quot;&amp;gt;'''''E...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Header--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;padding-left: 28px; font-size: 13px;&amp;quot;&amp;gt;'''''Version'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 60px;&amp;quot;&amp;gt;'''''Expected / Release Date'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 40px;&amp;quot;&amp;gt;'''|'''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 40px;&amp;quot;&amp;gt;'''''Feature Status'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 45px;&amp;quot;&amp;gt;'''''Release Notes'''''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 480px;&amp;quot;&amp;gt;'''View All Older Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--Header--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Body: List--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 10px; margin-right: 10px; margin-bottom: 50px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.6--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 15px; padding-top: 10px;&amp;quot;&amp;gt;v4.6&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #F5F5F5; width: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 18px; padding-top: 10px; padding-bottom: 10px; margin: 0px;&amp;quot;&amp;gt;'''Highly Experimental Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 150px;&amp;quot;&amp;gt;'''Announced'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.6--&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.5--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 15px; padding-top: 10px;&amp;quot;&amp;gt;v4.5&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;font-size: 23px; padding-top: 10px; padding-left: 71px;&amp;quot;&amp;gt;2024&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;width: 92px; height: 22px; border: 2px solid #858585; border-radius: 2px; margin-top: 16px; margin-left: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 12px; padding-left: 11.5px;&amp;quot;&amp;gt;'''Announced'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt; &lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #F5F5F5; width: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 18px; padding-top: 10px; padding-bottom: 10px; margin: 0px;&amp;quot;&amp;gt;'''Cool Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;width: 59px; height: 21px; background-color: #96D9CD; margin-left: 5px; margin-top: 10px; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;font-size: 12px; padding-top: 1px; padding-left: 9px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 189px;&amp;quot;&amp;gt;'''Announced'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 18px; padding-top: 10px; padding-bottom: 10px; margin: 0px;&amp;quot;&amp;gt;'''Often Requested Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 177px;&amp;quot;&amp;gt;'''Announced'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.5--&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.4--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 15px; padding-top: 10px;&amp;quot;&amp;gt;v4.4&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;font-size: 23px; padding-top: 10px; padding-left: 71px;&amp;quot;&amp;gt;September 2023&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;width: 118px; height: 22px; border: 2px solid #8CCE59; border-radius: 2px; margin-top: 16px; margin-left: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 12px; padding-left: 13px;&amp;quot;&amp;gt;'''In Development'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 18px; padding-left: 650px;&amp;quot;&amp;gt;'''View Release Notes'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt; &lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #F5F5F5; width: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 18px; padding-top: 10px; padding-bottom: 10px; margin: 0px;&amp;quot;&amp;gt;'''Signature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;width: 38px; height: 22px; border: 2px solid #8B9AD9; margin-left: 5px; margin-top: 10px; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;font-size: 12px; padding-left: 7px;&amp;quot;&amp;gt;'''iOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 234px;&amp;quot;&amp;gt;'''Pending'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 95px;&amp;quot;&amp;gt;'''Xamarin iOS now allows users to create handwritten signatures in-app.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-left: 18px; padding-top: 10px; padding-bottom: 10px; margin: 0px;&amp;quot;&amp;gt;'''App Configuration.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;width: 60px; height: 21px; background-color: #96A3D9; margin-left: 5px; margin-top: 10px; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;font-size: 12px; padding-top: 1px; padding-left: 11px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; margin: 0px; padding-left: 160px;&amp;quot;&amp;gt;'''Included'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;font-size: 13px; padding-top: 10px; padding-left: 93px;&amp;quot;&amp;gt;'''Xamarin Android now supports managed app configuration for rolling out up to 9 Ubik profiles in an&amp;lt;br/&amp;gt;enterprise environment.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--Version: v4.4--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--Body: List--&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Main_Page&amp;diff=24870</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Main_Page&amp;diff=24870"/>
				<updated>2023-07-25T07:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- MAIN DESKTOP DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;nomobile&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;!-- Hide Desktop content from Mobile view --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- SEARCH BOX --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%; border: solid #D3D3D3 1px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;background: #D3D3D3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block;padding-right:20px&amp;quot;&amp;gt;[[File:IC_MainPage-32.png|30px]]&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&amp;lt;inputbox&amp;gt;&lt;br /&gt;
inline=true&lt;br /&gt;
type=fulltext&lt;br /&gt;
width=400&lt;br /&gt;
namespaces=&lt;br /&gt;
searchbuttonlabel=Search&lt;br /&gt;
buttonlabel=Search&lt;br /&gt;
bgcolor=&lt;br /&gt;
break=no&lt;br /&gt;
placeholder=What can we help you with?&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- SEARCH BOX --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BEGINNER ITEMS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;background:none;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- INLINE TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:70%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[What_is_UBIK|What is {{UBIK}}?]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-06a.png|link=What_is_UBIK|What is UBIK|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Getting Started|Getting started]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-05a.png|link=Getting_Started|alt=Getting Started|Getting Started|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Contact|Contact]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-04a.png|link=Contact|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[:Category:FAQ|FAQ]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-02a.png|link=:Category:FAQ|alt=FAQ|FAQ|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Hardware Page|Hardware]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_Hardware03.png|link=Hardware Page|alt=Hardware Page|Hardware Page|x50px]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;!-- INLINE TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BEGINNER ITEMS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%; border: solid #D3D3D3 1px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;background: #D3D3D3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;&amp;quot;&amp;gt;[[File:IC_UBIK_IconPack-06.png|20px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell bgAUGMENSYSa&amp;quot; style=&amp;quot;width:100%; padding:0px; margin:auto 0px;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- PRODUCTS TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;border:none;padding:2px;margin:0px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;border:1px;padding:0px;margin-top:20px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_g.png|link=UBIK_Studio_Basics|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[UBIK_Studio_Basics|Studio]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_go.png|link=SmartStudio|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[SmartStudio|Smart Studio]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_Grey.png|link=UBIK_Client_Getting_Started|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[UBIK_Client_Getting_Started|Client]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- PRODUCTS TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BOX 1 --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:20px&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;border: none;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: LEFT CELL --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:30%;border:none;background: #fff;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: VERSION BOX TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;border: solid #D3D3D3 1px;background: #fff;margin-right:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: VERSION BOX TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:5px&amp;quot;&amp;gt;[[File:IC_MainPage-31.png|30px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:100%; padding-left:20px;border:none;background: #fff&amp;quot;&amp;gt;&lt;br /&gt;
{{:List_of_Versions}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: VERSION BOX TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: VERSION BOX TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: LEFT CELL --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: RIGHT CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:30%;border:none;background: #fff;margin:0 auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;border: none;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:100%; padding-left:20px;border:none;background: #fff;margin: 0 auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: NEWS BOX TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;border: solid #D3D3D3 1px;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: NEWS BOX TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding-left:5px;padding-right:5px;padding-top:10px;&amp;quot;&amp;gt;[[File:IC_MainPage-30.png|30px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:100%; padding-left:20px;border:none;background: #fff;margin: 0 auto&amp;quot;&amp;gt;&lt;br /&gt;
{{:News_and_Announcements}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: NEWS BOX TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: NEWS BOX TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TAGCLOUD ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TAGCLOUD CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;width:100%; padding-left:20px;border:none;background: #fff;margin: 0 auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- TAG CLOUD --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:auto;width:80%;text-align:center;padding-top:50px;&amp;quot;&amp;gt;{{TagCloud|include=Built-in_objects,Client,How-To,FAQ,Document,Installing,POI,Server,Session_management|depth=3}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- TAG CLOUD --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TAGCLOUD CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TAGCLOUD ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: RIGHT CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Impressium --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;UBIK&amp;quot; class=&amp;quot;mainpage-bottom&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Augmensys_Logo_2019_small.png|center|link=Augmensys GmbH]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;user&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFUSERS}}]] users registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;online&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFACTIVEUSERS}}]] users active in the last 30 days&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles currently added&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hide Desktop content from Mobile view --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN DESKTOP DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nodesktop&amp;quot;&amp;gt;&lt;br /&gt;
  {{:Main_Page_Mobile}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Main_Page&amp;diff=24869</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Main_Page&amp;diff=24869"/>
				<updated>2023-07-25T07:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- MAIN DESKTOP DIV --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nomobile&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;!-- Hide Desktop content from Mobile view --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- SEARCH BOX --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%; border: solid #D3D3D3 1px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;background: #D3D3D3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block;padding-right:20px&amp;quot;&amp;gt;[[File:IC_MainPage-32.png|30px]]&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;&amp;lt;inputbox&amp;gt;&lt;br /&gt;
inline=true&lt;br /&gt;
type=fulltext&lt;br /&gt;
width=400&lt;br /&gt;
namespaces=&lt;br /&gt;
searchbuttonlabel=Search&lt;br /&gt;
buttonlabel=Search&lt;br /&gt;
bgcolor=&lt;br /&gt;
break=no&lt;br /&gt;
placeholder=What can we help you with?&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- SEARCH BOX --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BEGINNER ITEMS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;background:none;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- INLINE TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:70%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[What_is_UBIK|What is {{UBIK}}?]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-06a.png|link=What_is_UBIK|What is UBIK|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Getting Started|Getting started]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-05a.png|link=Getting_Started|alt=Getting Started|Getting Started|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Contact|Contact]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-04a.png|link=Contact|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[:Category:FAQ|FAQ]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_MainPage-02a.png|link=:Category:FAQ|alt=FAQ|FAQ|x50px]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:5%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:10%;background:#ffffff;border-radius:5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-beginnersLink&amp;quot;&amp;gt;[[Hardware Page|Hardware]]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:IC_Hardware03.png|link=Hardware Page|alt=Hardware Page|Hardware Page|x50px]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;!-- INLINE TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BEGINNER ITEMS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%; border: solid #D3D3D3 1px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot; style=&amp;quot;background: #D3D3D3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ICON CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell&amp;quot; style=&amp;quot;border:none;padding:10px;&amp;quot;&amp;gt;[[File:IC_UBIK_IconPack-06.png|20px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableCell bgAUGMENSYSa&amp;quot; style=&amp;quot;width:100%; padding:0px; margin:auto 0px;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- PRODUCTS TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;border:none;padding:2px;margin:0px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;border:1px;padding:0px;margin-top:20px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_g.png|link=UBIK_Studio_Basics|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[UBIK_Studio_Basics|Studio]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_go.png|link=SmartStudio|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[SmartStudio|Smart Studio]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align:center;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
[[File:App-Ubik_Grey.png|link=UBIK_Client_Getting_Started|130px]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mp-productsLink2&amp;quot;&amp;gt;[[UBIK_Client_Getting_Started|Client]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- PRODUCTS TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: DATA CELL --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: TABLE --&amp;gt;&lt;br /&gt;
&amp;lt;!-- BOX 1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Impressium --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;UBIK&amp;quot; class=&amp;quot;mainpage-bottom&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Augmensys_Logo_2019_small.png|center|link=Augmensys GmbH]]&lt;br /&gt;
&amp;lt;div id=&amp;quot;user&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFUSERS}}]] users registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;online&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFACTIVEUSERS}}]] users active in the last 30 days&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles currently added&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- ROW FOOTER --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hide Desktop content from Mobile view --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN DESKTOP DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nodesktop&amp;quot;&amp;gt;&lt;br /&gt;
  {{:Main_Page_Mobile}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- MAIN MOBILE DIV --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;br /&gt;
{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=24868</id>
		<title>Template:RoadmapOverview</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Template:RoadmapOverview&amp;diff=24868"/>
				<updated>2023-07-25T07:28:16Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: Created page with &amp;quot;&amp;lt;!--VERSION: Roadmap--&amp;gt; &amp;lt;div style=&amp;quot;display: flex; margin-left: 30px; margin-top: 100px;&amp;quot;&amp;gt;     &amp;lt;p style=&amp;quot;font-size: 23px;&amp;quot;&amp;gt;'''Product Roadmap'''&amp;lt;/p&amp;gt;     &amp;lt;p style=&amp;quot;font-size: 2...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; margin-left: 30px; margin-top: 100px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 23px;&amp;quot;&amp;gt;'''Product Roadmap'''&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 635px;&amp;quot;&amp;gt;All v4 Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 5px;&amp;quot;&amp;gt;|&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 5px;&amp;quot;&amp;gt;All Older Releases&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; background-color: #FFFFFFFF; justify-content: space-evenly; flex-wrap: wrap;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px;&amp;quot;&amp;gt;    &lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Latest Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF; padding-right: 20px; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.3'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: 147px; margin-top: 10px; border-radius: 2px; width: 68px; height: 22px; background-color: #8CCE59;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 8px; padding-top: 1px; font-size: 13px;&amp;quot;&amp;gt;'''12.04.23'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Developer Mode.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Dynamic Live Mode (DLM).'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''In-PDF Searching.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Latest Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px;&amp;quot;&amp;gt;    &lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Next Release'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF; padding-right: 20px; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.4'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;margin-left: 147px; margin-top: 10px; border-radius: 2px; width: 68px; height: 22px; border: 2px solid #8CCE59;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 8px; padding-top: 1px; font-size: 13px;&amp;quot;&amp;gt;'''Q3 2023'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Signature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Next Release--&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;left: 0px; border-radius: 2px; background-color: #F5F5F5; margin: 10px;&amp;quot;&amp;gt;    &lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 23px; padding-left: 14px; padding-right: 50px; padding-top: 10px;&amp;quot;&amp;gt;'''Future Planned Releases'''&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;div style=&amp;quot;display: flex; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;background-color: #FFFFFFFF; padding-right: 20px; width: 100%; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.5'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''2024'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px; flex-wrap: none;&amp;quot;&amp;gt;'''Cool Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: block; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''Exciting Feature!'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''View Details'''&amp;lt;/p&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;padding-left: 50px; height: 100%; background-color: #FFFFFFFF;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; padding-top: 5px; font-size: 23px;&amp;quot;&amp;gt;'''v4.6'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 10px; padding-top: 15px; font-size: 13px;&amp;quot;&amp;gt;'''tbd.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;'''A Feature.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;display: flex;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;p style=&amp;quot;padding-left: 14px; font-size: 13px;&amp;quot;&amp;gt;''' '''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Mobile'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''Android'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 38px; height: 21px; border: 2px solid #96A3D9; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 6px; font-size: 13px;&amp;quot;&amp;gt;'''IOS'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 59px; height: 21px; background-color: #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 8px; font-size: 13px;&amp;quot;&amp;gt;'''Server'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div style=&amp;quot;display: none; margin-left: 10px; width: 40px; height: 21px; border: 2px solid #96D9CD; border-radius: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;p style=&amp;quot;padding-top: 0px; padding-bottom: 1px; padding-left: 3px; font-size: 13px;&amp;quot;&amp;gt;'''UWP'''&amp;lt;/p&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div style=&amp;quot;width: 350px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;!--VERSION: Future Planned Releases--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 10px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--VERSION: Roadmap--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div  id=&amp;quot;mainPageDiv&amp;quot; &amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: SPACER ROW --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table&amp;quot; style=&amp;quot;width:100%;border: none;background: #fff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tableRow&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- DIV: BOX 1 TABLE ROW --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=WikiPlayground&amp;diff=24842</id>
		<title>WikiPlayground</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=WikiPlayground&amp;diff=24842"/>
				<updated>2023-07-19T09:07:55Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: Created page with &amp;quot; &amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=SYSCLS_UI_CUSTOMIZING&amp;diff=23154</id>
		<title>SYSCLS UI CUSTOMIZING</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=SYSCLS_UI_CUSTOMIZING&amp;diff=23154"/>
				<updated>2021-06-14T13:07:12Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClassificationInfoBox&lt;br /&gt;
| title = UI Customizing classification&lt;br /&gt;
| name = SYSCLS_UI_CUSTOMIZING&lt;br /&gt;
| inheritance = [[SYSCLS_ARCHIVECLASSIFICATION|SYSCLS_ARCHIVE]]&lt;br /&gt;
| namespace = System.Classification.Document&lt;br /&gt;
| purpose =  Marks an document object to be custom UI archive (set of XAMLS)&lt;br /&gt;
| version = 3.5.0+&lt;br /&gt;
| id = {9C13736D-5AA5-4C38-8129-9DC0AE99AA32}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A Document object which fullfills the UI Customizing Classification is identified as set of custom UI files (XAMLs). &lt;br /&gt;
The client will download and extract its content in the App folder and refresh the UI.&lt;br /&gt;
&lt;br /&gt;
== MetaProperties ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=50%&lt;br /&gt;
|-&lt;br /&gt;
! width=30% | Name !! width=30% | Data type !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| FILE_TYPE|| {{String}} || Specifies the file type .&lt;br /&gt;
|-&lt;br /&gt;
| CUSTOMIZING_VERSION|| {{String}} || Version indicator of the UI file set. The version is shown in the App.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Create_a_new_Classification]]&lt;br /&gt;
* [[HowTo:Assign a Classification to a MetaClass]]&lt;br /&gt;
&lt;br /&gt;
{{Category/Version|3.5.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3.5.0|SYSCLS UI CUSTOMIZING]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22992</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22992"/>
				<updated>2021-01-26T12:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C# expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
{{Hint|When writing expressions, it's always better (even necessary in some cases) to write them in their full forms. For example, while &amp;lt;nowiki&amp;gt;Bool_A || Bool_B&amp;lt;/nowiki&amp;gt; is a valid expression, you should still write &amp;lt;nowiki&amp;gt;Bool_A==true || Bool_B==true&amp;lt;/nowiki&amp;gt; instead.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression&lt;br /&gt;
        x:Name=&amp;quot;Evaluator&amp;quot;&lt;br /&gt;
        Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
        Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock&lt;br /&gt;
        Foreground=&amp;quot;White&amp;quot;&lt;br /&gt;
        Visibility=&amp;quot;{Binding ElementName=Evaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression&lt;br /&gt;
        x:Name=&amp;quot;Evaluator&amp;quot;&lt;br /&gt;
        Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
        Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Label&lt;br /&gt;
        TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
        IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use an expression with two parameters (''Param0'' and ''Param1''). The evaluated ''Result'' is then bound to a TextBlock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use an expression with two parameters (''Param0'' and ''Param1''). The evaluated ''Result'' is then bound to a Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;Param0&amp;quot; WidthRequest=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;Param1&amp;quot; WidthRequest=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference Param0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference Param1}}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Since Textbox ''P0'' has a width of 32 and ''P1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1)&amp;lt;/code&amp;gt; then the result would display 75.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated property value ====&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        Content=&amp;quot;Tap for 5 more&amp;quot;&lt;br /&gt;
        Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot;&lt;br /&gt;
        CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        Text=&amp;quot;Tap to add 5 more&amp;quot;&lt;br /&gt;
        Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot;&lt;br /&gt;
        CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conditional statement ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax. &lt;br /&gt;
In this case, if the result of the P0 expression is true P00's value will be displayed in the Textblock, if P1 is true P10's value will be displayed.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_PP_STATUS], Converter={StaticResource EqualToVisConverter}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_PP_STATUS], Converter={StaticResource EqualToVisConverter}, ConverterParameter=20}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00's value will be displayed in the Label, if P1 is true P10's value will be displayed.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
    &amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22991</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22991"/>
				<updated>2021-01-26T12:33:18Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Conditional statement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C# expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
{{Hint|When writing expressions, it's always better (even necessary in some cases) to write them in their full forms. For example, while &amp;lt;nowiki&amp;gt;Bool_A || Bool_B&amp;lt;/nowiki&amp;gt; is a valid expression, you should still write &amp;lt;nowiki&amp;gt;Bool_A==true || Bool_B==true&amp;lt;/nowiki&amp;gt; instead.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression&lt;br /&gt;
        x:Name=&amp;quot;Evaluator&amp;quot;&lt;br /&gt;
        Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
        Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock&lt;br /&gt;
        Foreground=&amp;quot;White&amp;quot;&lt;br /&gt;
        Visibility=&amp;quot;{Binding ElementName=Evaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression&lt;br /&gt;
        x:Name=&amp;quot;Evaluator&amp;quot;&lt;br /&gt;
        Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
        Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Label&lt;br /&gt;
        TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
        IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use an expression with two parameters (''Param0'' and ''Param1''). The evaluated ''Result'' is then bound to a TextBlock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use an expression with two parameters (''Param0'' and ''Param1''). The evaluated ''Result'' is then bound to a Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;P0&amp;quot; WidthRequest=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Editor x:Name=&amp;quot;P1&amp;quot; WidthRequest=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P1}}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Since Textbox ''P0'' has a width of 32 and ''P1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1)&amp;lt;/code&amp;gt; then the result would display 75.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated property value ====&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        Content=&amp;quot;Tap for 5 more&amp;quot;&lt;br /&gt;
        Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot;&lt;br /&gt;
        CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        Text=&amp;quot;Tap to add 5 more&amp;quot;&lt;br /&gt;
        Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot;&lt;br /&gt;
        CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conditional statement ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax. &lt;br /&gt;
In this case, if the result of the P0 expression is true P00's value will be displayed in the Textblock, if P1 is true P10's value will be displayed.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_PP_STATUS], Converter={StaticResource EqualToVisConverter}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_PP_STATUS], Converter={StaticResource EqualToVisConverter}, ConverterParameter=20}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;TextBlock Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00's value will be displayed in the Label, if P1 is true P10's value will be displayed.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;controls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
    &amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22978</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22978"/>
				<updated>2021-01-25T12:27:15Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P0&amp;quot; WidthRequest=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P1&amp;quot; WidthRequest=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''P0'' has a width of 32 and ''P1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1)&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22977</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22977"/>
				<updated>2021-01-25T12:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin example under construction&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P0&amp;quot; WidthRequest=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P1&amp;quot; WidthRequest=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''P0'' has a width of 32 and ''P1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1)&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22976</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22976"/>
				<updated>2021-01-25T12:17:59Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin example under construction&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P0&amp;quot; WidthRequest=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;P1&amp;quot; WidthRequest=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=WidthRequest, Source={x:Reference P1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0''has a width of 32 and ''Param1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1)&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22975</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22975"/>
				<updated>2021-01-25T11:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin example under construction&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0''has a width of 32 and ''Param1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22974</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22974"/>
				<updated>2021-01-25T11:46:29Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin -&amp;gt; example under construction&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0''has a width of 32 and ''Param1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22973</id>
		<title>EvalExpression</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=EvalExpression&amp;diff=22973"/>
				<updated>2021-01-25T11:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;LDO: /* Simple Calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{XAMLControlInfoBox&lt;br /&gt;
| title = {{PAGENAME}}&lt;br /&gt;
| name = {{PAGENAME}}&lt;br /&gt;
| namespace = &amp;quot;using:UBIK.WinX.Controls&amp;quot; in UBIK.UWP&amp;lt;br&amp;gt;&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot; in UBIK.Xamarin&lt;br /&gt;
| image = [[File:SY_{{PAGENAME}}.png|220px]]&lt;br /&gt;
| imagecaption = imagecaption&lt;br /&gt;
| purpose = Evaluate a C# expression in XAML&lt;br /&gt;
| version = 3.2+ in UBIK.UWP 1.0+ in UBIK.Xamarin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concept==&lt;br /&gt;
The EvalExpression control allows to evaluate a C# expression from within XAML markup. The ''Expression'' has to be a single-line, valid C#  expression (&amp;quot;Lambda&amp;quot;) and has to return a single value; expressions can also reference names of subordinate [[EvalExpression#Parameters|EvalExpressionParameter]] items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
{{Hint|When writing expressions in XAML code, you have to avoid (escape) special characters. There are useful [https://www.freeformatter.com/xml-escape.html online tools] for this.}}&lt;br /&gt;
&lt;br /&gt;
==== Evaluation without parameters ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
                x:Name=&amp;quot;ExpressionEvaluator&amp;quot;&lt;br /&gt;
                Context=&amp;quot;{Binding Self}&amp;quot;&lt;br /&gt;
                Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_OFFLINE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Visibility=&amp;quot;{Binding ElementName=ExpressionEvaluator, Path=Result, Converter={StaticResource BoolToVisConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The TextBlock should be visible as long as at least one of the context object's two named properties has a value.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to evaluate a simple expression without using any parameters and then use the result for visibility binding.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression&lt;br /&gt;
		x:Name=&amp;quot;ControllingVisibility&amp;quot;&lt;br /&gt;
		Context=&amp;quot;{Binding}&amp;quot;&lt;br /&gt;
		Expression=&amp;quot;Context.Values[&amp;amp;quot;LK_EXAMPLE&amp;amp;quot;]!=null || Context.Values[&amp;amp;quot;GUIDREF&amp;amp;quot;]!=null&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;Label &lt;br /&gt;
              TextColor=&amp;quot;#00000&amp;quot;&lt;br /&gt;
              IsVisible=&amp;quot;{Binding Path=Result, Source={x:Reference ControllingVisibility}, Converter={StaticResource NullToBoolConverter}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The Label should be visible as long as at least one of the context object's two named properties has a value.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Simple Calculation ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Textbox ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to a Textblock for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackPanel xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&lt;br /&gt;
	HorizontalAlignment=&amp;quot;Center&amp;quot;&lt;br /&gt;
	Orientation=&amp;quot;Vertical&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Expression&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;TextBox x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding ElementName=Expression, Path=Text}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding ElementName=Param0, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding ElementName=Param1, Path=Text, Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding IsLoggedIn}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;TextBlock Foreground=&amp;quot;White&amp;quot; Text=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0'' contains a text of 42 and ''Param1'' contains a text of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 170.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to use the control with three parameters, where the first two are user input (Editor ''Param0'' and ''Param1'') and the third one is a property from its DataContext (ViewModel). The evaluated ''Result'' is then bound to an Label for output in the UI.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;StackLayout xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Expression&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param0&amp;quot; Width=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;Editor x:Name=&amp;quot;Param1&amp;quot; Width=&amp;quot;43&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;{Binding Path=Text, Source={x:Reference Expression}}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param0}}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Path=Width, Source={x:Reference Param1}}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Label Text=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator}}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/StackLayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Lets assume that the Textbox ''Param0''has a width of 32 and ''Param1'' has a width of 43. If ''Expression'' now contains  &amp;lt;code&amp;gt;(P0 + P1) *2&amp;lt;/code&amp;gt; then the result would display 75.&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;br /&gt;
&lt;br /&gt;
==== Setting a calculated Property Value ====&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;using:UBIK.WinX.Controls&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 5)&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE], Converter={StaticResource ToType}, ConverterParameter='System.Int32'}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
    &amp;lt;Button Content=&amp;quot;Tap for 5 more&amp;quot; Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding ElementName=Evaluator, Path=Result}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
The following example shows how to create a button that adds and stores +5 to the value of a a numeric property named ''MP_EXAMPLE'', every time it is pressed:&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;ctrls:EvalExpression x:Name=&amp;quot;Evaluator2&amp;quot; Expression=&amp;quot;&amp;amp;quot;MP_EXAMPLE|&amp;amp;quot; + (P0 + 2)&amp;quot;&amp;gt;&lt;br /&gt;
	     &amp;lt;ctrls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_EXAMPLE]}&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/ctrls:EvalExpression&amp;gt;&lt;br /&gt;
	&amp;lt;Button Text=&amp;quot;Tap to add 2 more&amp;quot;&lt;br /&gt;
		      Command=&amp;quot;{Binding SetPropertyValueAndValidateCommand}&amp;quot; CommandParameter=&amp;quot;{Binding Path=Result, Source={x:Reference Evaluator2}}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conditional Statement ==&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;UWP&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can be evaluated using the C# syntax P0 ? P1 : P2. &lt;br /&gt;
In this case, if the result of the P0 expression is True, P1 will be effected. Otherwise, P2 will be.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Controls:EvalExpression x:Name=&amp;quot;InitialiseParameterWhenNull&amp;quot; Expression=&amp;quot;(P0==null) ? P1 : P2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding StoredProfileParameters[WPType1]}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;WPType1=1&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;Controls:EvalExpressionParameter Name=&amp;quot;P2&amp;quot; Value=&amp;quot;{Binding ElementName=InitialiseParameter, Path=Result}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Controls:EvalExpression&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Xamarin&amp;quot;&amp;gt;&lt;br /&gt;
If / Or statements can also be evaluated using various C# syntax.&lt;br /&gt;
In this case, if the result of the P0 expression is true P00 will be used, if P1 is true P10 will be used.&lt;br /&gt;
&amp;lt;source lang = &amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Grid xmlns:ctrls=&amp;quot;clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;controls:EvalExpression x:Name=&amp;quot;StatusAutomator&amp;quot; Expression=&amp;quot;P0 == true ? P00 : (P1 == true ? P10)&amp;quot; Context=&amp;quot;{Binding}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P0&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=0}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P00&amp;quot; Value=&amp;quot;State1&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P1&amp;quot; Value=&amp;quot;{Binding Values[MP_STATUS], Converter={StaticResource EqualityToBool}, ConverterParameter=10}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;controls:EvalExpressionParameter Name=&amp;quot;P10&amp;quot; Value=&amp;quot;State2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/controls:EvalExpression&amp;gt;		&lt;br /&gt;
	&amp;lt;Label&lt;br /&gt;
		Text=&amp;quot;{Binding Path=Result, Source={x:Reference StatusAutomator}}&amp;quot;&lt;br /&gt;
		FontSize=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
EvalExpressionParameters can be added as child objects to an EvalExpression control. Each parameter object needs a unique ''Name'' and a ''Value'', where the latter can be either a constant or dynamic value supplied through a binding.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[XAML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Client|EvalExpression]]&lt;br /&gt;
[[Category:Pages with broken file links|EvalExpression]]&lt;br /&gt;
[[Category:WinX|EvalExpression]]&lt;br /&gt;
[[Category:Xamarin|EvalExpression]]&lt;/div&gt;</summary>
		<author><name>LDO</name></author>	</entry>

	</feed>