diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index f0a82c5aa6b0788a8d94fec043967cbcf81985c9..2d5c67c902415cce49a0ba2dcc9025e926f8bb04 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -28,6 +28,7 @@
       <mandatory v="true" />
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>ENTITY</name>
@@ -37,6 +38,7 @@
       <mandatory v="true" />
       <groupable v="true" />
       <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>FIELD</name>
@@ -56,13 +58,14 @@
       <consumer>KeywordAccessType</consumer>
       <mandatory v="true" />
       <groupable v="true" />
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>CONDTYPE</name>
       <title>Condition Type</title>
       <consumer>KeywordConditionType</consumer>
       <mandatory v="true" />
-      <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>PARENT</name>
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9df8d712eee4cf4f0f8f8e22fc25055e5317feb1
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
@@ -0,0 +1,10 @@
+//import("system.vars");
+//import("system.result");
+//
+//var field = vars.get("$field.FIELD");
+//
+//if (field != undefined && field != null && field != "") {
+//    result.string("Feld");
+//} else {
+//    result.string("");
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..52f53388aaf11d9798dbbaf75ef94d75c845ca66
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js
@@ -0,0 +1,10 @@
+//import("system.vars");
+//import("system.result");
+//
+//var field = vars.get("$field.FIELD");
+//
+//if (field != undefined && field != null && field != "") {
+//    result.string("F");
+//} else {
+//    result.string("");
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js
deleted file mode 100644
index 40f4ec0027f0957050655dbed1245713dc9bc0aa..0000000000000000000000000000000000000000
--- a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.result");
-import("system.vars");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-result.string(KeywordUtils.getViewValue($KeywordRegistry.permissionCondType(), vars.get("$field.CONDTYPE")));
diff --git a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..241d200ca45711a39e1510eeb6495571d3d5bf43
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
@@ -0,0 +1,9 @@
+//import("system.vars");
+//import("system.result");
+//import("system.neon");
+//
+//let recordstate = vars.get("$sys.recordstate");
+//
+//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+//    result.string(vars.getString("$param.EntityTitle_param"));
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
index ace2def782d998df24500b8fb7e0792e651e77da..241d200ca45711a39e1510eeb6495571d3d5bf43 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
@@ -1,7 +1,9 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.EntityTitle_param")) {
-    result.string(vars.getString("$param.EntityTitle_param"));
-}
\ No newline at end of file
+//import("system.vars");
+//import("system.result");
+//import("system.neon");
+//
+//let recordstate = vars.get("$sys.recordstate");
+//
+//if(vars.exists("$param.EntityTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+//    result.string(vars.getString("$param.EntityTitle_param"));
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4c1d911ed4092ccc4722b9ad12ab9a09245efee
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
@@ -0,0 +1,14 @@
+//import("system.vars");
+//import("system.result");
+//import("system.neon");
+//
+//var recordstate = vars.get("$sys.recordstate");
+//
+//if (vars.exists("$param.RoleTitle_param")) {
+//    var role = vars.get("$param.RoleTitle_param");
+//    
+//    if(role != undefined && role != null && role != "" && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+//        res = role.split("_");
+//        result.string(res[1]);
+//    }
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
index ce210d3aefbd85ebf0b4fc106ea5a25976284f1b..cc6b48287a7398af7dfe6108b1f9849097020746 100644
--- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
@@ -1,7 +1,9 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.RoleTitle_param")) {
-    result.string(vars.getString("$param.RoleTitle_param"));
-}
\ No newline at end of file
+//import("system.vars");
+//import("system.result");
+//import("system.neon");
+//
+//let recordstate = vars.get("$sys.recordstate");
+//
+//if(vars.exists("$param.RoleTitle_param") && (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT)) {
+//    result.string(vars.getString("$param.RoleTitle_param"));
+//}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
index adbb5889dfbc2e9884b322c4c414d757417c9764..f2c594edd7ecb9d5c67cf14ba6d301816a7e2ea6 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
@@ -6,6 +6,7 @@ var permId = vars.get("$field.UID");
 var accessType = vars.get("$field.ACCESSTYPE");
 var parentPermSetId = PermissionUtil.getParentPermissionSet(permId);
 var linkedActions = PermissionUtil.getAllChildPermissionActions(permId);
+var alias = "_____SYSTEMALIAS";
 
 var sqlCondDelAction = SqlCondition.begin()
 .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')")
@@ -34,16 +35,16 @@ switch (accessType) {
         .and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID in ('" + allPermSets.join("','") + "')")
         .build();
         
-        db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction); // delete all actions
-        db.deleteData("ASYS_PERMISSION", sqlCondDelPerm); // delete all permissions
-        db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet); // delete all permission sets
+        db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction, alias); // delete all actions
+        db.deleteData("ASYS_PERMISSION", sqlCondDelPerm, alias); // delete all permissions
+        db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete all permission sets
         break;
     default:
-        db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction); // delete all actions of the selected permission
-        db.deleteData("ASYS_PERMISSION", sqlCondDelPerm); // delete the selected permission
+        db.deleteData("ASYS_PERMISSIONACTION", sqlCondDelAction, alias); // delete all actions of the selected permission
+        db.deleteData("ASYS_PERMISSION", sqlCondDelPerm, alias); // delete the selected permission
         break;
 }
 
 if (PermissionUtil.permSetIsEmpty(parentPermSetId)) {
-    db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet); // delete empty permissionset
+    db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete empty permissionset
 }
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
index 09f7f0299b4cbdf82e2f2685de085b1f33c2667c..2e3cd82309cff93e3a4c4f923c51c820d4139aa2 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("Permission_lib");
 import("system.logging");
 import("system.neon");
 import("system.util");
