diff -r 106da55fdd88 referencedata/standard/Obmobc_logclient_grid_config.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/referencedata/standard/Obmobc_logclient_grid_config.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?><ob:Openbravo xmlns:ob="http://www.openbravo.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <OBUIAPP_GC_Field id="1E370295AEB2469BBDD894551AD8674D" identifier="Device Identifier - Terminal Log - Terminal Log">
+    <id>1E370295AEB2469BBDD894551AD8674D</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:30:36.808Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-11T16:30:36.808Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="9DC560B9CF824B17B4C6F10B9B1B7389" entity-name="ADField" identifier="Device Identifier - Terminal Log - Terminal Log"/>
+    <filterable>Y</filterable>
+    <sortable>D</sortable>
+    <textFilterBehavior>IE</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Field id="365BD091510440E5970D5A9463118A1E" identifier="Timestamp - Terminal Log - Terminal Log">
+    <id>365BD091510440E5970D5A9463118A1E</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:27:49.856Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-11T16:28:45.952Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="EEA3E2C92E6B493B870D8310BCD7150D" entity-name="ADField" identifier="Timestamp - Terminal Log - Terminal Log"/>
+    <filterable>D</filterable>
+    <sortable>Y</sortable>
+    <textFilterBehavior>D</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Field id="78844E46B1F749F59ED3C60D4BCE9C8D" identifier="Unique cache session identifier - Terminal Log - Terminal Log">
+    <id>78844E46B1F749F59ED3C60D4BCE9C8D</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-18T12:17:38.915Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-30T11:57:23.552Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="76D547ED7B1342E9A11CA95522C67009" entity-name="ADField" identifier="Unique cache session identifier - Terminal Log - Terminal Log"/>
+    <filterable>Y</filterable>
+    <sortable>D</sortable>
+    <textFilterBehavior>E</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Field id="80848D9BF09B4D11A53BE2F5CB5A3D5B" identifier="Context - Terminal Log - Terminal Log">
+    <id>80848D9BF09B4D11A53BE2F5CB5A3D5B</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:30:55.308Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-18T12:28:39.873Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="2914F2F026F14B0FB381139EDD5A7B45" entity-name="ADField" identifier="Context - Terminal Log - Terminal Log"/>
+    <filterable>Y</filterable>
+    <sortable>D</sortable>
+    <textFilterBehavior>IC</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Field id="841DC4CA85754F81885B134A12FEEB7B" identifier="Log Type - Terminal Log - Terminal Log">
+    <id>841DC4CA85754F81885B134A12FEEB7B</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:29:39.825Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-11T16:29:39.825Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="2AB77B21E25C4FDF9059C80C04EC2FB9" entity-name="ADField" identifier="Log Type - Terminal Log - Terminal Log"/>
+    <filterable>Y</filterable>
+    <sortable>D</sortable>
+    <textFilterBehavior>D</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Field id="E923620A3C8F47C782705D7C1586EA72" identifier="Date - Terminal Log - Terminal Log">
+    <id>E923620A3C8F47C782705D7C1586EA72</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:29:11.658Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-11T16:29:11.658Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <obuiappGcTab id="1AD989605ACA4F5FB6C11B2E7AC88867" entity-name="OBUIAPP_GC_Tab" identifier="Terminal Log - Terminal Log"/>
+    <field id="0787AC0FCA6742AE91D991D2DF849052" entity-name="ADField" identifier="Date - Terminal Log - Terminal Log"/>
+    <filterable>Y</filterable>
+    <sortable>D</sortable>
+    <textFilterBehavior>D</textFilterBehavior>
+    <filterOnChange>D</filterOnChange>
+    <thresholdToFilter xsi:nil="true"/>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropdownUnfiltered>D</isFkDropdownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+  </OBUIAPP_GC_Field>
+  <OBUIAPP_GC_Tab id="1AD989605ACA4F5FB6C11B2E7AC88867" identifier="Terminal Log - Terminal Log">
+    <id>1AD989605ACA4F5FB6C11B2E7AC88867</id>
+    <active>true</active>
+    <creationDate transient="true">2018-10-11T16:26:19.17Z</creationDate>
+    <createdBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <updated transient="true">2018-10-30T11:57:12.351Z</updated>
+    <updatedBy transient="true" id="100" entity-name="ADUser" identifier="Openbravo"/>
+    <tab id="14BDEAB664C146DCB662B2E3EA7A495E" entity-name="ADTab" identifier="Terminal Log - Terminal Log"/>
+    <filterable>N</filterable>
+    <sortable>N</sortable>
+    <textFilterBehavior>D</textFilterBehavior>
+    <thresholdToFilter xsi:nil="true"/>
+    <isLazyFiltering>Y</isLazyFiltering>
+    <filterOnChange>D</filterOnChange>
+    <allowFilterByIdentifier>D</allowFilterByIdentifier>
+    <isFkDropDownUnfiltered>D</isFkDropDownUnfiltered>
+    <disableFkCombo>D</disableFkCombo>
+    <seqno>10</seqno>
+    <allowSummaryFunctions>D</allowSummaryFunctions>
+  </OBUIAPP_GC_Tab>
+</ob:Openbravo>
diff -r 106da55fdd88 src-db/database/model/tables/OBMOBC_LOGCLIENT.xml
--- a/src-db/database/model/tables/OBMOBC_LOGCLIENT.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/model/tables/OBMOBC_LOGCLIENT.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -41,7 +41,7 @@
         <default/>
         <onCreateDefault/>
       </column>
-      <column name="LOGLEVEL" primaryKey="false" required="false" type="VARCHAR" size="255" autoIncrement="false">
+      <column name="LOGLEVEL" primaryKey="false" required="false" type="VARCHAR" size="60" autoIncrement="false">
         <default/>
         <onCreateDefault/>
       </column>
@@ -53,12 +53,38 @@
         <default><![CDATA[Y]]></default>
         <onCreateDefault/>
       </column>
+      <column name="CONTEXT" primaryKey="false" required="false" type="VARCHAR" size="255" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="TSTAMP" primaryKey="false" required="false" type="DECIMAL" size="13,0" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" name="OBMOBC_LOGCLIENT_AD_CLIENT">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
       <foreign-key foreignTable="AD_ORG" name="OBMOBC_LOGCLIENT_AD_ORG">
         <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
       </foreign-key>
+      <index name="OBMOBC_LOGCLIENT_CACHE" unique="false">
+        <index-column name="CACHE_SESSION_ID"/>
+      </index>
+      <index name="OBMOBC_LOGCLIENT_CONTEXT" unique="false" containsSearch="true">
+        <index-column name="functionBasedColumn" functionExpression="UPPER(CONTEXT)"/>
+      </index>
+      <index name="OBMOBC_LOGCLIENT_LOG_IDX" unique="false">
+        <index-column name="LOGLEVEL"/>
+        <whereClause><![CDATA[LOGLEVEL='Error']]></whereClause>
+      </index>
+      <index name="OBMOBC_LOGCLIENT_TERM_DATE" unique="false">
+        <index-column name="functionBasedColumn" functionExpression="UPPER(DEVICEID)"/>
+        <index-column name="CREATED"/>
+      </index>
+      <index name="OBMOBC_LOGCLIENT_TIMESTAMP" unique="false">
+        <index-column name="TSTAMP"/>
+        <index-column name="OBMOBC_LOGCLIENT_ID"/>
+      </index>
       <check name="OBMOBC_LOGCLIENT_ISACTIVE_CHK"><![CDATA[ISACTIVE IN ('Y', 'N')]]></check>
       <check name="OBMOBC_LOGCLIENT_ISONLINE_CHK"><![CDATA[ISONLINE IN ('Y', 'N')]]></check>
     </table>
diff -r 106da55fdd88 src-db/database/model/tables/OBMOBC_PROCESS_DEFINITION.xml
--- a/src-db/database/model/tables/OBMOBC_PROCESS_DEFINITION.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/model/tables/OBMOBC_PROCESS_DEFINITION.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -49,6 +49,10 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="TERMINALLOG" primaryKey="false" required="false" type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[Y]]></default>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" name="OBMOBC_PROCESS_DEF_AD_CLNT">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_COLUMN.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -756,6 +756,41 @@
 <!--3757014FB37040A585F59C9FE7E8B4E6-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
 <!--3757014FB37040A585F59C9FE7E8B4E6--></AD_COLUMN>
 
+<!--41373BF9F3314E40A881A75C8CD9A1AA--><AD_COLUMN>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_COLUMN_ID><![CDATA[41373BF9F3314E40A881A75C8CD9A1AA]]></AD_COLUMN_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <NAME><![CDATA[Context]]></NAME>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <COLUMNNAME><![CDATA[Context]]></COLUMNNAME>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_TABLE_ID><![CDATA[D669D497165B4A0CB9D382378BA8D0F5]]></AD_TABLE_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_REFERENCE_ID><![CDATA[10]]></AD_REFERENCE_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <FIELDLENGTH><![CDATA[255]]></FIELDLENGTH>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <SEQNO><![CDATA[180]]></SEQNO>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_ELEMENT_ID><![CDATA[96FAAD9F8E014FEF888853A5022A63BB]]></AD_ELEMENT_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--41373BF9F3314E40A881A75C8CD9A1AA-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--41373BF9F3314E40A881A75C8CD9A1AA--></AD_COLUMN>
+
 <!--420CEA8A8FED40DFBCE2DBD2D4FED256--><AD_COLUMN>
 <!--420CEA8A8FED40DFBCE2DBD2D4FED256-->  <AD_COLUMN_ID><![CDATA[420CEA8A8FED40DFBCE2DBD2D4FED256]]></AD_COLUMN_ID>
 <!--420CEA8A8FED40DFBCE2DBD2D4FED256-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1333,6 +1368,41 @@
 <!--5DD40286DCBD40C7823CC0AD3C016882-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
 <!--5DD40286DCBD40C7823CC0AD3C016882--></AD_COLUMN>
 
+<!--61333914329F401691F55E1C284DC41B--><AD_COLUMN>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_COLUMN_ID><![CDATA[61333914329F401691F55E1C284DC41B]]></AD_COLUMN_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--61333914329F401691F55E1C284DC41B-->  <NAME><![CDATA[Tstamp]]></NAME>
+<!--61333914329F401691F55E1C284DC41B-->  <COLUMNNAME><![CDATA[Tstamp]]></COLUMNNAME>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_TABLE_ID><![CDATA[D669D497165B4A0CB9D382378BA8D0F5]]></AD_TABLE_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_REFERENCE_ID><![CDATA[11]]></AD_REFERENCE_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <FIELDLENGTH><![CDATA[13]]></FIELDLENGTH>
+<!--61333914329F401691F55E1C284DC41B-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--61333914329F401691F55E1C284DC41B-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--61333914329F401691F55E1C284DC41B-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--61333914329F401691F55E1C284DC41B-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--61333914329F401691F55E1C284DC41B-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--61333914329F401691F55E1C284DC41B-->  <SEQNO><![CDATA[190]]></SEQNO>
+<!--61333914329F401691F55E1C284DC41B-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--61333914329F401691F55E1C284DC41B-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--61333914329F401691F55E1C284DC41B-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_ELEMENT_ID><![CDATA[2C3941CC43E640F0A6A72F205652DF9C]]></AD_ELEMENT_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--61333914329F401691F55E1C284DC41B-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--61333914329F401691F55E1C284DC41B-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--61333914329F401691F55E1C284DC41B-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--61333914329F401691F55E1C284DC41B-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--61333914329F401691F55E1C284DC41B-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--61333914329F401691F55E1C284DC41B-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--61333914329F401691F55E1C284DC41B-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--61333914329F401691F55E1C284DC41B-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--61333914329F401691F55E1C284DC41B-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--61333914329F401691F55E1C284DC41B-->  <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--61333914329F401691F55E1C284DC41B-->  <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--61333914329F401691F55E1C284DC41B-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--61333914329F401691F55E1C284DC41B--></AD_COLUMN>
+
 <!--6EEBA8A387AF4B6FA22AF4A6EFB78137--><AD_COLUMN>
 <!--6EEBA8A387AF4B6FA22AF4A6EFB78137-->  <AD_COLUMN_ID><![CDATA[6EEBA8A387AF4B6FA22AF4A6EFB78137]]></AD_COLUMN_ID>
 <!--6EEBA8A387AF4B6FA22AF4A6EFB78137-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1674,6 +1744,45 @@
 <!--88CA8B0BC9164CE5B897C91BEAEACD40-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
 <!--88CA8B0BC9164CE5B897C91BEAEACD40--></AD_COLUMN>
 
