diff --git a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
index 372497186413416a3a27831bd933c08792bbd0d2..a6e5c99db425623c89a8aaa4446df2b04a77fdb0 100644
--- a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
+++ b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
@@ -15,7 +15,7 @@
     
     <changeSet dbms="!derby" author="b.ulrich" id="85ba6a61-9318-4118-ac4c-e33730f6581d">
         <dropPrimaryKey tableName="DOCUMENTTEMPLATE" constraintName="PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID" dropIndex="true"/>
-        <dropNotNullConstraint tableName="DOCUMENTTEMPLATE" columnName="DOCUMENTTEMPLATEID"/>
+        <dropNotNullConstraint tableName="DOCUMENTTEMPLATE" columnName="DOCUMENTTEMPLATEID" columnDataType="VARCHAR(36)"/>
         <modifyDataType tableName="DOCUMENTTEMPLATE" columnName="DOCUMENTTEMPLATEID" newDataType="CHAR(36)"/>
         <addNotNullConstraint columnName="DOCUMENTTEMPLATEID" tableName="DOCUMENTTEMPLATE" columnDataType="CHAR(36)" validate="true"/>
         <addPrimaryKey tableName="DOCUMENTTEMPLATE" constraintName="PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID" columnNames="DOCUMENTTEMPLATEID"/>
diff --git a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/hascommrestriction.value/expression.js b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/hascommrestriction.value/expression.js
index 3020cb618cdf0f0aac9fbf0f9201753a29563a37..04cd6d4dc91c5a7e36cd82b78301acf456fc05ff 100644
--- a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/hascommrestriction.value/expression.js
+++ b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/hascommrestriction.value/expression.js
@@ -5,5 +5,5 @@ import("system.db");
 import("system.result");
 
 var commRestrictionCond = ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail());
-var sql = "case when (" + commRestrictionCond.toString() + ") then 'true' else 'false' end";
-result.string(sql);
+var sql = SqlBuilder.caseWhen(commRestrictionCond).thenString("true").elseString("false");
+result.string(sql.toString());
diff --git a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
index 115c35f85e46db99d439362dca426fd984657802..49b6fefd59233f6aa50934a21ce43f06a3a61172 100644
--- a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
+++ b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js
@@ -1,17 +1,12 @@
 import("Sql_lib");
 import("Contact_lib");
 import("system.translate");
-import("system.db");
-import("Bulkmail_lib");
 import("system.result");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-var commRestrictionCond = ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail()).build();
+var commRestrictionCond = ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail());
 var keywordSql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.bulkMailRecipientStatus(), "BULKMAILRECIPIENT.STATUS");
 
-// TODO: is prepared possible?
-var sql = "case when (" + SqlUtils.translateStatementWithQuotes(commRestrictionCond)
-    + ") then '" + translate.text("Advertising ban")
-    + "' else (" + keywordSql + ") end";
-result.string(sql);
+var sql = SqlBuilder.caseWhen(commRestrictionCond).thenString(translate.text("Advertising ban")).elseValue(keywordSql);
+result.string(sql.toString());
diff --git a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
index 9bac722a3fa50b14fe0fd7fcf9cb92ebd8e49fba..5247fde75b3f57fdb34fb70500efb8bca84d6906 100644
--- a/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
+++ b/entity/BulkMailRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
@@ -1,7 +1,7 @@
+import("Sql_lib");
 import("Context_lib");
 import("system.result");
 
-// TODO: is prepared possible?
-result.string("case when PERSON_ID is null then '" + ContextUtils.getContextName("Organisation")
-    + "' when CONTACT.ORGANISATION_ID is not null and CONTACT.PERSON_ID is not null then '" + ContextUtils.getContextName("Person") 
-    + "' else '' end");
\ No newline at end of file
+var sql = SqlBuilder.caseWhen("PERSON_ID is null").thenString(ContextUtils.getContextName("Organisation"))
+    .when(newWhere("CONTACT.ORGANISATION_ID is not null").and("CONTACT.PERSON_ID is not null")).thenString(ContextUtils.getContextName("Person"))
+result.string(sql.toString());
\ No newline at end of file
diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
index fa780bd3a980c26cd0931459951df89c31b7d4a3..dd188aaf77933759617acc567c9f1ba0cb1313dc 100644
--- a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
+++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
@@ -1,6 +1,11 @@
+import("Context_lib");
+import("Sql_lib");
 import("system.vars");
 import("system.result");
+//!LibFunction
+var cond = newWhere(null, newSelect("ACTIVITYLINK.OBJECT_ROWID").from("ACTIVITYLINK")
+    .join("ACTIVITY", newWhere("ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
+        .and("ACTIVITYLINK.OBJECT_TYPE", ContextUtils.getCurrentContextId()))
+    .where(vars.get("$local.condition")), SqlBuilder.EXISTS());
 
-var from = "ACTIVITYLINK join ACTIVITY on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID and ACTIVITYLINK.OBJECT_TYPE = 'Campaign'";
-
-result.string("CAMPAIGNID in (select ACTIVITYLINK.OBJECT_ROWID from " + from + " where " + vars.get("$local.condition")+ ")");
\ No newline at end of file
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
index 43a6304543f7b01dab728e1774e8d6f9e06980e0..ea803f184c537724212607c29cfa59f9342de57c 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
@@ -178,7 +178,7 @@ function _update()
             }
         }
 
