diff --git a/entity/RoleChildren_entity/RoleChildren_entity.aod b/entity/RoleChildren_entity/RoleChildren_entity.aod
index 78d1c42ce37696577d1a50d3388f4f22ea0ab274..d7607769b005785094830bb2842252bab257de12 100644
--- a/entity/RoleChildren_entity/RoleChildren_entity.aod
+++ b/entity/RoleChildren_entity/RoleChildren_entity.aod
@@ -45,6 +45,10 @@
         <fieldName>Roles</fieldName>
       </dependency>
     </entityConsumer>
+    <entityParameter>
+      <name>RoleType_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js b/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js
index 9732fa101c6800e06be36ac08d1f4925b50fc40a..a76ad51dc5d86201281871b40f73bcd967bf8c44 100644
--- a/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,4 @@
+import("system.neon");
 import("Sql_lib");
 import("system.db");
 import("system.vars");
@@ -6,15 +7,21 @@ import("system.util");
 
 var alias = SqlUtils.getSystemAlias();
 var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param");
+var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param");
 var children = [];
 
+if (selectedRoleType == "" && selectedRoleName != "") {
+    selectedRoleType = "CUSTOM";
+    selectedRoleName = selectedRoleType + "_" + selectedRoleName;
+}
+
 // roles can only be assigned to CUSTOM roles -> selected role has to be a viable CUSTOM role
-if (selectedRoleName && selectedRoleName.indexOf("CUSTOM_") != -1) {
+if (selectedRoleName && selectedRoleType == "CUSTOM") {
     var childRoles = newSelect("ID, CHILD_ROLE", alias)
-    .from("ASYS_ROLES_CHILDREN")
-    .where("ASYS_ROLES_CHILDREN.PARENT_ROLE", selectedRoleName)
-    .table();
-
+        .from("ASYS_ROLES_CHILDREN")
+        .where("ASYS_ROLES_CHILDREN.PARENT_ROLE", selectedRoleName)
+        .table();
+    
     for each (let childRole in childRoles) {
         children.push([childRole[0], childRole[1], selectedRoleName]);
     }
diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js b/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js
index 60f0bfa215505465723f41d8a605a430a1ccd9da..6dd14e23f2bba2a6e29ac7cccb7031b3acf7e9d0 100644
--- a/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js
@@ -1,14 +1,19 @@
+import("system.neon");
 import("system.util");
 import("system.db");
 import("Sql_lib");
 import("system.result");
 import("system.vars");
 
-var parentRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param")
+var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param")
+var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param");
 
-if (parentRoleName && parentRoleName.indexOf("CUSTOM_") != -1) {
-    var alias = SqlUtils.getSystemAlias();
-    var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"];
-    var uid = vars.get("$field.UID") 
-    db.insertData("ASYS_ROLES_CHILDREN", ["CHILD_ROLE", "PARENT_ROLE", "ID"], null, [childRole, parentRoleName, uid], alias);
-}
\ No newline at end of file
+if (selectedRoleType == "" && selectedRoleName != "") {
+    selectedRoleType = "CUSTOM";
+    selectedRoleName = selectedRoleType + "_" + selectedRoleName;
+}
+
+var alias = SqlUtils.getSystemAlias();
+var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"];
+var uid = vars.get("$field.UID") 
+db.insertData("ASYS_ROLES_CHILDREN", ["CHILD_ROLE", "PARENT_ROLE", "ID"], null, [childRole, selectedRoleName, uid], alias);
\ No newline at end of file
diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js b/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js
index 3d8ff7063349243d3784541b4dcd994510fb0dab..ef5e24b81d4997315d826c016dfd7e5ab07725f8 100644
--- a/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js
@@ -4,9 +4,10 @@ import("Sql_lib");
 import("system.result");
 import("system.vars");
 
-var parentRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param")
+var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param");
+var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param");
 
-if (parentRoleName && parentRoleName.indexOf("CUSTOM_") != -1) {
+if (selectedRoleName && selectedRoleType == "CUSTOM") {
     var alias = SqlUtils.getSystemAlias();
     var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"];
 
diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod
index 8e6196406f40514531865d2024fb067803b9d508..57a20f634775b73314799a6573e7612d88fdd734 100644
--- a/entity/Role_entity/Role_entity.aod
+++ b/entity/Role_entity/Role_entity.aod
@@ -143,6 +143,10 @@
           <name>RoleId_param</name>
           <valueProcess>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/children/roleid_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>RoleType_param</name>
+          <valueProcess>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityActionField>
diff --git a/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js b/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d8c8166db1934be3da3e2bfe29b83e92c36992e
--- /dev/null
+++ b/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.ROLETYPE"));
\ No newline at end of file