+<!--8AB39C66DD284EF7B8E6BD96F17143CE--><AD_COLUMN>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_COLUMN_ID><![CDATA[8AB39C66DD284EF7B8E6BD96F17143CE]]></AD_COLUMN_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <NAME><![CDATA[Terminal Log]]></NAME>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <DESCRIPTION><![CDATA[Create a terminal log entry each time that this process start or finish]]></DESCRIPTION>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <HELP><![CDATA[Create a terminal log entry each time that this process start or finish]]></HELP>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <COLUMNNAME><![CDATA[Terminallog]]></COLUMNNAME>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_TABLE_ID><![CDATA[C2C8B7EEDF5D490F8A248B967A465088]]></AD_TABLE_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <DEFAULTVALUE><![CDATA[Y]]></DEFAULTVALUE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <SEQNO><![CDATA[130]]></SEQNO>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_ELEMENT_ID><![CDATA[6EA964895B3E4FBBBD9724733D497519]]></AD_ELEMENT_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <POSITION><![CDATA[13]]></POSITION>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--8AB39C66DD284EF7B8E6BD96F17143CE--></AD_COLUMN>
+
 <!--8F264967213444999111A3296EE1A4CF--><AD_COLUMN>
 <!--8F264967213444999111A3296EE1A4CF-->  <AD_COLUMN_ID><![CDATA[8F264967213444999111A3296EE1A4CF]]></AD_COLUMN_ID>
 <!--8F264967213444999111A3296EE1A4CF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -2100,8 +2209,9 @@
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <NAME><![CDATA[loglevel]]></NAME>
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <COLUMNNAME><![CDATA[Loglevel]]></COLUMNNAME>
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <AD_TABLE_ID><![CDATA[D669D497165B4A0CB9D382378BA8D0F5]]></AD_TABLE_ID>
-<!--A720E672C1434E809BF9A2C95C0E6291-->  <AD_REFERENCE_ID><![CDATA[10]]></AD_REFERENCE_ID>
-<!--A720E672C1434E809BF9A2C95C0E6291-->  <FIELDLENGTH><![CDATA[255]]></FIELDLENGTH>
+<!--A720E672C1434E809BF9A2C95C0E6291-->  <AD_REFERENCE_ID><![CDATA[17]]></AD_REFERENCE_ID>
+<!--A720E672C1434E809BF9A2C95C0E6291-->  <AD_REFERENCE_VALUE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_VALUE_ID>
+<!--A720E672C1434E809BF9A2C95C0E6291-->  <FIELDLENGTH><![CDATA[60]]></FIELDLENGTH>
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <ISKEY><![CDATA[N]]></ISKEY>
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <ISPARENT><![CDATA[N]]></ISPARENT>
 <!--A720E672C1434E809BF9A2C95C0E6291-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_DATASET.xml
--- a/src-db/database/sourcedata/AD_DATASET.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_DATASET.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -16,4 +16,20 @@
 <!--0C2038A171F943ACBD84DE670E580C0D-->  <ISDEFAULTVALUESDATASET><![CDATA[Y]]></ISDEFAULTVALUESDATASET>
 <!--0C2038A171F943ACBD84DE670E580C0D--></AD_DATASET>
 
+<!--44EDD113833C40158C4B205A2A4CF61E--><AD_DATASET>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <AD_DATASET_ID><![CDATA[44EDD113833C40158C4B205A2A4CF61E]]></AD_DATASET_ID>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <VALUE><![CDATA[obmobc_logclient_grid_config]]></VALUE>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <NAME><![CDATA[obmobc_logclient_grid_config]]></NAME>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <EXPORT><![CDATA[N]]></EXPORT>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <ACCESSLEVEL><![CDATA[4]]></ACCESSLEVEL>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <EXPORTALLOWED><![CDATA[Y]]></EXPORTALLOWED>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <CHECKSUM><![CDATA[166869661678279751722588155571192547364]]></CHECKSUM>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <SEQNO><![CDATA[120]]></SEQNO>
+<!--44EDD113833C40158C4B205A2A4CF61E-->  <ISDEFAULTVALUESDATASET><![CDATA[N]]></ISDEFAULTVALUESDATASET>
+<!--44EDD113833C40158C4B205A2A4CF61E--></AD_DATASET>
+
 </data>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_DATASET_TABLE.xml
--- a/src-db/database/sourcedata/AD_DATASET_TABLE.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_DATASET_TABLE.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -1,5 +1,19 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <data>
+<!--2F1903EDC2A5451685EF7B773C523CA1--><AD_DATASET_TABLE>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_DATASET_TABLE_ID><![CDATA[2F1903EDC2A5451685EF7B773C523CA1]]></AD_DATASET_TABLE_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_DATASET_ID><![CDATA[44EDD113833C40158C4B205A2A4CF61E]]></AD_DATASET_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_TABLE_ID><![CDATA[F167EB822B8A4284AC37D5B40B785D51]]></AD_TABLE_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <INCLUDEALLCOLUMNS><![CDATA[Y]]></INCLUDEALLCOLUMNS>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <WHERECLAUSE><![CDATA[Obuiapp_Gc_Tab_ID = '1AD989605ACA4F5FB6C11B2E7AC88867']]></WHERECLAUSE>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <EXCLUDEAUDITINFO><![CDATA[N]]></EXCLUDEAUDITINFO>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <ISBUSINESSOBJECT><![CDATA[N]]></ISBUSINESSOBJECT>
+<!--2F1903EDC2A5451685EF7B773C523CA1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--2F1903EDC2A5451685EF7B773C523CA1--></AD_DATASET_TABLE>
+
 <!--2F741F1BD8264D6B804C8DAA4BD01E5F--><AD_DATASET_TABLE>
 <!--2F741F1BD8264D6B804C8DAA4BD01E5F-->  <AD_DATASET_TABLE_ID><![CDATA[2F741F1BD8264D6B804C8DAA4BD01E5F]]></AD_DATASET_TABLE_ID>
 <!--2F741F1BD8264D6B804C8DAA4BD01E5F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -28,6 +42,20 @@
 <!--2F98594D3D0A42538B4A809A94F31FDE-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--2F98594D3D0A42538B4A809A94F31FDE--></AD_DATASET_TABLE>
 
+<!--4A2C5E6DE933437DB74197695EEFB79A--><AD_DATASET_TABLE>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_DATASET_TABLE_ID><![CDATA[4A2C5E6DE933437DB74197695EEFB79A]]></AD_DATASET_TABLE_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_DATASET_ID><![CDATA[44EDD113833C40158C4B205A2A4CF61E]]></AD_DATASET_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_TABLE_ID><![CDATA[8A16662B37184121A1EDAA89890E160C]]></AD_TABLE_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <INCLUDEALLCOLUMNS><![CDATA[Y]]></INCLUDEALLCOLUMNS>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <WHERECLAUSE><![CDATA[id = '1AD989605ACA4F5FB6C11B2E7AC88867']]></WHERECLAUSE>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <EXCLUDEAUDITINFO><![CDATA[N]]></EXCLUDEAUDITINFO>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <ISBUSINESSOBJECT><![CDATA[N]]></ISBUSINESSOBJECT>
+<!--4A2C5E6DE933437DB74197695EEFB79A-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--4A2C5E6DE933437DB74197695EEFB79A--></AD_DATASET_TABLE>
+
 <!--F0772C06DA6C497C82052601E28F6522--><AD_DATASET_TABLE>
 <!--F0772C06DA6C497C82052601E28F6522-->  <AD_DATASET_TABLE_ID><![CDATA[F0772C06DA6C497C82052601E28F6522]]></AD_DATASET_TABLE_ID>
 <!--F0772C06DA6C497C82052601E28F6522-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -48,6 +48,18 @@
 <!--182FD651C020405DB1BD65E863D61D24-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--182FD651C020405DB1BD65E863D61D24--></AD_ELEMENT>
 
+<!--2C3941CC43E640F0A6A72F205652DF9C--><AD_ELEMENT>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <AD_ELEMENT_ID><![CDATA[2C3941CC43E640F0A6A72F205652DF9C]]></AD_ELEMENT_ID>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <COLUMNNAME><![CDATA[Timestamp]]></COLUMNNAME>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <NAME><![CDATA[Timestamp]]></NAME>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <PRINTNAME><![CDATA[Timestamp]]></PRINTNAME>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--2C3941CC43E640F0A6A72F205652DF9C-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--2C3941CC43E640F0A6A72F205652DF9C--></AD_ELEMENT>
+
 <!--2E923953D5644CF0A73FE7C4A0219565--><AD_ELEMENT>
 <!--2E923953D5644CF0A73FE7C4A0219565-->  <AD_ELEMENT_ID><![CDATA[2E923953D5644CF0A73FE7C4A0219565]]></AD_ELEMENT_ID>
 <!--2E923953D5644CF0A73FE7C4A0219565-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -185,6 +197,21 @@
 <!--62BEA2CA5C1144239E93029DF755FA04-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--62BEA2CA5C1144239E93029DF755FA04--></AD_ELEMENT>
 
+<!--6EA964895B3E4FBBBD9724733D497519--><AD_ELEMENT>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <AD_ELEMENT_ID><![CDATA[6EA964895B3E4FBBBD9724733D497519]]></AD_ELEMENT_ID>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <COLUMNNAME><![CDATA[Terminallog]]></COLUMNNAME>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <NAME><![CDATA[Log start/finish in the terminal log]]></NAME>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <PRINTNAME><![CDATA[Log start/finish in the terminal log]]></PRINTNAME>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <DESCRIPTION><![CDATA[Create a terminal log entry each time that this process start or finish]]></DESCRIPTION>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <HELP><![CDATA[Create a terminal log entry each time that this process start or finish]]></HELP>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <PO_PRINTNAME><![CDATA[Log start/finish in the terminal log]]></PO_PRINTNAME>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--6EA964895B3E4FBBBD9724733D497519-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--6EA964895B3E4FBBBD9724733D497519--></AD_ELEMENT>
+
 <!--7738737850184260850EB0E92121724D--><AD_ELEMENT>
 <!--7738737850184260850EB0E92121724D-->  <AD_ELEMENT_ID><![CDATA[7738737850184260850EB0E92121724D]]></AD_ELEMENT_ID>
 <!--7738737850184260850EB0E92121724D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -238,6 +265,18 @@
 <!--887274D6D3B149659F7FA4E350CB67B7-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--887274D6D3B149659F7FA4E350CB67B7--></AD_ELEMENT>
 
+<!--96FAAD9F8E014FEF888853A5022A63BB--><AD_ELEMENT>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <AD_ELEMENT_ID><![CDATA[96FAAD9F8E014FEF888853A5022A63BB]]></AD_ELEMENT_ID>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <COLUMNNAME><![CDATA[Context]]></COLUMNNAME>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <NAME><![CDATA[Context]]></NAME>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <PRINTNAME><![CDATA[Context]]></PRINTNAME>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--96FAAD9F8E014FEF888853A5022A63BB-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--96FAAD9F8E014FEF888853A5022A63BB--></AD_ELEMENT>
+
 <!--977AEFC5E3B64243A21F088542E4CDBE--><AD_ELEMENT>
 <!--977AEFC5E3B64243A21F088542E4CDBE-->  <AD_ELEMENT_ID><![CDATA[977AEFC5E3B64243A21F088542E4CDBE]]></AD_ELEMENT_ID>
 <!--977AEFC5E3B64243A21F088542E4CDBE-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -282,8 +321,8 @@
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <COLUMNNAME><![CDATA[Loglevel]]></COLUMNNAME>
-<!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <NAME><![CDATA[Log Level]]></NAME>
-<!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <PRINTNAME><![CDATA[Log Level]]></PRINTNAME>
+<!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <NAME><![CDATA[Log Type]]></NAME>
+<!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <PRINTNAME><![CDATA[Log Type]]></PRINTNAME>
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--B29C94B1B6EB4C6381F6F9CDA8D95DDA--></AD_ELEMENT>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -41,7 +41,6 @@
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <DISPLAYLENGTH><![CDATA[0]]></DISPLAYLENGTH>
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <SEQNO><![CDATA[10]]></SEQNO>
-<!--0787AC0FCA6742AE91D991D2DF849052-->  <SORTNO><![CDATA[1]]></SORTNO>
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
 <!--0787AC0FCA6742AE91D991D2DF849052-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -307,12 +306,39 @@
 <!--26544F05244D49329CE65FE17B4EBC5B-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--26544F05244D49329CE65FE17B4EBC5B--></AD_FIELD>
 