-        cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = '" + text.decodeMS(uid)[1] + "'");
+        cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", text.decodeMS(uid)[1]);
         columns.push("SCORETYPE");
         values.push(vars.get("$field.CLASSIFICATIONTYPEIDDISPLAYVALUE"));
         cond.updateData(true, table, columns, null, values);
@@ -195,13 +195,13 @@ function _update()
                                                 .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", id)
                                                 .cell();
 
-        cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = '" + classificationGroupId + "'");
+        cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", classificationGroupId);
 
         var groupTable = "CLASSIFICATIONGROUP";
         var groupColumns = ["SORTING", "TITLE"];
         var groupName = rowdata["CLASSIFICATIONGROUP.value"] == classificationGroupId ? rowdata["CLASSIFICATIONGROUP.displayValue"] : rowdata["CLASSIFICATIONGROUP.value"];
         var groupValues = [vars.get("$field.SORTING"), groupName];
-        var groupCond = newWhereIfSet("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = '" + classificationGroupId + "'");
+        var groupCond = newWhereIfSet("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", classificationGroupId);
         groupCond.updateData(true, groupTable, groupColumns, null, groupValues);
     }
 }
\ No newline at end of file
diff --git a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
index c2197272407c3509180dc90692e2edc59e2d6d7a..dd188aaf77933759617acc567c9f1ba0cb1313dc 100644
--- a/entity/Contract_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
+++ b/entity/Contract_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
@@ -1,6 +1,11 @@
+import("Context_lib");
+import("Sql_lib");
 import("system.vars");
 import("system.result");
