diff --git a/entity/SlaveAdministrationIntervall_entity/entityfields/save/onActionProcess.js b/entity/SlaveAdministrationIntervall_entity/entityfields/save/onActionProcess.js
index d8a3467b478c2c807a97e8c05d3d6bfa6a73dd47..2a7d8d8b0e01cd9ebe2313fbea3bbbcf18af6f28 100644
--- a/entity/SlaveAdministrationIntervall_entity/entityfields/save/onActionProcess.js
+++ b/entity/SlaveAdministrationIntervall_entity/entityfields/save/onActionProcess.js
@@ -1,11 +1,12 @@
+import("Sql_lib");
 import("system.neon");
 import("system.vars");
 import("system.db");
 
 var value = vars.getString("$field.intervall");
-var types = db.getColumnTypes("ASYS_SYNCSLAVES", ["INTERVALL"], "_____SYSTEMALIAS");
 var ids = JSON.parse(vars.get("$param.SlaveUIDs_param"));
+var cond = newWhere("ASYS_SYNCSLAVES.SLAVEUID", ids, SqlBuilder.IN()).toString();
 
-db.updateData("ASYS_SYNCSLAVES", ["INTERVALL"], [types], [value], "SLAVEUID in ('"+ ids.join("', '")+ "')", "_____SYSTEMALIAS");
+db.updateData("ASYS_SYNCSLAVES", ["INTERVALL"], null, [value], cond, SqlUtils.getSystemAlias());
 neon.closeImage(vars.get("$sys.currentimage"), true);
 neon.refreshAll();
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/contentTitleProcess.js b/entity/SlaveAdministration_entity/contentTitleProcess.js
index 12b78945bfe5ca68b590a5b89e7843c27ef9b176..8b4cb89d54b3dcd9531b10165e3dbc955937a554 100644
--- a/entity/SlaveAdministration_entity/contentTitleProcess.js
+++ b/entity/SlaveAdministration_entity/contentTitleProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("system.result");
 import("system.translate");
 
-result.string(translate.text("Slave administration") + " " + vars.get("$field.DESCRIPTION")+ " ist " + vars.get("$field.ACTIVE"));
\ No newline at end of file
+result.string(translate.withArguments("Slave administration '%0' is '%1'", [vars.get("$field.DESCRIPTION"), vars.get("$field.ACTIVE")]));
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/active/valueProcess.js b/entity/SlaveAdministration_entity/entityfields/active/valueProcess.js
index 382d79b36ed3ca1bb80c499ff845c8feefe40a5a..ad38fb46a87c9c8248ee2d4aec5c8a22fe7fbd5c 100644
--- a/entity/SlaveAdministration_entity/entityfields/active/valueProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/active/valueProcess.js
@@ -2,5 +2,5 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
     result.string("1");
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/bindata/onValueChange.js b/entity/SlaveAdministration_entity/entityfields/bindata/onValueChange.js
index 578038ed6a8b7b8860d69f83c01e0a37e94d5534..5a16b684c3891f2582af83c9182dbfb6e895fb2f 100644
--- a/entity/SlaveAdministration_entity/entityfields/bindata/onValueChange.js
+++ b/entity/SlaveAdministration_entity/entityfields/bindata/onValueChange.js
@@ -1,18 +1,19 @@
+import("system.translate");
 import("OfflineClientSync_lib");
 import("system.question");
 import("system.neon");
 import("system.vars");
 
 // based on the selected license, the SlaveID is used.