+<!--2914F2F026F14B0FB381139EDD5A7B45--><AD_FIELD>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_FIELD_ID><![CDATA[2914F2F026F14B0FB381139EDD5A7B45]]></AD_FIELD_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <NAME><![CDATA[Context]]></NAME>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_TAB_ID><![CDATA[14BDEAB664C146DCB662B2E3EA7A495E]]></AD_TAB_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_COLUMN_ID><![CDATA[41373BF9F3314E40A881A75C8CD9A1AA]]></AD_COLUMN_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <DISPLAYLENGTH><![CDATA[0]]></DISPLAYLENGTH>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <SEQNO><![CDATA[37]]></SEQNO>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <GRID_SEQNO><![CDATA[37]]></GRID_SEQNO>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--2914F2F026F14B0FB381139EDD5A7B45-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--2914F2F026F14B0FB381139EDD5A7B45--></AD_FIELD>
+
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9--><AD_FIELD>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <AD_FIELD_ID><![CDATA[2AB77B21E25C4FDF9059C80C04EC2FB9]]></AD_FIELD_ID>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <NAME><![CDATA[Log Level]]></NAME>
+<!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <NAME><![CDATA[Log Type]]></NAME>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <AD_TAB_ID><![CDATA[14BDEAB664C146DCB662B2E3EA7A495E]]></AD_TAB_ID>
 <!--2AB77B21E25C4FDF9059C80C04EC2FB9-->  <AD_COLUMN_ID><![CDATA[A720E672C1434E809BF9A2C95C0E6291]]></AD_COLUMN_ID>
@@ -938,6 +964,34 @@
 <!--7DF64569BA1B4FC98DF8046D89A48D95-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--7DF64569BA1B4FC98DF8046D89A48D95--></AD_FIELD>
 
+<!--834069A482574F0CA2E2635630D58623--><AD_FIELD>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_FIELD_ID><![CDATA[834069A482574F0CA2E2635630D58623]]></AD_FIELD_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--834069A482574F0CA2E2635630D58623-->  <NAME><![CDATA[Log start/finish in the terminal log]]></NAME>
+<!--834069A482574F0CA2E2635630D58623-->  <DESCRIPTION><![CDATA[Create a terminal log entry each time that this process start or finish]]></DESCRIPTION>
+<!--834069A482574F0CA2E2635630D58623-->  <HELP><![CDATA[Create a terminal log entry each time that this process start or finish]]></HELP>
+<!--834069A482574F0CA2E2635630D58623-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_TAB_ID><![CDATA[A2D9C34536974601B900C5A290EDC5AD]]></AD_TAB_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_COLUMN_ID><![CDATA[8AB39C66DD284EF7B8E6BD96F17143CE]]></AD_COLUMN_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--834069A482574F0CA2E2635630D58623-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--834069A482574F0CA2E2635630D58623-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--834069A482574F0CA2E2635630D58623-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--834069A482574F0CA2E2635630D58623-->  <SEQNO><![CDATA[70]]></SEQNO>
+<!--834069A482574F0CA2E2635630D58623-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--834069A482574F0CA2E2635630D58623-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--834069A482574F0CA2E2635630D58623-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--834069A482574F0CA2E2635630D58623-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--834069A482574F0CA2E2635630D58623-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--834069A482574F0CA2E2635630D58623-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--834069A482574F0CA2E2635630D58623-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--834069A482574F0CA2E2635630D58623-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--834069A482574F0CA2E2635630D58623-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--834069A482574F0CA2E2635630D58623-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--834069A482574F0CA2E2635630D58623--></AD_FIELD>
+
 <!--8A89D90820B24B50A09AA0A82E0125BF--><AD_FIELD>
 <!--8A89D90820B24B50A09AA0A82E0125BF-->  <AD_FIELD_ID><![CDATA[8A89D90820B24B50A09AA0A82E0125BF]]></AD_FIELD_ID>
 <!--8A89D90820B24B50A09AA0A82E0125BF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1635,6 +1689,34 @@
 <!--ED5E3581518846B19D40050B4D1814BF-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--ED5E3581518846B19D40050B4D1814BF--></AD_FIELD>
 
+<!--EEA3E2C92E6B493B870D8310BCD7150D--><AD_FIELD>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_FIELD_ID><![CDATA[EEA3E2C92E6B493B870D8310BCD7150D]]></AD_FIELD_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <NAME><![CDATA[Timestamp]]></NAME>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_TAB_ID><![CDATA[14BDEAB664C146DCB662B2E3EA7A495E]]></AD_TAB_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_COLUMN_ID><![CDATA[61333914329F401691F55E1C284DC41B]]></AD_COLUMN_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <DISPLAYLENGTH><![CDATA[0]]></DISPLAYLENGTH>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <SEQNO><![CDATA[15]]></SEQNO>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <SORTNO><![CDATA[1]]></SORTNO>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <GRID_SEQNO><![CDATA[15]]></GRID_SEQNO>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--EEA3E2C92E6B493B870D8310BCD7150D-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--EEA3E2C92E6B493B870D8310BCD7150D--></AD_FIELD>
+
 <!--F855CB904FDA42A4B178F83E21EACD8A--><AD_FIELD>
 <!--F855CB904FDA42A4B178F83E21EACD8A-->  <AD_FIELD_ID><![CDATA[F855CB904FDA42A4B178F83E21EACD8A]]></AD_FIELD_ID>
 <!--F855CB904FDA42A4B178F83E21EACD8A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_MENU.xml
--- a/src-db/database/sourcedata/AD_MENU.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_MENU.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -47,7 +47,7 @@
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--F32D0E88C9324D95945F1294A2A9D025-->  <NAME><![CDATA[Log Client]]></NAME>
+<!--F32D0E88C9324D95945F1294A2A9D025-->  <NAME><![CDATA[Terminal Log]]></NAME>
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <ISSUMMARY><![CDATA[N]]></ISSUMMARY>
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <ACTION><![CDATA[W]]></ACTION>
 <!--F32D0E88C9324D95945F1294A2A9D025-->  <AD_WINDOW_ID><![CDATA[B573F236AC404C43B9899EF714E0C349]]></AD_WINDOW_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_PREFERENCE.xml
--- a/src-db/database/sourcedata/AD_PREFERENCE.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_PREFERENCE.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -77,6 +77,17 @@
 <!--7102378FD46F49A3A38B22D08A4A81D1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--7102378FD46F49A3A38B22D08A4A81D1--></AD_PREFERENCE>
 
+<!--810272BE4EDE4AEF80CA60BBB60A64FA--><AD_PREFERENCE>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <AD_PREFERENCE_ID><![CDATA[810272BE4EDE4AEF80CA60BBB60A64FA]]></AD_PREFERENCE_ID>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <VALUE><![CDATA[Y]]></VALUE>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <PROPERTY><![CDATA[OBMOBC_EnableTerminalLogUserActions]]></PROPERTY>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <ISPROPERTYLIST><![CDATA[Y]]></ISPROPERTYLIST>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--810272BE4EDE4AEF80CA60BBB60A64FA--></AD_PREFERENCE>
+
 <!--82A505E31F92488882F552E82DF5C373--><AD_PREFERENCE>
 <!--82A505E31F92488882F552E82DF5C373-->  <AD_PREFERENCE_ID><![CDATA[82A505E31F92488882F552E82DF5C373]]></AD_PREFERENCE_ID>
 <!--82A505E31F92488882F552E82DF5C373-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -165,6 +176,17 @@
 <!--9FAA6DD7AA6F494DAAA2F121AB1E5FB3-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--9FAA6DD7AA6F494DAAA2F121AB1E5FB3--></AD_PREFERENCE>
 
+<!--A3D01B3348F3485098B71E8A0A156FC0--><AD_PREFERENCE>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <AD_PREFERENCE_ID><![CDATA[A3D01B3348F3485098B71E8A0A156FC0]]></AD_PREFERENCE_ID>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <VALUE><![CDATA[Y]]></VALUE>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <PROPERTY><![CDATA[OBMOBC_EnableTerminalLogProcess]]></PROPERTY>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <ISPROPERTYLIST><![CDATA[Y]]></ISPROPERTYLIST>
+<!--A3D01B3348F3485098B71E8A0A156FC0-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--A3D01B3348F3485098B71E8A0A156FC0--></AD_PREFERENCE>
+
 <!--A41538647DD0486E9E2F7662C71877E0--><AD_PREFERENCE>
 <!--A41538647DD0486E9E2F7662C71877E0-->  <AD_PREFERENCE_ID><![CDATA[A41538647DD0486E9E2F7662C71877E0]]></AD_PREFERENCE_ID>
 <!--A41538647DD0486E9E2F7662C71877E0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_REFERENCE.xml
--- a/src-db/database/sourcedata/AD_REFERENCE.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_REFERENCE.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -56,6 +56,19 @@
 <!--8C677D78447842C1BC13F485801021FE-->  <ISVALUEDISPLAYED><![CDATA[N]]></ISVALUEDISPLAYED>
 <!--8C677D78447842C1BC13F485801021FE--></AD_REFERENCE>
 
+<!--F37A4E2957364DFEB80E0B1191787DA1--><AD_REFERENCE>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <NAME><![CDATA[obmobc_log_client_log_level]]></NAME>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <DESCRIPTION><![CDATA[Log client log level]]></DESCRIPTION>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <ISBASEREFERENCE><![CDATA[N]]></ISBASEREFERENCE>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <PARENTREFERENCE_ID><![CDATA[17]]></PARENTREFERENCE_ID>
+<!--F37A4E2957364DFEB80E0B1191787DA1-->  <ISVALUEDISPLAYED><![CDATA[N]]></ISVALUEDISPLAYED>
+<!--F37A4E2957364DFEB80E0B1191787DA1--></AD_REFERENCE>
+
 <!--FB292304E1094803B1234CDB60BC550B--><AD_REFERENCE>
 <!--FB292304E1094803B1234CDB60BC550B-->  <AD_REFERENCE_ID><![CDATA[FB292304E1094803B1234CDB60BC550B]]></AD_REFERENCE_ID>
 <!--FB292304E1094803B1234CDB60BC550B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_REF_LIST.xml
--- a/src-db/database/sourcedata/AD_REF_LIST.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_REF_LIST.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -59,6 +59,17 @@
 <!--0E17FDD30F0B412090B49DB813842ADC-->  <SEQNO><![CDATA[10]]></SEQNO>
 <!--0E17FDD30F0B412090B49DB813842ADC--></AD_REF_LIST>
 
+<!--0F7487166BC948F8A4EFB06E48654B53--><AD_REF_LIST>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <AD_REF_LIST_ID><![CDATA[0F7487166BC948F8A4EFB06E48654B53]]></AD_REF_LIST_ID>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <VALUE><![CDATA[OBMOBC_TerminalLog]]></VALUE>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <NAME><![CDATA[TerminalLog]]></NAME>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <AD_REFERENCE_ID><![CDATA[11F86B630ECB4A57B28927193F8AB99D]]></AD_REFERENCE_ID>
+<!--0F7487166BC948F8A4EFB06E48654B53-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--0F7487166BC948F8A4EFB06E48654B53--></AD_REF_LIST>
+
 <!--17726FF020AF4D1EAC31EE81BBF66A9A--><AD_REF_LIST>
 <!--17726FF020AF4D1EAC31EE81BBF66A9A-->  <AD_REF_LIST_ID><![CDATA[17726FF020AF4D1EAC31EE81BBF66A9A]]></AD_REF_LIST_ID>
 <!--17726FF020AF4D1EAC31EE81BBF66A9A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -93,6 +104,18 @@
 <!--1D2A646381C14631BD759B006247BBC5-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--1D2A646381C14631BD759B006247BBC5--></AD_REF_LIST>
 