+//!LibFunction
+var cond = newWhere(null, newSelect("ACTIVITYLINK.OBJECT_ROWID").from("ACTIVITYLINK")
+    .join("ACTIVITY", newWhere("ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
+        .and("ACTIVITYLINK.OBJECT_TYPE", ContextUtils.getCurrentContextId()))
+    .where(vars.get("$local.condition")), SqlBuilder.EXISTS());
 
-var from = "ACTIVITYLINK join ACTIVITY on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID and ACTIVITYLINK.OBJECT_TYPE = 'Contract'";
-
-result.string("CONTRACTID in (select ACTIVITYLINK.OBJECT_ROWID from " + from + " where " + vars.get("$local.condition")+ ")");
\ No newline at end of file
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/LetterRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js b/entity/LetterRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
index 9bac722a3fa50b14fe0fd7fcf9cb92ebd8e49fba..b9a588dfe867d2a870ad80b9eb25ef5803ddfa4b 100644
--- a/entity/LetterRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
+++ b/entity/LetterRecipient_entity/recordcontainers/db/recordfieldmappings/targetcontext.value/expression.js
@@ -1,7 +1,7 @@
+import("Sql_lib");
 import("Context_lib");
 import("system.result");
 
-// TODO: is prepared possible?
-result.string("case when PERSON_ID is null then '" + ContextUtils.getContextName("Organisation")
-    + "' when CONTACT.ORGANISATION_ID is not null and CONTACT.PERSON_ID is not null then '" + ContextUtils.getContextName("Person") 
-    + "' else '' end");
\ No newline at end of file
+var sql = SqlBuilder.caseWhen("PERSON_ID is null").thenString(ContextUtils.getContextName("Organisation"))
+    .when(newWhere("CONTACT.ORGANISATION_ID is not null").and("CONTACT.PERSON_ID is not null")).thenString(ContextUtils.getContextName("Person"));
+result.string(sql.toString());
\ No newline at end of file
diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod
index 8dead6bc118e4d353c6c708976a037b3ace5c45e..cf3203213ac627ef13ec8064010448a7db4a5970 100644
--- a/entity/Notification_entity/Notification_entity.aod
+++ b/entity/Notification_entity/Notification_entity.aod
@@ -175,8 +175,7 @@
     <dbRecordContainer>
       <name>db</name>
       <alias>_____SYSTEMALIAS</alias>
-      <maximumDbRows v="200" />
-      <isPageable v="false" />
+      <isPageable v="true" />
       <fromClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
       <conditionProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
diff --git a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
index 9a3d04480545203f0da83c3f6be762e684c8883a..dd188aaf77933759617acc567c9f1ba0cb1313dc 100644
--- a/entity/Offer_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
+++ b/entity/Offer_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
@@ -1,6 +1,11 @@
+import("Context_lib");
+import("Sql_lib");
 import("system.vars");
 import("system.result");
+//!LibFunction
+var cond = newWhere(null, newSelect("ACTIVITYLINK.OBJECT_ROWID").from("ACTIVITYLINK")
+    .join("ACTIVITY", newWhere("ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
+        .and("ACTIVITYLINK.OBJECT_TYPE", ContextUtils.getCurrentContextId()))
+    .where(vars.get("$local.condition")), SqlBuilder.EXISTS());
 
-var from = "ACTIVITYLINK join ACTIVITY on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID and ACTIVITYLINK.OBJECT_TYPE = 'Offer'";
-
-result.string("OFFERID in (select ACTIVITYLINK.OBJECT_ROWID from " + from + " where " + vars.get("$local.condition")+ ")");
\ No newline at end of file
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
index 3a5de6feaba1a19a9d36f5ed067305250b098734..8ff2c784424efb6750081f6cbbb1aaaeaae7faab 100644
--- a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
+++ b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
@@ -21,7 +21,7 @@ if(pid != "")
     var productInfoSubSql = newSelect("DESCRIPTION")
         .from("DESCRIPTIONTRANSLATION")
         .whereIfSet("DESCRIPTIONTRANSLATION.OBJECT_ROWID", "$local.value")
-        .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE = 'Product'")
+        .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE", "Product")
         .andIfSet("DESCRIPTIONTRANSLATION.LANG", "$param.Language_param")
         .toString();
     var ProductDetails = ProductUtils.getProductDetails(pid, PriceListFilter, 
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationgroup_filter/groupQueryProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationgroup_filter/groupQueryProcess.js
index 768e6ca7501cdd94caba44242bd5d9f1b3c76859..aad0c1782f7ca0b380aa12d11d4855978b9d3648 100644
--- a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationgroup_filter/groupQueryProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationgroup_filter/groupQueryProcess.js
@@ -13,7 +13,8 @@ var name = vars.get("$local.name");
 var stmt = newSelect(isCount ? groupedColumns : columns)
     .from("ORGANISATION")
     .join("CONTACT", "ORGANISATIONID = ORGANISATION_ID  and PERSON_ID is null")
-    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID and OBJECT_TYPE = 'Organisation'")
+    .leftJoin("CLASSIFICATIONSTORAGE", newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+        .and("CLASSIFICATIONSTORAGE.OBJECT_TYPE", "Organisation"))
 
 if (condition)
 {
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index ccf8f498ce2171f22150fbf2c26e89f495ba169b..a4e9edc5b2c7f90da86619beb5d4d968bb0a392b 100644
--- a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -11,15 +11,18 @@ var groupedColumns = vars.get("$local.groupedlist") // The coloumns, used for gr
 var order = vars.get("$local.order");               // The order of the result
 var classificationId = vars.get("$local.name");
 classificationId = classificationId.slice(classificationId.lastIndexOf(".") + 1, classificationId.length);
-var valuefield = "''"
-var stmt = "";
 
-stmt = newSelect(isCount ? "1" : columns)
+var sql = newSelect(isCount ? "1" : columns)
                     .from("ORGANISATION")
                     .join("CONTACT", "ORGANISATIONID = ORGANISATION_ID  and PERSON_ID is null")
-                    .leftJoin("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = CONTACT.CONTACTID and OBJECT_TYPE = 'Organisation' and CLASSIFICATION.CLASSIFICATIONTYPE_ID = '" + classificationId + "' ")
-                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID " +  (condition != "  " ? " WHERE " + condition : ""))
-                    .groupBy(groupedColumns + (order != null && !isCount ? " ORDER BY " + order : ""))
-                    .toString();
+                    .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = CONTACT.CONTACTID")
+                        .and("CLASSIFICATION.OBJECT_TYPE", "Organisation")
+                        .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
+                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+                    .whereIfSet(condition.trim())
+                    .groupBy(groupedColumns);
 
-result.string(stmt);
\ No newline at end of file
+if (order != null && !isCount)
+    sql.orderBy(order);
+
+result.string(sql.toString());
\ No newline at end of file
diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 0a21aef128bcefe95904d2fbed4bfd44cf0bccc8..293144a2513456337e2e290106ec4020e21269a3 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -74,7 +74,7 @@ for each (var entry in rolesOrEntities) { // entry contains either a role or an
                                 .select("ASYS_PERMISSIONSETID")
                                 .from("ASYS_PERMISSIONSET")
                                 .where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
-                                .and("ACCESSTYPE = 'R'")
+                                .and("ASYS_PERMISSIONSET.ACCESSTYPE", "R")
                                 .arrayColumn();
 
         currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
diff --git a/entity/Product_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js b/entity/Product_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
index b8141bc3b760b0439c6a4e6e07c99b38dda33d54..dd188aaf77933759617acc567c9f1ba0cb1313dc 100644
--- a/entity/Product_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
+++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
@@ -1,6 +1,11 @@
+import("Context_lib");
+import("Sql_lib");
 import("system.vars");
 import("system.result");
+//!LibFunction
+var cond = newWhere(null, newSelect("ACTIVITYLINK.OBJECT_ROWID").from("ACTIVITYLINK")
+    .join("ACTIVITY", newWhere("ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
+        .and("ACTIVITYLINK.OBJECT_TYPE", ContextUtils.getCurrentContextId()))
+    .where(vars.get("$local.condition")), SqlBuilder.EXISTS());
 
-var from = "ACTIVITYLINK join ACTIVITY on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID and ACTIVITYLINK.OBJECT_TYPE = 'Product'";
-
-result.string("PRODUCTID in (select ACTIVITYLINK.OBJECT_ROWID from " + from + " where " + vars.get("$local.condition")+ ")");
\ No newline at end of file
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
index 95781d32513a9442d468d93568947555bfcdef3d..2f3dad2864f82b5ebd688e2ffea700eec78eaa78 100644
--- a/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/SalesprojectConversionRate_entity/recordcontainers/jdito/contentProcess.js
@@ -37,7 +37,13 @@ if (filter != null)
             })).length > 0
         })[0];
         phasenFilter.operator = "OR";
-        let pre = newSelect("PRE.KEYID").from("AB_KEYWORD_ENTRY").join("AB_KEYWORD_ENTRY", "AB_KEYWORD_ENTRY.SORTING -1 = PRE.SORTING", "PRE").where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase()).and("PRE.CONTAINER = '" + $KeywordRegistry.salesprojectPhase() + "'").and("AB_KEYWORD_ENTRY.KEYID", phasenFilter.childs[0].value).cell()
+        let pre = newSelect("PRE.KEYID")
+            .from("AB_KEYWORD_ENTRY")
+            .join("AB_KEYWORD_ENTRY", "AB_KEYWORD_ENTRY.SORTING -1 = PRE.SORTING", "PRE")
+            .where("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())
+            .and(["AB_KEYWORD_ENTRY", "CONTAINER", "PRE"], $KeywordRegistry.salesprojectPhase())
+            .and("AB_KEYWORD_ENTRY.KEYID", phasenFilter.childs[0].value)
+            .cell()
         if (pre != "") {
             let temp = JSON.parse(JSON.stringify(phasenFilter.childs[0]));
             temp.value = temp.key  = pre;
diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index 524e35692ad0f51d4bebd9dce80d82ebfc6efc80..cf3462e69ddf08a90ec5e2a230b1c0d8bcdd3856 100644
--- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -10,13 +10,17 @@ var groupedColumns = vars.get("$local.groupedlist") // The coloumns, used for gr
 var order = vars.get("$local.order");               // The order of the result
 var classificationId = vars.get("$local.name");
 classificationId = classificationId.slice(classificationId.lastIndexOf(".") + 1, classificationId.length);
-var valuefield = "''"
-var stmt = "";
 
-stmt = newSelect(isCount ? "1" : columns)
-                    .from("SALESPROJECT")
-                    .leftJoin("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID and CLASSIFICATION.OBJECT_TYPE = 'Salesproject' and CLASSIFICATION.CLASSIFICATIONTYPE_ID = '" + classificationId + "' ")
-                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID" +  (condition != "  " ? " WHERE " + condition : ""))
-                    .groupBy(groupedColumns + (order != null && !isCount ? " ORDER BY " + order : ""))
-                    .toString();
-result.string(stmt);
\ No newline at end of file
+var sql = newSelect(isCount ? "1" : columns)
+    .from("SALESPROJECT")
+    .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID")
+        .and("CLASSIFICATION.OBJECT_TYPE", "Salesproject")
+        .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
+    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+    .whereIfSet(condition.trim())
+    .groupBy(groupedColumns);
+
+if (order != null && !isCount)
+    sql.orderBy(order);
+                    
+result.string(sql.toString());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
index 3a8b1fd9f8491be342a16fd7967c756ef82b0e21..dd188aaf77933759617acc567c9f1ba0cb1313dc 100644
--- a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/activities/filterConditionProcess.js
@@ -1,6 +1,11 @@
+import("Context_lib");
+import("Sql_lib");
 import("system.vars");
 import("system.result");
+//!LibFunction
+var cond = newWhere(null, newSelect("ACTIVITYLINK.OBJECT_ROWID").from("ACTIVITYLINK")
+    .join("ACTIVITY", newWhere("ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
+        .and("ACTIVITYLINK.OBJECT_TYPE", ContextUtils.getCurrentContextId()))
+    .where(vars.get("$local.condition")), SqlBuilder.EXISTS());
 
-var from = "ACTIVITYLINK join ACTIVITY on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID and ACTIVITYLINK.OBJECT_TYPE = 'Salesproject'";
-
-result.string("SALESPROJECTID in (select ACTIVITYLINK.OBJECT_ROWID from " + from + " where " + vars.get("$local.condition")+ ")");
\ No newline at end of file
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
index ce8bb62314fa0a0ae0023f81b31d95a3871bd812..ae8d3918edde1c772c1f09bb3623506cce40cdc1 100644
--- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js
@@ -46,19 +46,19 @@ if(entryData.length > 0)
 {
     for(var i = 0; i < entryData.length; i++)
     {
-        var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid;
-        [entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid] = entryData[i]
+        var entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid;
+        [entryDateRaw, visitPlanEntryId, beginTime, endTime, organisationContactId, contactId, status, visitplanEmployeeWeekId, appointmentid] = entryData[i]
         
-        var contactname = db.cell(PersUtils.getResolvingDisplaySubSql("'" + contact_id + "'"));
-        var orgname = OrganisationUtils.getNameByContactId(organisationContact_id);
+        var contactname = ContactUtils.getTitleByContactId(contactId);
+        var orgname = OrganisationUtils.getNameByContactId(organisationContactId);
         var parentName = translate.text(datetime.toDate(entryDateRaw, "EEEE"));
         entryDate = datetime.toDate(entryDateRaw, "dd.MM.yyyy");
 
         var statusDisplay = KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatus(), status)
         var alias = SqlUtils.getSystemAlias();
 
-        items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "",  beginn_time
-            , end_time, organisationContact_id, orgname, contact_id, contactname, entryDateRaw, status, visitplanemployeeweek_id, appointmentid, statusDisplay]);
+        items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "",  beginTime
+            , endTime, organisationContactId, orgname, contactId, contactname, entryDateRaw, status, visitplanEmployeeWeekId, appointmentid, statusDisplay]);
 
         if(!vars.get("$local.idvalues"))
         {
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index 7effd511c0a20b96a072e8df4ba4e7650ede81c9..42fecc4e3d198603e333edf0c71beed523ff615a 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -271,7 +271,7 @@ function _getPrioByDueDateSubSql (pDueDateField, pPriorityField)
 {
     var currentDate = datetime.date();
     var sqlMasker = new SqlMaskingUtils();
-    
+    //!SqlBuilder
     var subSql = "case when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$critical()
         + "' when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$veryHigh()
         + "' when " + pDueDateField + " < ? then '" + $KeywordRegistry.visitRecommendationPriority$high()
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index bee7fd6513ec22226a7dec19b5ee03fd0a3c2cdf..3439544cfe83b426af1216d5545709508f9cdf3e 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7293,6 +7293,9 @@
     <entry>
       <key>Standard Zip</key>
     </entry>
+    <entry>
+      <key>Outstanding Amount</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 2143d4010830c8b38b4b6f048d33485ca6f78b09..b563a3076d29b855c8dfeda7e01fccac5bb6025d 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -6548,7 +6548,7 @@
     </entry>
     <entry>
       <key>Order number</key>
-      <value>Belegsnummer</value>
+      <value>Belegnummer</value>
     </entry>
     <entry>
       <key>Permission Action</key>
@@ -6576,7 +6576,7 @@
     </entry>
     <entry>
       <key>Order date</key>
-      <value>Belegsdatum</value>
+      <value>Belegdatum</value>
     </entry>
     <entry>
       <key>Due date</key>
@@ -9270,7 +9270,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Child Attributes</key>
-      <value>Untergeordnete Eigenschaften</value>
+      <value>Diagrameigenschaften</value>
     </entry>
     <entry>
       <key>Recalculate all Classifications</key>
@@ -9430,16 +9430,16 @@ Bitte Datumseingabe prüfen</value>
       </value>
     </entry>
     <entry>
-      <key>LinkedIn (Person)</key>
-      <value>LinkedIn (Person)</value>
+      <key>Linked in (Person)</key>
+      <value>Linked In (Person)</value>
     </entry>
     <entry>
       <key>Mobile number (Organisation)</key>
       <value>Handynummer (Organisation)</value>
     </entry>
     <entry>
-      <key>LinkedIn (Organisation)</key>
-      <value>LinkedIn (Organisation)</value>
+      <key>Linked in (Organisation)</key>
+      <value>Linked In (Organisation)</value>
     </entry>
     <entry>
       <key>Xing (Organisation)</key>
@@ -9674,6 +9674,10 @@ Bitte Datumseingabe prüfen</value>
       <key>Standard Zip</key>
       <value>Standart Plz</value>
     </entry>
+    <entry>
+      <key>Outstanding Amount</key>
+      <value>Offener Betrag</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 8c0cd36df48ff5a70223a232937e8d497ab5c797..cf8d0df31f43a9a569871c3e265165a6bf38e44a 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7374,6 +7374,9 @@
     <entry>
       <key>Standard Zip</key>
     </entry>
+    <entry>
+      <key>Outstanding Amount</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
index 1228d3cc49bdac80030aec42937bcdb4fc9c643a..67c3c7369040ce1004d8d223db8fa989e450cef7 100644
--- a/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
+++ b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod
@@ -8,7 +8,7 @@
       <name>SalesprojectPhases</name>
       <title>Salesproject phases</title>
       <description>Shows how many sales projects are in the various sales phases</description>
-      <fragment>Salesproject/filter?search=eyJ0eXBlIjoiZ3JvdXAiLCJvcGVyYXRvciI6IkFORCIsImNoaWxkcyI6W3sidHlwZSI6InJvdyIsIm5hbWUiOiJQSEFTRSIsIm9wZXJhdG9yIjoiTk9UX0VRVUFMIiwidmFsdWUiOiJOZWdvdGlhdGlvbiIsImtleSI6IlNBTFBST0pQSEFTRU5FR08iLCJjb250ZW50dHlwZSI6IlRFWFQifV19&amp;axes=COUNT&amp;grouping=%23EXTENSION.Phase_filterExtention.Phase_filterExtention%23TEXT</fragment>
+      <fragment>Salesproject/filter?search=eyJ0eXBlIjoiZ3JvdXAiLCJvcGVyYXRvciI6IkFORCIsImNoaWxkcyI6W3sidHlwZSI6InJvdyIsIm5hbWUiOiJQSEFTRSIsIm9wZXJhdG9yIjoiTk9UX0VRVUFMIiwidmFsdWUiOiJOZWdvdGlhdGlvbiIsImtleSI6IlNBTFBST0pQSEFTRU5FR08iLCJjb250ZW50dHlwZSI6IlRFWFQifSx7InR5cGUiOiJyb3ciLCJuYW1lIjoiU1RBVFVTIiwib3BlcmF0b3IiOiJFUVVBTCIsInZhbHVlIjoiT2ZmZW4iLCJrZXkiOiJTQUxQUk9KU1RBVE9QRU4iLCJjb250ZW50dHlwZSI6IlRFWFQifV19&amp;axes=COUNT&amp;grouping=%23EXTENSION.Phase_filterExtention.Phase_filterExtention%23TEXT</fragment>
       <singleton v="true" />
       <storeRoles>
         <element>PROJECT_FieldStaff</element>
diff --git a/process/Contact_lib/process.js b/process/Contact_lib/process.js
index 627ec11b149a9b0ef93163901dda95b23f7f98b9..1d8216d36f52ffbed7094c0d7affc3edaf472ad3 100644
--- a/process/Contact_lib/process.js
+++ b/process/Contact_lib/process.js
@@ -528,7 +528,7 @@ ContactUtils.getActiveCommRestrictionsSubselect = function()
                             .and(newWhere()
                                     .or("COMMRESTRICTION.CONTACT_ID = CONTACT.CONTACTID")
                                     .or("COMMRESTRICTION.CONTACT_ID", orgContactSubselect));
-
+        //!SqlBuilder
         parts.push("case when exists(" + subquery.toString() + ") then '" + pMedium[1] + "' else '' end");
     })
 
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 31d608284325922fc657f5e9388ee3782d68e8eb..f0e62195ad82855ae9e18712786350ba500d1772 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -497,7 +497,7 @@ ContextUtils.getSelectMap  = function()
     return {
             "Organisation": ContextSelector.create("ORGANISATION", "CONTACT.CONTACTID", "ORGANISATION.NAME")
                                        .setJoinExpression("join CONTACT on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null")
-                                       .setCondition(newWhere("ORGANISATION.ORGANISATIONID != '0'"))
+                                       .setCondition(newWhere("ORGANISATION.ORGANISATIONID", "0", SqlBuilder.NOT_EQUAL()))
                                        .setSubContexts({
                                            "Person": [newSelect("CONTACTID").from("CONTACT").where("PERSON_ID is not null"), "CONTACT.ORGANISATION_ID", ["Offer", "Order", "Contract", "SupportTicket"]]
                                        })
@@ -608,7 +608,7 @@ ContextUtils.getSelectMap  = function()
 ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField)
 {
     // TODO: prepared?
-    
+    //!SqlBuilder
     var select = "(case " + pContextIdDbField + " ";
 
     var selectMap = ContextUtils.getSelectMap ()
diff --git a/process/Leadimport_lib/process.js b/process/Leadimport_lib/process.js
index ea0f5c14c0b084b0ecca76fceee7841a1b247a04..de9d13b2c7bb525960c5503b3e20eb28d9f2190d 100644
--- a/process/Leadimport_lib/process.js
+++ b/process/Leadimport_lib/process.js
@@ -794,7 +794,7 @@ LeadImportUtils.getLeadAttr = function(pImportDefID)
                     .from("AB_ATTRIBUTERELATION")
                     .join("AB_ATTRIBUTEUSAGE", "AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
                     .where("AB_ATTRIBUTERELATION.OBJECT_ROWID", pImportDefID)
-                    .and("AB_ATTRIBUTERELATION.OBJECT_TYPE = 'Leadimport'")
+                    .and("AB_ATTRIBUTERELATION.OBJECT_TYPE", "Leadimport")
                     .table()
     };
 }