-if((vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW))
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
 {
     var licenseID = "";
     var binData = vars.get("$field.bindata");
-    if( binData != "" && binData != null )
+    if (binData != "" && binData != null )
     {
         licenseID = OfflineClientSyncUtils.getIDFromLicense(binData);
         vars.set("$field.SLAVEUID", licenseID);
     }
     else
-        question.showMessage("Die Datei enthielt keine Daten");
+        question.showMessage(translate.text("The file did not contain any data"));
 }
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/onActionProcess.js b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/onActionProcess.js
index 56f528384724dbb990ef3f174b938782447f5641..03cde2c39f828148062004329320564bb05d19c9 100644
--- a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/onActionProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/onActionProcess.js
@@ -1,11 +1,12 @@
+import("Sql_lib");
 import("system.neon");
 import("system.db");
 import("system.vars");
 
 var sysSelection = vars.get("$sys.selection");
 
-if(sysSelection.length > 0)
+if (sysSelection.length > 0)
 {
-    db.updateData('ASYS_SYNCSLAVES', ["DEVICEID"], null, [''], "ASYS_SYNCSLAVES.SLAVEUID in ('" + sysSelection.join("','") + "')");
-   neon.refresh();
+    db.updateData('ASYS_SYNCSLAVES', ["DEVICEID"], null, [''], newWhere("ASYS_SYNCSLAVES.SLAVEUID", sysSelection, SqlBuilder.IN()));
+    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/stateProcess.js b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/stateProcess.js
index 70206af1305d54bb3b7a1c20a98618c9b1dca1a9..fe8596d155be1d8e9c3851611ae6fed4e4b733fe 100644
--- a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/stateProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/deviceidreset/stateProcess.js
@@ -1,5 +1,6 @@
+import("Util_lib");
 import("system.vars");
 import("system.result");
 import("system.neon");
 
-(vars.get("$sys.selection")? result.string(neon.COMPONENTSTATE_EDITABLE) : result.string(neon.COMPONENTSTATE_INVISIBLE));
\ No newline at end of file
+result.string(!Utils.isNullOrEmpty(vars.get("$sys.selection")) ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/intervalset/onActionProcess.js b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/intervalset/onActionProcess.js
index 38413d1cfde480a2562f948918ff83f80d1500d7..63b9ac5eddf0420845c1b9ced2eeac6bc0c221b7 100644
--- a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/intervalset/onActionProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/intervalset/onActionProcess.js
@@ -2,7 +2,7 @@ import("system.vars");
 import("system.neon");
 
 var selection = vars.get("$sys.selection");
-if(selection.length > 0) 
+if (selection.length > 0) 
 {
     var params = {};
     params["SlaveUIDs_param"] = JSON.stringify(vars.get("$sys.selection"));
diff --git a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/lastsyncreset/onActionProcess.js b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/lastsyncreset/onActionProcess.js
index baf617e755288243abe4b646cc05570a964c7cad..f6b3a2b98ba86b8206ae24b590e41d2be2a7adce 100644
--- a/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/lastsyncreset/onActionProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/filterviewactiongroup/children/lastsyncreset/onActionProcess.js
@@ -1,11 +1,12 @@
+import("Sql_lib");
 import("system.neon");
 import("system.db");
 import("system.vars");
 
 var sysSelection = vars.get("$sys.selection");
 
-if(sysSelection.length > 0)
+if (sysSelection.length > 0)
 {
-    db.updateData('ASYS_SYNCSLAVES', ["LASTSYNC"], null, [''], "ASYS_SYNCSLAVES.SLAVEUID in ('" + sysSelection.join("','") + "')");
-   neon.refresh();
+    db.updateData('ASYS_SYNCSLAVES', ["LASTSYNC"], null, [''], newWhere("ASYS_SYNCSLAVES.SLAVEUID", sysSelection, SqlBuilder.IN()));
+    neon.refresh();
 }
\ No newline at end of file
diff --git a/entity/SlaveAdministration_entity/entityfields/mylastsync/valueProcess.js b/entity/SlaveAdministration_entity/entityfields/mylastsync/valueProcess.js
index dfb3fa4367f773a6863197215bf0597ad20fa225..1ee224aeb5766ef81c269120cea5469478ba3bda 100644
--- a/entity/SlaveAdministration_entity/entityfields/mylastsync/valueProcess.js
+++ b/entity/SlaveAdministration_entity/entityfields/mylastsync/valueProcess.js
@@ -4,8 +4,8 @@ import("Sql_lib");
 
 var user = vars.get("$sys.user");
 var res = newSelect("ASYS_SYNCSLAVES.LASTSYNC")
-.from("ASYS_SYNCSLAVES")
-.where("ASYS_SYNCSLAVES.DESCRIPTION", user)
-.cell();
+        .from("ASYS_SYNCSLAVES")
+        .where("ASYS_SYNCSLAVES.DESCRIPTION", user)
+        .cell();
 
 result.string(res);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 3dd4f20d00985579c0008fef8a46a6c39394c5b8..9f093689489ce3583c03556bbe81fba88b2d393f 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -9697,6 +9697,24 @@
     <entry>
       <key>Open Visitrecommendation</key>
     </entry>
+    <entry>
+      <key>Calling the abbyy webservice failed</key>
+    </entry>
+    <entry>
+      <key>within one Month</key>
+    </entry>
+    <entry>
+      <key>Valuation</key>
+    </entry>
+    <entry>
+      <key>Slave administration</key>
+    </entry>
+    <entry>
+      <key>Slave administration '%0' is '%1'</key>
+    </entry>
+    <entry>
+      <key>The file did not contain any data</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 2f7abb62990cab48f6c91a0fdec3459aada2171c..ce9a2ce17bb69479452d15363d31e93070b93b48 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -6,6 +6,10 @@
   <country></country>
   <variant></variant>
   <keyValueMap>
+    <entry>
+      <key>The file did not contain any data</key>
+      <value>Die Datei enthielt keine Daten</value>
+    </entry>
     <entry>
       <key>Slave administration</key>
       <value>Slave Verwaltung</value>
@@ -12330,9 +12334,6 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>within the next Month</key>
     </entry>
-    <entry>
-      <key>DSGVO-Anonymisierung</key>
-    </entry>
     <entry>
       <key>During processing the e-mail an error has occurred.\n Please contact an administrator</key>
     </entry>
@@ -12592,6 +12593,10 @@ Bitte Datumseingabe prüfen</value>
       <key>Text File</key>
       <value>Textdatei</value>
     </entry>
+    <entry>
+      <key>Slave administration '%0' is '%1'</key>
+      <value>Slave Verwaltung '%0' ist '%1'</value>
+    </entry>
     <entry>
       <key>TrueType Font</key>
       <value>TrueType Schriftart</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 22c9e61ed915116f0d4882cb5f1637b02db302e9..f5890a69ea46450d811e41bf76cfb08c81bc4313 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -9792,6 +9792,18 @@
     <entry>
       <key>Open Visitrecommendation</key>
     </entry>
+    <entry>
+      <key>Calling the abbyy webservice failed</key>
+    </entry>
+    <entry>
+      <key>Slave administration</key>
+    </entry>
+    <entry>
+      <key>Slave administration '%0' is '%1'</key>
+    </entry>
+    <entry>
+      <key>The file did not contain any data</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/process/OfflineClientSync_lib/process.js b/process/OfflineClientSync_lib/process.js
index e3cdcbed05f359e989ee13b0acef4b17223a2ba6..29d7c2c558103bde3c529ead0d46d85689587986 100644
--- a/process/OfflineClientSync_lib/process.js
+++ b/process/OfflineClientSync_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.vars");
 import("system.fileIO");
 import("system.pack");
@@ -9,31 +10,32 @@ import("Sql_lib");
 import("Document_lib");
 
 /*
- * Provides  methods for handling and interacting with the Offline Client
+ * Provides methods for handling and interacting with the Offline Client
  * 
  * @class
  */
-function OfflineClientSyncUtils() {}
+function OfflineClientSyncUtils() 
+{}
 
 /*
  * The ASYS_AUDIT entries are deleted, but the entries from the last month are retained
- * , INTERVAL -28 DAY), db.getCurrentAlias()min(
  */
-OfflineClientSyncUtils.asysAuditCleanUp = function(){
-
+OfflineClientSyncUtils.asysAuditCleanUp = function()
+{
     try
     {
         var lastsync = newSelect("MIN(ASYS_SYNCSLAVES.LASTSYNC)", db.getCurrentAlias())
-        .from("ASYS_SYNCSLAVES")
-        .cell();
+            .from("ASYS_SYNCSLAVES")
+            .cell();
         
-        if( lastsync != "" )
+        if (lastsync != "" )
         {
-            var fourWeeks = datetime.ONE_WEEK * 4;
-            var lastsyncVorfourWeeks = datetime.timestamp(lastsync - fourWeeks);
-            var cond = newWhere("ASYS_AUDIT.LOGTIME < '" + lastsyncVorfourWeeks + "'").toString().buildDeleteStatement();
+            var FOUR_WEEKS = datetime.ONE_WEEK * 4;
+            var lastsyncVorfourWeeks = datetime.timestamp(lastsync - FOUR_WEEKS);
             
-            db.deletes([[ "ASYS_AUDIT", cond ]], SqlUtils.getSystemAlias(), 3600000);
+            new SqlBuilder(SqlUtils.getSystemAlias())
+                .where("ASYS_AUDIT.LOGTIME", lastsyncVorfourWeeks, SqlBuilder.LESS())
+                .deleteData(true, "ASYS_AUDIT", 3600000);
         }
     }
     catch(ex)
@@ -42,26 +44,32 @@ OfflineClientSyncUtils.asysAuditCleanUp = function(){
     }
 }
 
-/*
+/* A process of being entered from the bindata, the licenseId lelst
+ * 
  * @param {bindata} pBinData
  * 
  * @return {string} LicenseID
  */
-OfflineClientSyncUtils.getIDFromLicense = function(pBinData){
-    
+OfflineClientSyncUtils.getIDFromLicense = function(pBinData)
+{
     var binData = DocumentUtil.getBindataFromUpload(pBinData);
     var serverFilePath = vars.get("$sys.servertemp") + "/clientid_" + (vars.exists("$sys.clientid") ? vars.get("$sys.clientid") : 0)
     + "/" + util.getNewUUID() + "/license.jar";
 
     fileIO.storeData(serverFilePath, binData, util.DATA_BINARY, false);
-    
-    var infoFromZIP = pack.getFromZip(serverFilePath, "info.txt");
-    var info = util.decodeBase64String(infoFromZIP, "UTF-8");
-    var license = OfflineClientSyncUtils.InfoFileToObj(info)["LicenseID"];
-    var licenseID = license.split("/")[1];
-    
-    fileIO.remove(serverFilePath);
-    
+    try
+    {
+  
+        var infoFromZIP = pack.getFromZip(serverFilePath, "info.txt");
+        var info = util.decodeBase64String(infoFromZIP, "UTF-8");
+        var license = OfflineClientSyncUtils.InfoFileToObj(info)["LicenseID"];
+        var licenseID = license.split("/")[1];
+    }
+    finally
+    {
+
+        fileIO.remove(serverFilePath);
+    }
     return licenseID.trim();
 }
 
@@ -70,13 +78,13 @@ OfflineClientSyncUtils.getIDFromLicense = function(pBinData){
  * 
  * @return {Object[]} 
  */
-OfflineClientSyncUtils.InfoFileToObj = function(pFile){
-  
+OfflineClientSyncUtils.InfoFileToObj = function(pFile)
+{
     var file = pFile;
     var retObj = [];
     
     file = file.split("\n");
-    for( var i = 0; i < file.length; i++ )
+    for (var i = 0; i < file.length; i++ )
     {
         var temp = file[i].split(":");
         retObj[ temp[0] ] = temp[1];