+<!--210E59CA718143D9814FC65E1F0AB1A1--><AD_REF_LIST>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <AD_REF_LIST_ID><![CDATA[210E59CA718143D9814FC65E1F0AB1A1]]></AD_REF_LIST_ID>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <VALUE><![CDATA[OBMOBC_EnableTerminalLogUserActions]]></VALUE>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <NAME><![CDATA[Enable Terminal Log User Actions]]></NAME>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <DESCRIPTION><![CDATA[Enable/Disable the log of user actions]]></DESCRIPTION>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--210E59CA718143D9814FC65E1F0AB1A1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--210E59CA718143D9814FC65E1F0AB1A1--></AD_REF_LIST>
+
 <!--210FAE103E9646A8834343AC84E70430--><AD_REF_LIST>
 <!--210FAE103E9646A8834343AC84E70430-->  <AD_REF_LIST_ID><![CDATA[210FAE103E9646A8834343AC84E70430]]></AD_REF_LIST_ID>
 <!--210FAE103E9646A8834343AC84E70430-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -296,6 +319,18 @@
 <!--4DC79E60EBCF42F79BE541749B256420-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--4DC79E60EBCF42F79BE541749B256420--></AD_REF_LIST>
 
+<!--5CCB997427C34576A6BC0411E23367E9--><AD_REF_LIST>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <AD_REF_LIST_ID><![CDATA[5CCB997427C34576A6BC0411E23367E9]]></AD_REF_LIST_ID>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <VALUE><![CDATA[OBMOBC_EnableTerminalLogProcess]]></VALUE>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <NAME><![CDATA[Enable Terminal Log Process]]></NAME>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <DESCRIPTION><![CDATA[Enable/Disable the log of processes]]></DESCRIPTION>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--5CCB997427C34576A6BC0411E23367E9-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--5CCB997427C34576A6BC0411E23367E9--></AD_REF_LIST>
+
 <!--645E9EE10111462CB8C4E6B9E504CEA3--><AD_REF_LIST>
 <!--645E9EE10111462CB8C4E6B9E504CEA3-->  <AD_REF_LIST_ID><![CDATA[645E9EE10111462CB8C4E6B9E504CEA3]]></AD_REF_LIST_ID>
 <!--645E9EE10111462CB8C4E6B9E504CEA3-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -307,6 +342,30 @@
 <!--645E9EE10111462CB8C4E6B9E504CEA3-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--645E9EE10111462CB8C4E6B9E504CEA3--></AD_REF_LIST>
 
+<!--65AB044000784C03910D03C237197A94--><AD_REF_LIST>
+<!--65AB044000784C03910D03C237197A94-->  <AD_REF_LIST_ID><![CDATA[65AB044000784C03910D03C237197A94]]></AD_REF_LIST_ID>
+<!--65AB044000784C03910D03C237197A94-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--65AB044000784C03910D03C237197A94-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--65AB044000784C03910D03C237197A94-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--65AB044000784C03910D03C237197A94-->  <VALUE><![CDATA[UserAction]]></VALUE>
+<!--65AB044000784C03910D03C237197A94-->  <NAME><![CDATA[Functional - User action]]></NAME>
+<!--65AB044000784C03910D03C237197A94-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--65AB044000784C03910D03C237197A94-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--65AB044000784C03910D03C237197A94-->  <SEQNO><![CDATA[10]]></SEQNO>
+<!--65AB044000784C03910D03C237197A94--></AD_REF_LIST>
+
+<!--685D743ABF804EFBB48B9E7D4C253E02--><AD_REF_LIST>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <AD_REF_LIST_ID><![CDATA[685D743ABF804EFBB48B9E7D4C253E02]]></AD_REF_LIST_ID>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <VALUE><![CDATA[Warn]]></VALUE>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <NAME><![CDATA[Technical - Warn]]></NAME>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--685D743ABF804EFBB48B9E7D4C253E02-->  <SEQNO><![CDATA[40]]></SEQNO>
+<!--685D743ABF804EFBB48B9E7D4C253E02--></AD_REF_LIST>
+
 <!--73967117B13C4B5EAEA505E04A7E80A3--><AD_REF_LIST>
 <!--73967117B13C4B5EAEA505E04A7E80A3-->  <AD_REF_LIST_ID><![CDATA[73967117B13C4B5EAEA505E04A7E80A3]]></AD_REF_LIST_ID>
 <!--73967117B13C4B5EAEA505E04A7E80A3-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -366,6 +425,18 @@
 <!--86A147DD51D041729DDD7EFD12C54B1C-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--86A147DD51D041729DDD7EFD12C54B1C--></AD_REF_LIST>
 
+<!--922AB65BEF574C518E61205C03CA2B5E--><AD_REF_LIST>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <AD_REF_LIST_ID><![CDATA[922AB65BEF574C518E61205C03CA2B5E]]></AD_REF_LIST_ID>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <VALUE><![CDATA[Info]]></VALUE>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <NAME><![CDATA[Technical - Info]]></NAME>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--922AB65BEF574C518E61205C03CA2B5E-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--922AB65BEF574C518E61205C03CA2B5E--></AD_REF_LIST>
+
 <!--92882D283E614160A1BEE6DB99A354BE--><AD_REF_LIST>
 <!--92882D283E614160A1BEE6DB99A354BE-->  <AD_REF_LIST_ID><![CDATA[92882D283E614160A1BEE6DB99A354BE]]></AD_REF_LIST_ID>
 <!--92882D283E614160A1BEE6DB99A354BE-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -415,6 +486,18 @@
 <!--99368348A6FF4CDB991916852CCE817A-->  <SEQNO><![CDATA[20]]></SEQNO>
 <!--99368348A6FF4CDB991916852CCE817A--></AD_REF_LIST>
 
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8--><AD_REF_LIST>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <AD_REF_LIST_ID><![CDATA[9F5E4B4C061C4B9C8EB56476F513A2E8]]></AD_REF_LIST_ID>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <VALUE><![CDATA[OBMOBC_TerminalLogSyncInterval]]></VALUE>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <NAME><![CDATA[Terminal Log Synchronization Interval]]></NAME>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <DESCRIPTION><![CDATA[Synchronization interval of the terminal log to the backend]]></DESCRIPTION>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--9F5E4B4C061C4B9C8EB56476F513A2E8--></AD_REF_LIST>
+
 <!--A03A35AF82EE441BB8CAB65201446026--><AD_REF_LIST>
 <!--A03A35AF82EE441BB8CAB65201446026-->  <AD_REF_LIST_ID><![CDATA[A03A35AF82EE441BB8CAB65201446026]]></AD_REF_LIST_ID>
 <!--A03A35AF82EE441BB8CAB65201446026-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -438,6 +521,18 @@
 <!--A5F78584B1BE43B2BFF4F2E695460784-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--A5F78584B1BE43B2BFF4F2E695460784--></AD_REF_LIST>
 
+<!--A73968ECD36945D0827BB25CDC374970--><AD_REF_LIST>
+<!--A73968ECD36945D0827BB25CDC374970-->  <AD_REF_LIST_ID><![CDATA[A73968ECD36945D0827BB25CDC374970]]></AD_REF_LIST_ID>
+<!--A73968ECD36945D0827BB25CDC374970-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--A73968ECD36945D0827BB25CDC374970-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--A73968ECD36945D0827BB25CDC374970-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--A73968ECD36945D0827BB25CDC374970-->  <VALUE><![CDATA[Error]]></VALUE>
+<!--A73968ECD36945D0827BB25CDC374970-->  <NAME><![CDATA[Technical - Error]]></NAME>
+<!--A73968ECD36945D0827BB25CDC374970-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--A73968ECD36945D0827BB25CDC374970-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--A73968ECD36945D0827BB25CDC374970-->  <SEQNO><![CDATA[50]]></SEQNO>
+<!--A73968ECD36945D0827BB25CDC374970--></AD_REF_LIST>
+
 <!--AAE427B506994D008761DDB68D1BFBF3--><AD_REF_LIST>
 <!--AAE427B506994D008761DDB68D1BFBF3-->  <AD_REF_LIST_ID><![CDATA[AAE427B506994D008761DDB68D1BFBF3]]></AD_REF_LIST_ID>
 <!--AAE427B506994D008761DDB68D1BFBF3-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -496,6 +591,18 @@
 <!--BC3E4A82988F44DCBB0CB4665407584B-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--BC3E4A82988F44DCBB0CB4665407584B--></AD_REF_LIST>
 
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5--><AD_REF_LIST>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <AD_REF_LIST_ID><![CDATA[BFE1F4E631E84C0F9AC5C34438F4E3D5]]></AD_REF_LIST_ID>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <VALUE><![CDATA[Process]]></VALUE>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <NAME><![CDATA[Technical - Process]]></NAME>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <AD_REFERENCE_ID><![CDATA[F37A4E2957364DFEB80E0B1191787DA1]]></AD_REFERENCE_ID>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5-->  <SEQNO><![CDATA[20]]></SEQNO>
+<!--BFE1F4E631E84C0F9AC5C34438F4E3D5--></AD_REF_LIST>
+
 <!--C46392B7A3634EBDA19CAA335BC880EC--><AD_REF_LIST>
 <!--C46392B7A3634EBDA19CAA335BC880EC-->  <AD_REF_LIST_ID><![CDATA[C46392B7A3634EBDA19CAA335BC880EC]]></AD_REF_LIST_ID>
 <!--C46392B7A3634EBDA19CAA335BC880EC-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -566,6 +673,18 @@
 <!--DB509D35224E48F48674F765237C1063-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
 <!--DB509D35224E48F48674F765237C1063--></AD_REF_LIST>
 
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1--><AD_REF_LIST>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <AD_REF_LIST_ID><![CDATA[DF73FD3861DA4BED8C0AE6540F3F76D1]]></AD_REF_LIST_ID>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <VALUE><![CDATA[OBMOBC_TerminalLogBackupInterval]]></VALUE>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <NAME><![CDATA[Terminal Log Backup Interval]]></NAME>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <DESCRIPTION><![CDATA[Local backup in the webpos of the terminal log]]></DESCRIPTION>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--DF73FD3861DA4BED8C0AE6540F3F76D1--></AD_REF_LIST>
+
 <!--E279FC43FF7540A9881519B81C15E8C4--><AD_REF_LIST>
 <!--E279FC43FF7540A9881519B81C15E8C4-->  <AD_REF_LIST_ID><![CDATA[E279FC43FF7540A9881519B81C15E8C4]]></AD_REF_LIST_ID>
 <!--E279FC43FF7540A9881519B81C15E8C4-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_TAB.xml
--- a/src-db/database/sourcedata/AD_TAB.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_TAB.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -5,7 +5,7 @@
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--14BDEAB664C146DCB662B2E3EA7A495E-->  <NAME><![CDATA[Log Client]]></NAME>
+<!--14BDEAB664C146DCB662B2E3EA7A495E-->  <NAME><![CDATA[Terminal Log]]></NAME>
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <AD_TABLE_ID><![CDATA[D669D497165B4A0CB9D382378BA8D0F5]]></AD_TABLE_ID>
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <AD_WINDOW_ID><![CDATA[B573F236AC404C43B9899EF714E0C349]]></AD_WINDOW_ID>
 <!--14BDEAB664C146DCB662B2E3EA7A495E-->  <SEQNO><![CDATA[10]]></SEQNO>
diff -r 106da55fdd88 src-db/database/sourcedata/AD_WINDOW.xml
--- a/src-db/database/sourcedata/AD_WINDOW.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/AD_WINDOW.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -22,7 +22,7 @@
 <!--B573F236AC404C43B9899EF714E0C349-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
 <!--B573F236AC404C43B9899EF714E0C349-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--B573F236AC404C43B9899EF714E0C349-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--B573F236AC404C43B9899EF714E0C349-->  <NAME><![CDATA[Log Client]]></NAME>