diff --git a/process/ObjectRelation_lib/process.js b/process/ObjectRelation_lib/process.js
index 93063469bb275bf252eac8485933805cea091570..c99e2322413f0dda7eb287c8dfd033f048066895 100644
--- a/process/ObjectRelation_lib/process.js
+++ b/process/ObjectRelation_lib/process.js
@@ -37,6 +37,7 @@ ObjectRelationUtils.getPossibleRelationTypes = function(pObjectTypes, pFullInfo,
     // only id and title:
     if (pFullInfo)
     {
+        //!SqlBuilder
         fields = fields.concat([
             "main.RELATION_TYPE",
             "case when type2.AB_OBJECTRELATIONTYPEID is null then 'same' \n\
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 7c9504fa26da75fa05ae7753f287070f922dd250..f5a8cd0138d503694a5e0e0a52b21bb277eb156c 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -502,7 +502,7 @@ OfferItemUtils.prototype.insertPartsList = function(pProductId, pAssignedTo, pCu
                             "( " + newSelect("DESCRIPTION")
                                 .from("DESCRIPTIONTRANSLATION")
                                 .where("DESCRIPTIONTRANSLATION.OBJECT_ROWID = PRODUCT.PRODUCTID")
-                                .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE = 'Product'")
+                                .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE", "Product")
                                 .and("DESCRIPTIONTRANSLATION.LANG", pLanguage)
                                 .toString() + ")"]]]]);
                                   
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 35b87999459da0cd88f21f0b11c737c3060ce26e..49bcb6bfc966352c346f399240c584b3f1ef2325 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -3167,7 +3167,7 @@ SqlBuilder._CaseStatement.prototype.toString = function (pAlias)
     return db.translateStatement(this.build(), pAlias || db.getCurrentAlias());
 }
 
