diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js
index eb15ffb9a993d391a37488ee099068d97aa656ac..e207f370e74536ffc82c512eea7e22ac682b29b2 100644
--- a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js
@@ -1,3 +1,4 @@
+import("AttributeFilter_lib");
 import("system.db");
 import("Context_lib");
 import("Sql_lib");
@@ -7,8 +8,7 @@ import("system.vars");
 import("system.result");
 
 var name = vars.get("$local.name");
-name = name.substr(name.lastIndexOf(".")+1);
-name = JSON.parse(name);
+name = AttributeSearchNameCoder.decode(name);
 var attributeId = name.id;
 var dbField = AttributeTypeUtil.getDatabaseField(name.type);
 
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterFieldsProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterFieldsProcess.js
index 9568f5e59030d2e884de8daa7c4cb736663311ac..8dfefc2b1b721b1c1bed7aebe16d0f0a77447800 100644
--- a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterFieldsProcess.js
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterFieldsProcess.js
@@ -1,3 +1,5 @@
+import("AttributeFilter_lib");
+import("system.util");
 import("Context_lib");
 import("Attribute_lib");
 import("system.entities");
@@ -18,10 +20,9 @@ attributeRows.forEach(function(row){
 
     if (contentType)
     {
-        var id = {id: row["UID"], type: attributeType};
-        id = JSON.stringify(id);
+        var name = AttributeSearchNameCoder.encode(row["UID"], attributeType);
         res.push({
-            name: id,
+            name: name,
             title: row["FULL_ATTRIBUTE_NAME"],
             contentType: contentType == "UNKNOWN" ? "TEXT" : contentType, //TODO: temporary test
             hasDropDownValues: contentType == "UNKNOWN" || contentType == "BOOLEAN" ? true : false//TODO: temporary test
@@ -30,4 +31,5 @@ attributeRows.forEach(function(row){
 });
 
 res = JSON.stringify(res);
-result.string(res);
\ No newline at end of file
+result.string(res);
+
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterValuesProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterValuesProcess.js
index 91a48d820e677ac2e1d6161a88c07092253c1522..32fa0526046d7ac0a50deecde885f5ef08beab50 100644
--- a/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterValuesProcess.js
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/attribute_filter/filterValuesProcess.js
@@ -1,3 +1,4 @@
+import("AttributeFilter_lib");
 import("Context_lib");
 import("system.translate");
 import("system.db");
@@ -7,9 +8,10 @@ import("Attribute_lib");
 import("Sql_lib");
 
 var filter = JSON.parse(vars.getString("$local.filter"));
-var name = JSON.parse(filter.name);
+var name = name = AttributeSearchNameCoder.decode(filter.name);
+
 var attributeId = name.id;
-var attrType = name.type.trim();
+var attrType = name.type;
 
 if (attrType == $AttributeTypes.COMBO.toString())
 {
diff --git a/process/AttributeFilter_lib/AttributeFilter_lib.aod b/process/AttributeFilter_lib/AttributeFilter_lib.aod
new file mode 100644
index 0000000000000000000000000000000000000000..57e3edcba2b142a37bc925f7db45a4cbf4006464
--- /dev/null
+++ b/process/AttributeFilter_lib/AttributeFilter_lib.aod
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+  <name>AttributeFilter_lib</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/AttributeFilter_lib/process.js</process>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/AttributeFilter_lib/process.js b/process/AttributeFilter_lib/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..51cfbb2887c32e1377cfbb4efad921610aac96c2
--- /dev/null
+++ b/process/AttributeFilter_lib/process.js
@@ -0,0 +1,22 @@
+import("system.util");
+
+function AttributeSearchNameCoder(){}
+
+AttributeSearchNameCoder.encode = function (pUid, pAttributeType)
+{
+    var res = {
+        id: pUid, 
+        type: pAttributeType.trim()
+    };
+    res = JSON.stringify(res);
+    res = util.encodeBase64String(res);
+    return res
+};
+
+AttributeSearchNameCoder.decode = function (pEncodedString)
+{
+    var res = pEncodedString.substr(pEncodedString.lastIndexOf(".") + 1);
+    res = util.decodeBase64String(res);
+    res = JSON.parse(res);
+    return res
+};