+<!--B573F236AC404C43B9899EF714E0C349-->  <NAME><![CDATA[Terminal Log]]></NAME>
 <!--B573F236AC404C43B9899EF714E0C349-->  <WINDOWTYPE><![CDATA[M]]></WINDOWTYPE>
 <!--B573F236AC404C43B9899EF714E0C349-->  <ISSOTRX><![CDATA[Y]]></ISSOTRX>
 <!--B573F236AC404C43B9899EF714E0C349-->  <PROCESSING><![CDATA[N]]></PROCESSING>
diff -r 106da55fdd88 src-db/database/sourcedata/OBMOBC_PROCESS_DEFINITION.xml
--- a/src-db/database/sourcedata/OBMOBC_PROCESS_DEFINITION.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/OBMOBC_PROCESS_DEFINITION.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -9,6 +9,7 @@
 <!--1EFE2041516141A4B04FF898CEF88255-->  <SEARCHKEY><![CDATA[checkMessagesToSync]]></SEARCHKEY>
 <!--1EFE2041516141A4B04FF898CEF88255-->  <NAME><![CDATA[Check Messages To Synchronize]]></NAME>
 <!--1EFE2041516141A4B04FF898CEF88255-->  <DESCRIPTION><![CDATA[Check if there are messages pending to send to backend]]></DESCRIPTION>
+<!--1EFE2041516141A4B04FF898CEF88255-->  <TERMINALLOG><![CDATA[N]]></TERMINALLOG>
 <!--1EFE2041516141A4B04FF898CEF88255--></OBMOBC_PROCESS_DEFINITION>
 
 <!--75057CC9C298448396629CDCDA6CBC84--><OBMOBC_PROCESS_DEFINITION>
@@ -20,6 +21,7 @@
 <!--75057CC9C298448396629CDCDA6CBC84-->  <SEARCHKEY><![CDATA[messageSynchronization]]></SEARCHKEY>
 <!--75057CC9C298448396629CDCDA6CBC84-->  <NAME><![CDATA[Message Synchronization]]></NAME>
 <!--75057CC9C298448396629CDCDA6CBC84-->  <DESCRIPTION><![CDATA[Every time we send a message to backend and wait till received confirmation]]></DESCRIPTION>
+<!--75057CC9C298448396629CDCDA6CBC84-->  <TERMINALLOG><![CDATA[N]]></TERMINALLOG>
 <!--75057CC9C298448396629CDCDA6CBC84--></OBMOBC_PROCESS_DEFINITION>
 
 <!--FAAB2F73E1CA492985E62E8DD138BCC3--><OBMOBC_PROCESS_DEFINITION>
@@ -31,6 +33,7 @@
 <!--FAAB2F73E1CA492985E62E8DD138BCC3-->  <SEARCHKEY><![CDATA[showLoading]]></SEARCHKEY>
 <!--FAAB2F73E1CA492985E62E8DD138BCC3-->  <NAME><![CDATA[Loading... screen process]]></NAME>
 <!--FAAB2F73E1CA492985E62E8DD138BCC3-->  <DESCRIPTION><![CDATA[Loading... screen process while the application is working on something that needs to block the UI]]></DESCRIPTION>
+<!--FAAB2F73E1CA492985E62E8DD138BCC3-->  <TERMINALLOG><![CDATA[Y]]></TERMINALLOG>
 <!--FAAB2F73E1CA492985E62E8DD138BCC3--></OBMOBC_PROCESS_DEFINITION>
 
 </data>
diff -r 106da55fdd88 src-db/database/sourcedata/OBMOBC_SERVICES.xml
--- a/src-db/database/sourcedata/OBMOBC_SERVICES.xml	Wed Nov 14 19:17:40 2018 +0100
+++ b/src-db/database/sourcedata/OBMOBC_SERVICES.xml	Mon Dec 10 12:28:35 2018 +0100
@@ -164,6 +164,18 @@
 <!--DAA7185D620A4A539B13A86E9A26CBBF-->  <SERVER_RUNTIME><![CDATA[OBSTSYN_ON_CENTRAL]]></SERVER_RUNTIME>
 <!--DAA7185D620A4A539B13A86E9A26CBBF--></OBMOBC_SERVICES>
 
+<!--DF10ED49621B43269577708BADFC4BD0--><OBMOBC_SERVICES>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <OBMOBC_SERVICES_ID><![CDATA[DF10ED49621B43269577708BADFC4BD0]]></OBMOBC_SERVICES_ID>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <SERVICE><![CDATA[org.openbravo.mobile.core.TerminalLogLoader]]></SERVICE>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <DESCRIPTION><![CDATA[Transaction service which stores the terminal log on the server]]></DESCRIPTION>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <ROUTINGTYPE><![CDATA[Transaction]]></ROUTINGTYPE>
+<!--DF10ED49621B43269577708BADFC4BD0-->  <SERVER_RUNTIME><![CDATA[OBSTSYN_ON_CENTRAL]]></SERVER_RUNTIME>
+<!--DF10ED49621B43269577708BADFC4BD0--></OBMOBC_SERVICES>
+
 <!--EAB3A653E7DF4836BD368C49383F3D52--><OBMOBC_SERVICES>
 <!--EAB3A653E7DF4836BD368C49383F3D52-->  <OBMOBC_SERVICES_ID><![CDATA[EAB3A653E7DF4836BD368C49383F3D52]]></OBMOBC_SERVICES_ID>
 <!--EAB3A653E7DF4836BD368C49383F3D52-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 106da55fdd88 src/org/openbravo/mobile/core/MobileCoreComponentProvider.java
--- a/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java	Wed Nov 14 19:17:40 2018 +0100
+++ b/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java	Mon Dec 10 12:28:35 2018 +0100
@@ -74,7 +74,6 @@
     final ArrayList<String> jsDependency = new ArrayList<String>();
     jsDependency.add("utils/ob-check"); // must be first because don't want to load a wrong url
     jsDependency.add("utils/ob-debug"); // must be second because the OB namespace is defined in it
-    jsDependency.add("utils/ob-loghumanaction");
     jsDependency.add("utils/ob-dom-extension");
     jsDependency.add("utils/ob-versionmanagement");
     jsDependency.add("main");
@@ -93,6 +92,8 @@
     jsDependency.add("data/ob-model");
     jsDependency.add("data/ob-windowmodel");
     jsDependency.add("component/ob-dateformat");
+    jsDependency.add("model/terminal-log");
+    jsDependency.add("utils/ob-terminal-log");
     jsDependency.add("component/ob-terminal-component");
     jsDependency.add("model/ob-router");
     jsDependency.add("model/ob-terminal-model");
@@ -134,6 +135,7 @@
     jsDependency.add("component/ob-markdown");
     jsDependency.add("component/ob-performancetest");
     jsDependency.add("offline/ob-fetch-manifest");
+    jsDependency.add("utils/terminal-log-sync-utils");
 
 
     final ArrayList<String> jsRetailDependency = new ArrayList<String>();
diff -r 106da55fdd88 src/org/openbravo/mobile/core/TerminalLogLoader.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/mobile/core/TerminalLogLoader.java	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,173 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+package org.openbravo.mobile.core;
+
+import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.database.ConnectionProvider;
+import org.openbravo.mobile.core.process.DataSynchronizationImportProcess;
+import org.openbravo.mobile.core.process.DataSynchronizationProcess;
+import org.openbravo.mobile.core.process.DataSynchronizationProcess.DataSynchronization;
+import org.openbravo.service.db.DalConnectionProvider;
+import org.openbravo.service.json.JsonConstants;
+
+@DataSynchronization(entity = "OBMOBC_TerminalLog")
+public class TerminalLogLoader extends DataSynchronizationProcess implements
+    DataSynchronizationImportProcess {
+
+  private static final Logger log = Logger.getLogger(TerminalLogLoader.class);
+
+  protected String getImportQualifier() {
+    return "OBMOBC_TerminalLog";
+  }
+
+  @Override
+  protected boolean bypassPreferenceCheck() {
+    return true;
+  }
+
+  public JSONObject saveRecord(JSONObject jsonEvents) throws Exception {
+
+    try {
+
+      // since we do a rollback in case of error, if using syncronized mode we ensure we don't
+      // rollback other models.
+      OBDal.getInstance().commitAndClose();
+
+      JSONArray events = new JSONArray(jsonEvents.getString("events"));
+      String deviceid = jsonEvents.getString("terminal");
+      String cache_session_id = jsonEvents.getString("cacheSessionId");
+
+      String processName;
+      JSONObject processInfo;
+      String processId;
+      String elementId;
+
+      String tstamp;
+      String context;
+      String isonline;
+      String loglevel = "";
+      String msg = "";
+      String ad_org_id;
+      String ad_client_id;
+      String created;
+      String createdby;
+      String updated;
+      String updatedby;
+
+      ConnectionProvider cp = new DalConnectionProvider(false);
+
+      ad_client_id = OBContext.getOBContext().getCurrentClient().getId();
+      ad_org_id = OBContext.getOBContext().getCurrentOrganization().getId();
+      createdby = OBContext.getOBContext().getUser().getId();
+
+      final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
+
+      for (int i = 0; i < events.length(); i++) {
+
+        JSONObject event = events.getJSONObject(i);
+
+        Timestamp timestamp = new Timestamp(Long.parseLong(event.getString("d")));
+
+        created = dateFormatter.format(new Date(timestamp.getTime()));
+        updated = created;
+        updatedby = createdby;
+        tstamp = String.valueOf(timestamp.getTime());
+        context = event.getString("c");
+        isonline = String.valueOf(event.getString("o").equals("true") ? "Y" : "N");
+
+        if (event.has("e")) {
+          elementId = "    -    (" + event.getString("e") + ")";
+        } else {
+          elementId = "";
+        }
+
+        switch (event.getString("t")) {
+        case "k":
+          loglevel = "UserAction";
+          msg = "Typed: " + event.getString("k") + elementId;
+          break;
+        case "b":
+          loglevel = "UserAction";
+          msg = "Clicked on '" + event.getString("b") + "'" + elementId;
+          break;
+        case "bk":
+          loglevel = "UserAction";
+          msg = "Clicked on '" + event.getString("b") + "'" + elementId;
+          break;
+        case "s":
+          loglevel = "Process";
+          processName = event.getString("v");
+          processInfo = new JSONObject(event.getString("i"));
+          processId = processInfo.getString("id");
+          msg = "Process:  " + processName + " - started      -      (" + processId + ")";
+          break;
+        case "f":
+          loglevel = "Process";
+          processName = event.getString("v");
+          processInfo = new JSONObject(event.getString("i"));
+          processId = processInfo.getString("id");
+          msg = "Process:  " + processName + " - finished    -      (" + processId + ")";
+          break;
+        default:
+          log.warn("Event " + event.getString("t") + " no supported");
+        }
+
+        UserEventLoaderQueriesData.insertUserEventLog(cp, //
+            ad_client_id, //
+            ad_org_id, //
+            created, //
+            createdby, //
+            updated, //
+            updatedby, //
+            tstamp, //
+            deviceid, //
+            context, //
+            msg, //
+            loglevel, //
+            cache_session_id, //
+            isonline //
+            );
+
+      }
+
+    } catch (Exception e) {
+      OBDal.getInstance().rollbackAndClose();
+      log.error("Could not save UserEvent log with info: " + jsonEvents.toString());
+    }
+    return successMessage();
+  }
+
+  private JSONObject successMessage() throws Exception {
+    final JSONObject jsonResponse = new JSONObject();
+
+    jsonResponse.put(JsonConstants.RESPONSE_STATUS, JsonConstants.RPCREQUEST_STATUS_SUCCESS);
+    jsonResponse.put("result", "0");
+    return jsonResponse;
+  }
+
+  @Override
+  protected String getProperty() {
+    return "OBMOBC_TerminalLog";
+  }
+
+  @Override
+  public String getAppName() {
+    return "Mobile Core";
+  }
+
+}
\ No newline at end of file
diff -r 106da55fdd88 src/org/openbravo/mobile/core/UserEventLoaderQueries_data.xsql
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/mobile/core/UserEventLoaderQueries_data.xsql	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+-->
+
+
+
+
+
+<SqlClass name="UserEventLoaderQueriesData" package="org.openbravo.mobile.core">
+  <SqlMethod name="dummy" type="preparedStatement" return="single">
+    <Sql>
+      <![CDATA[
+      SELECT '' as clientId, '' as counter FROM dual
+      ]]>
+    </Sql>
+  </SqlMethod>
+  <SqlMethod name="insertUserEventLog" type="preparedStatement" connection="false" return="rowCount">
+    <Sql>
+      <![CDATA[
+            insert into obmobc_logclient
+            (
+                obmobc_logclient_id, ad_client_id, ad_org_id, isactive,
+                created, createdby,
+                updated, updatedby,
+                tstamp, deviceid, context, msg,
+                loglevel, cache_session_id, isonline
+            )
+            values
+            (
+                get_uuid(), ?, ?, 'Y',
+                to_timestamp(to_char(?), to_char('DD-MM-YYYY HH24:MI:SS')), ?,
+                to_timestamp(to_char(?), to_char('DD-MM-YYYY HH24:MI:SS')), ?,
+                to_number(?), ?, ?, ?,
+                ?, ?, ?
+            )
+      ]]>
+    </Sql>
+    <Field name="rownum" value="count"/>
+    <Parameter name="ad_client_id"/>
+    <Parameter name="ad_org_id"/>
+    <Parameter name="created"/>
+    <Parameter name="createdby"/>
+    <Parameter name="updated"/>
+    <Parameter name="updatedby"/>
+    <Parameter name="tstamp"/>
+    <Parameter name="deviceid"/>
+    <Parameter name="context"/>
+    <Parameter name="msg"/>
+    <Parameter name="loglevel"/>
+    <Parameter name="cache_session_id"/>
+    <Parameter name="isonline"/>
+  </SqlMethod>
+</SqlClass>
diff -r 106da55fdd88 src/org/openbravo/mobile/core/importprocess/TerminalLogImportEntryProcessor.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/mobile/core/importprocess/TerminalLogImportEntryProcessor.java	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,50 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+package org.openbravo.mobile.core.importprocess;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.openbravo.base.weld.WeldUtils;
+import org.openbravo.mobile.core.TerminalLogLoader;
+import org.openbravo.mobile.core.process.DataSynchronizationProcess;
+import org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable;
+import org.openbravo.service.importprocess.ImportEntry;
+import org.openbravo.service.importprocess.ImportEntryManager.ImportEntryQualifier;
+import org.openbravo.service.importprocess.ImportEntryProcessor;
+
+/**
+ * Encapsulates the {@link TerminalLogLoader} in a thread.
+ */
+@ImportEntryQualifier(entity = "OBMOBC_TerminalLog")
+@ApplicationScoped
+public class TerminalLogImportEntryProcessor extends ImportEntryProcessor {
+
+  protected ImportEntryProcessRunnable createImportEntryProcessRunnable() {
+    return WeldUtils.getInstanceFromStaticBeanManager(TerminalLogLoaderRunnable.class);
+  }
+
+  protected boolean canHandleImportEntry(ImportEntry importEntryInformation) {
+    return "OBMOBC_TerminalLog".equals(importEntryInformation.getTypeofdata());
+  }
+
+  protected String getProcessSelectionKey(ImportEntry importEntry) {
+    return importEntry.getOrganization().getId();
+  }
+
+  @Override
+  protected boolean enableArchive() {
+    return false;
+  }
+
+  private static class TerminalLogLoaderRunnable extends MobileImportEntryProcessorRunnable {
+    protected Class<? extends DataSynchronizationProcess> getDataSynchronizationClass() {
+      return TerminalLogLoader.class;
+    }
+  };
+}
diff -r 106da55fdd88 src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java
--- a/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java	Wed Nov 14 19:17:40 2018 +0100
+++ b/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java	Mon Dec 10 12:28:35 2018 +0100
@@ -331,6 +331,7 @@
       jsonObject.put("name", process.getName());
       jsonObject.put("searchkey", process.getSearchkey());
       jsonObject.put("description", process.getDescription());