-SqlBuilder._CaseStatement.prototype.build = function ()
+SqlBuilder._CaseStatement.prototype.build = function (pParameters)
 {
     var caseStatement = ["case"];
     var preparedValues = [];
diff --git a/process/Turnover_lib/process.js b/process/Turnover_lib/process.js
index 14080be4ee9b533ea4a1c88331e3d6f45f64f364..e8f96a61314fcd72884ff65e5f86641d78adbc19 100644
--- a/process/Turnover_lib/process.js
+++ b/process/Turnover_lib/process.js
@@ -34,7 +34,7 @@ TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount, pSalesprojectId)
     return newSelect("'" + turnoverCategory + "', year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT discount, SALESORDERITEM.VAT vat, SALESORDERITEM.PRICE price, sum(SALESORDERITEM.QUANTITY) quantity, SALESORDERITEM.GROUPCODEID prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") prodGroupName")
                     .from("SALESORDER")
                     .join("SALESORDERITEM", "SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID")
-                    .where("SALESORDER.ORDERTYPE = 'ORDTYPEINVO'")
+                    .where("SALESORDER.ORDERTYPE", "ORDTYPEINVO")
                     .and("SALESORDER.ORDERSTATUS = 1")
                     .and("SALESORDER.CANCELLATION <> 1")
                     .and("SALESORDERITEM.OPTIONAL <> 1")
diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js
index d8705a1e95f0b7475a3e0301ba5ef9fe4fc4283b..38627a87e22539c50660b586e22538dee5c0ad9a 100644
--- a/process/Workflow_lib/process.js
+++ b/process/Workflow_lib/process.js
@@ -46,15 +46,18 @@ WorkflowUtils.openNewInstance = function (pVariables, pTargetIds, pTargetContext
 {
     if ((!pTargetIds || pTargetIds.length === 0) && pSelectionFilter)
         pTargetIds = [];
+    else if (!pTargetIds)
+        pTargetIds = [WorkflowVariables.TARGET_ID.getDefaultValue()];
     if (!pVariables)
         pVariables = {};
     
     Object.assign(pVariables, WorkflowVariables.getTargetVariables(pTargetIds, pTargetContext));
     
     neon.openContext("WorkflowLauncher", "WorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
-        "ProcessVariables_param" : JSON.stringify(pVariables),
-        "TargetContext_param" : pVariables[WorkflowVariables.TARGET_CONTEXT()],
-        "TargetFilter_param" : pSelectionFilter ? JSON.stringify(pSelectionFilter) : ""
+        "ProcessVariables_param": JSON.stringify(pVariables),
+        "TargetContext_param": pVariables[WorkflowVariables.TARGET_CONTEXT()],
+        "TargetFilter_param": pSelectionFilter ? JSON.stringify(pSelectionFilter) : "",
+        "Targets_param": JSON.stringify(pTargetIds)
     });
 }
 
