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

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Serilog&amp;diff=22788</id>
		<title>Serilog</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Serilog&amp;diff=22788"/>
				<updated>2020-11-16T08:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Serilog is a portable and structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;{{Template:Activity/Begin}}&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;&lt;br /&gt;
= Description =&lt;br /&gt;
{{ActivityInfoBox&lt;br /&gt;
| title = Serilog&lt;br /&gt;
| name = Serilog&lt;br /&gt;
| image = &lt;br /&gt;
| imagecaption = &lt;br /&gt;
| purpose =  Structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.&lt;br /&gt;
| returns = void&lt;br /&gt;
| category = UBIK&lt;br /&gt;
| version = 3.6.0+&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Serilog existing log event levels===&lt;br /&gt;
*Log Levels taken from  the Serilog doku : https://github.com/serilog/serilog/wiki/Configuration-Basics&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! LogLevel !! Purpose &lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Verbose ||It is the noisiest level, generally used only as a last resort when debugging a difficult problem, and rarely (if ever) enabled for a production app. For example, local variables within an algorithm implementation might be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Debug || Debug is used for internal system events that are not necessarily observable from the outside, but useful when determining how something happened. For example, the details of requests and responses made to and from external integration points would often be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Information  || Information events describe things happening in the system that correspond to its responsibilities and functions. Generally, these are the observable actions the system can perform. For example, processing a payment or updating a user's details will be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Warning || When service is degraded, endangered, or may be behaving outside of its expected parameters, Warning level events are used. A warning event should only be emitted when the condition is either transient or can be investigated and fixed - use restraint to avoid polluting the log with spurious warnings. For example, slow response times from a critical database would be logged as warnings.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Error  || When functionality is unavailable or expectations broken, an Error event is used. For example, receiving an exception when trying to commit a database transaction is an event at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Fatal  ||  The most critical level, Fatal events demand immediate attention. For example, an application failing during startup will log a Fatal event. If you have a pager, it goes off when one of these occurs.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Logging methods used in UBIKKernel===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MethodName !! Level !! Purpose &lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogVerbose || Verbose || method for writing a verbose log message to the output log file logged as Verbose event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogDebugOutput || Debug || method for writing a debug log message to the output log file logged as Debug event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogInformation || Information || method for writing an information log message to the output log file logged as Information event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogSQLStatement  LogSQLCommand || Information || method for writing a sql log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogCustomizing || Information || method for writing a customizing log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogService || Information || method for writing a customizing log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogWorkflowOutput || Information || method for writing a service log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| ThrowAssertion || Warning || method for writing an assertion log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogWarning || Warning || method for writing a warning log message to the output log file logged as Warning event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogError || Error || method for writing an error log message to the output log file logged as Error event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogException || Error || method for writing an exception log message to the output log file logged as Error event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogFatal || Fatal || method for writing a fatal log message to the output log file logged as Fatal event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== How To Configure Logging ===&lt;br /&gt;
&lt;br /&gt;
*Added a way for the User to configure the default log path, the file count limit, the log event level and rolling policies through Logger.config with changing only the “values”, which are set on their default.&lt;br /&gt;
**The default Log path is set to the installation directory of UBIK. Its value can be changed to any local path (e.g. value=&amp;quot;C:\logs&amp;quot;). &lt;br /&gt;
**Using OS Environment Variables (e.g. value=&amp;quot;%SYSTEMDRIVE%\logs&amp;quot;) is possible. &lt;br /&gt;
**Using Relative path's (e.g. value=&amp;quot;..\logs&amp;quot; used for moving up in the hierarchy from the current directory) or (e.g. value=&amp;quot;.\logs&amp;quot; represents the current directory itself) is possible.&lt;br /&gt;
**The default for the event level is set to Debug and its values can be changed to Verbose, Information, Warning, Error or Fatal.&lt;br /&gt;
*File default count limit is set to 31 and its values can be changed to any positive number.&lt;br /&gt;
*The default Rolling policies is set to Day and its values can be changed to &amp;quot;Day&amp;quot;, &amp;quot;Month&amp;quot; or &amp;quot;Year&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Since Version 3.6 ===&lt;br /&gt;
Replace our existing Microsoft.Practices.EnterpriseLibrary.Logging with more up-to-date solution like Serilog.&lt;br /&gt;
&lt;br /&gt;
[[Category:3.6.0|Serilog]]&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
Exemplary values to get Customizing log message using Who-Bert.&lt;br /&gt;
&lt;br /&gt;
&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;
                                               &lt;br /&gt;
                                               //Example using static class debugger&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;
                                                             &lt;br /&gt;
   &lt;br /&gt;
                                                               // LogCustomizing&lt;br /&gt;
                                                               UBIK.Kernel.UBIKKernel.LogCustomizing(System.Reflection.MethodBase.GetCurrentMethod(), &amp;quot;TEST&amp;quot;);&lt;br /&gt;
                                                                &lt;br /&gt;
                                                               Debugger.Output(this, obj.Name + &amp;quot; &amp;quot; + obj.Description);&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;
*Expected Result : &lt;br /&gt;
----------------------------------------&lt;br /&gt;
 [22/06/2020 09:21:55]&lt;br /&gt;
 TEST &lt;br /&gt;
 Id = [0] &lt;br /&gt;
 UBIK.Whobert.637284145138731645.dll   Void TestObject(UBIK.Kernel.BaseClass[]) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;{{Template:Activity/End}}&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
* [[HowTo:Configure_Logging]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Useful links [What is Serilog]==&lt;br /&gt;
* https://serilog.net/&lt;br /&gt;
{{Category/Version|3.6.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3.6.0|Serilog]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22560</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22560"/>
				<updated>2020-08-06T10:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
==== Own Implementation ====&lt;br /&gt;
Of course you can also write or use any other implementation or client technology to call the WebInterface. I suggest to learn from the UBIK.EnterpriseService.WebInterfaceClient on how to use the API.&lt;br /&gt;
&lt;br /&gt;
=== How to extend the web interface ===&lt;br /&gt;
The EnterpriseService not only hosts a WebInterface it allows you to extend it by adding your own controllers. For this you have to do two steps:&lt;br /&gt;
# Create your own controller that derives from System.Web.Http.ApiController ([https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Core/ Nuget Microsoft.AspNet.WebApi.Core])&lt;br /&gt;
# Place the assembly to the EnterpriseService Injection directory&lt;br /&gt;
As an example a controller can be implemented like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Web.Http;&lt;br /&gt;
namespace PluginLibrary&lt;br /&gt;
{&lt;br /&gt;
    public class MyExtentionController : ApiController&lt;br /&gt;
    {&lt;br /&gt;
        [HttpPost]&lt;br /&gt;
        public void DoThingsWithObject(string param)&lt;br /&gt;
        {&lt;br /&gt;
            // Do things here&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22559</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22559"/>
				<updated>2020-08-06T10:06:27Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
==== Own Implementation ====&lt;br /&gt;
Of course you can also write or use any other implementation or client technology to call the WebInterface. I suggest to learn from the UBIK.EnterpriseService.WebInterfaceClient on how to use the API.&lt;br /&gt;
&lt;br /&gt;
=== How to extend the web interface ===&lt;br /&gt;
The EnterpriseService not only hosts a WebInterface it allows you to extend it by adding your own controllers. For this you have to do two steps:&lt;br /&gt;
# Create your own controller that derives from System.Web.Http.ApiController ([https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Core/ Nuget WebApi])&lt;br /&gt;
# Place the assembly to the EnterpriseService Injection directory&lt;br /&gt;
As an example a controller can be implemented like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Web.Http;&lt;br /&gt;
namespace PluginLibrary&lt;br /&gt;
{&lt;br /&gt;
    public class MyExtentionController : ApiController&lt;br /&gt;
    {&lt;br /&gt;
        [HttpPost]&lt;br /&gt;
        public void DoThingsWithObject(string param)&lt;br /&gt;
        {&lt;br /&gt;
            // Do things here&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Serilog&amp;diff=22558</id>
		<title>Serilog</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Serilog&amp;diff=22558"/>
				<updated>2020-08-05T11:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Serilog is a portable and structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;{{Template:Activity/Begin}}&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;&lt;br /&gt;
= Description =&lt;br /&gt;
{{ActivityInfoBox&lt;br /&gt;
| title = Serilog&lt;br /&gt;
| name = Serilog&lt;br /&gt;
| image = &lt;br /&gt;
| imagecaption = &lt;br /&gt;
| purpose =  Structured logging framework to record diagnostic logs into files, console and SQL/NoSQL databases.&lt;br /&gt;
| returns = void&lt;br /&gt;
| category = UBIK&lt;br /&gt;
| version = 3.6.0+&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Serilog existing log event levels===&lt;br /&gt;
*Log Levels taken from  the Serilog doku : https://github.com/serilog/serilog/wiki/Configuration-Basics&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! LogLevel !! Purpose &lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Verbose ||It is the noisiest level, generally used only as a last resort when debugging a difficult problem, and rarely (if ever) enabled for a production app. For example, local variables within an algorithm implementation might be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Debug || Debug is used for internal system events that are not necessarily observable from the outside, but useful when determining how something happened. For example, the details of requests and responses made to and from external integration points would often be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Information  || Information events describe things happening in the system that correspond to its responsibilities and functions. Generally, these are the observable actions the system can perform. For example, processing a payment or updating a user's details will be logged at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Warning || When service is degraded, endangered, or may be behaving outside of its expected parameters, Warning level events are used. A warning event should only be emitted when the condition is either transient or can be investigated and fixed - use restraint to avoid polluting the log with spurious warnings. For example, slow response times from a critical database would be logged as warnings.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Error  || When functionality is unavailable or expectations broken, an Error event is used. For example, receiving an exception when trying to commit a database transaction is an event at this level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| Fatal  ||  The most critical level, Fatal events demand immediate attention. For example, an application failing during startup will log a Fatal event. If you have a pager, it goes off when one of these occurs.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
Used to replace our existing Microsoft.Practices.EnterpriseLibrary.Logging with more up-to-date solution like Serilog.&lt;br /&gt;
===NewFeatures===&lt;br /&gt;
*We replaced all the code that uses the Microsoft.Practices.EnterpriseLibrrary.Logging library with the Serilog library.&lt;br /&gt;
===Logging methods used in UBIKKernel===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MethodName !! Level !! Purpose &lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogVerbose || Verbose || method for writing a verbose log message to the output log file logged as Verbose event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogDebugOutput || Debug || method for writing a debug log message to the output log file logged as Debug event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogInformation || Information || method for writing an information log message to the output log file logged as Information event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogSQLStatement  LogSQLCommand || Information || method for writing a sql log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogCustomizing || Information || method for writing a customizing log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogService || Information || method for writing a customizing log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogWorkflowOutput || Information || method for writing a service log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| ThrowAssertion || Warning || method for writing an assertion log message to the output log file logged as Information event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogWarning || Warning || method for writing a warning log message to the output log file logged as Warning event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogError || Error || method for writing an error log message to the output log file logged as Error event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogException || Error || method for writing an exception log message to the output log file logged as Error event level.&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| LogFatal || Fatal || method for writing a fatal log message to the output log file logged as Fatal event level. (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
**Added a way for the User to configure the default log path, the file count limit, the log event level and rolling policies through Logger.config with changing only the “values”, which are set on their default.&lt;br /&gt;
**The default Log path is set to the installation directory of UBIK. Its value can be changed to any local path (e.g. value=&amp;quot;C:\logs&amp;quot;). Using OS Environment Variables (e.g. value=&amp;quot;%SYSTEMDRIVE%\logs&amp;quot;) is possible.&lt;br /&gt;
**The default for the event level is set to Debug and its values can be changed to Verbose, Information, Warning, Error or Fatal.&lt;br /&gt;
**File default count limit is set to 31 and its values can be changed to any positive number.&lt;br /&gt;
**The default Rolling policies is set to Day and its values can be changed to &amp;quot;Day&amp;quot;, &amp;quot;Month&amp;quot; or &amp;quot;Year&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
Exemplary values to get Customizing log message using Who-Bert.&lt;br /&gt;
&lt;br /&gt;
&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;
                                               &lt;br /&gt;
                                               //Example using static class debugger&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;
                                                             &lt;br /&gt;
   &lt;br /&gt;
                                                               // LogCustomizing&lt;br /&gt;
                                                               UBIK.Kernel.UBIKKernel.LogCustomizing(System.Reflection.MethodBase.GetCurrentMethod(), &amp;quot;TEST&amp;quot;);&lt;br /&gt;
                                                                &lt;br /&gt;
                                                               Debugger.Output(this, obj.Name + &amp;quot; &amp;quot; + obj.Description);&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;
*Expected Result : &lt;br /&gt;
----------------------------------------&lt;br /&gt;
 [22/06/2020 09:21:55]&lt;br /&gt;
 TEST &lt;br /&gt;
 Id = [0] &lt;br /&gt;
 UBIK.Whobert.637284145138731645.dll   Void TestObject(UBIK.Kernel.BaseClass[]) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;{{Template:Activity/End}}&amp;lt;!-- DO NOT REMOVE THIS --&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
* [[HowTo:Configure_Logging]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Useful links [What is Serilog]==&lt;br /&gt;
* https://serilog.net/&lt;br /&gt;
{{Category/Version|3.6.0}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3.6.0|Serilog]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22504</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22504"/>
				<updated>2020-07-10T07:43:08Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
==== Own Implementation ====&lt;br /&gt;
Of course you can also write or use any other implementation or client technology to call the WebInterface. I suggest to learn from the UBIK.EnterpriseService.WebInterfaceClient on how to use the API.&lt;br /&gt;
&lt;br /&gt;
=== How to extend the web interface ===&lt;br /&gt;
The EnterpriseService not only hosts a WebInterface it allows you to extend it by adding your own controllers. For this you have to do two steps:&lt;br /&gt;
# Create your own controller that derives from System.Web.Http.ApiController&lt;br /&gt;
# Place the assembly to the EnterpriseService Injection directory&lt;br /&gt;
As an example a controller can be implemented like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Web.Http;&lt;br /&gt;
namespace PluginLibrary&lt;br /&gt;
{&lt;br /&gt;
    public class MyExtentionController : ApiController&lt;br /&gt;
    {&lt;br /&gt;
        [HttpPost]&lt;br /&gt;
        public void DoThingsWithObject(string param)&lt;br /&gt;
        {&lt;br /&gt;
            // Do things here&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22503</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22503"/>
				<updated>2020-07-10T07:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
==== Own Implementation ====&lt;br /&gt;
Of course you can also write or use any other implementation or client technology to call the WebInterface. I suggest to learn from the UBIK.EnterpriseService.WebInterfaceClient on how to use the API.&lt;br /&gt;
&lt;br /&gt;
=== How to extend the web interface ===&lt;br /&gt;
The EnterpriseService not only hosts a WebInterface it allows you to extend it by adding your own controllers. For this you have to do two steps:&lt;br /&gt;
# Create your own controller that derives from System.Web.Http.ApiController&lt;br /&gt;
# Place the assembly to the EnterpriseService Injection directory&lt;br /&gt;
As an example a controller can be implemented like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Web.Http;&lt;br /&gt;
namespace PluginLibrary&lt;br /&gt;
{&lt;br /&gt;
    public class MyExtentionController : ApiController&lt;br /&gt;
    {&lt;br /&gt;
        [HttpPost]&lt;br /&gt;
        public void DoThingsWithObject(string param)&lt;br /&gt;
        {&lt;br /&gt;
            // Do things here&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22502</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22502"/>
				<updated>2020-07-10T07:31:34Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
==== Own Implementation ====&lt;br /&gt;
Of course you can also write or use any other implementation or client technology to call the WebInterface. I suggest to learn from the UBIK.EnterpriseService.WebInterfaceClient on how to use the API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22501</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22501"/>
				<updated>2020-07-10T07:30:49Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.WebInterface.Client ====&lt;br /&gt;
In order to consume this new interface you can use the UBIK.EnterpriseService.WebInterface.Client which is a .Net client library that you can include in your project. It is also included in the standard UBIK installation and can be used from within UBIK.Studio.&lt;br /&gt;
&lt;br /&gt;
==== UBIK.EnterpriseService.BasicClient.App  ====&lt;br /&gt;
Another possibility is to use UBIK.EnterpriseService.BasicClient.App which is a stand-alone application that uses the aforementioned library internally. This application can be used in the Windows Task Scheduler to schedule executions. In order to use this application you will need to configure it in its accompanying UBIK.EnterpriseService.BasicClient.App.exe.config file. This xml file has an “appSettings” section with three entries:&lt;br /&gt;
* BaseAddress: This is the base address on which the EnterpriseService hosts its WebInterface. You can find it in the appsettings section (WebInterfacePort &amp;amp; WebInterfaceHost) in the UBIK.EnterpriseService.exe.config file of your EnterpriseService installation path. The default value is http://localhost:9000&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFile: This is a file path to a json file that contains all parameters needed to execute a task. As an example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;SSPI&amp;quot;: false,&lt;br /&gt;
  &amp;quot;SQLUser&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLPassword&amp;quot;: &amp;quot;pwd#1&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLServer&amp;quot;: &amp;quot;augserver&amp;quot;,&lt;br /&gt;
  &amp;quot;SQLInitialCatalog&amp;quot;: &amp;quot;UBIK.DEV&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodFullName&amp;quot;: &amp;quot;Namespace.Class.Method&amp;quot;,&lt;br /&gt;
  &amp;quot;MethodParametersAsJson&amp;quot;: &amp;quot;{&lt;br /&gt;
					\&amp;quot;MyNumberProperty\&amp;quot;: 4,&lt;br /&gt;
					\&amp;quot;MyStringProperty\&amp;quot;: \&amp;quot;TESTDATENBANK\&amp;quot;&lt;br /&gt;
				}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* PathToBasicEnterpriseServiceRequestJsonFileList: It may seem overly complicated to add a file path that contains itself again paths to the actual request-files. But if someone wants to enqueue a couple of tasks this file will become utterly cluttered. Also it orders the task requests.&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22500</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22500"/>
				<updated>2020-07-10T07:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: [https://wiki.augmensys.com/index.php?title=UBIK_Enterprise_Service#XML_Command UBIK_Enterprise_Service#XML_Command]. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
bool SSPI&lt;br /&gt;
string SQLUser&lt;br /&gt;
string SQLPassword&lt;br /&gt;
string SQLServer&lt;br /&gt;
string SQLInitialCatalog&lt;br /&gt;
&lt;br /&gt;
// Full path ({Methodname}) to the method (task) to be executed.&lt;br /&gt;
string MethodName&lt;br /&gt;
&lt;br /&gt;
// Full path ({Namespacename}.{Classname}) to the method to be executed.&lt;br /&gt;
string ClassFullname&lt;br /&gt;
&lt;br /&gt;
// As an example of how to write a method parameter as a json string:&lt;br /&gt;
// string methodParametersAsJson = @&amp;quot;{&lt;br /&gt;
//    &amp;quot;&amp;quot;ParamA&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueA&amp;quot;&amp;quot;,&lt;br /&gt;
//     &amp;quot;&amp;quot;ParamB&amp;quot;&amp;quot;: &amp;quot;&amp;quot;ValueB&amp;quot;&amp;quot;&lt;br /&gt;
// }&amp;quot;;&lt;br /&gt;
string MethodParametersAsJson&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22499</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22499"/>
				<updated>2020-07-10T07:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Interface ==&lt;br /&gt;
Since version 3.5.0 UBIK.EnterpriseService supports a new web interface. Since the EnterpriseService already provides a file based interface which can be used to execute code or workflows we added an interface that is backward compatible so that not only tasks but also workflows and code (Note: The code must derive from UBIK.Interface.UBIKInterfaceBase and implement IUBIKImport and/or IUBIKExport) can be enqueued via this interface.&lt;br /&gt;
&lt;br /&gt;
=== How to consume the web interface ===&lt;br /&gt;
First of all the address of the webinterface to a certain action follows a specific pattern: &amp;quot;api/{controller}/{action}&amp;quot;. For example, that means if you want to call the GetUpTimeInfo() method to see wether the WebInterface is online or not you will have to do a GET request to [http://localhost:9000/api/basicenterpriseservice/getuptimeinfo].&lt;br /&gt;
&lt;br /&gt;
By default the WebInterface allows you to enqueue tasks in the same way the command file based interface does described in here: UBIK_Enterprise_Service#XML_Command. Additionally it implements a new feature, namely the possibility to enqueue a task. A task is an abstract concept and describes something that needs to be done by UBIK. A task must have an entry point which must be a .Net implementation of a method. There are two ways for UBIK to identify a task to executed: Either you provide the full class name (Namespacename.Classname) and the methodname or you provide the full class name make the class implement the UBIK.ServiceTask.TaskExecution.ITask interface. You can also provide parameters to your task. These parameters must be a json serialized string. It is then the responsibility of the implementation of the task itself to deserialize the json string to an object. Finally you will need to tell the EnterpriseService on which database/UBIK project you want it to execute the task on. Overall the parameters to enqueue a task by the WebInterface must be as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22498</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22498"/>
				<updated>2020-07-10T07:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService is now able to host a WebInterface. In order to have the WebInterface up and running you will need to start the UBIK.EnterpriseService and by default it will host the WebInterface at http://localhost:9000/. We added three new parameter settings in UBIK.EnterpriseService.exe.config to configure the WebInterface:&lt;br /&gt;
* ExecuteWebInterface: The default is “1” and indicates that the WebInterface is turned on. Any other value or empty will prevent the EnterpriseService to host the WebInterface.&lt;br /&gt;
* WebInterfacePort: The default is “8000”.&lt;br /&gt;
* WebInterfaceHost: The default is http://localhost.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExecuteWebInterface&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfacePort&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;WebInterfaceHost&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22363</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22363"/>
				<updated>2020-04-28T11:55:59Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService it is now able to write a more extensive log. If you do not see more log information altough extensive logging is enabled then the logging is not implemented for the function of EnterpriseService that you use. The parameter 1 enables the log and any other character or nothing will disable it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExtensiveLogging&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22362</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=22362"/>
				<updated>2020-04-28T11:54:25Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
Since Version 3.5.0 UBIK.EnterpriseService it is now able to write a more extensive log. If you do not see more log information altough extensive logging is enabled then the logging is not implemented for the function of EnterpriseService that you use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ExtensiveLogging&amp;quot; value=&amp;quot;1&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Version_3.5_(Server)&amp;diff=22326</id>
		<title>Version 3.5 (Server)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Version_3.5_(Server)&amp;diff=22326"/>
				<updated>2020-04-21T08:26:31Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: /* Build History UBIK.Studio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;300&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Release Date&lt;br /&gt;
|- &lt;br /&gt;
| 3.5.0 || 2020.04.09&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Initial Release =&lt;br /&gt;
=== New features ===&lt;br /&gt;
* UBIK supports sending additional information for an uploaded file to the server&lt;br /&gt;
** [[SYSCLS_FILEDETAILSCLASSIFICATION|File Details classification object]]&lt;br /&gt;
* UBIK Supports Downloading of 3D Models now&lt;br /&gt;
** [[SYSCLS_ARCHIVECLASSIFICATION|Archive classification object]]&lt;br /&gt;
** [[SYSCLS_3DMODELCLASSIFICATION|3D Model classification object]]&lt;br /&gt;
* UBIK provides destribution of UI Customizing objects&lt;br /&gt;
** [[SYSCLS_UI_CUSTOMIZING|UI Customizingclassification object]]&lt;br /&gt;
* Every relation between UserGroup (left) and Login (right) will be used as basement for Rights Evaluation.&lt;br /&gt;
* UBIK supports MetaQueryScopes and MetaQueryViewwItems now. This provides the possibility to define Online Queries (for Views and in ACM) just as you do for instances by configuring their MetaClasses. &lt;br /&gt;
* UBIK provides a set of Methods with a simplyfied interface designed to be used from external systems (e.g. IOT use case) &lt;br /&gt;
** [[UBIK_Web_ServiceV264]]&lt;br /&gt;
* UBIK provides the possibility to add Attributes to any Live Value. This feature can be used by the implementation of a Live Value Servers. It is possible to transport any specific Live Value Information (Property, QualityInformation, etc). to the clients using UBIK Standard.&lt;br /&gt;
* User Rights can be applied for Selective Items now. The rights evaluation happens during the assembling of the MetaDefintiions. If the current user does not have the right to see one Selective Item, it is removed from the Metadefinitions. If a SelectiveList does not have one single visible item, the entire list and all its references to it are removed.&lt;br /&gt;
* A new method (EvaluateBaseChildrenCollectionExt) on the UBIK ViewItems gives access to the current UBIK Session which provides a full set of new possibilities when customizing the children collection depending on (e.g.) the current login.&lt;br /&gt;
* UBIK provides a Numeric [[Sequence_Generator|Sequence Generator]] now. It gives the possibility to create unique sequential ids for different number groups.&lt;br /&gt;
* Verbose Logging is now available for Importing and Exporting Data using the Interface Administration.&lt;br /&gt;
* UBIK Supports MultiLine Geography objects now&lt;br /&gt;
* UBIK provides new Workflow Activities for Web Based Actions:&lt;br /&gt;
** [[Authenticate_(Activity)|Authenticate]]&lt;br /&gt;
** [[RESTGet_(Activity)|REST Get]]&lt;br /&gt;
** [[RESTPost_(Activity)|REST Post]]&lt;br /&gt;
* UBIK supports two new types of Geography objects used for routing and navigation&lt;br /&gt;
** [[SYSCLS_GEO_MULTI_LINE|Multi Line Classification]]&lt;br /&gt;
** [[SYSCLS_ROUTING_GRAPH|Routing Graph Classification]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Change Log Values for Properties without a VTS are delivered with the correct date now.&lt;br /&gt;
* A problem with configured Initial Values is solved now. It is possible to define them on both, the MetaProperty itself or on the relation between a MetaClass and a MetaProperty.&lt;br /&gt;
* UBIK Supports Initial - Index values now.&lt;br /&gt;
* WebService does not deliver false entries for ChangeLogs (happened with ViewCache being online) any more.&lt;br /&gt;
* The Database Maintenance Window was (sometimes) not able to connect to the database. This problem is solved now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enhancements ===&lt;br /&gt;
* Closed security gaps in the UBIK WebService&lt;br /&gt;
* Creation of a Reference does not create a &amp;quot;fake&amp;quot; Warning any more.&lt;br /&gt;
* UBIK provides the possibility to access the Content of an internal document as Base64 string (read and write).&lt;br /&gt;
* UBIK WebService persists and delivers information about the validation timestamp and validation user now (per property)&lt;br /&gt;
* The CreatePushScope Activity supports the usage of Authentication Tokens now. &lt;br /&gt;
* The WebService Switch &amp;quot;UBIK.Service.EnableViewCache&amp;quot; is not supported any more. A ViewCache-Creation must be triggered via existing mechanims and does not trigger itself any more.&lt;br /&gt;
* UBIK Compiler includes System.DirectoryServices.AccountManagement.dll now This enables the customizer to compile AD and LDAP specific code.&lt;br /&gt;
* Improved management of Query Instances gains more customizability and better performance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build History Web Service =&lt;br /&gt;
* 3.5.0 Build 1 on 2020.04.08&lt;br /&gt;
** Initial release.&lt;br /&gt;
* 3.5.0  Build 2 2020-04-16&lt;br /&gt;
** Installed OSI Pi Plugin does not create log entries saying &amp;quot;Unable to load one or more of the requested types&amp;quot; when being loaded on the Web Service any more.&lt;br /&gt;
** Replaced outdated json binaries.&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.5|Version 3.5 (Server)]]&lt;br /&gt;
&lt;br /&gt;
= Build History UBIK.Studio =&lt;br /&gt;
* 3.5.0 Build 1 on 2020.04.08&lt;br /&gt;
** Initial release.&lt;br /&gt;
* 3.5.0  Build 2 2020-04-20&lt;br /&gt;
** Restart of UBIK.Studio after releasing the customizing does not create Log Entries any more.&lt;br /&gt;
** UBIK.Studio creates Symbols files (*.pdb) when compiling the customizing now. They can be used for debugging the custom code.&lt;br /&gt;
** When running as a Windows service, EnterpriseService now properly manages the automatic plugin execution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;headertabs /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category/Version2|{{PAGENAME}}}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.5|Version 3.5 (Server)]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22126</id>
		<title>InterfaceAdministration</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22126"/>
				<updated>2020-03-06T12:51:40Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Studio_UI_InterfaceAdministration.png|thumb|220px|{{UBIK}} InterfaceAdministration with two attached MetaProxy objects]]&lt;br /&gt;
InterfaceAdministration is an administrative object for a set of [[MetaProxy]] objects.&lt;br /&gt;
An InterfaceAdministration is a specialized MetaClass having the ClassType '''InterfaceAdministration'''. It handles the management of a certain interface configuration related to [[MetaProxy|MetaProxies]], that is executed for data import and/or export.&lt;br /&gt;
&lt;br /&gt;
InterfaceAdministration content has to be derived from the MetaClass [[INTERFACE_ADMIN_ROOT]]. The content object itself can relate to a set of MetaProxies that are used for interface runs. InterfaceAdmin content objects hold a [[Relation]] to [[ProxyMetaProperties]] named [[SYSREL_INTERFACE_ADMIN_METAPROXY]]. Via this relation, all involved MetaProxies are accessible via the administation object.&lt;br /&gt;
&lt;br /&gt;
Once an import/export via interface run is executed, a new instance of [[InterfaceExecution]] is automatically generated. The name is generated out of the InterfaceAdministration object name and the current date and time.&lt;br /&gt;
&lt;br /&gt;
{{Version/ServerSince|2.6.4}} Using the 'Extensive Logging Enabled' ('Ausführliches Log' in german) checkbox you can switch on the 'Verbose Logging' feature. This log will provide very detailed information of exactly what went wrong when unsuccessfully executing an import or export of data. This checkbox can be found in the Object Editor window of any Interface Administration MetaClass. The output of the log can be found in your debug.log-path location.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[InterfaceExecution]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing|InterfaceAdministration]]&lt;br /&gt;
[[Category:UBIK Object|InterfaceAdministration]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22125</id>
		<title>InterfaceAdministration</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22125"/>
				<updated>2020-03-06T12:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Studio_UI_InterfaceAdministration.png|thumb|220px|{{UBIK}} InterfaceAdministration with two attached MetaProxy objects]]&lt;br /&gt;
InterfaceAdministration is an administrative object for a set of [[MetaProxy]] objects.&lt;br /&gt;
An InterfaceAdministration is a specialized MetaClass having the ClassType '''InterfaceAdministration'''. It handles the management of a certain interface configuration related to [[MetaProxy|MetaProxies]], that is executed for data import and/or export.&lt;br /&gt;
&lt;br /&gt;
InterfaceAdministration content has to be derived from the MetaClass [[INTERFACE_ADMIN_ROOT]]. The content object itself can relate to a set of MetaProxies that are used for interface runs. InterfaceAdmin content objects hold a [[Relation]] to [[ProxyMetaProperties]] named [[SYSREL_INTERFACE_ADMIN_METAPROXY]]. Via this relation, all involved MetaProxies are accessible via the administation object.&lt;br /&gt;
&lt;br /&gt;
Once an import/export via interface run is executed, a new instance of [[InterfaceExecution]] is automatically generated. The name is generated out of the InterfaceAdministration object name and the current date and time.&lt;br /&gt;
&lt;br /&gt;
{{Version/ServerSince|2.6.4}} Using the 'Extensive Logging Enabled' ('Ausführliches Log' in german) checkbox you can switch the verbose logging on. This log will provide very detailed information of what went wrong exactly when unsuccessfully executing an import or export of data. This checkbox can be found in the Object Editor window of any Interface Administration MetaClass. The output of the log can be found in your debug.log-path location.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[InterfaceExecution]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing|InterfaceAdministration]]&lt;br /&gt;
[[Category:UBIK Object|InterfaceAdministration]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22124</id>
		<title>InterfaceAdministration</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22124"/>
				<updated>2020-03-06T12:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Studio_UI_InterfaceAdministration.png|thumb|220px|{{UBIK}} InterfaceAdministration with two attached MetaProxy objects]]&lt;br /&gt;
InterfaceAdministration is an administrative object for a set of [[MetaProxy]] objects.&lt;br /&gt;
An InterfaceAdministration is a specialized MetaClass having the ClassType '''InterfaceAdministration'''. It handles the management of a certain interface configuration related to [[MetaProxy|MetaProxies]], that is executed for data import and/or export.&lt;br /&gt;
&lt;br /&gt;
InterfaceAdministration content has to be derived from the MetaClass [[INTERFACE_ADMIN_ROOT]]. The content object itself can relate to a set of MetaProxies that are used for interface runs. InterfaceAdmin content objects hold a [[Relation]] to [[ProxyMetaProperties]] named [[SYSREL_INTERFACE_ADMIN_METAPROXY]]. Via this relation, all involved MetaProxies are accessible via the administation object.&lt;br /&gt;
&lt;br /&gt;
Once an import/export via interface run is executed, a new instance of [[InterfaceExecution]] is automatically generated. The name is generated out of the InterfaceAdministration object name and the current date and time.&lt;br /&gt;
&lt;br /&gt;
{{Version/ServerSince|2.6.4}} Using the 'Extensive Logging Enabled' ('Ausführliches Log' in german) checkbox you can switch the verbose logging on. This log will provide very detailed information of what went wrong exactly when unsuccessfully executing an import or export of data. This checkbox can be found in the Object Editor window of any Interface Administration MetaClass.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[InterfaceExecution]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing|InterfaceAdministration]]&lt;br /&gt;
[[Category:UBIK Object|InterfaceAdministration]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22123</id>
		<title>InterfaceAdministration</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=InterfaceAdministration&amp;diff=22123"/>
				<updated>2020-03-06T12:34:15Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basics ==&lt;br /&gt;
[[File:Studio_UI_InterfaceAdministration.png|thumb|220px|{{UBIK}} InterfaceAdministration with two attached MetaProxy objects]]&lt;br /&gt;
InterfaceAdministration is an administrative object for a set of [[MetaProxy]] objects.&lt;br /&gt;
An InterfaceAdministration is a specialized MetaClass having the ClassType '''InterfaceAdministration'''. It handles the management of a certain interface configuration related to [[MetaProxy|MetaProxies]], that is executed for data import and/or export.&lt;br /&gt;
&lt;br /&gt;
InterfaceAdministration content has to be derived from the MetaClass [[INTERFACE_ADMIN_ROOT]]. The content object itself can relate to a set of MetaProxies that are used for interface runs. InterfaceAdmin content objects hold a [[Relation]] to [[ProxyMetaProperties]] named [[SYSREL_INTERFACE_ADMIN_METAPROXY]]. Via this relation, all involved MetaProxies are accessible via the administation object.&lt;br /&gt;
&lt;br /&gt;
Once an import/export via interface run is executed, a new instance of [[InterfaceExecution]] is automatically generated. The name is generated out of the InterfaceAdministration object name and the current date and time.&lt;br /&gt;
&lt;br /&gt;
{{Version/ServerSince|2.6.4}} Using the 'Extensive Logging Enabled' ('Ausführliches Log' in german) you can switch the verbose logging on. This log will provide very detailed information of what went wrong exactly when unsuccessfully executing an import or export of data.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[InterfaceExecution]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Interfacing|InterfaceAdministration]]&lt;br /&gt;
[[Category:UBIK Object|InterfaceAdministration]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Version_2.6_(Server)&amp;diff=22122</id>
		<title>Version 2.6 (Server)</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Version_2.6_(Server)&amp;diff=22122"/>
				<updated>2020-03-06T12:30:23Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; | width = &amp;quot;300&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Release Date&lt;br /&gt;
|- &lt;br /&gt;
| 2.6.0 || 2017.06.14&lt;br /&gt;
|- &lt;br /&gt;
| 2.6.2 || 2018.04.04&lt;br /&gt;
|- &lt;br /&gt;
| 2.6.3 || 2018.12.10&lt;br /&gt;
|- &lt;br /&gt;
| 2.6.4 || ????&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 2.6.0 =&lt;br /&gt;
=== New features ===&lt;br /&gt;
* UBIK supports server evaluated [[User_Rights|User Rights Management]] now.&lt;br /&gt;
* UBIK supports User Authentication based on the Activce Directory credentials now.&lt;br /&gt;
* UBIK Web Services support streaming mode now. This enables clients to download huge branches when preparing for offline mode.&lt;br /&gt;
* The Web Service provides the Property Value Changelog information now (See [[Property-Value_Journal]] and [[UBIK_WinX_Client_Basics#Properties_with_value_records]]). &lt;br /&gt;
* UBIK provides a [[SYSCLS_OFFLINE_AVAILABLE_DOCUMENT|Document with configurable offline availability classification object]] to give the possibility to configure whether a certain document should be downloaded to the client when preparing for offline mode.&lt;br /&gt;
* UBIK provides the possibility to configure an OPC/UA Datapoint by specifying its NodeId now.&lt;br /&gt;
* UBIK provides a set of new classifications which can be used for optimizing the media capturing and document management on the clients&lt;br /&gt;
** [[SYSCLS_OBJECTCONTAINER|Object Container Classification]]&lt;br /&gt;
** [[SYSCLS_REMAINATCREATION|Remain At Creation Classification]]&lt;br /&gt;
** [[SYSCLS_WIZARDCREATION| Wizard Creation Classification]]&lt;br /&gt;
* UBIK provides a set of new classifications for configuring the Icon used for presenting a Content Object on the client&lt;br /&gt;
** [[SYSCLS_ICON|Icon classification object]]&lt;br /&gt;
** [[SYSCLS_OBJECT_WITH_ICON|Object with icon classification]]&lt;br /&gt;
* UBIK provides a new classification to configure as the children should be preloaded once an object is displayed in a child list&lt;br /&gt;
** [[SYSCLS_PRELOAD_CHILDREN|Preload child items classification object]]&lt;br /&gt;
* UBIK gives the possibility to login as a team now. A team is as set of logins (containing 1 to n members) and is managed via the UBIK sesssion information.&lt;br /&gt;
* [[SYSCLS_CHILDINFOOWNER|Childinfo classification object]] supports query objects now.&lt;br /&gt;
* The -IGNOREUSAM parameter is remembered when restarting UBIK.Studio (e.g. after compiling the customizing).  (Build 42++)&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* A problem in managing Geo Properties with empty values was fixed.&lt;br /&gt;
* A bug when changing the  filetype (from *.jpg to *.jpeg and vice versa) during the upload of a &amp;quot;changed&amp;quot; document via the Web Service is fixed now.&lt;br /&gt;
* Uploading a changed document (e.g. *.jpg) to the server (using the Web Service) updates the thumbnail image of the document object now.&lt;br /&gt;
* Problems with own hosted Properties on Query Scopes are fixed: It is possible to Define the sort and group id from queries as well now.&lt;br /&gt;
* A Problem when compiling the customizing after changing the UBIK Project is fixed now. (Build 42++) &lt;br /&gt;
* A Problem when updating from Database Version 2.5.0 is fixed now. (Build 42++)&lt;br /&gt;
* Updating to Database Version 2.6.0 removes unsupported Meta Structures (such as discontinued feature &amp;quot;ACM Userrights&amp;quot;) now.  (Build 42++)&lt;br /&gt;
* Huge Bytestreams were not displayed in the bulk editor. This is fixed now.  (Build 42++)&lt;br /&gt;
* A bug in the evaluation of user rights for created/updated objects is fixed now.  (Build 42++)&lt;br /&gt;
* Metaclass can not be named &amp;quot;SYSTEM&amp;quot; any more&lt;br /&gt;
* A bug in the update scripts for the MRO Module was fixed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enhancements ===&lt;br /&gt;
* There is a new UBIK &amp;lt;-&amp;gt; MS Project interface (plugin) available since UBIK Version 2.6.0.&lt;br /&gt;
* The memory management for View Cache has improved widely reducing the memory consumption when building up the View Cache by far.&lt;br /&gt;
* New preloading mechanism (for the view) improve the initial View Cache setup time by up to 500%!&lt;br /&gt;
* A refactoring in the UBIK Interface module reduced the need to add customized code and workflows by far.&lt;br /&gt;
* UBIK supports different filetypes for Office documents now (Microsoft Excel, Microsoft Excel (97 - 2003), Microsoft Word, Microsoft Word (97 - 2003), Microsoft Powerpoint, Microsoft Powerpoint (97 - 2003))&lt;br /&gt;
* There is a new PlugIn available that simplifies the interaction between UBIK Reports and SQL Server Reporting Services (SSRS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2.6.2 =&lt;br /&gt;
=== New features ===&lt;br /&gt;
* A set of new Classificationsis are provided for configuring AR Markers:&lt;br /&gt;
** [[SYSCLS_ARMARKER|AR-Marker Classification]]&lt;br /&gt;
** [[SYSCLS_ARMARKER_SCANQUERY|AR-Marker Scan Query Classification]]&lt;br /&gt;
** [[SYSCLS_ARMARKER_GEO|AR-Marker Geo Classification]]&lt;br /&gt;
** [[SYSCLS_ARCONTENTTRANSLATION|AR-Content Translation Classification]]&lt;br /&gt;
** [[SYSCLS_ARCONTENTROTATION|AR-Content Rotation Classification]]&lt;br /&gt;
** [[SYSCLS_ARCONTENTSCALE|AR-Content Scale Classification]]&lt;br /&gt;
** [[SYSCLS_ARMARKER_DIRECTAR]]&lt;br /&gt;
* A set of new Classificationsis are provided for configuring Templates:&lt;br /&gt;
** [[SYSCLS_OFFLINE_TEMPLATE_QUERY]]&lt;br /&gt;
** [[SYSCLS_TEMPLATABLE_DATA]]&lt;br /&gt;
* UBIK supports geo tagging now:&lt;br /&gt;
** [[SYSCLS_GEO_TAG]]&lt;br /&gt;
* Support for unit conversion with an offset d: (y = k * x + d) &lt;br /&gt;
* UBIK provides the possibility to mark queries as [[Offline_Query_(UBIK_WinX)|Offline Queries]] now:&lt;br /&gt;
** [[SYSCLS_OFFLINE_QUERY|Offline Query Classification]]&lt;br /&gt;
* UBIK supports a new Property Type '''Signature''' now.&lt;br /&gt;
* UBIK provides the possibility to configure a Query used on the client (scanning for targets) when editing a Guid Property (See [[HowTo:Configure_the_ACM]]).&lt;br /&gt;
* Introduced Scope Inheritance makes the reuse of scopes possible and will reduce the effort of ACM Customizing by far.&lt;br /&gt;
* Extended customizablities on the Query Scopes increases flexibility in data design (CustomGetFilterClassMetaProperty, TakePropertyValueFromQueryInstance).&lt;br /&gt;
* UBIK provides database maintenance operations remove deleted records from the table structure and to rebuild table indices now.&lt;br /&gt;
* UBIK supports the PropertyType '''Chart''' now.&lt;br /&gt;
* It is possible to load objects by its UID in UBIK.Studio now by using the [[Object Explorer|Object_Explorer]].&lt;br /&gt;
* UBIK extends the number of available permissions on Scope-Metaproperty Relations. &lt;br /&gt;
* UBIK Push supports a new popup object classificatoin now:&lt;br /&gt;
** [[SYSCLS_POPUP_OBJECT]]&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* A bug when editing Geo Properties is fixed now.&lt;br /&gt;
* Problems when displaying (large) icons in the bulk editor are fixed now.&lt;br /&gt;
* A relational object can now search in the whole inheritance hierarchy to find a relational property.&lt;br /&gt;
* A problem when updating the database version and using Windows Authentication on a DB System is fixed now.&lt;br /&gt;
* UBIK.EnterpriseService is not able to process the very same command file twice in a row without interruption.&lt;br /&gt;
* A bug in the update scripts for the MRO Module was fixed.&lt;br /&gt;
&lt;br /&gt;
=== Enhancements ===&lt;br /&gt;
* After reopening a connection to a database, UBIK.Studio refreshes all its controls and sub pages. It is not possible to work with an outdated environment any more.&lt;br /&gt;
* UBIK Debugging and testenvironment saves the customized code automatically. You can find the file in the local project folder (TEMP).&lt;br /&gt;
* UBIK provides extended mechanism to provide detailled information about the client OS when authenticating at USAM.&lt;br /&gt;
* An improved client management mechanism ensures that unsupported data and data types are not sent to clients. This saves resources and improves the stability of UBIK Clients.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2.6.3 =&lt;br /&gt;
=== New features ===&lt;br /&gt;
* [[UBIK_Console|UBIK.Console]]&lt;br /&gt;
* It is possible to configure the visibility of AR Items now&lt;br /&gt;
** [[SYSCLS_AR_ITEM_OBJECT_VIS|Classification for control of the ARItems visibility]]&lt;br /&gt;
* UBIK MRO Supports [[MRO_Objects_(Client)#Sequential_Task|Sequential Tasks]] now&lt;br /&gt;
** [[MROCLS_SEQUENTIALTASK|Sequential task classification object]]&lt;br /&gt;
* UBIK MRO Supports objects with additinal text describing their location now&lt;br /&gt;
** [[SYSCLS_LOCATION_INFORMATION|Object with location information classification]]&lt;br /&gt;
* UBIK [[HotSpotting|Hotspotting/Annotation PlugIn]]&lt;br /&gt;
* It is possible to define the max number of items being delivered by a query when evaluating it in a View. The configuration is done on the QueryViewItem.&lt;br /&gt;
* A FreeTextQuery Classification is provided: [[SYSCLS_FREETEXTQUERY|Free Text Query Classification]]&lt;br /&gt;
* UBIK provides the possibility to define mulitple AR Markers for one physical object now&lt;br /&gt;
** [[SYSCLS_ARCONTENTREFERENCE|Classification for AR Content Reference]]&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Created objects are delivered independend from the ViewCache state now. There was a bug handling them correctly before.&lt;br /&gt;
* A relational object can now search in the whole inheritance hierarchy to find a relational property.&lt;br /&gt;
* Fixed downward compatibility issues when adding languages to a project&lt;br /&gt;
* Releasing / Sandboxing an unsaved Metaclass is not possible any more&lt;br /&gt;
* Presenting Classification Interfaces in the Class Tree does not create (handled) exceptions any more&lt;br /&gt;
* Deriving from Root Classification does not create uncompileable custom code any more&lt;br /&gt;
* Deleted metaclasses do not show up as possible &amp;quot;pool metaclass&amp;quot; custom system objects any more&lt;br /&gt;
* UBIK does not crash anymore when not being able to access the UBIK Licensing services&lt;br /&gt;
* A bug when releasing Metaclasses with string props containing large strings (e.g annotations) is fixed now&lt;br /&gt;
* Problems when deriving from MRO Mteeaclasses (not compiling customizing code) is fixed now.&lt;br /&gt;
&lt;br /&gt;
=== Enhancements ===&lt;br /&gt;
* UBIK.EnterpriseService can now mark, delete or do nothing with a processed command file.&lt;br /&gt;
* UBIK OPC/UA LiveValue Service supports additional parameters now:&lt;br /&gt;
** CertificateStoreType&lt;br /&gt;
** CertificateStorePath&lt;br /&gt;
** CertificateSubject&lt;br /&gt;
** Login and Password&lt;br /&gt;
* The Workflow Activity [[Activity:CreateXMLScope_(Activity)|CreateXMLScope]] has a new parameter for setting the desired [https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.5 Encoding]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2.6.4 =&lt;br /&gt;
=== New features ===&lt;br /&gt;
* UBIK supports sending additional information for an uploaded file to the server&lt;br /&gt;
** [[SYSCLS_FILEDETAILSCLASSIFICATION|File Details classification object]]&lt;br /&gt;
* UBIK Supports Downloading of 3D Models now&lt;br /&gt;
** [[SYSCLS_ARCHIVECLASSIFICATION|Archive classification object]]&lt;br /&gt;
** [[SYSCLS_3DMODELCLASSIFICATION|3D Model classification object]]&lt;br /&gt;
* Every relation between UserGroup (left) and Login (right) will be used as basement for Rights Evaluation.&lt;br /&gt;
* UBIK supports MetaQueryScopes and MetaQueryViewwItems now. This provides the possibility to define Online Queries (for Views and in ACM) just as you do for instances by configuring their MetaClasses. &lt;br /&gt;
* UBIK provides a set of Methods with a simplyfied interface designed to be used from external systems (e.g. IOT use case) &lt;br /&gt;
** [[UBIK_Web_ServiceV264]]&lt;br /&gt;
* UBIK provides the possibility to add Attributes to any Live Value. This feature can be used by the implementation of a Live Value Servers. It is possible to transport any specific Live Value Information (Property, QualityInformation, etc). to the clients using UBIK Standard.&lt;br /&gt;
* User Rights can be applied for Selective Items now. The rights evaluation happens during the assembling of the MetaDefintiions. If the current user does not have the right to see one Selective Item, it is removed from the Metadefinitions. If a SelectiveList does not have one single visible item, the entire list and all its references to it are removed.&lt;br /&gt;
* A new method (EvaluateBaseChildrenCollectionExt) on the UBIK ViewItems gives access to the current UBIK Session which provides a full set of new possibilities when customizing the children collection depending on (e.g.) the current login.&lt;br /&gt;
* UBIK provides a Numeric [[Sequence_Generator|Sequence Generator]] now. It gives the possibility to create unique sequential ids for different number groups.&lt;br /&gt;
* Verbose Logging is now available for Importing and Exporting Data using the Interface Administration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Change Log Values for Properties without a VTS are delivered with the correct date now.&lt;br /&gt;
* A problem with configured Initial Values is solved now. It is possible to define them on both, the MetaProperty itself or on the relation between a MetaClass and a MetaProperty.&lt;br /&gt;
* UBIK Supports Initial - Index values now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enhancements ===&lt;br /&gt;
* Closed security gaps in the UBIK WebService&lt;br /&gt;
* Creation of a Reference does not create a &amp;quot;fake&amp;quot; Warning any more.&lt;br /&gt;
* UBIK provides the possibility to access the Content of an internal document as Base64 string (read and write).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;headertabs /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category/Version2|{{PAGENAME}}}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 2.6|Version 2.6 (Server)]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21618</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21618"/>
				<updated>2019-09-17T08:00:23Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
== On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
'''ExportTimeStamp (ETS)'''&lt;br /&gt;
&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
'''ImportTimeStamp (ITS)'''&lt;br /&gt;
&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy ==&lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21617</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21617"/>
				<updated>2019-09-17T07:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
== On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
'''ExportTimeStamp (ETS)'''&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
'''ImportTimeStamp (ITS)'''&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy ==&lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21616</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21616"/>
				<updated>2019-09-17T07:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
== On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
==== ExportTimeStamp (ETS) ====&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
==== ImportTimeStamp (ITS) ====&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy ==&lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21615</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21615"/>
				<updated>2019-09-17T07:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
== On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ==&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
==== ExportTimeStamp (ETS) ====&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
==== ImportTimeStamp (ITS) ====&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy ==&lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21614</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21614"/>
				<updated>2019-09-17T07:56:12Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
== On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= On PropertyLevel / BaseProperty =&lt;br /&gt;
== UTS ==&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
== CTS ==&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
== ValidationTimeStamp ==&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
= On ProxyPropertyLevel / ProxyAttribute =&lt;br /&gt;
== InterfaceTimestamp ==&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp (ETS) ===&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
=== ImportTimeStamp (ITS) ===&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
= On ProxyLevel / Proxy =&lt;br /&gt;
== ImportTimeStamp ==&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
== ExportTimeStamp ==&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21613</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21613"/>
				<updated>2019-09-17T07:55:43Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
=On ObjectLevel / BaseClass =&lt;br /&gt;
&lt;br /&gt;
== CreationTimeStamp ==&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
== UpdateTimeStamp ==&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= On PropertyLevel / BaseProperty =&lt;br /&gt;
== UTS ==&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
== CTS ==&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
== ValidationTimeStamp ==&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
= On ProxyPropertyLevel / ProxyAttribute =&lt;br /&gt;
== InterfaceTimestamp ==&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp (ETS) ===&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
=== ImportTimeStamp (ITS) ===&lt;br /&gt;
Saves a given timestamp for a property provided by the third-party system.&lt;br /&gt;
&lt;br /&gt;
= On ProxyLevel / Proxy =&lt;br /&gt;
== ImportTimeStamp ==&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
== ExportTimeStamp ==&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21612</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21612"/>
				<updated>2019-09-17T07:54:23Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
=On ObjectLevel / BaseClass =&lt;br /&gt;
&lt;br /&gt;
== CreationTimeStamp ==&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
== UpdateTimeStamp ==&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
= On ProxyPropertyLevel / ProxyAttribute =&lt;br /&gt;
== InterfaceTimestamp ==&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
=== ImportTimeStamp (ITS) ===&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21611</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21611"/>
				<updated>2019-09-17T07:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
==== ImportTimeStamp (ITS) ====&lt;br /&gt;
Saves the UTS of a property of an Ubikle so that a third party system knows when the value has been changed.&lt;br /&gt;
If UBIK cannot find the property set the InterfaceTimeStamp to now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21610</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21610"/>
				<updated>2019-09-17T07:52:22Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== On ProxyPropertyLevel / ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
This timestamp actually becomes transformed to the ets or its so it exists twice.&lt;br /&gt;
&lt;br /&gt;
== On ProxyLevel / Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
Saves the date and time when an Ubikle has been written to a proxy.&lt;br /&gt;
&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
Saves the date and time when a proxy has been written to a Ubikle.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21609</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21609"/>
				<updated>2019-09-17T07:49:16Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
# {{Attention|Be aware, that are special cases when this value becomes calculated differently. If you are unsure about this please do not hesitate to aks our development team as they can inform you well about how these special cases work.}}&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21608</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21608"/>
				<updated>2019-09-17T07:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
# the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
# the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21607</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21607"/>
				<updated>2019-09-17T07:43:58Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has been set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21606</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21606"/>
				<updated>2019-09-17T07:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s value has been changed (the property knows its new and old value),&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;it’s ValidationTimeStamp has be set&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21605</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21605"/>
				<updated>2019-09-17T07:39:55Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
# When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
*#* it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
*#* it’s ValidationTimeStamp has be set&lt;br /&gt;
# When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;list item A1&lt;br /&gt;
    &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li &amp;gt;list item B1&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;list item B2&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;continuing list item A1&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;list item A2&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21604</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21604"/>
				<updated>2019-09-17T07:37:50Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
# When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
*#* it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
*#* it’s ValidationTimeStamp has be set&lt;br /&gt;
# When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;list item A1&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;list item B1&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;list item B2&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;continuing list item A1&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;list item A2&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21603</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21603"/>
				<updated>2019-09-17T07:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
# When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
*#* it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
*#* it’s ValidationTimeStamp has be set&lt;br /&gt;
# When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21602</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21602"/>
				<updated>2019-09-17T07:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
# When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
** it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
** it’s ValidationTimeStamp has be set&lt;br /&gt;
# When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21601</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21601"/>
				<updated>2019-09-17T07:27:24Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
1.	When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
a.	it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
b.	it’s ValidationTimeStamp has be set&lt;br /&gt;
2.	When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
Either this value is&lt;br /&gt;
1.	the TimeStamp of the LastChange from the PropertyValueChangeLog if the PropertyValueChangeLog is available or&lt;br /&gt;
2.	the property’s UBIKAttribute.UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Saves the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21600</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21600"/>
				<updated>2019-09-17T07:12:27Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
1.	When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
a.	it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
b.	it’s ValidationTimeStamp has be set&lt;br /&gt;
2.	When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== On PropertyLevel / BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
Save. the date and time when a property value is written the very first time.&lt;br /&gt;
&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
Saves the date and time when a value has been entered or validated on the client.&lt;br /&gt;
It is sufficient that an existing value is checked on the client. This can be for example by simply pressing an OK button.&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21599</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21599"/>
				<updated>2019-09-17T05:45:41Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
==On ObjectLevel / BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
Saves the date and time when an object has been changed. If the UTS is null or “01.01.0001 00:00:00” then return the CTS.&lt;br /&gt;
&lt;br /&gt;
A change is defined by two events:&lt;br /&gt;
1.	When the object changes the UpdateTimeStamp is set. An object is meant to be changed when at least one of its properties has been changed. To know this every property will be asked if it has been changed or not (properties hold this information by themselves). A change of a property means either:&lt;br /&gt;
a.	it’s value has been changed (the property knows its new and old value),&lt;br /&gt;
b.	it’s ValidationTimeStamp has be set&lt;br /&gt;
2.	When a new primary child is added to a relation. Primary in this context means the first level of object relation, the directly connected object so to say. That means adding such a child counts as a change for the owner object and the UpdateTimeStamp will be set. A child can be anything (Attributes, Relationdata, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21598</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21598"/>
				<updated>2019-09-17T05:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
== BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
Saves the date and time when an object is created.&lt;br /&gt;
&lt;br /&gt;
The CreationTimeStamp (cts) is set exactly once and in that moment when a new Ubikle is instantiated in the working memory. This time stamp will never be changed by UBIK. This timestamp does not denote when the Ubikle was written to the database eventually.&lt;br /&gt;
&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21597</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21597"/>
				<updated>2019-09-16T19:52:47Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Attention|Be aware, that SPECIAL CASES WHERE THERE NEEDS TO BE A VALUE CALCULATED FOR A TS BECAUSE THE MOST INTUITITIT IS NOT AVAILABLE}}&lt;br /&gt;
&lt;br /&gt;
== BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21596</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21596"/>
				<updated>2019-09-16T19:49:53Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
== BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21595</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21595"/>
				<updated>2019-09-16T19:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp), CTS, UTS&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseClass ==&lt;br /&gt;
&lt;br /&gt;
=== CreationTimeStamp ===&lt;br /&gt;
=== UpdateTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BaseProperty ==&lt;br /&gt;
=== UTS ===&lt;br /&gt;
=== CTS ===&lt;br /&gt;
=== ValidationTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
== ProxyAttribute ==&lt;br /&gt;
=== InterfaceTimestamp ===&lt;br /&gt;
&lt;br /&gt;
== Proxy == &lt;br /&gt;
=== ImportTimeStamp ===&lt;br /&gt;
=== ExportTimeStamp ===&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21594</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21594"/>
				<updated>2019-09-16T19:47:12Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
*On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
*On Propertylevel: vts (ValidationTimeStamp)&lt;br /&gt;
*On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
*On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BaseClass&lt;br /&gt;
&lt;br /&gt;
CreationTimeStamp&lt;br /&gt;
UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BaseProperty&lt;br /&gt;
UTS&lt;br /&gt;
CTS&lt;br /&gt;
ValidationTimeStamp&lt;br /&gt;
&lt;br /&gt;
ProxyAttribute&lt;br /&gt;
InterfaceTimestamp&lt;br /&gt;
&lt;br /&gt;
Proxy&lt;br /&gt;
ImportTimeStamp&lt;br /&gt;
ExportTimeStamp&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21593</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21593"/>
				<updated>2019-09-16T19:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the timestamps that are relevant for the role of a service engineer. There are more different timestamps used internally but these should not be mentioned here. There for it is best to understand timestamps in UBIK from a non-developer perspective: From this view we care about  5 different timestamp names and their usage on 4 levels: CreationTimeStamp, UpdateTimeStamp, ValidationTimeStamp, ExportTimeStamp and ImportTimeStamp. The usages are best explained when assigning these timestamps to different levels where they are used:&lt;br /&gt;
On Object(instance)level: cts (CreationTimeStamp), uts (UpdateTimeStamp)&lt;br /&gt;
•	On Propertylevel: vts (ValidationTimeStamp)&lt;br /&gt;
•	On Proxylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
•	On ProxyPropertylevel: ets (ExportTimeStamp), its (ImportTimeStamp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BaseClass&lt;br /&gt;
&lt;br /&gt;
CreationTimeStamp&lt;br /&gt;
UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BaseProperty&lt;br /&gt;
UTS&lt;br /&gt;
CTS&lt;br /&gt;
ValidationTimeStamp&lt;br /&gt;
&lt;br /&gt;
ProxyAttribute&lt;br /&gt;
InterfaceTimestamp&lt;br /&gt;
&lt;br /&gt;
Proxy&lt;br /&gt;
ImportTimeStamp&lt;br /&gt;
ExportTimeStamp&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21592</id>
		<title>Timestamps</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=Timestamps&amp;diff=21592"/>
				<updated>2019-09-16T19:40:10Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: Created page with &amp;quot;BaseClass  CreationTimeStamp UpdateTimeStamp   BaseProperty UTS CTS ValidationTimeStamp  ProxyAttribute InterfaceTimestamp  Proxy ImportTimeStamp ExportTimeStamp  Category:U...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BaseClass&lt;br /&gt;
&lt;br /&gt;
CreationTimeStamp&lt;br /&gt;
UpdateTimeStamp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BaseProperty&lt;br /&gt;
UTS&lt;br /&gt;
CTS&lt;br /&gt;
ValidationTimeStamp&lt;br /&gt;
&lt;br /&gt;
ProxyAttribute&lt;br /&gt;
InterfaceTimestamp&lt;br /&gt;
&lt;br /&gt;
Proxy&lt;br /&gt;
ImportTimeStamp&lt;br /&gt;
ExportTimeStamp&lt;br /&gt;
&lt;br /&gt;
[[Category:UBIK|Timestamps]]&lt;br /&gt;
[[Category:FAQ|Timestamps]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21361</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21361"/>
				<updated>2019-05-30T06:11:31Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter. The CommandFileAction is the same parameter as in the configuration of the {{UBIK}} EnterpriseService. The EnterpriseService will evaluate this setting before the setting in the config fle. If it is not set (either -1 or null) the value from the config file will be used. This way it is possible to execute different actions for each command file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21360</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21360"/>
				<updated>2019-05-29T19:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21359</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21359"/>
				<updated>2019-05-29T19:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
Using this command file type {{UBIK}} EnterpriseService will start a UBIK.Console and pass the scripts defined in the command file as parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;PathToUbikConsole&amp;quot;: &amp;quot;...\\UBIK.Studio\\UBIK.Console.exe&amp;quot;,&lt;br /&gt;
	&amp;quot;InitStatement&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\init.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;PathToScriptFile&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\script.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;ConfigFilePath&amp;quot;: &amp;quot;...\\UBIK.Studio\\Scripts\\config.cs&amp;quot;,&lt;br /&gt;
	&amp;quot;CommandFileAction&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	<entry>
		<id>https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21358</id>
		<title>UBIK Enterprise Service</title>
		<link rel="alternate" type="text/html" href="https://wikitest.augmensys.com/index.php?title=UBIK_Enterprise_Service&amp;diff=21358"/>
				<updated>2019-05-29T19:45:01Z</updated>
		
		<summary type="html">&lt;p&gt;CLE: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The {{UBIK}} Enterprise Service is a [http://en.wikipedia.org/wiki/Windows_service Windows service] that is meant to automate {{UBIK}} interface components or interface workflows.&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
The {{UBIK}} EnterpriseService typically runs on a server and watches an arbitrary amount of folders in the file system for changes, like new or modified files. Once such a change occurs, it parses the file and checks if its extension matches the signature of a {{UBIK}} command file. If true, it will be processed.&lt;br /&gt;
&lt;br /&gt;
== Command file ==&lt;br /&gt;
A command file for the {{UBIK}} EnterpriseService is a plain text file and has the extension ''.command'' or &amp;quot;.json.command&amp;quot;. When the EnterpriseService starts processing such a file, it will be parsed as an XML or JSON document. In the case of an XML document every non-XML information in the file will be ignored.&lt;br /&gt;
&lt;br /&gt;
=== XML Command ===&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting an interface component looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Interface FullName=&amp;quot;UBIK.TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&amp;quot; File=&amp;quot;F:\Test\UBIK.TEST.dll&amp;quot; Class=&amp;quot;UBIK.TestInterface&amp;quot; Direction=&amp;quot;E&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyIFNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Interface&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to instantiate the class ''UBIK.TestInterface'' from the assembly ''F:\Test\UBIK.TEST.dll''. If connection succeeds, it will then invoke the the methods of the export interface, because of the setting ''Direction=&amp;quot;E&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
A sample command file for starting a workflow looks slightly different:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;InterfaceManager&amp;gt;&lt;br /&gt;
  &amp;lt;Commands&amp;gt;&lt;br /&gt;
    &amp;lt;Workflow Name=&amp;quot;WF_XML_TEST&amp;quot; UID=&amp;quot;5fdccb8c-85db-4dfc-861a-57be38267bfb&amp;quot; Async=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Server&amp;quot; Value=&amp;quot;AUGLNZ0SQL&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;InitialCatalog&amp;quot; Value=&amp;quot;UBIK.Sandbox.Dev.V2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;UserID&amp;quot; Value=&amp;quot;sa&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;Password&amp;quot; Value=&amp;quot;secretpassword123&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;RecordLifeTime&amp;quot; Value=&amp;quot;-1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Parameter Key=&amp;quot;MyWorkflowNeedsThis&amp;quot; Value=&amp;quot;TestValue&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Workflow&amp;gt;&lt;br /&gt;
  &amp;lt;/Commands&amp;gt;&lt;br /&gt;
&amp;lt;/InterfaceManager&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command file would attempt to load the workflow object with the Guid ''5fdccb8c-85db-4dfc-861a-57be38267bfb'' and invoke it synchronously, because of the setting ''Async=&amp;quot;False&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
{{Hint|Keep UserID and Password empty, if you want the system to connect to the SQL Server using the Windows Authentication (https://msdn.microsoft.com/en-us/library/dd787978.aspx).}}&lt;br /&gt;
&lt;br /&gt;
{{Hint|If the database server is on the same machine (localhost) then write Value{{=}}&amp;quot;.&amp;quot; for the server parameter.}}&lt;br /&gt;
&lt;br /&gt;
==== Workflow Arguments ====&lt;br /&gt;
Every workflow started by the Enterprise Service needs an argument ''UBIKObject'' of data type ''UBIK.Kernel.BaseClass''. The Enterprise Service initiates this default argument with the workflow object itself.&lt;br /&gt;
{{Attention|Any additional parameter, which is passed from the command file to the workflow, has to have an equivalent workflow argument as well.}}&lt;br /&gt;
{{Hint|Configuration files can of course be created and edited manually, but they can be more comfortably created using the [[Interface Manager]]}}&lt;br /&gt;
&lt;br /&gt;
=== JSON Command ===&lt;br /&gt;
&lt;br /&gt;
== Configuring {{UBIK}} EnterpriseService ==&lt;br /&gt;
&lt;br /&gt;
Since Version 2.6.3 UBIK.EnterpriseService it is now possible to mark a command file as processed, delete a command file or do nothing once a command file is processed. This behaviour needs to be configured in the UBIK.EnterpriseService.exe.config configuration file. The following values are valid:  Do Nothing = 0, Mark as processed with &amp;quot;.processed&amp;quot; = 1 and Delete = 2. The setting-key &amp;quot;ConsoleRunMode&amp;quot; defines whether UBIK.EnterpriseService will start the UBIK.Console either Normal = 0, Hidden = 1, Minimized = 2 or Maximized = 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;appSettings&amp;gt;&lt;br /&gt;
    &amp;lt;add key=&amp;quot;ConsoleRunMode&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;add key=&amp;quot;CommandFileAction&amp;quot; value=&amp;quot;0&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;
=== Enterprise Service Task Execution Mode ===&lt;br /&gt;
For special cases the {{UBIK}} EnterpriseService can be executed as a simple task. The reason to run it as a task can be for troubleshooting or for the case some referenced components cannot be run in service mode (e.g. Microsoft Office etc.). To be executed as a Task, the Enterprise Service .exe-File has to be started with the command line option &amp;quot;-tray&amp;quot;. There will be a tray icon shown in the Windows Tray. Right-Clicking the tray icon opens the menu, where the user can start, stop, pause, or continue the enterprise service. Please note that starting the enterprise service as a task requires an active user session in order to be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HowTo:Install_UBIK_Enterprise_Service|How to install {{UBIK}} Enterprise Service]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Enterprise service|Enterprise Service]]&lt;br /&gt;
[[Category:Interfacing|Enterprise Service]]&lt;/div&gt;</summary>
		<author><name>CLE</name></author>	</entry>

	</feed>