+      jsonObject.put("terminallog", process.isTerminalLog());
       respArray.put(jsonObject);
     }
     return respArray;
diff -r 106da55fdd88 src/org/openbravo/mobile/core/process/SecuredJSONProcess.java
--- a/src/org/openbravo/mobile/core/process/SecuredJSONProcess.java	Wed Nov 14 19:17:40 2018 +0100
+++ b/src/org/openbravo/mobile/core/process/SecuredJSONProcess.java	Mon Dec 10 12:28:35 2018 +0100
@@ -138,7 +138,7 @@
           return false;
         }
       } else {
-        log.warn("Not checking form access for " + this.getClass());
+        log.debug("Not checking form access for " + this.getClass());
       }
 
       if (bypassPreferenceCheck()) {
diff -r 106da55fdd88 src/org/openbravo/mobile/core/utils/LogClientLoader.java
--- a/src/org/openbravo/mobile/core/utils/LogClientLoader.java	Wed Nov 14 19:17:40 2018 +0100
+++ b/src/org/openbravo/mobile/core/utils/LogClientLoader.java	Mon Dec 10 12:28:35 2018 +0100
@@ -94,8 +94,8 @@
     final JSONObject jsonMsg = new JSONObject(jsonMsgString);
 
     final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
-
-    final String strCreated = dateFormatter.format(new Date(jsonMsg.getLong("created")));
+    final Long timestamp = jsonMsg.getLong("created");
+    final String strCreated = dateFormatter.format(new Date(timestamp));
     final String strCreatedBy;
     if (jsonMsg.has("createdby")) {
       strCreatedBy = jsonMsg.getString("createdby");
@@ -106,6 +106,7 @@
     final String strMsg = jsonMsg.getString("msg");
     final String strLogLevel = jsonMsg.getString("loglevel");
     final String strCacheSessionId = jsonMsg.getString("cacheSessionId");
+    final String strContext = jsonMsg.getString("context");
     final String isOnline;
     if (jsonMsg.has("isOnline")) {
       isOnline = (jsonMsg.getString("isOnline").equals("true") ? "Y" : "N");
@@ -119,11 +120,11 @@
         + "          (obmobc_logclient_id, ad_client_id, ad_org_id, isactive,"
         + "           created, createdby," //
         + "           updated, updatedby,"
-        + "           deviceid, msg, loglevel, cache_session_id, isonline) values"
+        + "           tstamp, deviceid, context, msg, loglevel, cache_session_id, isonline) values"
         + "           (?, ?, ?, 'Y',"
         + "           to_timestamp(to_char(?), to_char('DD-MM-YYYY HH24:MI:SS')), ?,"
         + "           to_timestamp(to_char(?), to_char('DD-MM-YYYY HH24:MI:SS')), ?,"
-        + "           ?, ?, ?, ?, ?)";
+        + "           ?, ?, ?, ?, ?, ?, ?)";
 
     PreparedStatement st = null;
 
@@ -137,11 +138,13 @@
       UtilSql.setValue(st, 5, 12, null, strCreatedBy);
       UtilSql.setValue(st, 6, 12, null, strCreated);
       UtilSql.setValue(st, 7, 12, null, strCreatedBy);
-      UtilSql.setValue(st, 8, 12, null, strDeviceId);
-      UtilSql.setValue(st, 9, 12, null, strMsg);
-      UtilSql.setValue(st, 10, 12, null, strLogLevel);
-      UtilSql.setValue(st, 11, 12, null, strCacheSessionId);
-      UtilSql.setValue(st, 12, 12, null, isOnline);
+      UtilSql.setValue(st, 8, 2, null, String.valueOf(timestamp));
+      UtilSql.setValue(st, 9, 12, null, strDeviceId);
+      UtilSql.setValue(st, 10, 12, null, strContext);
+      UtilSql.setValue(st, 11, 12, null, strMsg);
+      UtilSql.setValue(st, 12, 12, null, strLogLevel);
+      UtilSql.setValue(st, 13, 12, null, strCacheSessionId);
+      UtilSql.setValue(st, 14, 12, null, isOnline);
 
       st.executeUpdate();
 
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/component/ob-commonbuttons.js
--- a/web/org.openbravo.mobile.core/source/component/ob-commonbuttons.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/component/ob-commonbuttons.js	Mon Dec 10 12:28:35 2018 +0100
@@ -322,6 +322,7 @@
     }
   },
   show: function (args) {
+    OB.UTIL.TerminalLog.addPopup(this.name, "open");
     var resp = true;
 
     // While in poup, disable focusKeeper
@@ -366,6 +367,7 @@
     this.hide(inEvent.args);
   },
   hide: function (args) {
+    OB.UTIL.TerminalLog.addPopup(this.name, "close");
     var resp = true;
     var executeOBEvents = true;
     if (args && args.ignoreOBEvents && args.ignoreOBEvents === true) {
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/model/logclient.js
--- a/web/org.openbravo.mobile.core/source/model/logclient.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/model/logclient.js	Mon Dec 10 12:28:35 2018 +0100
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012-2016 Openbravo S.L.U.
+ * Copyright (C) 2012-2018 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -39,6 +39,10 @@
     column: 'cacheSessionId',
     type: 'TEXT'
   }, {
+    name: 'context',
+    column: 'context',
+    type: 'TEXT'
+  }, {
     name: 'msg',
     column: 'msg',
     type: 'TEXT'
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/model/ob-terminal-model.js
--- a/web/org.openbravo.mobile.core/source/model/ob-terminal-model.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/model/ob-terminal-model.js	Mon Dec 10 12:28:35 2018 +0100
@@ -77,6 +77,8 @@
     pricelistversion: null,
     currency: null,
     connectedToERP: null,
+    terminalLogContext: 'refresh(F5)',
+    terminalLogContextPopUp: [],
     loginUtilsUrl: '../../org.openbravo.mobile.core.loginutils',
     loginUtilsParams: {},
     supportsOffline: false,
@@ -108,7 +110,16 @@
     },
     shouldExecuteBenchmark: false,
     propertiesLoaders: [],
-    dataSyncModels: []
+    dataSyncModels: [{
+      name: 'OBMOBC_TerminalLog',
+      model: OB.Model.TerminalLog,
+      modelFunc: 'OB.Model.TerminalLog',
+      className: 'org.openbravo.mobile.core.TerminalLogLoader',
+      criteria: {},
+      getIdentifier: function (model) {
+        return 'User event ' + model.get('id');
+      }
+    }]
   },
 
   initialize: function () {
@@ -199,6 +210,14 @@
           pushState: false
         });
       }, 0);
+
+      OB.UTIL.TerminalLog.restoreFromBackup();
+      OB.UTIL.activateTerminalLogBackup();
+
+      window.addEventListener("beforeunload", function () {
+        OB.UTIL.TerminalLog.doBackup();
+        OB.info("Done user event log backup, before an unload");
+      }, true); // needed true to capture the event before propagate, if not, on logout not always do the backup
     }, false);
   },
 
@@ -400,6 +419,9 @@
       pReplace = true;
     }
     OB.debug("Navigating to '" + route + "' Replace: " + pReplace);