diff --git a/report/Reminder_report/reportData.jrxml b/report/Reminder_report/reportData.jrxml
index 5e0e92752aff29c9212d7fed72e0a86f5592701e..ca529152a3fbd0034322ba26a655361e685a1ac9 100644
--- a/report/Reminder_report/reportData.jrxml
+++ b/report/Reminder_report/reportData.jrxml
@@ -2,7 +2,7 @@
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Mahnung" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
 	<property name="ireport.zoom" value="2.1435888100000016"/>
 	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="144"/>
+	<property name="ireport.y" value="57"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Kontenabstimmung" class="java.lang.String"/>
 	<parameter name="Rech.-Nr" class="java.lang.String"/>
@@ -41,30 +41,30 @@
 				<textField>
 					<reportElement x="13" y="0" width="68" height="15" uuid="0a515534-8d2a-4e3e-9370-6cac4c65ef68"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{Ordernumber}]]></textFieldExpression>
 				</textField>
 				<textField>
 					<reportElement x="104" y="0" width="63" height="15" uuid="87fc2f40-ffdc-47d5-9fd8-7a8caf821114"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{Orderdate}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="202" y="0" width="62" height="15" uuid="86eacb27-6bb5-4ce8-b8cf-c3f0993380ad"/>
+					<reportElement x="202" y="0" width="76" height="15" uuid="86eacb27-6bb5-4ce8-b8cf-c3f0993380ad"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{DueDate}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="429" y="0" width="59" height="15" uuid="62a0909f-ef03-4242-969a-8a9532d1aa9a"/>
+					<reportElement x="408" y="0" width="103" height="15" uuid="62a0909f-ef03-4242-969a-8a9532d1aa9a"/>
 					<textElement textAlignment="Right">
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
-					<textFieldExpression><![CDATA[$P{Due}]]></textFieldExpression>
+					<textFieldExpression><![CDATA[$P{Outstanding Amount}]]></textFieldExpression>
 				</textField>
 				<line>
 					<reportElement x="13" y="33" width="527" height="1" uuid="d5108302-191f-4e27-8920-fcd330d335e8"/>
@@ -72,58 +72,58 @@
 				<textField>
 					<reportElement x="104" y="36" width="64" height="15" uuid="ca4c366a-1954-4aee-91c4-05c093b04df5"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{ORDERDATE}]]></textFieldExpression>
 				</textField>
 				<textField>
 					<reportElement x="13" y="36" width="68" height="15" uuid="3fcb3ee0-fe4d-409e-8cb8-7a0e6ceca5ab"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{ORDERCODE}]]></textFieldExpression>
 				</textField>
 				<textField>
 					<reportElement x="202" y="36" width="62" height="15" uuid="b5e006cf-5d37-42a1-bf74-0b49d3a39b27"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{DUEDATE}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="428" y="36" width="60" height="15" uuid="d57eeb7b-f517-4c85-a925-cdc3c1ea0830"/>
