diff --git a/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
index ae46228cf2b97b28333d001e095c9609b43fee70..dbfee2528ec4bfc6ac624c6e0751f4b2f983bb2a 100644
--- a/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js
@@ -3,5 +3,5 @@ import("system.neon");
 import("system.result");
 import("system.vars");
 
-if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value")== null)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value")== null)
     result.string(vars.get("$param.VisitrecommendationId_param"));
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js
index 13ce2e0a28b5e8752e5cc9343e55b9d2c0479f75..cbdf0752457c49ae5a0da79ccefde5d978056b3c 100644
--- a/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/priority/valueProcess.js
@@ -4,7 +4,7 @@ import("system.vars");
 import("KeywordRegistry_basic");
 import("system.result");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
     result.string($KeywordRegistry.visitRecommendationPriority$medium());
 
     
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js
index 1b25b343bc110c951c7da05d01eb360c5faee64b..f5a6569b2823a8bf027f16e51ebda3a2c25d383d 100644
--- a/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/responsible/valueProcess.js
@@ -3,5 +3,5 @@ import("system.vars");
 import("Employee_lib");
 import("system.result");
 
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
     result.string(EmployeeUtils.getCurrentContactId())
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index 56bfedc1d072a7ae4bc1fd18318424d952507e62..2bce193407bfbbe17778c2bec0d8bc8ffb2b8c42 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -54,9 +54,7 @@ if(idValues == true)
 recommendationSQLData = recommendationSQLData.table();
 
 for( let i = 0; i < recommendationSQLData.length; i++)
-{    
-    tmpData = [];
-
+{
     if(recommendationSQLData[i][2])
         var prio = recommendationSQLData[i][2];
     else if(recommendationSQLData[i][3])
@@ -64,49 +62,29 @@ for( let i = 0; i < recommendationSQLData.length; i++)
     else
         prio = $KeywordRegistry.visitRecommendationPriority$low();  
 
-    tmpData[0] = recommendationSQLData[i][0]; //UID.value
-    tmpData[1] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][1]); //ORGANISATION_NAME.value
-    tmpData[2] = recommendationSQLData[i][6]; //STREET.value
-    tmpData[3] = recommendationSQLData[i][7]; //COUNTRY.value
-    tmpData[4] = recommendationSQLData[i][8]; //ZIP.value
-    tmpData[5] = recommendationSQLData[i][9]; //CITY.value
-    tmpData[6] = prio; //PRIORITY.value
-    tmpData[7] = recommendationSQLData[i][4]; //PRIORITY_SOURCE.value
-    tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), prio) //PRIORITY.displayValue
-    tmpData[9] = recommendationSQLData[i][3]; //DUE_DATE.value
-    tmpData[10] = recommendationSQLData[i][5]; //INFO.value
-    tmpData[11] = recommendationSQLData[i][1]; //CONTACT_ID.value
-    tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationSQLData[i][4]) //PRIORITY_SOURCE.displayValue
-    tmpData[13] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][10], false); //USER_NEW.displayvalue
-    tmpData[14] = recommendationSQLData[i][10]; //USER_NEW.value
-    tmpData[15] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][11], false); //CONTACT_PERSON_ID.displayvalue
-    tmpData[16] = recommendationSQLData[i][11]; //CONTACT_PERSON_ID.value
-    tmpData[17] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false); //RESPONSIBLE.displayvalue
-    tmpData[18] = recommendationSQLData[i][12]; //RESPONSIBLE.value
-    
-//    if(recommendationSQLData[i][13] == "1")
-//    {
-//        var visitEntries = newSelect(["ORGANISATION_CONTACT_ID", "CONTACT_ID", "ENTRYDATE"]).from("VISITPLANENTRY").where("VISITPLANENTRY.VISITRECOMMENDATION_ID", tmpData[0]).arrayRow();
-//
-//        var act = newSelect("ACTIVITY.ACTIVITYID")
-//              .from("ACTIVITY")
-//              .join("ACTIVITYLINK", "ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
-//              .where("ACTIVITY.CATEGORY", "VISIT")
-//              .and("ACTIVITY.ENTRYDATE", visitEntries[2])
-//              .and("ACTIVITYLINK.OBJECT_ROWID", [visitEntries[1], visitEntries[0]])
-//              .cell();
-//              
-//        var entryWeek = datetime.toDate(visitEntries[2], "w");
-//        var currentWeek = datetime.toDate(vars.get("$sys.date"), "w")
-//        if(!act && (entryWeek < currentWeek))
-//        {
-//            recommendationData.push(tmpData);
-//        }
-//    }
-//    else
-//        recommendationData.push(tmpData);
+    tmpData = [
+        recommendationSQLData[i][0], //UID.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][1]), //ORGANISATION_NAME.value
+        recommendationSQLData[i][6], //STREET.value
+        recommendationSQLData[i][7], //COUNTRY.value
+        recommendationSQLData[i][8], //ZIP.value
+        recommendationSQLData[i][9], //CITY.value
+        prio, //PRIORITY.value
+        recommendationSQLData[i][4], //PRIORITY_SOURCE.value
+        KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), prio), //PRIORITY.displayValue
+        recommendationSQLData[i][3], //DUE_DATE.value
+        recommendationSQLData[i][5], //INFO.value
+        recommendationSQLData[i][1], //CONTACT_ID.value
+        KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationSQLData[i][4]), //PRIORITY_SOURCE.displayValue
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][10], false), //USER_NEW.displayvalue
+        recommendationSQLData[i][10], //USER_NEW.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][11], false), //CONTACT_PERSON_ID.displayvalue
+        recommendationSQLData[i][11], //CONTACT_PERSON_ID.value
+        ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false), //RESPONSIBLE.displayvalue
+        recommendationSQLData[i][12] //RESPONSIBLE.value
+    ];
 