+    if (route) {
+      this.set('terminalLogContext', route);
+    }
     OB.MobileApp.view.keyReceivers.splice(0, OB.MobileApp.view.keyReceivers.length);
     this.router.navigate(route, {
       trigger: true,
@@ -707,6 +729,10 @@
         if (modelChecksum === '') {
           return;
         }
+        //TerminalLog synchronization shouldn't be mandatory for tests
+        if (modelName === 'TerminalLog') {
+          return;
+        }
         var promiseOfModelToVerify = new Promise(function (resolve, reject) {
           var syncModel = OB.MobileApp.model.getSyncModel(model);
           if (syncModel) {
@@ -899,7 +925,7 @@
     });
   },
   doPostSynchronizedCallActions: function (callback, syncData) {
-    if (OB.UTIL.localStorage.getItem('synchronizedMessageId') === syncData.messageId) {
+    if (OB.UTIL.isNullOrUndefined(OB.UTIL.localStorage.getItem('synchronizedMessageId')) || OB.UTIL.localStorage.getItem('synchronizedMessageId') === syncData.messageId) {
       OB.UTIL.localStorage.removeItem('synchronizedMessageId');
     } else {
       OB.error("Message id of the last request doesn't much with the current messageId");
@@ -1133,7 +1159,9 @@
           }
           // success. Elements can be now deleted from the database
           var removeSyncedElemsCallback = function (tx) {
-              OB.info("Purging the '" + OB.Dal.getTableName(model) + "' table");
+              if (OB.Dal.getTableName(model) !== 'OBMOBC_TerminalLog') {
+                OB.info("Purging the '" + OB.Dal.getTableName(model) + "' table");
+              }
               var promises = [];
 
               if (modelObj.successSendModel) {
@@ -1177,7 +1205,9 @@
                   me.syncModel();
                   return;
                 }
-                OB.info("The table '" + OB.Dal.getTableName(model) + "' has been fully synchronized with the server");
+                if (OB.Dal.getTableName(model) !== 'OBMOBC_TerminalLog') {
+                  OB.info("The table '" + OB.Dal.getTableName(model) + "' has been fully synchronized with the server");
+                }
               }, function (err) {
                 OB.error("Could not purge the '" + OB.Dal.getTableName(model) + "' table. Error message: " + err);
               });
@@ -1332,6 +1362,13 @@
    */
   syncAllModels: function (successCallback, errorCallback) {
     var me = this;
+    OB.UTIL.TerminalLog.packageEvents(function () {
+      me.syncAllModelsImpl(successCallback, errorCallback);
+    });
+  },
+
+  syncAllModelsImpl: function (successCallback, errorCallback) {
+    var me = this;
 
     // if the user is not authenticated, the server will reject all the connections
     if (!OB.MobileApp.model.isUserAuthenticated()) {
@@ -1694,6 +1731,18 @@
     OB.MobileApp.model.set('modelsToLoad', []);
 
     OB.UTIL.activateLogClient();
+    if (OB.MobileApp.model.get('permissions') && (
+    OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogUserActions', true) || OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogProcess', true))) {
+      OB.UTIL.activateTerminalLogSync();
+    } else {
+      OB.UTIL.stopTerminalLogBackup();
+      window.removeEventListener("beforeunload", function () {
+        OB.UTIL.TerminalLog.doBackup();
+        OB.info("Done terminal log backup, before an unload");
+      }, true); // needed true to capture the event before propagate, if not, on logout not always do the backup
+      OB.UTIL.TerminalLog.deleteBackup();
+      OB.info("Terminal log is disabled because both preferences (OBMOBC_EnableTerminalLogUserActions and OBMOBC_EnableTerminalLogProcess) are set to false.");
+    }
 
     var countOfLoadedWindows = 0;
     var registeredWindows = this.windowRegistry.registeredWindows;
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/model/terminal-log.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/org.openbravo.mobile.core/source/model/terminal-log.js	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,42 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+/*global Backbone */
+
+(function () {
+  var TerminalLog = OB.Data.ExtensibleModel.extend({
+    modelName: 'TerminalLog',
+    tableName: 'OBMOBC_TerminalLog',
+    entityName: 'OBMOBC_TerminalLog',
+    source: '',
+    local: true
+  });
+
+  TerminalLog.addProperties([{
+    name: 'id',
+    column: 'terminallog_id',
+    primaryKey: true,
+    type: 'TEXT'
+  }, {
+    name: 'terminal',
+    column: 'terminal',
+    type: 'TEXT'
+  }, {
+    name: 'cacheSessionId',
+    column: 'cacheSessionId',
+    type: 'TEXT'
+  }, {
+    name: 'events',
+    column: 'events',
+    type: 'TEXT'
+  }]);
+
+
+  OB.Data.Registry.registerModel(TerminalLog);
+}());
\ No newline at end of file
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js
--- a/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js	Mon Dec 10 12:28:35 2018 +0100
@@ -89,10 +89,10 @@
   // List of default filters
   defaults: [],
 
-  // Get component to filter render 
+  // Get component to filter render
   renderInfo: function () {
     return null;
-    // Example: 
+    // Example:
     // return {
     //   kind: 'FilterExample',
     //     getFilterCondition: function () {
@@ -171,14 +171,14 @@
     return null;
   },
 
-  // Function to post process filtered collection 
+  // Function to post process filtered collection
   //
   // function (collection, callback);
   //	collection: Collection of filtered items
   //    callback: Callback function to be called when post processing finish
   postProcess: null,
 
-  // Add attributes to show 
+  // Add attributes to show
   addItemAttributes: function (item, attr) {
     var filterAttr = item.get("filterAttr");
     if (!filterAttr) {
@@ -456,7 +456,7 @@
         me.categories.reset();
       }
       // Verify if have a category tree
-      var select = "select tree.category_id, sum(case when pc.m_product_category_id is null then 0 else 1 end) as childs " // 
+      var select = "select tree.category_id, sum(case when pc.m_product_category_id is null then 0 else 1 end) as childs " //
       + "from m_product_category_tree tree left join m_product_category_tree child on tree.category_id = child.parent_id " //
       + "left join m_product_category pc on pc.m_product_category_id = child.category_id " //
       + "where tree.parent_id = '0' group by tree.category_id order by tree.seqno";
@@ -602,7 +602,7 @@
       OB.UI.SearchProductCharacteristic.postProcessCustomFilters.push(filter);
     }
   },
-  // Render custom filters 
+  // Render custom filters
   filtersCustomRender: function () {
     var index = 0,
         me = this,
@@ -1026,7 +1026,7 @@
             }
           }
         });
-        // Notify to filters 
+        // Notify to filters
         this.customFilters.forEach(function (filter) {
           filter.doAddProduct({
             product: model,
@@ -1259,6 +1259,7 @@
     this.$.searchProductCharacteristicHeader.disableFilterButtons(value);
   },
   searchAction: function (inSender, inEvent) {
+    var execution = OB.UTIL.ProcessController.start('searchProduct');
     this.$.products.hide();
     this.$.renderLoading.show();
     this.params = [];
@@ -1537,7 +1538,7 @@
             remoteCriteria.push(brandfilter);
           }
         }
-        // product name and category 
+        // product name and category
         if (productFilterText !== undefined && productCategory) {
           // characteristic filter
           if (me.model.get('filter').length > 0) {
@@ -1900,5 +1901,6 @@
         }
       }
     });
+    OB.UTIL.ProcessController.finish('searchProduct', execution);
   }
 });
\ No newline at end of file
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-dom-extension.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-dom-extension.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/utils/ob-dom-extension.js	Mon Dec 10 12:28:35 2018 +0100
@@ -29,7 +29,7 @@
     var elmt = _.find(event.path, function (el) {
       return el.tagName === 'BUTTON';
     }) || event.target;
-    OB.UTIL.humanAction.push(elmt);
+    OB.UTIL.TerminalLog.addButtonClick(elmt);
     avoidDoubleClick(event, elmt);
   }
   var debounceMouseDown = _.debounce(mouseDown, 1);
@@ -40,7 +40,7 @@
   });
   document.onkeydown = function (k) {
     if (k.key) {
-      OB.UTIL.humanAction.push(k.key);
+      OB.UTIL.TerminalLog.addKeyPress(k);
     }
   };
 }());
\ No newline at end of file
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-loghumanaction.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-loghumanaction.js	Wed Nov 14 19:17:40 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- ************************************************************************************
- * Copyright (C) 2018 Openbravo S.L.U.
- * Licensed under the Openbravo Commercial License version 1.0
- * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
- * or in the legal folder of this module distribution.
- ************************************************************************************
- *
- * Author MDJ
- *
- */
-
-/*global OB, _, moment */
-
-/**
- * API to log human action to save as log client messages
- *
- */
-
-(function () {
-  OB.UTIL = window.OB.UTIL || {};
-  OB.UTIL.humanAction = {
-    messages: [],
-    messagesLength: 50,
-    push: function (elmt) {
-      var message = '[' + moment().format("HH:mm:ss.SSS") + '] ';
-      if (typeof (elmt) === 'string' && elmt !== "") {
-        message = message + "Key pressed: " + elmt;
-      } else {
-        var ids = elmt.id.split('_');
-        message = message + "'" + (elmt.textContent ? elmt.textContent : ids[ids.length - 1]) + "' in context: '" + elmt.id.substring(elmt.id.length - 40) + "'";
-      }
-      if (this.messages.length >= 50) {
-        this.messages.shift();
-      }
-      this.messages.push(message);
-    },
-    getActionsLog: function () {
-      var i, message = '\n \n [Human Action Log]: \n';
-      if (this.messages.length > 0) {
-        for (i = 0; i < this.messages.length; i++) {
-          message = message + '\t' + (i + 1) + '.- ' + this.messages[i] + '\n';
-        }
-        return message;
-      }
-      return "";
-    }
-  };
-
-}());
\ No newline at end of file
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-processcontroller.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-processcontroller.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/utils/ob-processcontroller.js	Mon Dec 10 12:28:35 2018 +0100
@@ -24,6 +24,7 @@
       name: null,
       searchkey: null,
       description: null,
+      terminallog: null,
       subscriptions: [],
       //List of components subscribed to the process
       executions: new Backbone.Collection() //List of process instances in execution
@@ -33,6 +34,7 @@
         this.set('name', attributes.name);
         this.set('searchkey', attributes.searchkey);
         this.set('description', attributes.description);
+        this.set('terminallog', attributes.terminallog);
         this.set('subscriptions', []);
         this.set('executions', new Backbone.Collection());
       }
@@ -123,6 +125,9 @@
           obj.processStarted(execProcess, execution, me.getProcessesInExecByOBj(obj));
         }
       });
+      if (execProcess.get('terminallog')) {
+        OB.UTIL.TerminalLog.addProcess(searchkey, execution, 'start');
+      }
       return execution;
     },
     finish: function (searchkey, execution) {
@@ -135,6 +140,9 @@
           obj.processFinished(execProcess, execution, me.getProcessesInExecByOBj(obj));
         }
       });