+					<reportElement x="451" y="36" width="60" height="15" uuid="d57eeb7b-f517-4c85-a925-cdc3c1ea0830"/>
 					<textElement textAlignment="Right">
-						<font  size="8" isBold="true"/>
+						<font size="8" isBold="true"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{OFFEN}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="307" y="35" width="56" height="15" uuid="72a49ece-7fc0-4cd7-a00c-94580845d150"/>
+					<reportElement x="332" y="35" width="56" height="15" uuid="72a49ece-7fc0-4cd7-a00c-94580845d150"/>
 					<textElement textAlignment="Right">
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{BRUTTO}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="307" y="15" width="56" height="15" uuid="a991ccab-0b04-4550-bbd2-2033a5fad0f0"/>
+					<reportElement x="332" y="15" width="56" height="15" uuid="a991ccab-0b04-4550-bbd2-2033a5fad0f0"/>
 					<textElement textAlignment="Right">
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{CURRENCY}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="429" y="15" width="59" height="15" uuid="8e257160-536a-418a-b9df-80fa020268b8"/>
+					<reportElement x="452" y="15" width="59" height="15" uuid="8e257160-536a-418a-b9df-80fa020268b8"/>
 					<textElement textAlignment="Right">
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$F{CURRENCY}]]></textFieldExpression>
 				</textField>
 				<textField>
-					<reportElement x="326" y="0" width="62" height="15" uuid="000feb72-9b7d-42e6-ade9-8e12359c3eef"/>
+					<reportElement x="307" y="0" width="81" height="15" uuid="000feb72-9b7d-42e6-ade9-8e12359c3eef"/>
 					<textElement>
-						<font  size="8"/>
+						<font size="8"/>
 					</textElement>
-					<textFieldExpression><![CDATA[$R{Rech.-Betrag}]]></textFieldExpression>
+					<textFieldExpression><![CDATA[$R{Rechnungsbetrag}]]></textFieldExpression>
 				</textField>
 			</band>
 		</groupHeader>
@@ -140,7 +140,7 @@
 			<textField>
 				<reportElement x="13" y="88" width="527" height="20" forecolor="#000000" uuid="a47fa80c-6b70-4c8a-938d-3d44273b1ffb"/>
 				<textElement textAlignment="Center" verticalAlignment="Middle">
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$P{Address}]]></textFieldExpression>
 			</textField>
@@ -157,35 +157,35 @@
 			<textField isStretchWithOverflow="true">
 				<reportElement x="13" y="122" width="152" height="20" uuid="c8514bfb-5e34-43f4-a256-7899cb58f0c1"/>
 				<textElement>
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$P{ReminderAddress}]]></textFieldExpression>
 			</textField>
 			<textField>
 				<reportElement x="13" y="172" width="132" height="20" uuid="d21620a9-4a49-496e-80f6-db842f0b70a9"/>
 				<textElement>
-					<font  size="14" isBold="true"/>
+					<font size="14" isBold="true"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$P{Reminder}]]></textFieldExpression>
 			</textField>
 			<textField pattern="dd.MM.yyyy">
 				<reportElement x="388" y="192" width="100" height="20" uuid="5141d92f-3325-445b-b616-90630c1648f7"/>
 				<textElement textAlignment="Right">
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
 			</textField>
 			<textField>
 				<reportElement x="13" y="232" width="294" height="20" uuid="3f7d1c4a-a326-436b-831d-5da9fd255bf0"/>
 				<textElement>
-					<font  size="8" isBold="true"/>
+					<font size="8" isBold="true"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$F{DUNNINGTEXT}]]></textFieldExpression>
 			</textField>
 			<textField>
 				<reportElement x="13" y="212" width="214" height="20" uuid="52834aec-d107-4cc7-9662-1cdd73ba15c1"/>
 				<textElement>
-					<font  size="8" isBold="true"/>
+					<font size="8" isBold="true"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$P{Dunninglevel} + " " + $F{DUNNINGLEVEL}]]></textFieldExpression>
 			</textField>
@@ -196,21 +196,21 @@
 			<textField pattern="EEEEE dd MMMMM yyyy">
 				<reportElement x="340" y="13" width="112" height="15" forecolor="#999999" uuid="26510f19-a203-4b34-8093-f6a9f7f6050e"/>
 				<textElement>
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
 			</textField>
 			<textField>
 				<reportElement x="452" y="13" width="48" height="15" forecolor="#999999" uuid="218ef560-390f-4807-b7f6-98e6f6162892"/>
 				<textElement textAlignment="Right">
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[$R{Seite}+" "+$V{PAGE_NUMBER}+" "+$R{von}]]></textFieldExpression>
 			</textField>
 			<textField evaluationTime="Report">
 				<reportElement x="500" y="13" width="40" height="15" forecolor="#999999" uuid="7ac354ed-0f8f-41fa-80a5-c2a0f74f7e09"/>
 				<textElement>
-					<font  size="8"/>
+					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
 			</textField>