-      recommendationData.push(tmpData);
+    recommendationData.push(tmpData);
 }
 
 //===========Visitfrequency============
@@ -153,27 +131,6 @@ if(idValues == false)
      
     for (var i = 0; i < visitFrequencyData.length; i++)
     {
-        tmpData = [];
-        tmpData[0] = visitFrequencyData[i][1]; //UID.value
-        tmpData[1] = visitFrequencyData[i][9]; //ORGANISATION_NAME.value
-        tmpData[2] = visitFrequencyData[i][3]; //STREET.value
-        tmpData[3] = visitFrequencyData[i][4]; //COUNTRY.value
-        tmpData[4] = visitFrequencyData[i][5]; //ZIP.value
-        tmpData[5] = visitFrequencyData[i][6]; //CITY.value
-        tmpData[6] = ""; //PRIORITY.value
-        tmpData[7] = $KeywordRegistry.visitRecommendationPrioSource$visitFrequency(); //PRIORITY_SOURCE.value
-        tmpData[8] = ""; //PRIORITY.displayValue
-        tmpData[9] = ""; //DUE_DATE.value
-        tmpData[10] = ""; //INFO.value
-        tmpData[11] = visitFrequencyData[i][1]; //CONTACT_ID.value
-        tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), $KeywordRegistry.visitRecommendationPrioSource$visitFrequency()); //PRIORITY_SOURCE.displayValue
-        tmpData[13] = ""; //USER_NEW.displayValue
-        tmpData[14] = ""; //USER_NEW.value
-        tmpData[15] = ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false); //CONTACT_PERSON_ID.displayValue
-        tmpData[16] = visitFrequencyData[i][1]; //CONTACT_PERSON_ID.value
-        tmpData[17] = ""; //RESPONSIBLE.displayValue
-        tmpData[18] = ""; //RESPONSIBLE.value
-        
         var dueDate = "";
         var lastVisitDate = "";
         var today = datetime.date();
@@ -202,14 +159,33 @@ if(idValues == false)
                     break;
             }
         }
-        tmpData[6] = getPrioByDueDate(dueDate); //PRIORITY.value
-        tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), tmpData[6]) //PRIORITY.displayValue
-        tmpData[9] = dueDate; //DUE_DATE.value
+        
+        tmpData = [
+            visitFrequencyData[i][1], //UID.value
+            visitFrequencyData[i][9], //ORGANISATION_NAME.value
+            visitFrequencyData[i][3], //STREET.value
+            visitFrequencyData[i][4], //COUNTRY.value
+            visitFrequencyData[i][5], //ZIP.value
+            visitFrequencyData[i][6], //CITY.value
+            getPrioByDueDate(dueDate), //PRIORITY.value
+            $KeywordRegistry.visitRecommendationPrioSource$visitFrequency(), //PRIORITY_SOURCE.value
+            KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), getPrioByDueDate(dueDate)), //PRIORITY.displayValue
+            dueDate, //DUE_DATE.value
+            "", //INFO.value
+            visitFrequencyData[i][1], //CONTACT_ID.value
+            KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), $KeywordRegistry.visitRecommendationPrioSource$visitFrequency()), //PRIORITY_SOURCE.displayValue
+            "", //USER_NEW.displayValue
+            "", //USER_NEW.value
+            ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false), //CONTACT_PERSON_ID.displayValue
+            visitFrequencyData[i][1], //CONTACT_PERSON_ID.value
+            "", //RESPONSIBLE.displayValue
+            "" //RESPONSIBLE.value
+        ];
         
         var manualRec = newSelect("STATUS")
         .from("VISITRECOMMENDATION")
-        .where("VISITRECOMMENDATION.CONTACT_ID", visitFrequencyData[i][1])
-        .or("VISITRECOMMENDATION.CONTACT_PERSON_ID", visitFrequencyData[i][1])
+        .where("VISITRECOMMENDATION.CONTACT_ID", tmpData[0])
+        .or("VISITRECOMMENDATION.CONTACT_PERSON_ID", tmpData[0])
         .cell()
 
         if(manualRec == "VISITSTATUSREPORTCREATED            ")
@@ -217,9 +193,6 @@ if(idValues == false)
     }
 }
 
-//sort Array by priority; highest priority first
-//ArrayUtils.sort2d(recommendationData, 7, true)
-
 var filter = vars.get("$local.filter"); 
 //TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method
 var filterFields = ["", "", "STREET", "COUNTRY" , "ZIP", "CITY", "PRIORITY", "PRIORITY_SOURCE", "", "DUE_DATE", "INFO", "CONTACT_ID"
@@ -261,6 +234,9 @@ var filterFns = {
     }
 };
 recommendationData = JditoFilterUtils.filterRecords(filterFields, recommendationData, filter.filter, filterFns);
+
+//sort Array by priority; highest priority first
+ArrayUtils.sort2d(recommendationData, 6, true);
 result.object(recommendationData);
 
 function getPrioByDueDate(pDueDate)