+      if (execProcess.get('terminallog')) {
+        OB.UTIL.TerminalLog.addProcess(searchkey, execution, 'finish');
+      }
     },
     subscribe: function (processesSearchKey, obj) {
       //Ignore components with no processes defined 
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-terminal-log.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/org.openbravo.mobile.core/source/utils/ob-terminal-log.js	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,245 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+/*global OB, _, moment */
+
+/**
+ * API to log user action and processes start and finish
+ *
+ */
+
+(function () {
+  OB.UTIL = window.OB.UTIL || {};
+  OB.UTIL.TerminalLog = {
+    events: [],
+    eventsMaximumNumber: 10000,
+    addKeyPress: function (elmt) {
+      if (OB.MobileApp.model.get('permissions') && !OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogUserActions', true)) {
+        return;
+      }
+
+      if (this.events.length >= this.eventsMaximumNumber) {
+        return;
+      }
+
+      var keyName = elmt.key;
+      var password = false;
+      if (elmt.dispatchTarget.type === "password" && keyName !== "Enter" && keyName !== 'Tab') {
+        // don't save log of key pressed in input type password
+        keyName = '';
+        password = true;
+      }
+      var ids = elmt.srcElement.id.split('_');
+      var previousEvent = this.events[this.events.length - 1];
+      var context = this.getContext(ids);
+      if (previousEvent && previousEvent.t === 'k' && previousEvent.c === context && previousEvent.k.substr(previousEvent.k.length - 3) !== 'Tab') {
+        if (!password) {
+          this.events[this.events.length - 1].k += ', ' + keyName;
+        }
+      } else {
+        var event = this.getNewEvent(context);
+        event.t = 'k';
+        if (password) {
+          event.k = '[password] ' + keyName;
+        } else {
+          event.k = keyName;
+          event.e = this.getElemFromIds(ids);
+        }
+        this.events.push(event);
+      }
+    },
+    addButtonClick: function (elmt) {
+      if (OB.MobileApp.model.get('permissions') && !OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogUserActions', true)) {
+        return;
+      }
+      var isKeyPadButton = function (txt, ids) {
+          // keypadcontainer include all the numbers and '.' of keypad, and also all the coins. But it don't include others like enter, backspace or + , -, etc
+          return txt.search(/[0-9.]+/) === 0 && ids['6'] === 'keypadcontainer';
+          };
+      if (this.events.length >= this.eventsMaximumNumber) {
+        return;
+      }
+      var ids = elmt.id.split('_');
+      var buttonName = this.getButtonName(elmt, ids);
+      var previousEvent = this.events[this.events.length - 1];
+      var context = this.getContext(ids);
+
+      if (isKeyPadButton(buttonName, ids) && previousEvent && previousEvent.t === 'bk' && previousEvent.c === context) {
+        previousEvent.b += ', ' + buttonName;
+      } else {
+        var event = this.getNewEvent(context);
+        event.t = isKeyPadButton(buttonName, ids) ? 'bk' : 'b';
+        event.b = buttonName;
+        event.e = this.getElemFromIds(ids);
+        this.events.push(event);
+      }
+    },
+    getButtonName: function (elmt, ids) {
+      var buttonName = '';
+      if (elmt.tagName === 'INPUT') {
+        buttonName += ' [input_field] ';
+      }
+      if (elmt.textContent) {
+        // button label text
+        buttonName += elmt.textContent;
+      } else {
+        var backgroundImg = window.getComputedStyle(document.getElementById(elmt.id)).getPropertyValue("background-image");
+        if (backgroundImg) {
+          buttonName += backgroundImg.replace(/.*\/(icon)?([^.]+)\..*/, '$2');
+        } else {
+          //if not, use the enyo object name
+          buttonName += ids[ids.length - 1];
+          if (buttonName === 'button') {
+            // for keypad use the enyo parent
+            buttonName += ids[ids.length - 2];
+          }
+
+          // make more clean the guessed name form enyo object (i case insensitive, g all ocurrences)
+          buttonName = buttonName.replace(/button/ig, '');
+          buttonName = buttonName.replace(/btn/ig, '');
+          buttonName = buttonName.replace(/entity/ig, '');
+        }
+      }
+      if (buttonName.length > 60) {
+        buttonName = buttonName.substring(0, 60) + '[...]';
+      }
+      return buttonName;
+    },
+    getContext: function (ids) {
+      var context = [];
+      context.push(OB.MobileApp.model.get('terminalLogContext'));
+      if (ids && (!OB.MobileApp.model.get('terminalLogContextPopUp') || OB.MobileApp.model.get('terminalLogContextPopUp').length === 0)) {
+        context.push(this.getContextFromIds(ids));
+      } else {
+        var terminalLogContextPopUp = OB.MobileApp.model.get('terminalLogContextPopUp');
+        if (terminalLogContextPopUp && terminalLogContextPopUp.length > 0) {
+          context = context.concat(terminalLogContextPopUp);
+        }
+      }
+      var contextString = context.join("  |  ");
+      if (contextString.length > 250) {
+        contextString = contextString.substring(1, 245) + '[...]';
+      }
+      return contextString;
+    },
+    getContextFromIds: function (ids) {
+      return ids[3] + " - " + ids[4];
+    },
+    getElemFromIds: function (ids) {
+      return ids[ids.length - 2] + " - " + ids[ids.length - 1];
+    },
+    addProcess: function (name, id, status) {
+      if (OB.MobileApp.model.get('permissions') && !OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogProcess', true)) {
+        return;
+      }
+      if (this.events.length >= this.eventsMaximumNumber) {
+        return;
+      }
+
+      var event = this.getNewEvent();
+      if (status === 'start') {
+        event.t = 's';
+        event.v = name;
+        event.i = id;
+      } else if (status === 'finish') {
+        event.t = 'f';
+        event.v = name;
+        event.i = id;
+      } else {
+        OB.warn("Called OB.UTIL.TerminalLog.addProcess with status '" + status + "', but this status is not one of accepted ones.");
+      }
+      this.events.push(event);
+    },
+    addPopup: function (popupName, status) {
+      if (OB.MobileApp.model.get('permissions') && !OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogUserActions', true) && !OB.MobileApp.model.hasPermission('OBMOBC_EnableTerminalLogProcess', true)) {
+        return;
+      }
+      var terminalLogContextPopUp = OB.MobileApp.model.get('terminalLogContextPopUp');
+      var index = terminalLogContextPopUp.indexOf(popupName);
+      if (status === 'open') {
+        if (index < 0) {
+          // show could be executed when the popup is still visible
+          terminalLogContextPopUp.push(popupName);
+        }
+      } else if (status === 'close') {
+        if (index >= 0) {
+          terminalLogContextPopUp.splice(index, 1);
+        }
+      } else {
+        OB.warn("Called OB.UTIL.TerminalLog.addPopup with status '" + status + "', but this status is not one of accepted ones.");
+      }
+      OB.MobileApp.model.set('terminalLogContextPopUp', terminalLogContextPopUp);
+    },
+    getNewEvent: function (context) {
+      var event = {};
+      event.d = new Date().getTime();
+      event.o = OB.MobileApp.model.get('connectedToERP');
+      event.c = context ? context : this.getContext();
+      return event;
+    },
+    getEventsLog: function () {
+      return this.events;
+    },
+    packageEvents: function (successCallback) {
+
+      function callSuccessCallback() {
+        if (successCallback) {
+          successCallback();
+        }
+      }
+
+      if (!OB.MobileApp.model) {
+        // check if application is available
+        return callSuccessCallback();
+      }
+      if (this.events.length === 0) {
+        // if nothing to package, don't do the package :)
+        return callSuccessCallback();
+      }
+
+      if (OB.MobileApp.model.get('sessionLost')) {
+        // if we are not logged it, we continue saving user events but we don't package and sync them
+        return callSuccessCallback();
+      }
+
+      // synchronous part
+      var eventPackage = new OB.Model.TerminalLog();
+      eventPackage.set('terminal', OB.MobileApp.model.get('logConfiguration').deviceIdentifier);
+      eventPackage.set('cacheSessionId', OB.UTIL.localStorage.getItem('cacheSessionId'));
+      eventPackage.set('events', JSON.stringify(this.events.slice())); // only clones first level, and events are immutable
+      this.events = [];
+      // asynchronous part
+      // inside a transaction
+      // delete backup
+      // save model to sync
+      OB.Dal.transaction(function (tx) {
+
+        OB.UTIL.TerminalLog.deleteBackup();
+        OB.Dal.saveInTransaction(tx, eventPackage, function () {
+          callSuccessCallback();
+        }, function () {
+          OB.error('Could not package events');
+          callSuccessCallback();
+        });
+      });
+    },
+    doBackup: function () {
+      OB.UTIL.localStorage.setItem('eventLogBackup', JSON.stringify(this.events));
+    },
+    restoreFromBackup: function () {
+      var eventsBackup = OB.UTIL.localStorage.getItem('eventLogBackup');
+      if (eventsBackup && eventsBackup !== "undefined") {
+        this.events = JSON.parse(eventsBackup);
+      }
+    },
+    deleteBackup: function () {
+      OB.UTIL.localStorage.setItem('eventLogBackup', JSON.stringify([]));
+    }
+  };
+}());
\ No newline at end of file
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-utilities.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-utilities.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/utils/ob-utilities.js	Mon Dec 10 12:28:35 2018 +0100
@@ -348,8 +348,6 @@
     try {
 
       var saveInServer = OB.UTIL.checkPermissionLog(logLevel, "save");
-      var humanLog = OB.UTIL.humanAction.getActionsLog();
-      var processesLog = OB.UTIL.ProcessController.getProcessesInExecLog();
 
       if (saveInServer) {
         var isSaveOnlyTraceOfCaller = true;
@@ -357,9 +355,6 @@
           isSaveOnlyTraceOfCaller = false;
         }
         var serverMessage = OB.UTIL.argumentsToStringifyed(args) + "; stackTrace: " + OB.UTIL.getStackTrace('OB.' + logLevel.toLowerCase(), isSaveOnlyTraceOfCaller);
-        if (logLevel === 'Error' || logLevel === "Critical") {
-          serverMessage = serverMessage + humanLog + processesLog;
-        }
         // cut the message
         serverMessage = (serverMessage.length < 100000000) ? serverMessage : serverMessage.substring(0, 100000000);
         OB.UTIL.saveLogClient(serverMessage, logLevel);
@@ -377,7 +372,6 @@
         } else if (logLevel === "Warn") {
           console.warn(consoleMessage);
         } else if (logLevel === "Error" || logLevel === "Critical") {
-          consoleMessage = consoleMessage + humanLog + processesLog;
           console.error(consoleMessage);
         } else {
           OB.UTIL.Debug.execute(function () {
@@ -472,10 +466,9 @@
         logClientModel.set('loglevel', level);
         logClientModel.set('msg', msg);
         logClientModel.set('deviceId', OB.MobileApp.model.get('logConfiguration').deviceIdentifier);
-        logClientModel.set('cacheSessionId', null);
-        if (OB.UTIL.localStorage.getItem('cacheSessionId') !== null) {
-          logClientModel.set('cacheSessionId', OB.UTIL.localStorage.getItem('cacheSessionId'));
-        }
+        logClientModel.set('context', OB.MobileApp.model.get('terminalLogContext'));
+        logClientModel.set('cacheSessionId', OB.UTIL.localStorage.getItem('cacheSessionId'));
+
         logClientModel.set('link', OB.UTIL.getStackLink());
 
         _.each(OB.MobileApp.model.get('logConfiguration').logPropertiesExtension, function (f) {
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/ob-utilitiesui.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-utilitiesui.js	Wed Nov 14 19:17:40 2018 +0100
+++ b/web/org.openbravo.mobile.core/source/utils/ob-utilitiesui.js	Mon Dec 10 12:28:35 2018 +0100
@@ -210,6 +210,8 @@
           components = container.getComponents ? container.getComponents() : [],
           i, dialog;
 
+      OB.info("Opened popup: " + (title ? title : text));
+
       function getDialog() {
 
         // Allow display in a confirmation message a literal or a list of components or literal messages
diff -r 106da55fdd88 web/org.openbravo.mobile.core/source/utils/terminal-log-sync-utils.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/org.openbravo.mobile.core/source/utils/terminal-log-sync-utils.js	Mon Dec 10 12:28:35 2018 +0100
@@ -0,0 +1,61 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2018 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+/*global OB, console, _, Backbone*/
+
+(function () {
+
+  OB.UTIL = window.OB.UTIL || {};
+
+  OB.UTIL.activateTerminalLogSync = function () {
+    if (!OB.UTIL.terminalLogSyncIntervalId) {
+      var terminalLogIntervalInSecs;
+      if (OB.MobileApp.model.get('permissions')) {
+        terminalLogIntervalInSecs = OB.MobileApp.model.get('permissions').OBMOBC_TerminalLogSyncInterval;
+      }
+      if (!terminalLogIntervalInSecs) {
+        // default value for OBMOBC_TerminalLogSyncInterval
+        terminalLogIntervalInSecs = 30;
+      }
+      OB.UTIL.terminalLogSyncIntervalId = setInterval(function () {
+        OB.UTIL.TerminalLog.packageEvents();
+      }, terminalLogIntervalInSecs * 1000);
+    }
+  };
+
+  OB.UTIL.stopTerminalLogSync = function () {
+    if (OB.UTIL.terminalLogSyncIntervalId) {
+      clearInterval(OB.UTIL.terminalLogSyncIntervalId);
+      OB.UTIL.terminalLogSyncIntervalId = null;
+    }
+  };
+
+  OB.UTIL.activateTerminalLogBackup = function () {
+    if (!OB.UTIL.terminalLogBackupIntervalId) {
+      var terminalLogBackupIntervalInSecs;
+      if (OB.MobileApp.model.get('permissions')) {
+        terminalLogBackupIntervalInSecs = OB.MobileApp.model.get('permissions').OBMOBC_TerminalLogBackupInterval;
+      }
+      if (!terminalLogBackupIntervalInSecs) {
+        // default value for OBMOBC_TerminalLogBackupInterval
+        terminalLogBackupIntervalInSecs = 1;
+      }
+      OB.UTIL.terminalLogBackupIntervalId = setInterval(function () {
+        OB.UTIL.TerminalLog.doBackup();
+      }, terminalLogBackupIntervalInSecs * 1000);
+    }
+  };
+
+  OB.UTIL.stopTerminalLogBackup = function () {
+    if (OB.UTIL.terminalLogBackupIntervalId) {
+      clearInterval(OB.UTIL.terminalLogBackupIntervalId);
+      OB.UTIL.terminalLogBackupIntervalId = null;
+    }
+  };
+}());
\ No newline at end of file