@@ -6,6 +7,7 @@ import("system.vars");
 import("Permission_lib");
 
 var table, cols, vals;
+var alias = "_____SYSTEMALIAS";
 var sqlExt = "";
 var permissionid = util.getNewUUID();
 var role = vars.get("$field.ROLE");
@@ -25,7 +27,7 @@ if (checkInput([role, entity, accesstype, condtype, action])) {
         sqlExt += " and ACCESSTYPE = 'R'";
 
     var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ENTITY_ID = '" + entity + "' and ROLE_ID = '" + role + "'" + sqlExt;
-    var permissionsetid = db.cell(sqlStr);
+    var permissionsetid = db.cell(sqlStr, alias);
     
     if (permissionsetid == "") {
         // no fitting permissionset found - insert new permissionset
@@ -76,6 +78,6 @@ function permExists(pRole, pEntity, pField, pAccesstype, pCondtype, pCondition)
     + " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
     + " where ENTITY_ID = '" + pEntity + "' and ROLE_ID = '" + pRole + "'"
     + " and ACCESSTYPE = '" + pAccesstype + "' and CONDTYPE = '" + pCondtype + "'" + sqlExt;
-    var permId = db.cell(sqlStr);
+    var permId = db.cell(sqlStr, alias);
     return permId;
 }
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
index 0be080b802108b6f7314816b25ce3fecc3ff6969..e2cc6a303bf6f4fa3ab2d6bbb71622e955687cef 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
@@ -6,6 +6,7 @@ import("Permission_lib");
 
 var table, cols, vals, cond;
 
+var alias = "_____SYSTEMALIAS";
 var permissionid = vars.get("$field.UID");
 var actionNew = vars.get("$field.ACTION").split(",");
 var entityNew = vars.get("$field.ENTITY");
@@ -17,7 +18,7 @@ if (diff.length > 0) {
     // delete all linked permission actions
     table = "ASYS_PERMISSIONACTION";
     cond = SqlCondition.begin().and("ASYS_PERMISSION_ID = '" + permissionid + "'").build();
-    var dbDeletes = db.deleteData(table, cond);
+    var dbDeletes = db.deleteData(table, cond, alias);
     
     // insert the different actions
     cols = db.getColumns(table);
diff --git a/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js
index f7920ec1e28cce2af69f1ef57710f594d31d2553..3ef775221bdfb9a2437415fee17f99c35f7b206f 100644
--- a/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js
+++ b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js
@@ -1,3 +1,3 @@
 import("system.vars");
 import("system.result");
-result.string(vars.get("$field.TITLE"));
\ No newline at end of file
+result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js
index 247e338f2c54651cb0f723440591160303771887..0c0713045eb3915368a1b9acc27506921c484333 100644
--- a/process/Permission_lib/process.js
+++ b/process/Permission_lib/process.js
@@ -325,6 +325,17 @@ PermissionUtil.permSetIsEmpty = function(pPermSetId) {
     return false;
 }
 
+/**
+ * Returns all PermissionSets, Permissions and PermissionActions.
+ * 
+ * @result {String[]) all PermissionSets, Permissions and PermissionActions
+ */
+PermissionUtil.getCompleteStructure = function() {
+    return db.table("select ASYS_PERMISSIONSET.ENTITY_ID, ASYS_PERMISSIONSET.ROLE_ID, ASYS_PERMISSIONSET.FIELD_ID, ASYS_PERMISSIONSET.ACCESSTYPE, ASYS_PERMISSION.COND, ASYS_PERMISSION.CONDTYPE, ASYS_PERMISSIONACTION.ACTION from ASYS_PERMISSIONSET"
+        + " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID"
+        + " join ASYS_PERMISSIONACTION on ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID = ASYS_PERMISSION.ASYS_PERMISSIONID", alias);
+}
+
 /**
  * Returns all permissions of the given permission sets.
  * 
@@ -397,7 +408,7 @@ PermissionUtil.containsDuplicateActions = function(pPermId, pActionNew) {
  */
 PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole, pField, pAccessType) {
     var table = "ASYS_PERMISSIONSET";
-    var cols = db.getColumns(table);
+    var cols = db.getColumns(table, alias);
     var permsetid = util.getNewUUID();
     var vals = [pAccessType, permsetid, pParentPermSet, pEntity, pField, pRole];
     db.insertData(table, cols, null, vals, alias);
@@ -417,7 +428,7 @@ PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole,
  */
 PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType) {
     var table = "ASYS_PERMISSION";
-    var cols = db.getColumns(table);
+    var cols = db.getColumns(table, alias);
     var permid = util.getNewUUID(); 
     var vals = [permid, pParentPermSet, pCond, pCondType];
     db.insertData(table, cols, null, vals, alias);  
@@ -435,7 +446,7 @@ PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType)
  */
 PermissionUtil.insertNewPermissionAction = function(pParentPerm, pAction) {
     var table = "ASYS_PERMISSIONACTION";
-    var cols = db.getColumns(table);
+    var cols = db.getColumns(table, alias);
     var permactionid = util.getNewUUID();
     var vals = [pAction, permactionid, pParentPerm];
     db.insertData(table, cols, null, vals, alias);