diff --git a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js
index 5acbe1fae9747b958253205861b77d6146f730c4..73d5cfdaf1c44b86596fb094b8542ea4f67f83cf 100644
--- a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js
+++ b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js
@@ -10,7 +10,6 @@ var actionTitle = vars.get("$field.ACTION");
 var permissionId = vars.get("$param.PermissionId_param");
 var permCondInput = vars.get("$param.PermissionCondition_param");
 
-//var deletedRows = vars.get("$field." + pConsumerField + ".deletedRows");
 var deletedRows = vars.get("$field.PermissionDetails.deletedRows");
 
 if (actionTitle == "null" || actionTitle == undefined || actionTitle == null || actionTitle == "") {
diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js
index b2d03cddfd3d69a149c8899b5238826dc20c15e6..327e3f48bfe87797eb4f122b038302ea716de517 100644
--- a/entity/PermissionDetail_entity/contentTitleProcess.js
+++ b/entity/PermissionDetail_entity/contentTitleProcess.js
@@ -1,3 +1,4 @@
+import("Permission_lib");
 import("system.logging");
 import("system.project");
 import("system.vars");
@@ -5,7 +6,7 @@ import("system.result");
 
 var res = "";
 var entityName = vars.get("$field.ENTITY");
-var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+var emptyCond = PermissionUtil.getEmptyCondString(entityName);
 
 switch (vars.get("$field.ACCESSTYPE")) {
     case "E":
@@ -31,7 +32,7 @@ switch (vars.get("$field.ACCESSTYPE")) {
 }
 
 if (vars.get("$field.ACCESSTYPE") != "E") {
-    if (vars.get("$field.CONDITION") != noCond && vars.get("$field.CONDITION") != "") {
+    if (vars.get("$field.CONDITION") != emptyCond && vars.get("$field.CONDITION") != "") {
         res += " - conditional";
     } else {
         res += " - default";
diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js
index 9c96cae90297332c2950e4286d6fb65e3a08bf72..846e5ce9a2c830aaf515c027bc94adf5566574ee 100644
--- a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js
@@ -1,6 +1,5 @@
 import("Sql_lib");
 import("system.db");
-import("system.logging");
 import("system.vars");
 import("system.result");
 import("Permission_lib");
@@ -9,18 +8,19 @@ var alias = SqlUtils.getSystemAlias();
 var rootPermId;
 var entity = vars.get("$field.ENTITY");
 var cond = vars.get("$field.CONDITION");
-var noCond = "{\"entity\":\"" + entity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
-var permSetId = PermissionUtil.getSet(vars.get("$field.ROLE"), vars.get("$field.ENTITY"), vars.get("$field.ACCESSTYPE"));
+var field = vars.get("$field.FIELD");
+var emptyCond = PermissionUtil.getEmptyCondString(entity);
+var permSetId = PermissionUtil.getSet(vars.get("$field.ROLE"), entity, vars.get("$field.ACCESSTYPE"), field);
 
 if (permSetId != "") {
     // check if default or conditional permission has to be returned
-    if (cond == "" || cond == noCond) {
+    if (cond == "" || cond == emptyCond) {
         rootPermId = PermissionUtil.getPermissionWithoutCond(permSetId);
     } else {
-        rootPermId = PermissionUtil.getPermissionWithCond(permSetId);
+        permsWithCond = PermissionUtil.getPermissionWithCond(permSetId);
         
-        for each (let perm in rootPermId) {
-            let sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION where cast(ASYS_PERMISSION.COND as varchar(" + cond.length + ")) = '" + cond + "'"
+        for each (let perm in permsWithCond) {
+            let sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION join ASYS_PERMISSIONSET on ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = ASYS_PERMISSION.ASYS_PERMISSIONSET_ID where cast(ASYS_PERMISSION.COND as varchar(" + cond.length + ")) = '" + cond + "' and ASYS_PERMISSIONSET.FIELD_ID = '" + field + "'";
             rootPermId = db.cell(sqlStr, alias);
             break;
         }
diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
index 5cd31732a5198b2e28aca12013a732a5a323c5d8..6fbfa2b196b8083b2d8768f4e6f4877bad591817 100644
--- a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
+++ b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
@@ -9,17 +9,17 @@ var allowedNumberOfActionsForRecordPermission = 3;
 var allowedNumberOfActionsForEntityPermissions = 2;
 var allowedNumberOfActionsForFieldPermissions = 2;
 
-var entityTitle = vars.get("$field.ENTITY");
+var entityName = vars.get("$field.ENTITY");
 var roleTitle = vars.get("$field.ROLE");
 var fieldTitle = vars.get("$field.FIELD");
 var accesstype = vars.get("$field.ACCESSTYPE");
 var permCondInput = vars.get("$field.CONDITION");
 var permCondType = vars.get("$field.CONDTYPE");
-var permId = PermissionUtil.getPermission(roleTitle, entityTitle, fieldTitle, accesstype, permCondInput, permCondType);
+var permId = PermissionUtil.getPermission(roleTitle, entityName, fieldTitle, accesstype, permCondInput, permCondType);
 var actionsInDb = PermissionUtil.getActions([permId]);
 var actionsAsStringArray = vars.get("$field.ACTION").split(","); // only useful while working with already existing permissions
-var noCond = "{\"entity\":\"" + entityTitle + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
-var isDefaultPermission = (permCondInput != noCond && permCondInput != "") ? false : true;
+var emptyCond = PermissionUtil.getEmptyCondString(entityName);
+var isDefaultPermission = (permCondInput != emptyCond && permCondInput != "") ? false : true;
 
 var deletedRows = vars.get("$field.PermissionActions.deletedRows");
 var changedRows = vars.get("$field.PermissionActions.changedRows");
@@ -53,7 +53,7 @@ if (PermissionUtil.permissionExists(permId)) {
         }
         // if conditional permission: check if action is already linked to default permission
         if (!isDefaultPermission) {
-            if (PermissionUtil.actionExists(row.ACTION, PermissionUtil.getPermissionWithoutCond(PermissionUtil.getSet(roleTitle, entityTitle, accesstype, fieldTitle)))) {
+            if (PermissionUtil.actionExists(row.ACTION, PermissionUtil.getPermissionWithoutCond(PermissionUtil.getSet(roleTitle, entityName, accesstype, fieldTitle)))) {
                 result.string(translate.text("Action '" + row.ACTION + "' is already linked to the default permission."));
             }
         }
@@ -67,7 +67,7 @@ if (PermissionUtil.permissionExists(permId)) {
 } else {
     // new permission
     if (insertedRows.length > 0) {
-        var defaultPerm = PermissionUtil.getPermission(roleTitle, entityTitle, fieldTitle, accesstype, noCond);
+        var defaultPerm = PermissionUtil.getPermission(roleTitle, entityName, fieldTitle, accesstype, emptyCond);
         if (PermissionUtil.permissionExists(defaultPerm)) {
             var defaultActions = PermissionUtil.getActions([defaultPerm]);
             for each (let entry in insertedRows) {
diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
index 52441e881a88129c5c236292600bfb1b747e1cbe..1ed9831e0531b173837d767eb334c302a27d8d74 100644
--- a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
@@ -8,7 +8,7 @@ var role = "";
 if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
     role = vars.get("$param.RoleTitle_param");
 } else {
-    role = vars.get("$field.ROLE");
+    role = vars.get("$this.value");
 }
 
 if(role != undefined && role != null && role != "") {
diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
index d67b588f692d980b2940bdb21283d13909bc7a90..ca8a1a6040ec15a1814eac2221f0b5562ae1f327 100644
--- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
@@ -5,7 +5,7 @@ import("system.neon");
 var recordstate = vars.get("$sys.recordstate");
 var role = "";
 
-if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW)) {
+if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
     role = vars.get("$param.RoleTitle_param");
 } else {
     role = vars.get("$this.value");
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
index f0c1c63ee3d89fd756f34cb44bcf3ad9b1a53a5d..a87e6aff761a7858aa094f1910c7a5148ed0585f 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
@@ -14,7 +14,7 @@ var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY);
 var entityStructure;
 var entitiesUsePermFlagSet = [];
 var fieldsUsePermFlagSet = [];
-var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+var emptyCond = PermissionUtil.getEmptyCondString(vars.get("$field.ENTITY"));
 
 // gets all names of the entites which have the 'usePermission'-flag set (positive list)
 // gets all names of the fields which have the 'usePermission'-flag set (positive list)
@@ -111,10 +111,10 @@ result.object(res);
 
 function prepareResultArray(pEntry, pRes) {
     var parentPermission = "";
-    var noCond = "{\"entity\":\"" + pEntry.entity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    var emptyCond = PermissionUtil.getEmptyCondString(pEntry.entity);
     
     if (pEntry.accesstype != "E") {
-        if (pEntry.cond == "" || pEntry.cond == noCond) { // default permission
+        if (pEntry.cond == "" || pEntry.cond == emptyCond) { // default permission
             parentPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSetOfSet(PermissionUtil.getParentSet(pEntry.permissionid)));
         } else { // conditional permission
             parentPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSet(pEntry.permissionid));
@@ -167,28 +167,28 @@ function sortActions(actions, accesstype) {
 
 // sorts result array: Entity -> Records -> Fields
 function sortResultsByAccessTypes(a, b) {
-    var noCondA = "{\"entity\":\"" + a[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
-    var noCondB = "{\"entity\":\"" + b[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    var emptyCondA = PermissionUtil.getEmptyCondString(a[1]);
+    var emptyCondB = PermissionUtil.getEmptyCondString(b[1]);
 
     if (a[6] == b[6] && a[6] == "E") return 0;
     else if (a[6] == "E") return -1;
     else if (b[6] == "E") return 1;
     else if (a[6] == "R" && b[6] == "F") return -1;
     else if (a[6] == "F" && b[6] == "R") return 1;
-    else if (a[6] == b[6] && (a[4] == "" || a[4] == noCondA)) return -1;
-    else if (a[6] == b[6] && (b[4] == "" || b[4] == noCondB)) return 1;
+    else if (a[6] == b[6] && (a[4] == "" || a[4] == emptyCondA)) return -1;
+    else if (a[6] == b[6] && (b[4] == "" || b[4] == emptyCondB)) return 1;
     else  return 0;
 }
 
 // sorts result array: default permission -> conditional permission
 function sortResultsByCondition(a, b) {
-    var noCondA = "{\"entity\":\"" + a[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
-    var noCondB = "{\"entity\":\"" + b[1] + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    var emptyCondA = PermissionUtil.getEmptyCondString(a[1]);
+    var emptyCondB = PermissionUtil.getEmptyCondString(b[1]);
     
-    if (a[4] == "" || a[4] == noCond) return -1;
-    else if (b[4] == "" || b[4] == noCondB) return -1;
-    else if (a[4] != "" && a[4] != noCondA) return 1;
-    else if (b[4] != "" && b[4] != noCondB) return 1;
+    if (a[4] == "" || a[4] == emptyCond) return -1;
+    else if (b[4] == "" || b[4] == emptyCondB) return -1;
+    else if (a[4] != "" && a[4] != emptyCondA) return 1;
+    else if (b[4] != "" && b[4] != emptyCondB) return 1;
     else return 0;
 
 }
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
index d061d0fd357d1b6238aacb46f7e0ffc4f6ac480d..7a9dc109a5ca7ba782521f98555dc8c6ffe3a36e 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
@@ -10,7 +10,7 @@ var permId = vars.get("$field.UID");
 var accessType = vars.get("$field.ACCESSTYPE");
 var parentPermSetId = PermissionUtil.getParentSet(permId);
 var linkedActions = PermissionUtil.getActions([permId]);
-var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+var emptyCond = PermissionUtil.getEmptyCondString(vars.get("$field.ENTITY"));
 
 var sqlCondDelAction = SqlCondition.begin()
 .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')")
@@ -44,7 +44,7 @@ switch (accessType) {
         db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete all permission sets
         break;
     default:
-        if (PermissionUtil.getCond(permId) == "" || PermissionUtil.getCond(permId) == noCond) { // check if permission is default or conditional permission
+        if (PermissionUtil.getCond(permId) == "" || PermissionUtil.getCond(permId) == emptyCond) { // check if permission is default or conditional permission
             // default permission -> also have to delete sub permissions
             let allPerms = PermissionUtil.getPermissionWithCond(PermissionUtil.getParentSet(permId));
             allPerms.push(permId);
diff --git a/entity/Role_entity/recordcontainers/jdito/contentProcess.js b/entity/Role_entity/recordcontainers/jdito/contentProcess.js
index 181b3c9dbc75acb9fd6bf0e711645f761b563ecd..cac16db98487a53812c04296f0c2a3e9c6f7b04b 100644
--- a/entity/Role_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Role_entity/recordcontainers/jdito/contentProcess.js
@@ -19,21 +19,26 @@ if (vars.exists("$param.ExcludeRoles_param") && vars.get("$param.ExcludeRoles_pa
     }, excludeRoles);
 }
 
-if (selectedRole == null) {
-    for (let rolename in roles) {            
-        let role = roles[rolename];  
-        if (!excludeRoles[rolename])
-            res.push([rolename, role[0], role[1], role[2], 0]);
+for (let rolename in roles) {
+    let role = roles[rolename];  
+    if (!excludeRoles[rolename]) {
+        let numberOfUsersInSelectedRole = tools.getUsersWithRole(rolename).length;
+        res.push([rolename, role[0], role[1], role[2], numberOfUsersInSelectedRole + " " + translate.text("User", locale)]);
     }
-} else {
-    for (let rolename in roles) {
-        let role = roles[rolename];  
-        if (rolename == selectedRole) {           
-            let numberOfUsersInSelectedRole = tools.getUsersWithRole(selectedRole).length;           
-            res.push([rolename, role[0], role[1], role[2], numberOfUsersInSelectedRole + translate.text(" User", locale)]);
-            break;
+}
+
+var ids = vars.get("$local.idvalues");
+if (ids != null)
+{
+    res = res.filter(function(resEntry) 
+    {
+        for (let i = 0; i < ids.length; i++)
+        {
+            if (resEntry[0] == ids[i])
+                return true;
         }
-    }
+        return false;
+    });
 }
 
 result.object(res.sort());
\ No newline at end of file
diff --git a/neonView/PermissionActionList_view/PermissionActionList_view.aod b/neonView/PermissionActionList_view/PermissionActionList_view.aod
index ec908e041c67e371fd473d990d1147457b480a21..70b320c5f3e89cb72e06390af4cf9bd4e3fa75fc 100644
--- a/neonView/PermissionActionList_view/PermissionActionList_view.aod
+++ b/neonView/PermissionActionList_view/PermissionActionList_view.aod
@@ -8,6 +8,7 @@
       <titleField></titleField>
       <fixedDrawer v="true" />
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
       <columns>
         <neonTableColumn>
           <name>cc9ac8b7-e98b-4ce6-a0f0-204c05c1a3ce</name>
diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
index bfb6897c91b80abc5b7a9091c7eacabec0e3aade..1d20aec23a2ad12191f51aa0986ef4183f994416 100644
--- a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
+++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
@@ -13,11 +13,13 @@
       <iconField>#ICON</iconField>
       <titleField>#CONTENTTITLE</titleField>
       <entityField>#ENTITY</entityField>
+      <isEditable v="true" />
     </cardViewTemplate>
     <genericViewTemplate>
       <name>Generic</name>
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
       <fields>
         <entityFieldLink>
           <name>dd33df7a-82e6-49a8-b35f-99d0187970e3</name>
diff --git a/neonView/RoleFilter_view/RoleFilter_view.aod b/neonView/RoleFilter_view/RoleFilter_view.aod
index 84d6f6e7145f817a34ccc97e861370f35d6e3b06..c527ece2832bff5eca05886343eb13f13e61b0eb 100644
--- a/neonView/RoleFilter_view/RoleFilter_view.aod
+++ b/neonView/RoleFilter_view/RoleFilter_view.aod
@@ -1,39 +1,47 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2">
-  <name>RoleFilter_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <filterable v="true" />
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <tableViewTemplate>
-      <name>Table</name>
-      <iconField>#ICON</iconField>
-      <titleField>ROLETITLE</titleField>
-      <subtitleField>ROLETYPE</subtitleField>
-      <descriptionField>ROLEDESCRIPTION</descriptionField>
-      <entityField>#ENTITY</entityField>
-      <columns>
-        <neonTableColumn>
-          <name>29a4128c-c677-4b16-a167-febb20277a23</name>
-          <entityField>#ICON</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>e6d9050e-3139-48cc-b186-085dab1cec89</name>
-          <entityField>ROLETITLE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>01743397-32b2-4c8a-b947-ba077baf311d</name>
-          <entityField>ROLETYPE</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>7b269530-309a-4599-a392-f6e2651ccb65</name>
-          <entityField>ROLEDESCRIPTION</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
-  </children>
-</neonView>
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2">
+  <name>RoleFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table</name>
+      <iconField>#ICON</iconField>
+      <titleField>ROLETITLE</titleField>
+      <subtitleField>ROLETYPE</subtitleField>
+      <descriptionField>ROLEDESCRIPTION</descriptionField>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>29a4128c-c677-4b16-a167-febb20277a23</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>954cb883-bf05-4807-b303-98b31bf8f75e</name>
+          <entityField>UID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e6d9050e-3139-48cc-b186-085dab1cec89</name>
+          <entityField>ROLETITLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>01743397-32b2-4c8a-b947-ba077baf311d</name>
+          <entityField>ROLETYPE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>346c7722-bca5-4231-806f-b214fa47aaa1</name>
+          <entityField>USERCOUNT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>7b269530-309a-4599-a392-f6e2651ccb65</name>
+          <entityField>ROLEDESCRIPTION</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js
index 839ebb63e5eb57d1dd372bf924762653236a5233..2945358652766047e5527a089434e60f446b14a8 100644
--- a/process/Permission_lib/process.js
+++ b/process/Permission_lib/process.js
@@ -16,6 +16,18 @@ function PermissionUtil () {}
 
     let alias = SqlUtils.getSystemAlias();
     let sqlHelper = new SqlMaskingUtils(alias);
+    
+    /**
+     * Returns the default empty condition string for the given entity.
+     * 
+     * @param {String} pEntity name of the entity
+     * 
+     * @result {String} default empty condition string ({\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}})
+     */
+    PermissionUtil.getEmptyCondString = function (pEntity) 
+    {   
+        return "{\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    }
 
     /**
      * Returns the ids of all subordinated permission sets of a given parent permission set.
@@ -231,12 +243,12 @@ function PermissionUtil () {}
     PermissionUtil.getPermissionWithoutCond = function(pSetId) {
         var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'";
         var entityName = db.cell(sqlStr, alias);
-        var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+        var emptyCond = PermissionUtil.getEmptyCondString(entityName);
         
         sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
         + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'"
         + " and (COND is null"
-        + " or " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + noCond + "')";
+        + " or " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + emptyCond + "')";
         
         return db.cell(sqlStr, alias);
     }
@@ -251,12 +263,12 @@ function PermissionUtil () {}
     PermissionUtil.getPermissionWithCond = function(pSetId) {
         var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'";
         var entityName = db.cell(sqlStr, alias);
-        var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+        var emptyCond = PermissionUtil.getEmptyCondString(entityName);
     
         sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
         + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'"
         + " and COND is not null"
-        + " and " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " != '" + noCond + "'";
+        + " and " + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " != '" + emptyCond + "'";
         return db.table(sqlStr, alias);
     }
 
@@ -509,11 +521,11 @@ function PermissionUtil () {}
     PermissionUtil.getPermission = function(pRole, pEntity, pField, pAccesstype, pCondition, pCondtype) {
         var sqlStr = "";
         var sqlExt = "";
-        var noCond = "{\"entity\":\"" + pEntity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+        var emptyCond = PermissionUtil.getEmptyCondString(pEntity);
     
         if (checkInput([pCondition])) {
-            if (pCondition == noCond) {
-                sqlExt += " and (" + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + noCond + "' or COND is null)";
+            if (pCondition == emptyCond) {
+                sqlExt += " and (" + sqlHelper.castLob("ASYS_PERMISSION.COND", 254) + " = '" + emptyCond + "' or COND is null)";
             } else {
                 // SqlMaskingUtils.castLob causes an error in this case (at least on derby-db)
                 // derby-db max size of char is 254 and castLob casts to char first, then to varchar