diff --git a/.liquibase/Data_alias/basic/2020.2.3/Offer/addColumnOffer.xml b/.liquibase/Data_alias/basic/2020.2.3/Offer/addColumnOffer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1ae38fd53a3e8cd90aa3ae2a373c704004c016f7
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.2.3/Offer/addColumnOffer.xml
@@ -0,0 +1,16 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="s.garb" id="995a11c7-fb16-4c33-b5ad-0c35f44905c3">
+        <addColumn tableName="OFFER">
+            <column name="DISCOUNT"  type="NUMERIC(14,2)" />
+            <column name="DISCOUNTED_NET"  type="NUMERIC(14,2)" />
+        </addColumn>
+    </changeSet> 
+    <changeSet author="s.garb" id="801708bd-91f0-4468-bed9-0bbab7e46997">
+        <addColumn tableName="OFFER">
+            <column name="DISCOUNTED_VAT"  type="NUMERIC(14,2)" />
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2020.2.3/Offer/changelog.xml b/.liquibase/Data_alias/basic/2020.2.3/Offer/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86ddb71fe50db74127c2f6397e78cfffbacf5740
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.2.3/Offer/changelog.xml
@@ -0,0 +1,6 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include file="addColumnOffer.xml" relativeToChangelogFile="true" />
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2020.2.3/changelog.xml b/.liquibase/Data_alias/basic/2020.2.3/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c2a68fc34547cb7edcb594b4a2e5eccac52948b0
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.2.3/changelog.xml
@@ -0,0 +1,5 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="Offer/changelog.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b682dbdd2ccf6f3ed7564f4637bf2b064df01585
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationStorageOutdated.xml
@@ -0,0 +1,14 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="0dce5058-8b2f-43b1-8e53-03ccebe93cb8">
+        <addColumn tableName="CLASSIFICATIONSTORAGE">
+            <column name="OUTDATED" type="TINYINT" defaultValueNumeric="1"/>
+        </addColumn>
+        <addNotNullConstraint
+            columnDataType="TINYINT"
+            columnName="OUTDATED"
+            tableName="CLASSIFICATIONTYPE"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7632b506333978cb5b6b9e650c241bdcc717c865
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeFilterAndOutdated.xml
@@ -0,0 +1,15 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="44f49a73-7eb5-498b-a78a-96036e8e00d1">
+        <addColumn tableName="CLASSIFICATIONTYPE">
+            <column name="FILTER" type="NCLOB"/>
+            <column name="OUTDATED" type="TINYINT" defaultValueNumeric="1"/>
+        </addColumn>
+        <addNotNullConstraint
+            columnDataType="TINYINT"
+            columnName="OUTDATED"
+            tableName="CLASSIFICATIONTYPE"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3e3a13d3d4c4e6fddf2df16a68574fef395ee38
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/add_ClassificationTypeScorePoints.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="3f1bf58e-c7cb-4b50-9b57-8d90ee1ac8b6">
+        <addColumn tableName="CLASSIFICATIONTYPE">
+            <column name="SCOREPOINTS" type="INTEGER"/>
+        </addColumn>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7ab4bf06f68e5a0fe9fedd06ca2e64bcd49c1133
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_Classification.xml
@@ -0,0 +1,15 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="2c24ff95-86dc-48fe-8997-e7641bded314">
+        <addColumn tableName="CLASSIFICATION">
+            <column name="SCOREPOINTS" type="NUMERIC(14,2)"/>
+	</addColumn> 
+        <renameColumn
+            columnDataType="CHAR(36)"  
+            newColumnName="VALUE"
+            oldColumnName="CLASSIFICATIONSCORE_ID"  
+            tableName="CLASSIFICATION"/>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c10f8df9ccff89eb494396edbe2b3cb06bdeeb33
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationGrading.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="f82eebd8-62f5-446d-9b58-a48880bd077c">
+        <renameColumn
+            columnDataType="INTEGER"  
+            newColumnName="MINPERCENT"  
+            oldColumnName="MAXGRADEFORSCORE"  
+            tableName="CLASSIFICATIONGRADING"/>  
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c74a3b172ace4e581684b607f1b136ad476706b
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/alter_ClassificationScore.xml
@@ -0,0 +1,12 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="b.ulrich" id="6bb5a765-cb8d-4c4f-8bad-76845e90cc41">
+        <renameColumn
+            columnDataType="INTEGER"  
+            newColumnName="SCOREPERCENT"  
+            oldColumnName="SCORE"  
+            tableName="CLASSIFICATIONSCORE"/>  
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1548d06edbea305e452a941b7e205bda2a87c17d
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/Classification/changelog.xml
@@ -0,0 +1,10 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="add_ClassificationTypeFilterAndOutdated.xml"/>
+    <include relativeToChangelogFile="true" file="add_ClassificationStorageOutdated.xml"/>
+    <include relativeToChangelogFile="true" file="alter_ClassificationGrading.xml"/>
+    <include relativeToChangelogFile="true" file="add_ClassificationTypeScorePoints.xml"/>
+    <include relativeToChangelogFile="true" file="alter_ClassificationScore.xml"/>
+    <include relativeToChangelogFile="true" file="alter_Classification.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2021.0.0/changelog.xml b/.liquibase/Data_alias/basic/2021.0.0/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..68a89e3e7fe42e0da1999d5357912e1ac4e3c583
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.0.0/changelog.xml
@@ -0,0 +1,5 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="Classification/changelog.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
index 68c4a24099c21895e4346ab23dde9434ae87272d..e907f2c437ccfbdbff604cd378c451afe6dab379 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_attributerelation.xml
@@ -7,7 +7,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="0563ec4f-6f85-469d-89a1-5fc807f4dc9f"/>
       <column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:34"/>
       <column name="ID_VALUE" value="DELIVERCIF"/>
     </insert>
@@ -25,7 +25,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="086ff454-e407-433a-9124-496de7fef1cb"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:09"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -34,7 +34,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="0a1aabd7-4faf-4a82-9a85-3351add5b357"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="692e1f81-9f05-4e22-b74d-56d34c671067"/>
+      <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:54:10"/>
       <column name="ID_VALUE" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/>
     </insert>
@@ -43,7 +43,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="12a0bb2a-9b6c-4282-9209-2dc90d726fc2"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:54"/>
       <column name="ID_VALUE" value="292825e8-fa96-4b7b-8dab-71955ae14571"/>
     </insert>
@@ -61,7 +61,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="1505bacf-c29a-48a7-8da5-5e969252309f"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:07"/>
       <column name="ID_VALUE" value="SALPROJWEAKLIQUIDITY"/>
     </insert>
@@ -79,7 +79,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2261ef33-50af-445a-bc19-27367cc6ff7a"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:08"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -96,7 +96,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="255571a4-2fda-49ec-baed-ea7b374895f1"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:39"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -105,7 +105,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="25a53e28-d8a1-43d3-9af0-b34ce9c0bc06"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:25"/>
       <column name="ID_VALUE" value="PRICELISTSPECIAL"/>
     </insert>
@@ -114,7 +114,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="25dac52d-de7e-47e1-b60c-22d252dae4c2"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:46"/>
       <column name="ID_VALUE" value="PAYTERM7"/>
     </insert>
@@ -123,7 +123,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2d80654e-3bd5-46bb-af0b-f18f812d11e0"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:37"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -132,7 +132,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="2e456151-e59d-4d37-85cc-6e4b4054c8fe"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -141,7 +141,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3253baa7-06ea-4458-b7c1-36907321d025"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -159,7 +159,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3a32b8d5-1770-49cd-ae41-5b02f792ac6a"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:58"/>
       <column name="ID_VALUE" value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/>
     </insert>
@@ -168,7 +168,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3acc3d04-5212-4510-b88c-5885db940fec"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -186,7 +186,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3e119bed-4330-4519-bf98-73b7edc8a404"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:11"/>
       <column name="ID_VALUE" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/>
     </insert>
@@ -195,7 +195,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="3e91603c-813c-43f9-964f-90e566cbc042"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -222,7 +222,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4475ef06-83ab-4dff-91e1-be7053e004fa"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:08"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -231,7 +231,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="44bd5ab6-0b4f-4655-a276-ed172240643b"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:43:59"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -240,7 +240,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4d65a707-7dec-44c1-9a06-3dbb3204059c"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -249,7 +249,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4de531e4-4e91-4362-b701-a76282e7b976"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -258,7 +258,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="4ecfff5d-221a-4cf2-9498-fd24a11e4055"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -267,7 +267,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="509845c5-6b4a-4918-923d-75b1aef3a1f4"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -276,7 +276,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="52b61d0c-3cbf-4e98-a126-786540c808c9"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -303,7 +303,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="593d0626-9049-43ca-b7bd-eb6c7327beed"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:53"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -330,7 +330,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="5d83b2c1-92b6-478d-a5b1-fdda3d35592d"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:44"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -348,7 +348,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="67f36d84-1997-4801-a4f6-94c9b8318e95"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:47:08"/>
       <column name="ID_VALUE" value="SALPROJSTPRICEPOL"/>
     </insert>
@@ -357,7 +357,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="68b689b8-f9ff-40d1-b936-629985423ebb"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -366,7 +366,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6907f00d-011d-4592-8f0e-26e52449658f"/>
       <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:48:46"/>
       <column name="ID_VALUE" value="PRICELISTDEFAULT"/>
     </insert>
@@ -375,7 +375,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="69cb66c6-1d04-4029-8a20-0f6452bc4bf1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -393,7 +393,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6e619f34-361d-48d7-868a-572848ab4463"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -402,7 +402,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="6e8b96f9-de86-4dc1-b0c9-d5b99867d29c"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:10"/>
       <column name="ID_VALUE" value="PAYTERMDISCOUNT"/>
     </insert>
@@ -411,7 +411,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="72cb6a41-def0-4a96-b8c1-56df885cf151"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
       <column name="ID_VALUE" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/>
     </insert>
@@ -420,7 +420,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="76967a63-8322-484b-b603-d3cb5ce27d6d"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -429,7 +429,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a291363-9a75-4dd5-aa64-34a1801aeb92"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -438,7 +438,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a7736db-8b68-4865-a212-bd603af51370"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -447,7 +447,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7a7e223f-a1f9-4503-b6e9-95e4f49c75c1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -456,7 +456,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7abc6537-b254-4a36-8315-2e44a5b10fad"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:47"/>
       <column name="ID_VALUE" value="SALPROJPOLABO"/>
     </insert>
@@ -474,7 +474,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7b38959d-d0b7-434a-9316-58d4894982d2"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:18"/>
       <column name="ID_VALUE" value="SALPROJPOLABO"/>
     </insert>
@@ -483,7 +483,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="7e3d2c81-a9dd-4e82-a3e6-b26835c8ac46"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -501,7 +501,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="81dc88e3-3540-4675-a6d8-bca92cd91f84"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="aed65442-06aa-4cdc-b924-1d9728b444d3"/>
+      <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:56:16"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -510,7 +510,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="84c93ae0-1821-40da-9eee-d180ce23cad5"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="17746b46-2702-447a-b749-a92bfdf4bb38"/>
     </insert>
@@ -546,7 +546,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="8e474a2c-6adc-4f1d-88d8-217b0ddd592b"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:36:47"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -564,7 +564,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="924e8914-6275-45d4-a36a-94f3b70a35b4"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:41"/>
       <column name="ID_VALUE" value="SALPROJSTPERSAPP"/>
     </insert>
@@ -582,7 +582,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="95513181-69ac-4775-860a-42730e370e38"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:50:03"/>
       <column name="ID_VALUE" value="e4a60941-513f-4e75-a787-f00070ecb00a"/>
     </insert>
@@ -591,7 +591,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="956d65fa-6c89-475b-9c85-3ce9265b4273"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -600,7 +600,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="97429450-9cb5-4f8a-bd0f-c6c63c9afee9"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:48:40"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -618,7 +618,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="9f7d0b52-0f03-4eb0-b0b2-e3751862a3a1"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
       <column name="ID_VALUE" value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/>
     </insert>
@@ -627,7 +627,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="a433931c-412c-4a42-9a86-e5ca1e671a04"/>
       <column name="AB_ATTRIBUTE_ID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:51:25"/>
       <column name="ID_VALUE" value="DELIVEREX"/>
     </insert>
@@ -636,7 +636,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="a59304f1-2019-4191-a897-801747adb0e5"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:01:27"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -654,7 +654,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b2bb8ab7-0e64-49fc-8e18-372ec0a03822"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:54"/>
       <column name="ID_VALUE" value="SALPROJSTPERSAPP"/>
     </insert>
@@ -681,7 +681,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b45cc44c-77d2-4ba4-ae85-8b2046301a95"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -690,7 +690,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b482cf64-0b8c-49a3-8894-b50635bc2db2"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -699,7 +699,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="b9712ac0-cf76-47c1-b059-9d7498b6fa5c"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -708,7 +708,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c0a7430e-6393-4d1a-9954-b67e9d6cd73d"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:25"/>
       <column name="ID_VALUE" value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/>
     </insert>
@@ -717,7 +717,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c7f04b7a-de66-4398-8810-2592d5ca8674"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:05"/>
       <column name="ID_VALUE" value="e4a60941-513f-4e75-a787-f00070ecb00a"/>
     </insert>
@@ -726,7 +726,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="c87cf142-382a-426a-a4d6-07b71b6d41ed"/>
       <column name="AB_ATTRIBUTE_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:50:59"/>
       <column name="ID_VALUE" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/>
     </insert>
@@ -735,7 +735,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="cdab4a76-c6e6-4ffd-bae6-750128b6ed5d"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:12"/>
       <column name="ID_VALUE" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/>
     </insert>
@@ -744,7 +744,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ce75da6e-b946-4a8c-a9dc-fb76cc20f0a1"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:46:30"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -753,7 +753,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="d4974b69-d5b9-4e4e-9f39-de34622765b1"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:01:27"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -762,7 +762,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="d4a3c8a0-2050-4147-abad-43a1f35ccbf0"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -780,7 +780,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="df4e0db2-dbcb-46c2-b3ec-b7689ff2f3ba"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="692e1f81-9f05-4e22-b74d-56d34c671067"/>
+      <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:54:10"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -789,7 +789,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e1beb5a9-acfa-4b7b-bc6d-735b1a669e10"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:28:14"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -798,7 +798,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e303b295-01ae-4dd4-bad1-35a70c6dc90f"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -807,7 +807,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="e7ebccea-0850-4525-908c-040681de1bf4"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -816,7 +816,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="edddb76a-348d-497b-9665-21acbe0bed0b"/>
       <column name="AB_ATTRIBUTE_ID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:44:55"/>
       <column name="ID_VALUE" value="SALPROJWEAKMARKET"/>
     </insert>
@@ -825,7 +825,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ee0027e1-8fa2-4550-96f7-59c32461e2b0"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
       <column name="ID_VALUE" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/>
     </insert>
@@ -834,7 +834,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="ef53917b-ae76-4903-a68a-ab0feb743288"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -843,7 +843,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f1f8c53a-46e9-40a9-8be2-8f0775cafa64"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:31"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -861,7 +861,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f5a05824-270c-4556-a992-e5af9491b734"/>
       <column name="AB_ATTRIBUTE_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:19"/>
       <column name="ID_VALUE" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/>
     </insert>
@@ -870,7 +870,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f69ac4cd-7d18-47b4-994f-4fda20f2bc9f"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="aed65442-06aa-4cdc-b924-1d9728b444d3"/>
+      <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:56:16"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
@@ -879,7 +879,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f7824359-7f2c-4942-b959-465bf776ef7e"/>
       <column name="AB_ATTRIBUTE_ID" value="558419b2-6113-4060-b88d-cc6324754765"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="bd92680c-fb4b-4f9b-b434-da4fcee5b079"/>
+      <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:40:12"/>
       <column name="ID_VALUE" value="SALPROJSTPRICEPOL"/>
     </insert>
@@ -888,7 +888,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f7a60ce6-39c5-43b6-a14d-24b838f541b9"/>
       <column name="AB_ATTRIBUTE_ID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:49:02"/>
       <column name="ID_VALUE" value="SALPROJPOLLOW"/>
     </insert>
@@ -897,7 +897,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="f9404e0f-48cc-4a2b-a4f7-d260fe4f6e07"/>
       <column name="AB_ATTRIBUTE_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:52:10"/>
       <column name="ID_VALUE" value="292825e8-fa96-4b7b-8dab-71955ae14571"/>
     </insert>
@@ -906,7 +906,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="fedc492c-cc5d-48cb-a7ee-0cef061facec"/>
       <column name="AB_ATTRIBUTE_ID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:45:57"/>
       <column name="ID_VALUE" value="PAYTERM30"/>
     </insert>
@@ -915,7 +915,7 @@
       <column name="AB_ATTRIBUTERELATIONID" value="fffb23a5-20a8-40d9-b05f-b2bb822f2db1"/>
       <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:41:53"/>
       <column name="ID_VALUE" value="79378933-9f74-4391-b876-4528b582661f"/>
     </insert>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
index 3f718d9b8395c2b9fe5424b2945387f2be98e4d6..935298d7a89d0a2736a4a8a517d4147ec7a0b02a 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_loghistory.xml
@@ -248,7 +248,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="f355e4a9-c520-413d-ac93-2e2c100e5f8b"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;e265a424-b343-4bc1-b1cd-d40b9405ca12&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;e265a424-b343-4bc1-b1cd-d40b9405ca12&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="f1b02cad-2a68-45fb-9313-1983b83bb310"/>
@@ -743,7 +743,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="1224bcca-ac13-4aed-af29-5eb38ef567f5"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b&quot;,&#10;Objekt: &quot;f7b8f0c3-7702-4466-b502-d21fa4fa0010&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b&quot;,&#10;Objekt: &quot;fc465f2f-803b-4a1f-b79d-7b466d7ecff4&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="26f94d20-7f3a-4b3e-9655-fcf3e971ce1d"/>
@@ -905,7 +905,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="76b82ec8-bcb6-48be-8f2d-56f64ba45db2"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;9c22ba51-8a09-40f1-b6b8-9787fe43b141&quot;,&#10;Objekt: &quot;6a92df58-2b98-40da-ba6a-d0ddb1fde234&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;9c22ba51-8a09-40f1-b6b8-9787fe43b141&quot;,&#10;Objekt: &quot;6efb4fab-64f9-4d8e-aa6f-a158d13fc273&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="fedb7c1b-0a41-4dba-8abb-2e4af7b4ee2d"/>
@@ -941,7 +941,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="cd622430-d539-41a1-b18d-eb31d03dcff3"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Task Id: &quot;46164eac-62d1-4dbb-a252-93ac49429855&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Task Id: &quot;46164eac-62d1-4dbb-a252-93ac49429855&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="TASKLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="eca5c8cb-bd10-4425-b4bc-a2e50f2518b9"/>
@@ -986,7 +986,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="86c7423a-5db3-42a1-b26d-c03a902fb913"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;b8067a42-d059-4d86-88b0-485a194faa36&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;b8067a42-d059-4d86-88b0-485a194faa36&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="60c58962-9b76-4d22-855d-b0cf9ef388dc"/>
@@ -1051,7 +1051,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="9d97109c-d973-4c7a-8cb3-ec1e4e3d178b"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; eingefügt."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="9770d2f3-409c-4fab-a3df-4fd3dcd14693"/>
@@ -1191,7 +1191,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="TABLENAMEID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1200,7 +1200,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="TABLENAMEID" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:17:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1209,7 +1209,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Handel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="TABLENAMEID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:11"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1218,7 +1218,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;gross&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="TABLENAMEID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:18:12"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1227,7 +1227,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="TABLENAMEID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1236,7 +1236,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="09281be8-8cb5-4201-9758-8c86b3d2bb85"/>
+      <column name="TABLENAMEID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:19:47"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1245,7 +1245,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="TABLENAMEID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:19"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1254,7 +1254,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Service&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="TABLENAMEID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1263,7 +1263,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="22f1ca45-e633-4080-9d5c-9a8c2e06d3f9"/>
+      <column name="TABLENAMEID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:20:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1272,7 +1272,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Logistik&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="TABLENAMEID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1281,7 +1281,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="TABLENAMEID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:21:26"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1290,7 +1290,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="TABLENAMEID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1299,7 +1299,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="TABLENAMEID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:22:05"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1308,7 +1308,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="TABLENAMEID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1317,7 +1317,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="TABLENAMEID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:24:42"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1326,7 +1326,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Maschinenbau&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="TABLENAMEID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:12"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1335,7 +1335,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="TABLENAMEID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:13"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1344,7 +1344,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="TABLENAMEID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1353,7 +1353,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Logistik&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="TABLENAMEID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:25:55"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1362,7 +1362,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="8f4f43e0-669b-4e1f-b050-42193f8d2998"/>
+      <column name="TABLENAMEID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:26:46"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1380,7 +1380,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;gross&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="TABLENAMEID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:08"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1389,7 +1389,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="TABLENAMEID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1398,7 +1398,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Loyalty: &quot;mittel&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="a5d107ac-f796-430e-a686-5a132f96650b"/>
+      <column name="TABLENAMEID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:27:34"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1407,7 +1407,7 @@
       <column name="DESCRIPTION" value="Eigenschaft Assessment / Industry: &quot;Bauwesen&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_ATTRIBUTERELATION"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="TABLENAMEID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="TABLENAMEID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
       <column name="DATE_NEW" valueDate="2019-11-26T06:28:14"/>
     </insert>
     <insert tableName="ab_loghistory">
@@ -1476,7 +1476,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="209dd881-57eb-429b-8144-8fd5e14ad1bb"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;13e60843-5d6d-45ee-88c7-46db41874138&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;3cee0474-504f-43cc-844a-715f1a0db271&quot;,&#10;Object relation type 2: &quot;fa879afd-b2c5-4eee-9799-d63c6764b348&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;8707accf-b1fd-4bde-97b1-ab44b75f66f9&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;3cee0474-504f-43cc-844a-715f1a0db271&quot;,&#10;Object relation type 2: &quot;fa879afd-b2c5-4eee-9799-d63c6764b348&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="e94240b7-4492-43f8-8913-cd7ff6ea2892"/>
@@ -1485,7 +1485,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="64a91508-b375-4a40-8968-968309e5f781"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;b043cd42-058c-48bd-8326-4c92e0e74c48&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;5a52304e-65e8-40ed-9aca-a76af6c8c3a0&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="8c09b724-5ff0-4869-add8-803097cd94aa"/>
@@ -1494,7 +1494,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="3dabb79a-1b4f-4977-a7ff-d92d7e1a1b1f"/>
       <column name="LOGTYPE" value="D"/>
-      <column name="DESCRIPTION" value="Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object 1 row Id: &quot;b043cd42-058c-48bd-8326-4c92e0e74c48&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot; gelöscht."/>
+      <column name="DESCRIPTION" value="Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object 1 row Id: &quot;5a52304e-65e8-40ed-9aca-a76af6c8c3a0&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot; gelöscht."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="8c09b724-5ff0-4869-add8-803097cd94aa"/>
@@ -1503,7 +1503,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="de5beb83-904d-4657-89db-4ba5a56b68f5"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;62175b31-b432-4ec6-932f-8e69033884c6&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;a3fd3c23-12e1-4820-b76e-2cd70103d94d&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot;,&#10;Object relation type 2: &quot;0795a3cd-295b-421b-aed1-decc09b05362&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="47802bb5-7785-43ba-a860-6b494e8ef593"/>
@@ -1512,7 +1512,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="3e8db12d-58c7-41b1-aa83-4d3476b6e861"/>
       <column name="LOGTYPE" value="I"/>
-      <column name="DESCRIPTION" value="Object 1 row Id: &quot;97b66b3c-a9f5-4dc4-902e-850d69973d1d&quot;,&#10;Object 2 row Id: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Object relation type 1: &quot;c9b7ce6b-1100-46f6-8498-2da6ac24189e&quot;,&#10;Object relation type 2: &quot;259babbd-7827-44d4-b9ec-8245d27b5f70&quot; eingefügt."/>
+      <column name="DESCRIPTION" value="Object 1 row Id: &quot;019651a4-503e-4e06-aefd-e7e631bf3144&quot;,&#10;Object 2 row Id: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Object relation type 1: &quot;c9b7ce6b-1100-46f6-8498-2da6ac24189e&quot;,&#10;Object relation type 2: &quot;259babbd-7827-44d4-b9ec-8245d27b5f70&quot; eingefügt."/>
       <column name="TABLENAME" value="AB_OBJECTRELATION"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="2bd8678c-e621-4e22-b203-2d5d967422c0"/>
@@ -1559,7 +1559,7 @@
     <insert tableName="ab_loghistory">
       <column name="AB_LOGHISTORYID" value="0ae7a999-a5d3-4e04-b2a0-ffbf90588459"/>
       <column name="LOGTYPE" value="D"/>
-      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;2c63e0de-f21c-474f-89d7-bff8ba1dbf43&quot;,&#10;Art: &quot;Organisation&quot; gelöscht."/>
+      <column name="DESCRIPTION" value="Activity Id: &quot;c7c29526-3138-4264-8eb4-c6876797f8fe&quot;,&#10;Objekt: &quot;dec94545-2487-46d5-978d-26ee0fcf0f5f&quot;,&#10;Art: &quot;Organisation&quot; gelöscht."/>
       <column name="TABLENAME" value="ACTIVITYLINK"/>
       <column name="USER_NEW" value="Admin"/>
       <column name="TABLENAMEID" value="9770d2f3-409c-4fab-a3df-4fd3dcd14693"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
index cca5228e40acf742f9b3c16e6c978ad3703d3f38..cb61f6138dee01989649ef4c2f0bde4ed3b56304 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_objectrelation.xml
@@ -5,9 +5,9 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="03c855e5-f236-4e39-b886-91832b3a53fb"/>
-      <column name="OBJECT2_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT2_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT1_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="b3b85332-1c86-4cd8-a3b9-34c49c51f01a"/>
@@ -19,44 +19,44 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="2bd8678c-e621-4e22-b203-2d5d967422c0"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT1_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="390cd4d2-8231-4dbc-ac9d-0ea7aecc6ef6"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT1_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="0795a3cd-295b-421b-aed1-decc09b05362"/>
       <column name="AB_OBJECTRELATIONID" value="47802bb5-7785-43ba-a860-6b494e8ef593"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="0795a3cd-295b-421b-aed1-decc09b05362"/>
-      <column name="OBJECT1_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT1_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="4c9bc7f3-c13b-4e55-9c23-012ba40196c9"/>
-      <column name="OBJECT2_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="OBJECT1_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="e397b595-38ae-4365-908e-75ee388838eb"/>
       <column name="AB_OBJECTRELATIONID" value="5c545235-231f-4082-9e74-4ec4512eb98d"/>
-      <column name="OBJECT2_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="9d4739ba-33b0-4e87-b281-561e2cbdd277"/>
       <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="63ecd05d-f2e5-4957-a496-96a87451a78f"/>
-      <column name="OBJECT2_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT2_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT1_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/>
@@ -68,30 +68,30 @@
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="c8aa4abb-a274-43d6-a067-ee935c443bfb"/>
-      <column name="OBJECT2_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT2_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT1_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
       <column name="AB_OBJECTRELATIONID" value="cfbbce3e-1c0d-4d05-9ccf-8232f7eaaf02"/>
-      <column name="OBJECT2_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT2_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="47a9e611-79b6-46b6-b767-3a0dfed9d010"/>
-      <column name="OBJECT1_ROWID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="OBJECT1_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="259babbd-7827-44d4-b9ec-8245d27b5f70"/>
       <column name="AB_OBJECTRELATIONID" value="d4454686-8d4e-42d9-9df8-61f19c69ce93"/>
-      <column name="OBJECT2_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT2_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="c9b7ce6b-1100-46f6-8498-2da6ac24189e"/>
-      <column name="OBJECT1_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT1_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="ab_objectrelation">
       <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/>
       <column name="AB_OBJECTRELATIONID" value="e94240b7-4492-43f8-8913-cd7ff6ea2892"/>
-      <column name="OBJECT2_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT2_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/>
-      <column name="OBJECT1_ROWID" value="13e60843-5d6d-45ee-88c7-46db41874138"/>
+      <column name="OBJECT1_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
index 51685d850add04ebcd58f6396a40af906c5f87b0..3621d28b4d2a747be8b92c2036a829bc1cbb556b 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/activitylink.xml
@@ -15,7 +15,7 @@
       <column name="ACTIVITY_ID" value="94365b81-cddd-4f56-8379-7ba0a98840a4"/>
       <column name="ACTIVITYLINKID" value="01ff4193-d5b4-41eb-b2db-ea31e5ed7df4"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -39,7 +39,7 @@
       <column name="ACTIVITY_ID" value="ccbb8eef-5caa-4f6b-ad1e-dbb8ba171650"/>
       <column name="ACTIVITYLINKID" value="05ccef04-86cd-4b29-96b7-e106c015a82f"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:57:11"/>
     </insert>
     <insert tableName="activitylink">
@@ -47,7 +47,7 @@
       <column name="ACTIVITY_ID" value="8c88dd83-20cb-4601-b1e0-098f1aef8963"/>
       <column name="ACTIVITYLINKID" value="0aaad19f-daa1-44d3-b7df-cba2a88b2745"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:56:54"/>
     </insert>
     <insert tableName="activitylink">
@@ -87,7 +87,7 @@
       <column name="ACTIVITY_ID" value="dc0d01bc-6a8e-48cc-8ce0-58fc9d83af01"/>
       <column name="ACTIVITYLINKID" value="10aa8b38-509c-4385-bfe0-775ab92571a8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:45:07"/>
     </insert>
     <insert tableName="activitylink">
@@ -95,7 +95,7 @@
       <column name="ACTIVITY_ID" value="a42f7cff-53e5-4515-aca2-49c5b4c46f69"/>
       <column name="ACTIVITYLINKID" value="10b9499b-2f14-4251-8001-ac9e838c59a8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:55:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -151,7 +151,7 @@
       <column name="ACTIVITY_ID" value="9f498736-c523-4c63-8c53-28e49324b52b"/>
       <column name="ACTIVITYLINKID" value="20a50d5d-fe87-4ed2-8f94-b2571b6b34e7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -167,7 +167,7 @@
       <column name="ACTIVITY_ID" value="d6ee3c57-1a49-45d2-8d09-d1480ad3e159"/>
       <column name="ACTIVITYLINKID" value="26b0f97e-30fc-4808-85a1-5d95cd5f6b34"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:56:37"/>
     </insert>
     <insert tableName="activitylink">
@@ -175,7 +175,7 @@
       <column name="ACTIVITY_ID" value="d3e2acf7-ee1c-4b17-9cb6-e8e720d0cc0b"/>
       <column name="ACTIVITYLINKID" value="26f94d20-7f3a-4b3e-9655-fcf3e971ce1d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-11-15T08:46:21"/>
     </insert>
     <insert tableName="activitylink">
@@ -191,7 +191,7 @@
       <column name="ACTIVITY_ID" value="aaf320cd-b849-4062-a3b4-e6636230c114"/>
       <column name="ACTIVITYLINKID" value="2de91976-7c5e-4676-87e6-1869381235b0"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:51:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -199,7 +199,7 @@
       <column name="ACTIVITY_ID" value="502167d7-8946-41bb-9353-8bafde8c7b09"/>
       <column name="ACTIVITYLINKID" value="2e4494d3-0160-4e9a-a78a-54884dd465f7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-06-11T02:41:00"/>
     </insert>
     <insert tableName="activitylink">
@@ -225,7 +225,7 @@
       <column name="ACTIVITY_ID" value="84136771-b2ea-4ad6-a6f7-a08ed228581e"/>
       <column name="ACTIVITYLINKID" value="3385ac40-6f0e-45eb-bb71-ca3027325133"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:56:49"/>
     </insert>
     <insert tableName="activitylink">
@@ -281,7 +281,7 @@
       <column name="ACTIVITY_ID" value="8034de5b-48e7-4ca6-bfbf-db86395a4c59"/>
       <column name="ACTIVITYLINKID" value="4247ff5e-db95-4114-a1e6-21bbea86098e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:14:49"/>
     </insert>
     <insert tableName="activitylink">
@@ -289,7 +289,7 @@
       <column name="ACTIVITY_ID" value="810346d8-ab0e-4f1a-ae78-9f55efcadbe6"/>
       <column name="ACTIVITYLINKID" value="44ae4bcc-ccec-493c-a0db-32b136c450bc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:07:31"/>
     </insert>
     <insert tableName="activitylink">
@@ -305,7 +305,7 @@
       <column name="ACTIVITY_ID" value="1c711078-8324-4fcf-93ec-2c8aa29c0cc6"/>
       <column name="ACTIVITYLINKID" value="46d9d317-1b7d-4046-8278-9a4957cc1dfe"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -337,7 +337,7 @@
       <column name="ACTIVITY_ID" value="86bd08ed-38ca-42bb-af5b-2bcfb9d3ee1b"/>
       <column name="ACTIVITYLINKID" value="4c526e91-a6b1-4d53-8ecc-a79418c81941"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:03:18"/>
     </insert>
     <insert tableName="activitylink">
@@ -417,7 +417,7 @@
       <column name="ACTIVITY_ID" value="a586aba1-0880-4705-9d2a-46b19cbdb954"/>
       <column name="ACTIVITYLINKID" value="565f3c19-3a81-4af6-b2ae-5b4fdccb87eb"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:30:34"/>
     </insert>
     <insert tableName="activitylink">
@@ -441,7 +441,7 @@
       <column name="ACTIVITY_ID" value="21852330-9c66-42a3-9d25-d053833f146d"/>
       <column name="ACTIVITYLINKID" value="5a4672ac-99ff-4a2e-a4ca-aad217bef144"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:22:44"/>
     </insert>
     <insert tableName="activitylink">
@@ -449,7 +449,7 @@
       <column name="ACTIVITY_ID" value="661a7b87-68ae-4d52-bc22-6bf96184e6fe"/>
       <column name="ACTIVITYLINKID" value="5a4d249a-e3e4-48e5-80a5-2fd1567a82b8"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -457,7 +457,7 @@
       <column name="ACTIVITY_ID" value="b378876d-dba5-4e41-865f-9ac056bffa60"/>
       <column name="ACTIVITYLINKID" value="5ad45b3e-72a0-419e-a183-17aaead38158"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -473,7 +473,7 @@
       <column name="ACTIVITY_ID" value="b8067a42-d059-4d86-88b0-485a194faa36"/>
       <column name="ACTIVITYLINKID" value="60c58962-9b76-4d22-855d-b0cf9ef388dc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-11-15T11:05:25"/>
     </insert>
     <insert tableName="activitylink">
@@ -513,7 +513,7 @@
       <column name="ACTIVITY_ID" value="beda92e0-bbd6-423a-8b49-78da30064e84"/>
       <column name="ACTIVITYLINKID" value="6c212e64-a9db-4395-a118-5279dbc6761d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -553,7 +553,7 @@
       <column name="ACTIVITY_ID" value="325d38fe-e0e8-44b7-b67c-279fcba6a7bd"/>
       <column name="ACTIVITYLINKID" value="75b42e7c-4748-41ca-9a23-3436b55cadf6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T09:00:40"/>
     </insert>
     <insert tableName="activitylink">
@@ -561,7 +561,7 @@
       <column name="ACTIVITY_ID" value="e2d3cde4-e214-4cef-ae5a-d52da5633094"/>
       <column name="ACTIVITYLINKID" value="769721cc-a526-4e61-989f-71296085e7df"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:14:26"/>
     </insert>
     <insert tableName="activitylink">
@@ -569,7 +569,7 @@
       <column name="ACTIVITY_ID" value="5fcb8c51-22da-49ec-83c4-d47c296c77a7"/>
       <column name="ACTIVITYLINKID" value="777ed544-bcb2-43b2-914f-31bfa684e5c3"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:11:53"/>
     </insert>
     <insert tableName="activitylink">
@@ -585,7 +585,7 @@
       <column name="ACTIVITY_ID" value="7a058394-b360-41e0-aaea-6a3ca625f0d3"/>
       <column name="ACTIVITYLINKID" value="7a4b1e70-1773-4529-8506-3243c9349ebc"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-19T08:54:52"/>
     </insert>
     <insert tableName="activitylink">
@@ -593,7 +593,7 @@
       <column name="ACTIVITY_ID" value="91f7f3c5-8f36-44a7-ba0b-503a05c81d3b"/>
       <column name="ACTIVITYLINKID" value="7f9cbd45-7ff0-4d7d-9412-58db6245f400"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:48:02"/>
     </insert>
     <insert tableName="activitylink">
@@ -601,7 +601,7 @@
       <column name="ACTIVITY_ID" value="6397161c-afed-40cf-a1bd-12e657054ce4"/>
       <column name="ACTIVITYLINKID" value="80d3de8f-fd86-401b-aeae-63b389b9310c"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -633,7 +633,7 @@
       <column name="ACTIVITY_ID" value="a416d1f7-553a-43b6-a084-021ad1f92dd9"/>
       <column name="ACTIVITYLINKID" value="869c8987-7239-4f61-a0dc-b2f9e83ab2db"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:47:38"/>
     </insert>
     <insert tableName="activitylink">
@@ -657,7 +657,7 @@
       <column name="ACTIVITY_ID" value="2e2e733b-0d88-41aa-80c3-04dab338011a"/>
       <column name="ACTIVITYLINKID" value="8d136835-b822-49a2-a516-87d4af34e8e1"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:58:03"/>
     </insert>
     <insert tableName="activitylink">
@@ -665,7 +665,7 @@
       <column name="ACTIVITY_ID" value="5e95209e-0c7d-4c45-a5de-0d3ccdbc5f08"/>
       <column name="ACTIVITYLINKID" value="8d2ff9ea-5416-47ac-839f-3f7c7b517129"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:42:09"/>
     </insert>
     <insert tableName="activitylink">
@@ -673,7 +673,7 @@
       <column name="ACTIVITY_ID" value="56c78f3d-e126-4e36-8031-d5eef9877243"/>
       <column name="ACTIVITYLINKID" value="8d384436-9989-4571-a193-cc3061249f97"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -681,7 +681,7 @@
       <column name="ACTIVITY_ID" value="107a18dd-94f1-4df4-8775-6016262951ef"/>
       <column name="ACTIVITYLINKID" value="918ec650-9e5a-430b-b6a7-d0f5e9780935"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:19:41"/>
     </insert>
     <insert tableName="activitylink">
@@ -689,7 +689,7 @@
       <column name="ACTIVITY_ID" value="7c89c987-2751-4d87-8d42-1ebbd7bdba7f"/>
       <column name="ACTIVITYLINKID" value="93c76b23-fc2c-4544-9e18-2422b2721860"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:16:16"/>
     </insert>
     <insert tableName="activitylink">
@@ -705,7 +705,7 @@
       <column name="ACTIVITY_ID" value="7fa61c35-0b88-4e01-aadf-73101245a2e8"/>
       <column name="ACTIVITYLINKID" value="94ed9437-9050-4358-975b-c07988c36117"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:50:27"/>
     </insert>
     <insert tableName="activitylink">
@@ -713,7 +713,7 @@
       <column name="ACTIVITY_ID" value="a01f1cc6-e588-451d-b22a-6dfe314fda51"/>
       <column name="ACTIVITYLINKID" value="9715d82b-5239-46c3-a651-fdc7ca4c1d0e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:51:50"/>
     </insert>
     <insert tableName="activitylink">
@@ -753,7 +753,7 @@
       <column name="ACTIVITY_ID" value="62486e9e-52c6-476f-b1e3-5d62e3f6384e"/>
       <column name="ACTIVITYLINKID" value="9f20ee40-22b8-440a-93e3-749bc6d6e273"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:54:23"/>
     </insert>
     <insert tableName="activitylink">
@@ -761,7 +761,7 @@
       <column name="ACTIVITY_ID" value="ed70c795-2a72-40e4-bce7-13aca09da578"/>
       <column name="ACTIVITYLINKID" value="9f2616fb-7d78-44f6-9f5e-94ef5268dad4"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T08:57:56"/>
     </insert>
     <insert tableName="activitylink">
@@ -793,7 +793,7 @@
       <column name="ACTIVITY_ID" value="52462c82-d05f-4a73-9bac-4d9929d07436"/>
       <column name="ACTIVITYLINKID" value="a631ea8d-c09a-4bff-83ab-4573df6dbe4f"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T07:52:12"/>
     </insert>
     <insert tableName="activitylink">
@@ -809,7 +809,7 @@
       <column name="ACTIVITY_ID" value="d6038dc6-a28f-42ad-b17b-094adc98fd8a"/>
       <column name="ACTIVITYLINKID" value="aa944406-61f4-4044-9f69-51a42b270113"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:46:52"/>
     </insert>
     <insert tableName="activitylink">
@@ -833,7 +833,7 @@
       <column name="ACTIVITY_ID" value="9dda39bf-966c-4560-be03-5ddbbc1da84a"/>
       <column name="ACTIVITYLINKID" value="b0fae79b-0b1e-4650-8d94-853d17cca7bd"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -873,7 +873,7 @@
       <column name="ACTIVITY_ID" value="de110a33-bcab-407e-9d60-7a65f028159b"/>
       <column name="ACTIVITYLINKID" value="baa5a1da-39f2-48ae-93a5-bad704e5ae48"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -889,7 +889,7 @@
       <column name="ACTIVITY_ID" value="f38f8b69-7c10-4991-af8c-40dda43376f9"/>
       <column name="ACTIVITYLINKID" value="bc86224f-8266-4c8a-950b-b8cb9e1a5569"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:58:08"/>
     </insert>
     <insert tableName="activitylink">
@@ -929,7 +929,7 @@
       <column name="ACTIVITY_ID" value="e3be48af-e679-4b3a-972f-ad17239e3bb4"/>
       <column name="ACTIVITYLINKID" value="c3751fb7-ae77-402b-8716-3e3a477dc813"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T04:58:50"/>
     </insert>
     <insert tableName="activitylink">
@@ -945,7 +945,7 @@
       <column name="ACTIVITY_ID" value="e303e7e9-6d16-40cd-a7a9-7196d219d1de"/>
       <column name="ACTIVITYLINKID" value="c419929e-2b07-4cc4-9c7d-b0cf8b47b252"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:52:55"/>
     </insert>
     <insert tableName="activitylink">
@@ -961,7 +961,7 @@
       <column name="ACTIVITY_ID" value="de110a35-aaab-407e-9d60-7a65f028159b"/>
       <column name="ACTIVITYLINKID" value="caa5a1da-39f2-48ae-93a5-bad704e5ae48"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="06006801-c6a1-4321-9fde-95f9d3f9b786"/>
+      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
       <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/>
     </insert>
     <insert tableName="activitylink">
@@ -977,7 +977,7 @@
       <column name="ACTIVITY_ID" value="6fe97d41-b44a-42b8-b19d-3ed9ce1cc393"/>
       <column name="ACTIVITYLINKID" value="cfb3f5f6-c148-42c9-b86c-14900e8d30c9"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:54:10"/>
     </insert>
     <insert tableName="activitylink">
@@ -993,7 +993,7 @@
       <column name="ACTIVITY_ID" value="a867b04c-b2be-48ec-8108-1144a978f54a"/>
       <column name="ACTIVITYLINKID" value="d1cfe415-bf05-4ee0-98b6-56ba560a39b6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T05:00:39"/>
     </insert>
     <insert tableName="activitylink">
@@ -1057,7 +1057,7 @@
       <column name="ACTIVITY_ID" value="d608cae4-7b54-4a12-95f3-5b9eac3d04ef"/>
       <column name="ACTIVITYLINKID" value="da68ccb2-09c8-4a63-9dc3-16bec0777ad6"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-15T03:53:44"/>
     </insert>
     <insert tableName="activitylink">
@@ -1105,7 +1105,7 @@
       <column name="ACTIVITY_ID" value="36ec539c-a451-4166-b64d-fb98f1b73481"/>
       <column name="ACTIVITYLINKID" value="e090084f-d2e4-42e5-b524-7e79dafcb78e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
       <column name="DATE_NEW" valueDate="2019-05-17T10:49:00"/>
     </insert>
     <insert tableName="activitylink">
@@ -1145,7 +1145,7 @@
       <column name="ACTIVITY_ID" value="81b4d02f-be0b-4437-b51d-d5c833adede4"/>
       <column name="ACTIVITYLINKID" value="e80cdefe-ff46-49f9-84ce-393882730337"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-06-11T02:30:33"/>
     </insert>
     <insert tableName="activitylink">
@@ -1153,7 +1153,7 @@
       <column name="ACTIVITY_ID" value="dcf266be-505d-4344-b091-6d9b01007a72"/>
       <column name="ACTIVITYLINKID" value="ef66f553-93f4-4df5-a97c-d7a93b57ae6a"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:00:17"/>
     </insert>
     <insert tableName="activitylink">
@@ -1161,7 +1161,7 @@
       <column name="ACTIVITY_ID" value="e265a424-b343-4bc1-b1cd-d40b9405ca12"/>
       <column name="ACTIVITYLINKID" value="f1b02cad-2a68-45fb-9313-1983b83bb310"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-11-13T11:06:51"/>
     </insert>
     <insert tableName="activitylink">
@@ -1169,7 +1169,7 @@
       <column name="ACTIVITY_ID" value="0cf02b72-a46a-4cd2-975f-15556618ea90"/>
       <column name="ACTIVITYLINKID" value="f20857e3-3191-4fdf-b803-9ffd1a0668d7"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-22T05:43:15"/>
     </insert>
     <insert tableName="activitylink">
@@ -1185,7 +1185,7 @@
       <column name="ACTIVITY_ID" value="26c4ccf9-a59d-483d-83a8-264b5fac219a"/>
       <column name="ACTIVITYLINKID" value="f37c2f14-27ce-4782-a7d4-c9f6d6fbcecd"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:28:27"/>
     </insert>
     <insert tableName="activitylink">
@@ -1193,7 +1193,7 @@
       <column name="ACTIVITY_ID" value="e2068edd-75cf-4b8a-8ff2-96a3c63956c2"/>
       <column name="ACTIVITYLINKID" value="f43ce26b-e728-41cd-9a93-745718b98972"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-05-23T10:49:12"/>
     </insert>
     <insert tableName="activitylink">
@@ -1217,7 +1217,7 @@
       <column name="ACTIVITY_ID" value="dd74c12b-44c5-4c58-a363-48333edd5538"/>
       <column name="ACTIVITYLINKID" value="f91f6e28-01f1-4b45-98f5-b0fb42ac3c38"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="f7b8f0c3-7702-4466-b502-d21fa4fa0010"/>
+      <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
       <column name="DATE_NEW" valueDate="2019-05-17T08:17:16"/>
     </insert>
     <insert tableName="activitylink">
@@ -1241,7 +1241,7 @@
       <column name="ACTIVITY_ID" value="0e62c5cf-7562-4c03-ae11-e6163acada9f"/>
       <column name="ACTIVITYLINKID" value="fb08245a-d14b-4a41-bfb3-973aa560d079"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-19T08:57:37"/>
     </insert>
     <insert tableName="activitylink">
@@ -1249,7 +1249,7 @@
       <column name="ACTIVITY_ID" value="b660824c-4336-4119-b5d3-5d0459764d86"/>
       <column name="ACTIVITYLINKID" value="fbd5ad75-92ac-48e2-ae11-d2f6e135123e"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
       <column name="DATE_NEW" valueDate="2019-05-23T09:07:02"/>
     </insert>
     <insert tableName="activitylink">
@@ -1257,7 +1257,7 @@
       <column name="ACTIVITY_ID" value="9c22ba51-8a09-40f1-b6b8-9787fe43b141"/>
       <column name="ACTIVITYLINKID" value="fedb7c1b-0a41-4dba-8abb-2e4af7b4ee2d"/>
       <column name="USER_NEW" value="Admin"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
       <column name="DATE_NEW" valueDate="2019-11-15T08:57:12"/>
     </insert>
     <insert tableName="activitylink">
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
index a8fe8e687375d7e2b2c214668030e7c33d0a6a00..17afcac0e508742a6cc5879850aa8259ddc26247 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classification.xml
@@ -5,1787 +5,2026 @@
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="0027e606-7932-4e40-9e20-43717b687a64"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="008ac315-31ab-4320-bf29-6681708eda88"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="00c30050-c850-46b0-8e1d-d70f889655e3"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
+      <column name="VALUE" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="028181fe-5687-4904-b7cb-c4a1befe7eed"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="VALUE" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="02f2f9a4-0d34-472a-b8b2-461fad057c4e"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="0359b7b8-7526-4165-8b01-e90403b206eb"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="03bb8bbb-0644-4376-99fb-b21fc2807f14"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="0423c091-7e65-43eb-9ab3-f5a847350845"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="045365c1-9561-4e4f-ad9b-9ce6ef0d0279"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="048a95bd-0a82-494d-b7fd-90f5d750f2c7"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="051e9f0f-fc99-4046-90b9-6cfb403844e9"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="0521dd6e-49ca-4a3a-9906-12e8359e3db9"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>   
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="053f18d1-8fe2-4a79-978d-03cc37454ffe"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="058a9ef7-adca-4278-840a-720665fa3cd3"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="0759e286-007b-4568-b4d6-0542900d7ba1"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="085d5901-9ab4-4747-a758-660d952a7a2c"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>   
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="0969044c-33eb-41eb-9aec-fa3795d8c49f"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="0a7ec07b-d429-4b0a-aebb-0a194e76428e"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="0f77577a-7a45-4c3f-be39-35ec364e8242"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="VALUE" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="0fcfa75f-9844-49d7-a088-56e570be4cd0"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>  
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="1180d429-0453-4b67-a805-7dc101e6ead2"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="122116f6-e858-4605-af18-6c8b21da6455"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="12280a78-1bc8-411d-9556-57b6ea12343f"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="1249cfe4-d2cd-42c2-9df8-93b8f6c1f272"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
+      <column name="VALUE" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
+      <column name="SCOREPOINTS" valueNumeric="33.00"/>
       <column name="CLASSIFICATIONID" value="13771cd8-3694-4a44-8793-cd0fc3fb4b53"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="13985a1a-1660-4a85-86c1-612bd62df8d7"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="13f634ef-70ba-440b-91af-e6324cdb20bb"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="14148c9a-8afb-42ad-a4c5-d1102241e9f8"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="14f31249-544a-46f9-a2e4-c3bdcf3e49a3"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="VALUE" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="166f3484-53a8-4c44-aad7-ef47a268ae71"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="1743c169-ef67-42b9-81af-99fc753d7a64"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="1897cf27-f472-4d25-88fe-64bd08915817"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>      
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="19cd3898-cb8e-4fa3-ade8-89cacb181b7d"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1a093afe-066e-4bbc-b6c9-b913ab8dfdc0"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1ac75382-0af9-42d2-8fe5-22295a93e8b3"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="1af00ea1-11fe-49d7-8a21-29bee4f31991"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="1dc7de76-80d9-4240-97ae-cab241301a68"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="1ec41224-e21c-4adf-8b7c-235eca10801c"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="20092371-2723-45e2-aae0-3a697b1265fc"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="203fb867-ee2f-4c01-8fb5-8e49da32be64"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="208c8324-e7f9-41b9-93ec-ac7e7f7262b7"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="218f1794-26e6-45f2-a26d-98185a49bf4f"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="22429945-9c82-493c-a0a6-ff31ecaa4b56"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="2314864a-76f7-4fe9-a01f-c5be6ba0669e"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
+      <column name="VALUE" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="25bfa0ce-433a-4bb9-992c-df66b02a76da"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="2800c5de-2174-46fb-a50a-d5ae4a28c28d"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
+      <column name="VALUE" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="28405f79-a635-4ede-8b11-11284c5e7190"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="289cea03-2c65-4557-b0f9-0dd29b26cecc"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="297cc1a1-1813-4f30-ad70-b452292c3371"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
+      <column name="VALUE" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2a447c40-23b0-4e45-b932-067c08515da0"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>  
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="2a9353ec-78c3-42ae-836f-dcec0a4cfaad"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2abfbf1f-8f2c-4713-a61b-13ba593d1055"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="2b0e75e0-0a36-4397-988d-2ae60e5d2658"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="2c644b64-0404-4eac-841c-d8579ff25fa6"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="VALUE" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="2e3d4c1e-24b2-4362-bee9-b11fa9847d42"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="3056c0b4-5e4b-4580-ab89-75ac80920415"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="319dec0d-5ed5-40f8-8c98-b912582a8817"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="31a22039-ac7d-4bb9-9f36-d1f91c6c4052"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="326d5aff-cb21-4bb6-9c32-7fcac48d175c"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="32b4f1b2-6cc2-4702-a9e0-0a75184c5698"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="342c7c38-ca79-4e46-9677-5da074ceb60b"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="VALUE" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="3561883e-bec9-4be7-8f0f-985ca694ff04"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="359fddf8-baae-497f-8ad6-d2cab1438473"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
+      <column name="VALUE" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="35b79ed1-7002-44f1-af61-891cdf863ac9"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
+      <column name="VALUE" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
+      <column name="SCOREPOINTS" valueNumeric="19.80"/>
       <column name="CLASSIFICATIONID" value="3672003e-0624-4a51-bb15-48f93bbd4342"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="36b1ed8c-a4d4-4203-aa20-52cf10f8d8a0"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="3807eda2-aa0f-4caf-b3ab-0ff341eb887b"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="39dc9940-eb00-4ed5-82ec-521f5cc62239"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
-      <column name="CLASSIFICATIONID" value="3cc8a674-7934-4b8f-b200-bd19ddcb4689"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="7e569319-5885-452e-9331-a507f3365236"/>
+      <column name="VALUE" value="7e569319-5885-452e-9331-a507f3365236"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="3da8549a-762a-438f-9878-271c52943fd2"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>     
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="3e9b7598-39a6-4ebc-aa49-8ec3a20f9eb4"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="3f410195-bca5-41ac-a819-a8d29506f9e5"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>   
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="4164397b-a129-4e37-9586-af6e6133befd"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>    
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="421cdeeb-a5d6-4612-b47b-49db966de27f"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="440d25a3-39c1-412e-90c7-c0a6366f0794"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="4444b22f-02d1-4e8f-9073-82d61eba18e0"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="445ccf23-4d44-489a-8054-b46194e104e7"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="46065d3f-a811-430d-8fa2-e048aee894c7"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="VALUE" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="4a61a0fe-394e-4b2f-897a-092fc2c109b2"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="VALUE" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="4d67d40e-4656-46b0-b5a0-9c299c1ef9d3"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="4e21e953-7146-43dd-a888-92d9f55f561e"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="4e96b522-209b-48ca-b04d-f328416aacdd"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="522566b0-6eca-40bb-977c-c9a26f730890"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="52c6bccc-1055-48dc-ad5d-311e80a12d2a"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="55401dae-a111-4e69-9c26-21fa9badd973"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
+      <column name="VALUE" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="55569485-c1f8-4bef-9e94-2b64c9b6bd4e"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="555a280b-a2e4-4eb5-bbec-87bca3987395"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>    
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="568cebf1-2494-44e0-9eb8-91bbcf1189eb"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="57a2e5d3-0aa9-48a1-89f8-2db8967ffed6"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="58642867-f8fc-45c1-a926-06306498a9c8"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="58671a19-6522-46e6-93ba-8f62bf580048"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="597de33c-b223-4d55-bed7-aeb1d161fc2e"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5a5e780b-01af-4a0f-bcd6-74c0c588210a"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5bb5e000-5bba-4895-a5b8-374c2c5bd3a4"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="5bb7b949-cc0b-4724-a5e9-37bfcfe55813"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="5c1b2604-da33-4268-8400-5fb4b23c436b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/> 
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="5ce0c1b0-c040-462e-bd19-c8e109449b8e"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="5dd419ab-971f-42fd-9bb6-2247a6b4175b"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="5f0cdce4-81b4-4c05-9011-4d76bdc21b65"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="6017fea2-7e31-4220-86f4-cf72123af805"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="6048f088-dde7-4134-a101-f5e8f8b70cf5"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>   
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="6111dd76-4786-43bf-b6ce-74b36415ad03"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="62b9dacc-7d6f-4e05-81f8-6a425e369489"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="62cc115a-f80e-4a0f-899e-8060e9ed575e"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="6382b5d7-06a3-4584-8314-e00abdd8e8e9"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="65f45f0d-ab41-4a83-b5f7-795dc21d0fd4"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="6685c781-a87d-4102-8764-27f0fcb0dc60"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="6800e69f-33b1-44ae-b3a2-d7362bfddbf8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="688cdc0d-d1a7-46ad-95c3-7503c054ee2c"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="6a6dfe13-6fcc-4ae9-b12b-dced4a55daef"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="6bbe5de0-4302-4467-9f3b-a0292485b214"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="6d3464fa-eadd-4afd-b4e1-3031726770d5"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="6dadd578-7e24-41cd-ab27-7baa29e4691b"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
+      <column name="VALUE" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>     
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="6e187a9b-2e57-4da2-8132-9f576a28d6f7"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="717dfb2c-2e2c-46c8-b72c-8d81e61b94c1"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="740bcc4c-b621-458e-874e-034cf70965bc"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/> 
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="75fd708e-78a9-442f-8ddb-913b8fd29cdf"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="76990230-73ec-4026-8a28-871ac5b4edc6"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="77941d3d-e876-44b3-b824-3a075d7dd398"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="77a11bd3-a521-4701-b564-7f8b07000f0b"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="77f0f0bd-eaca-44ef-abfa-9156eac6eb7e"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="7884869d-85ab-458f-9078-e2dd7234be91"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="79cc0205-25f8-44a9-b682-a31df2068e3f"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/> 
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="7d131f29-0430-44ad-b4ec-7044a67e0e3b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>  
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="80beaf88-415d-49da-ae0b-c4d6528747a2"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
-      <column name="CLASSIFICATIONID" value="813a990d-a17a-4481-a49d-7fb3a9c6513a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="VALUE" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
+      <column name="SCOREPOINTS" valueNumeric="7.50"/>
       <column name="CLASSIFICATIONID" value="81d75e31-673b-426e-827f-c505b386ce0e"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="81deaf11-9f63-4cc8-b83c-8711f5e3f734"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="83537aae-14a3-499f-a94b-9c630745110b"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="83d2e0f5-b7f5-4305-8da7-69e27da99f98"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="84ca4de3-ba44-40b4-8727-c5e23861c2c9"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="8502a2c8-fb7e-44f2-91cb-3d44d2d50d98"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/> 
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="85b54389-50f9-4bd3-838b-d3941bda2cc1"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
-      <column name="CLASSIFICATIONID" value="8b59888b-ba5c-4a77-b06d-d522037fe3b3"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="8c133476-7e1a-4120-8127-b45228bd5403"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="8c792586-2d2d-41a3-933b-6f679dd4011e"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="8d830242-7eb6-4185-b1cc-3e7977e6c340"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>   
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="8f44739a-7103-4dd3-8f1f-25afbae07cd0"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="8fbd5ec4-bb9a-4c33-aa8d-73185d4b0746"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="905cae71-9e4b-48f2-9de3-fcb8607d01a1"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="91cd0603-ac46-420b-81d4-0e1c72a916bf"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="9260ed8f-3b4a-4c5a-9077-0fe59105883b"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="9286af56-8942-4e30-8ed3-cde6bf2e77d5"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
+      <column name="VALUE" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>  
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="93f4dfdf-b07b-4dc5-91a3-7db80cc314fc"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9452b219-64af-4c27-8f35-0ba81210abf3"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="94a737b7-d4f6-4a13-b06b-05a225d9225b"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="VALUE" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="94a83ec1-8e6d-4c1b-90a0-54eeac52277b"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="VALUE" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="94bbfbe5-136f-40f2-af1f-8a47e1414a8c"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="95f0f027-799b-48fd-b1b5-49f70760a008"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="965bd86a-ad6d-4440-a7a3-e4bcf1b0a505"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
+      <column name="VALUE" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="971cee9d-9b1f-4b57-9635-9bbfdb792958"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="9772b8f6-08c6-40aa-af16-df68bcecb77f"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
+      <column name="VALUE" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="98d2e3c1-f308-4a7a-a12f-4d24b45d4db9"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="9aa3789c-bc9d-43cf-a121-2575090c2dc4"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9af237aa-daa0-4195-a301-a815497a75b6"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="9c457191-c7c7-4a4f-bb91-8a48d27add92"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="VALUE" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
+      <column name="SCOREPOINTS" valueNumeric="50.00"/>
       <column name="CLASSIFICATIONID" value="9cc46dc2-f40a-4c3b-aabd-c77858f5d770"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9ea74c40-7732-4d0a-a489-f50bc60caf8b"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="9ec7bc3e-dc4c-40e4-bcee-bd59ab949d42"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="9f5975c7-3df6-4fa4-87e4-7a1c0dbd967c"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="9f85a0f0-6576-4077-99fc-953d8ab53352"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="9fcf5382-f070-4698-a011-748c8584733b"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a0120295-79d1-429f-aef4-b9cce9c92de2"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
+      <column name="VALUE" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a027bccd-c894-443e-bdde-f32ee0b88285"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a03201a8-0858-45e0-a0e2-9b70f5a35061"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a1591490-e7c3-46b1-8d7e-843acbe93b41"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
+      <column name="VALUE" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="a28dd724-cd0b-48f4-afd5-840ddc611026"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a3081728-77d9-4c92-96b5-6fa21659a33f"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>    
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="a3e22367-c33f-4f2c-ad0c-8f9eb6ab572a"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="a3e2d764-bd51-4f06-a0a0-0e5f4b37d41b"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a51c9515-80bc-4902-8d9b-115179ab40df"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a5ce852a-83e6-4b0e-b3fa-310ea99c7e87"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a63b089c-f856-4513-8691-57422e400dc4"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="a653069f-927d-425a-8956-aeb15a2c4bc8"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a69faa8d-afaa-40cd-97e6-65a851f5dde1"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/> 
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a728d498-dd75-4b96-a5e5-cbdccd10b0b2"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="a76fcafb-a84d-4505-8c68-1b221482e292"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="a7b9862c-6a25-4bbc-92ec-7bfb25cdb6c0"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="a7d7fd5c-624c-4d64-929b-2b0eb146ab9d"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="a898ffe5-96ec-4eef-9e0c-6a2622fc74fc"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>    
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="a8c2d3c5-423f-45fa-a8db-cd2ab59c5045"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
-      <column name="CLASSIFICATIONID" value="aa291e2a-646d-4b73-b826-85bd357fd5c0"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="ac0944d2-b184-45f5-983a-6c873aadfb8e"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="VALUE" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="b06e62a0-53b0-4046-b024-b00293e632f2"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b1cb759c-f17c-4277-bee1-e50717d8934a"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
+      <column name="VALUE" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="b38101bf-3d36-4509-9637-a428beb9999a"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="b3846b7c-e70a-43fe-9637-ea74ed1fe0d7"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="b49911f5-fccc-4dba-a46a-32fd56cf8b8f"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/> 
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="b6d36680-909d-4470-9bf4-0a8b8a7807b1"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b6ed4614-ea3d-4b2d-a9c3-44d146724b71"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="VALUE" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="b7d6e658-96b3-4664-b7db-139b73add7e3"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="b828dfb2-943a-4f81-b950-fbe4db3d19b7"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="b923621f-e48e-4a77-9f67-f63f5a0b0fbb"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="VALUE" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="bb5ee550-320f-491a-a48f-b1ecf41ef90c"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
-      <column name="CLASSIFICATIONID" value="bc4a31b1-f2e2-4caf-8dcd-ac754c1d7290"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="bc61586b-a63e-4d69-82ad-62b02ea2b28a"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="beb7f0ec-3331-49f9-b440-0099f62205c0"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="c179fe12-4bb0-495d-99d0-0159d0466bc0"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>  
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>      
       <column name="CLASSIFICATIONID" value="c28d914e-ad91-4202-9fe6-0d0d41e53836"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
+      <column name="VALUE" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>  
+      <column name="SCOREPOINTS" valueNumeric="12.50"/>
       <column name="CLASSIFICATIONID" value="c4dc8a62-edc1-4af6-b7c6-f91f6ab700c5"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="c58b5e5a-b4fe-4dec-a93d-79848e564b87"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="c5d4a548-7a5a-4695-b746-526ef41f5035"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c61069c1-fe41-4585-9d75-cef27d534ceb"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
-      <column name="CLASSIFICATIONID" value="c6fe5361-777d-4047-99dd-e8495ebb8c73"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c7b46dff-956a-47e1-8a7f-7d3f56c81da1"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="c9208276-8f53-424d-821b-e37f041f864a"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="caaa6b4e-34e3-4337-b65f-abe761a8c24c"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="cb7df4e3-e15c-4e65-92f4-ecd5cda09f95"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="ccaea5d2-64c3-4255-9825-c91784ba5f54"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="VALUE" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
+      <column name="SCOREPOINTS" valueNumeric="25.00"/>
       <column name="CLASSIFICATIONID" value="cd531b73-1390-498e-a83d-a50c964c24ea"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
-      <column name="CLASSIFICATIONID" value="cea579d4-35fa-4376-b791-8b91cbe05d3a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="cf051c11-5f8e-401c-8e57-aabc55496eb8"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d03c3aa2-c97f-4bd4-b92f-7e09d594cdb8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>  
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="d18a0dec-5161-488d-958d-3d9ea88f32f3"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
+      <column name="VALUE" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="d33aeb65-0c28-48a1-9a81-105faa882a4c"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d3932d83-8afe-47ff-aff9-7d23bd443669"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d3b5f0ad-1a66-4eee-a40d-36daf317d510"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
+      <column name="VALUE" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="d5db188e-4e30-4179-8c3a-339bc16fa2ab"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="d6443737-e23b-42fa-81a8-d5e86636fb79"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
-      <column name="CLASSIFICATIONID" value="d6bf1068-83a5-4bcc-9d97-2efc72cc57a8"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="d6d64590-9299-4348-8e21-0cac9f84f51a"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>  
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d70e23a7-bc3c-43ae-8b2c-44d85fc7a2d3"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="d74914a9-05f6-4433-9121-87755b724fb4"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="d9cce938-36d9-4a80-9bc2-9e37e6ed64ce"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="da16c6c0-3bdf-4af5-b810-e85babe83e69"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="VALUE" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
+      <column name="SCOREPOINTS" valueNumeric="30.00"/>
       <column name="CLASSIFICATIONID" value="da44d022-9ea6-4fcb-9491-c5b7236c642f"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="dccab9b9-5306-4325-896f-99646139b5ba"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="ddb5083d-9410-4b9c-82a4-496370b868e3"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
+      <column name="VALUE" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="dfaec9c0-d9fa-4362-a955-341addc3a76d"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
+      <column name="VALUE" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
+      <column name="SCOREPOINTS" valueNumeric="7.40"/>
       <column name="CLASSIFICATIONID" value="e10a5ecb-b0f3-4b08-a380-de1a04fbc87f"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
+      <column name="VALUE" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e14fd7cc-abca-4296-bbd6-d9605d1e6f00"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
+      <column name="VALUE" value="4d868dc5-747a-4f22-9134-638198d3084a"/>     
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e27e1f4b-bca2-4928-9652-950762723531"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>     
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="e4d83d98-fcf8-402e-9d81-17f374654df7"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>   
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="e567dc3e-fb98-4b17-b503-499497b691a6"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="e7a7da18-7283-4d75-ab9f-06f62972293c"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
+      <column name="VALUE" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>    
+      <column name="SCOREPOINTS" valueNumeric="9.90"/>
       <column name="CLASSIFICATIONID" value="e90c4086-db5f-4099-ba26-67799eb25e44"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
+      <column name="VALUE" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="eba1581a-1235-4139-a33a-687513436777"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="ed2a3c86-814d-4212-a2da-5875d0d3c598"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
+      <column name="VALUE" value="5564a330-8c13-424f-a24b-5f97185a9036"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="efe87026-b813-4bb7-a3c8-4ef72e2076b8"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
+      <column name="VALUE" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>   
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f11eeaac-645d-416e-a50d-259f6ead0c30"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
+      <column name="VALUE" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>   
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f25ef82a-6466-49c7-aa35-1f4d750218ca"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>  
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f47c0ea2-3a6d-4d7b-8f89-bb2d9799fd0e"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
+      <column name="VALUE" value="893720f9-3780-4868-af0c-cbef5a564024"/>  
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f5dd89ed-f6ae-4676-aa83-906211570a5b"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>    
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="f5e4ebc2-e0a7-4ab0-b7e1-dc43c2913135"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
+      <column name="VALUE" value="4982ab85-0961-4d85-8fee-2b55887add96"/>    
+      <column name="SCOREPOINTS" valueNumeric="5.00"/>
       <column name="CLASSIFICATIONID" value="f60f8fe8-5ee9-43b4-a0cd-50b0f354bf79"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>  
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="f7118dce-dac9-4821-a709-bb7e9db8170a"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
+      <column name="VALUE" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>    
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="f724bcdf-ac46-4296-be41-2febc7747ce1"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
+      <column name="VALUE" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>    
+      <column name="SCOREPOINTS" valueNumeric="0.00"/>
       <column name="CLASSIFICATIONID" value="f738a3d6-b4e0-491e-8d51-a83ce039fbc8"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
     </insert>
-    <insert tableName="classification">
-      <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
-      <column name="CLASSIFICATIONID" value="f7504a50-2748-434a-ae08-cff2f4f8035a"/>
-      <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
-    </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
+      <column name="VALUE" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="f7f7022f-57a2-4944-a9d3-e092e1be43b3"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
+      <column name="VALUE" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>   
+      <column name="SCOREPOINTS" valueNumeric="35.00"/>
       <column name="CLASSIFICATIONID" value="fa07168c-6aa5-4b9d-935e-6ece6e1c5bdb"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
+      <column name="VALUE" value="bf6b1757-11da-49a9-a02c-8340139968ee"/> 
+      <column name="SCOREPOINTS" valueNumeric="15.00"/>
       <column name="CLASSIFICATIONID" value="fbc32ea9-8350-463a-846e-71a30851f15a"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>     
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="fc10831b-65ea-4ecb-b52e-98c6f54b2a9a"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
+      <column name="VALUE" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>      
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
       <column name="CLASSIFICATIONID" value="fcdedb8a-a863-47a8-93af-379c451fedb0"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="classification">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONSCORE_ID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
+      <column name="VALUE" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
       <column name="CLASSIFICATIONID" value="fd0fea13-2322-4664-bf15-8026a91bebd2"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
     </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="7c8baa19-4e39-4432-8ea8-f7be9890dcf6"/>
+      <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="5696dd08-4d0b-4807-963b-daa0de06da13"/>
+      <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>    
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="52d997a1-aa11-43e6-9728-7c8b479aac6e"/>
+      <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="21697201-96ae-4c52-848e-e3d228e003b8"/>   
+      <column name="SCOREPOINTS" valueNumeric="10.00"/>
+      <column name="CLASSIFICATIONID" value="a42c6ab9-2d12-4b5f-92f9-d071061afb90"/>
+      <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="cc878532-031e-4b4e-86a3-d81b15b98a25"/>
+      <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>   
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="308fee51-494c-4d2d-a16f-ba01ac89b4f8"/>
+      <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
+    </insert>
+    <insert tableName="classification">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="VALUE" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>  
+      <column name="SCOREPOINTS" valueNumeric="20.00"/>
+      <column name="CLASSIFICATIONID" value="5323d3e3-af2e-454f-b33b-dd7f01c1ce1b"/>
+      <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
+    </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
index 26547da7c1327d6c34e880031f19fb618cffc4c5..2e68fcc50aed2ce81e7f85561d2038d543ade168 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationgrading.xml
@@ -5,121 +5,121 @@
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="03aa277d-873b-4913-9051-d44aa4f77627"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
-      <column name="CLASSIFICATIONGRADINGID" value="14da2618-88be-425c-92c3-68d8584aa0bf"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
+      <column name="CLASSIFICATIONGRADINGID" value="14da2618-88be-424c-92c3-68d8584aa0bf"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="29226adf-eb79-4696-a4b8-7be73c9488e6"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="348a2af8-ec01-4a58-8ff6-5e3a837852a4"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="4ef54a02-ddf8-4238-b9fd-f5a043032b7d"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="5e46e499-00c2-4cc2-9f4c-952290484623"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="5e5c3ffe-3fa6-41e3-8659-1b03e7e1a1cd"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="68dd4d91-d472-477d-935c-70cbe5606c51"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="748ef65c-af41-42d8-8ac4-480bc9390591"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
-      <column name="CLASSIFICATIONGRADINGID" value="76af9750-a714-4a35-bfd2-6eab3c316e5b"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
+      <column name="CLASSIFICATIONGRADINGID" value="76af9740-a714-4a35-bfd2-6eab3c316e5b"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="7afd58ad-6eae-4d6b-8d4b-2ca4bdd177e6"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONGRADINGID" value="8408ca43-a4dc-4767-8127-e52c08276815"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="8c982beb-bc53-4bcf-8b76-7ee919bbf653"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="GRADING" value="C"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="50"/>
+      <column name="MINPERCENT" valueNumeric="26"/>
       <column name="CLASSIFICATIONGRADINGID" value="8e73dd97-4428-4316-882d-7b2af56330ef"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
-      <column name="CLASSIFICATIONGRADINGID" value="8f702450-83fc-4085-92c2-ac09f96dcd6b"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
+      <column name="CLASSIFICATIONGRADINGID" value="8f702449-83fc-4085-92c2-ac09f96dcd6b"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="9437f368-bea1-47f4-b76e-d6a391af438d"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="GRADING" value="D"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="25"/>
-      <column name="CLASSIFICATIONGRADINGID" value="9a823957-0ca9-4972-95df-d894d4e4fc25"/>
+      <column name="MINPERCENT" valueNumeric="0"/>
+      <column name="CLASSIFICATIONGRADINGID" value="9a823957-0ca9-4972-95df-d894d4e4fc24"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="GRADING" value="B"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="75"/>
+      <column name="MINPERCENT" valueNumeric="51"/>
       <column name="CLASSIFICATIONGRADINGID" value="a89c81df-9380-41b1-9c7c-52d3a1862ac7"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
-      <column name="CLASSIFICATIONGRADINGID" value="c021718f-b6ca-4d4d-87f7-e4450d103fe2"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
+      <column name="CLASSIFICATIONGRADINGID" value="c021718f-b6ca-4d4d-87f7-e4449d103fe2"/>
     </insert>
     <insert tableName="classificationgrading">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="GRADING" value="A"/>
-      <column name="MAXGRADEFORSCORE" valueNumeric="100"/>
+      <column name="MINPERCENT" valueNumeric="76"/>
       <column name="CLASSIFICATIONGRADINGID" value="f8e1c5a4-b0d0-4b73-9700-11ff916adfdd"/>
     </insert>
   </changeSet>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
index c5de6229ea80f6b1c90df74e02bfac79640d1135..767f15e2ddcb4f9fff3de7728c7408eff25a8425 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationscore.xml
@@ -4,717 +4,731 @@
     <delete tableName="classificationscore"/>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="01840c9d-2856-4882-a12a-303e58fd9d30"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="Purchasing"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="07f21cf8-c369-45f3-88fe-40ca586ed11b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="100-199 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="0803779b-73d8-47b3-9705-f5771c01e6a3"/>
       <column name="SORT" valueNumeric="140"/>
       <column name="TITLE" value="Automotive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="08764209-9b5e-4893-96d0-e2a347bccf60"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="09559e61-09ed-4f85-b0cb-fa7b0c66e488"/>
       <column name="SORT" valueNumeric="150"/>
       <column name="TITLE" value="Publishing house"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="0b671383-ecc3-440c-aff4-ff485da2755d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="10419ecc-335b-43c3-a1e3-8ecfbeda6f2b"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Project management"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="107c199b-b315-4093-add5-48c496794bc9"/>
       <column name="SORT" valueNumeric="110"/>
       <column name="TITLE" value="Lottery"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="11418754-1667-437b-816b-adec4b9291f3"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="No project planned"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="1bc2b2aa-2582-4b0c-a2f8-04125b82ba33"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="1f924d71-c500-4cdd-bc52-4718a6b88e45"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Consultation"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="70"/>
       <column name="CLASSIFICATIONSCOREID" value="206fd02f-68ec-42f2-83d1-92848f51dc1a"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Switzerland"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="2119cb62-b57c-40be-aff8-ace8e40378d4"/>
       <column name="SORT" valueNumeric="120"/>
       <column name="TITLE" value="Education"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="22581c2e-bb4d-43cb-b6b3-80244425e209"/>
       <column name="SORT" valueNumeric="180"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2745d6c3-fffb-4f72-8bc2-92439a14e919"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Other"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="29134094-66f2-4331-9f14-fc6a27ab111e"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="0-49 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="2a516661-537d-473e-864a-c2f721b96a42"/>
       <column name="SORT" valueNumeric="180"/>
       <column name="TITLE" value="Service"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="80"/>
       <column name="CLASSIFICATIONSCOREID" value="2cd8d11f-ee3f-429b-a16a-7839cf30b62d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="51-100"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2f3b6088-d78f-4fba-998d-b18a6b981485"/>
       <column name="SORT" valueNumeric="170"/>
       <column name="TITLE" value="Environment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="2f4fddd2-be83-4190-99c3-6de8a7e328c5"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="0 to 49T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="2fdb4d7e-24d5-4eb1-a130-3a0aaeebd8db"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Germany"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="3035e36e-ee6a-45d1-9d68-920cd3666362"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Student/Internship"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="35d8ae15-8993-4ab2-99f6-e57c2ebf0bb3"/>
       <column name="SORT" valueNumeric="80"/>
       <column name="TITLE" value="Food"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="16"/>
       <column name="CLASSIFICATIONSCOREID" value="39547328-ccc6-47ad-b31a-d6a149081c44"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="0 to 49"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3c9ceefa-5c98-4629-9c6d-d46b6cad8b78"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="251 to 1,000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3dc5fc76-d2d5-4911-891a-3aacc5a9c925"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Yes"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
-      <column name="SCORE" valueNumeric="12.50"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="3e1e21b0-c10d-4bcb-882c-ac1b239b9cb2"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Standard"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="3eb18b76-f51e-4ad2-9080-74b4a603667b"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Machinery and equipment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="3fe9f04b-6a85-4a73-a138-ca90b6d8e61c"/>
       <column name="SORT" valueNumeric="190"/>
       <column name="TITLE" value="Public"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="41300a6c-8dc7-4b5a-9fb1-cecd3d5cbb8c"/>
       <column name="SORT" valueNumeric="160"/>
       <column name="TITLE" value="Electric"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="41d43723-7d19-4a7e-936a-df9013db7dfb"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Logistics"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="4285d598-06c0-435d-bb5e-28dec5f31521"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="47ca5b54-423f-4bf1-a4d6-a0c55a2488e6"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Commodity group 1"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="7.50"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="47ec3dbf-f8f6-4418-8dc2-0062510c1a28"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Sales"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="4982ab85-0961-4d85-8fee-2b55887add96"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="4c8cfcec-f183-4d82-8a59-ae743ec772b4"/>
       <column name="SORT" valueNumeric="130"/>
       <column name="TITLE" value="Trade"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="20"/>
       <column name="CLASSIFICATIONSCOREID" value="4d868dc5-747a-4f22-9134-638198d3084a"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="0-50"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="4ed5e22f-222a-4a51-83d3-597fa035d2df"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Negative"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="51575eb6-4005-42d2-96f3-b35dfd06a86b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="101-250"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="5564a330-8c13-424f-a24b-5f97185a9036"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="56a56ec0-34c1-419f-81c2-1c1310d685d2"/>
       <column name="SORT" valueNumeric="120"/>
       <column name="TITLE" value="Education"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="5be4d454-1f3e-4a3d-b8a4-3eb49ce1bc35"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="high"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="5ca391a5-9de8-41e6-9792-17cf8deaa7e7"/>
       <column name="SORT" valueNumeric="90"/>
       <column name="TITLE" value="Energy"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="618bf0d1-18d4-4a96-900c-80a5a616da9b"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Logistics"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="61fe4e4f-e64d-4195-87b5-658f36ce1736"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Individual"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="636af750-fcd3-4480-bfe7-ead42bf85280"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Choice"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="6632b510-7094-45d6-b7ef-946e759429a3"/>
       <column name="SORT" valueNumeric="140"/>
       <column name="TITLE" value="Automotive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="6bd19de4-691b-4e78-84dc-cf6f41231978"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Management/Sales Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="20"/>
       <column name="CLASSIFICATIONSCOREID" value="6d6653ae-024e-444c-aeae-561874d55569"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="50 to 99T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="6fe28489-2383-412b-9bbd-4f01a9421775"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="733323d6-ff3d-4ccb-b179-ad1fea05dfe8"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="200-349 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="7d6f716a-97c7-417b-a8c0-3cb71e403dde"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Other"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="7e569319-5885-452e-9331-a507f3365236"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Overarching"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="839cd672-5981-4207-8a82-caddd00107e4"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="50-99 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
-      <column name="SCORE" valueNumeric="0.00"/>
+      <column name="SCOREPERCENT" valueNumeric="0"/>
       <column name="CLASSIFICATIONSCOREID" value="893720f9-3780-4868-af0c-cbef5a564024"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="low"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="35.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="8d7bc557-e020-42c9-83d9-ff84fcbd12b7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Austria"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="90361317-d80e-4466-a45b-3021bf02e2f9"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="101 to 250"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="904e2dbe-49a1-42a0-a5db-0f274334dd7f"/>
       <column name="SORT" valueNumeric="160"/>
       <column name="TITLE" value="Electric"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="9181a683-dcab-47fc-af7b-e282505348d6"/>
       <column name="SORT" valueNumeric="90"/>
       <column name="TITLE" value="Energy"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="92708239-fd7f-4699-8aaa-b6290fedaac0"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="251-1000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="92c8f126-b31e-4011-bbf0-cb5e57bfc3e5"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Finance"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="9a3183db-8a38-4cf1-a234-3e2cf20a4f77"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="9ac96400-9c47-4d4f-be5b-e053f92a54ce"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a0c55ee2-0d15-4779-a5a6-93774d5bc393"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="OnPremise"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="a0fcd2e2-40c8-40b8-8a5b-e591154c248a"/>
       <column name="SORT" valueNumeric="110"/>
       <column name="TITLE" value="Lottery"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="7.50"/>
+      <column name="SCOREPERCENT" valueNumeric="37"/>
       <column name="CLASSIFICATIONSCOREID" value="a177b155-4665-4af1-b50e-0b59e8ac2752"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Switzerland"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="25.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a60aaf2d-88aa-4c72-9606-0eb3ac9493cf"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Positive"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="a61e3451-296b-4812-a7b2-425963176f80"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Cloud"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="a7e70abc-4d98-467d-a475-66bbd101de1d"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Head of IT"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b1c55bcd-16c6-4b2f-8f73-e16397b40e93"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="from 1,000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b3792b08-4b07-4ed2-9bee-4673182b7349"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Within 6 months"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="b41e180f-db8c-44c3-9fbb-179ab58d5852"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Commodity group 3"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
-      <column name="SCORE" valueNumeric="35.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="b7b763d4-994d-483d-9a1c-6eb85786d61a"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Germany"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="30.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="ba5d70c3-e77a-45ff-828b-7b3e0a61eec2"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="200 to 349T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="16.60"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="bf44ae05-a4c4-4ee9-ad6e-7d64474afeff"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Finance"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="bf6b1757-11da-49a9-a02c-8340139968ee"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="Service Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="c328cb9e-5cef-4052-a3c1-98e1898eeb63"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="No date yet"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="c6300eeb-0494-4eba-89b1-23afdbb397e9"/>
       <column name="SORT" valueNumeric="150"/>
       <column name="TITLE" value="Publishing house"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="c9d4e28d-7935-42c5-9da5-5ce0b51b425a"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="CRM Manager"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="40"/>
       <column name="CLASSIFICATIONSCOREID" value="cddaf52d-37b7-426c-b858-c986e58544e6"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Stagnated"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="d032f425-5739-4f0c-8103-e102fe0d3ccf"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="Skilled workers"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="d0f5c576-e1cd-463e-82d2-e09c46ccb2a0"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="medium"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="75"/>
       <column name="CLASSIFICATIONSCOREID" value="d2a75f81-d0b3-48ce-be97-5e6add962cbb"/>
       <column name="SORT" valueNumeric="70"/>
       <column name="TITLE" value="Consultation"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="60"/>
       <column name="CLASSIFICATIONSCOREID" value="d578aa09-5d14-4ace-8cd0-572c5efcd82e"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="ab 1000"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="15.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="d5beb18f-c53e-438d-8b0b-7699aa20fba7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Rate"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="33"/>
       <column name="CLASSIFICATIONSCOREID" value="d7d807a2-8a97-4a0e-9d1c-fb8c7a703599"/>
       <column name="SORT" valueNumeric="40"/>
       <column name="TITLE" value="50 to 100"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="df7ea293-1fd6-4e98-ba3f-7d975fa8eaeb"/>
       <column name="SORT" valueNumeric="170"/>
       <column name="TITLE" value="Environment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="16"/>
       <column name="CLASSIFICATIONSCOREID" value="e6ab210e-6a26-4a12-9d50-ff8bd392c590"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Search"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
-      <column name="SCORE" valueNumeric="12.50"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="e70a23b4-f2a9-4438-8ba6-742c6c17e5cc"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="No"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="40"/>
       <column name="CLASSIFICATIONSCOREID" value="e824d7e3-dfbe-4f34-a5c7-8f2226aade7e"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="100 to 199T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="e8741cb0-9ada-48dd-89d1-f00a1a755c38"/>
       <column name="SORT" valueNumeric="60"/>
       <column name="TITLE" value="Counsellor"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ec51d975-bda6-415e-9b91-32f0e981ecd8"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="Building and construction suppliers"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ecf421ef-66b2-4f9f-98c6-ee8a73e753da"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Austria"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="ed6a38f7-97bf-4e3d-a34c-4a1e636fa6a7"/>
       <column name="SORT" valueNumeric="10"/>
       <column name="TITLE" value="from 350T"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="50.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="efec90bd-c99f-49d9-bd52-df0ae6f938a3"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Machinery and equipment"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
       <column name="CLASSIFICATIONSCOREID" value="f02cfd28-5a09-42ca-b805-07b7b38e3363"/>
       <column name="SORT" valueNumeric="50"/>
       <column name="TITLE" value="ab 350 D€"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="f1534026-34cc-4898-8711-41cbe4accb60"/>
       <column name="SORT" valueNumeric="30"/>
       <column name="TITLE" value="Marketing"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="f678b3e0-72c4-4b48-90c0-054bf3612dc2"/>
       <column name="SORT" valueNumeric="130"/>
       <column name="TITLE" value="Trade"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
-      <column name="SCORE" valueNumeric="33.30"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="fae1ef0a-5d07-4725-907f-4b2ac5814328"/>
       <column name="SORT" valueNumeric="100"/>
       <column name="TITLE" value="Industry"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
-      <column name="SCORE" valueNumeric="20.00"/>
+      <column name="SCOREPERCENT" valueNumeric="66"/>
       <column name="CLASSIFICATIONSCOREID" value="fb8cb769-d95b-468a-ac64-7ee0cefd46a7"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="unknown"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
-      <column name="SCORE" valueNumeric="5.00"/>
+      <column name="SCOREPERCENT" valueNumeric="25"/>
       <column name="CLASSIFICATIONSCOREID" value="fd022500-4cbc-461f-abb9-b0ec3d8e1dd1"/>
       <column name="SORT" valueNumeric="80"/>
       <column name="TITLE" value="Food"/>
     </insert>
     <insert tableName="classificationscore">
       <column name="CLASSIFICATIONTYPE_ID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
-      <column name="SCORE" valueNumeric="10.00"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
       <column name="CLASSIFICATIONSCOREID" value="fd8a348a-dc1f-414b-b95e-b1a6aeb9a8d4"/>
       <column name="SORT" valueNumeric="20"/>
       <column name="TITLE" value="Commodity group 2"/>
     </insert>
+    <insert tableName="classificationscore">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPERCENT" valueNumeric="100"/>
+      <column name="CLASSIFICATIONSCOREID" value="4c769195-7bce-45e7-9176-782ff98de8d4"/>
+      <column name="SORT" valueNumeric="10"/>
+      <column name="TITLE" value="Commodity group 1"/>
+    </insert>
+    <insert tableName="classificationscore">
+      <column name="CLASSIFICATIONTYPE_ID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPERCENT" valueNumeric="50"/>
+      <column name="CLASSIFICATIONSCOREID" value="21697201-96ae-4c52-848e-e3d228e003b8"/>
+      <column name="SORT" valueNumeric="20"/>
+      <column name="TITLE" value="Commodity group 2"/>
+    </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
index 4d76235c4afaff4c17945c195d876a5160ebc07e..1548d4a39c2a725756508c81ebedd4492730ebbe 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationstorage.xml
@@ -7,156 +7,182 @@
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ABB"/>
       <column name="OBJECT_ROWID" value="7e2680f6-a438-45aa-956a-787363f85923"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="0adb8953-1685-45cf-bcf7-c2c2098aa215"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AB"/>
       <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="1251e4b0-195d-4556-a10e-7942f1b0e337"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AB"/>
       <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="166e729d-45c6-4dab-bff2-940d2b618f6b"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ADB"/>
       <column name="OBJECT_ROWID" value="438537db-0dc6-4aed-b1d1-813011baf88c"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="1aafcbf6-6feb-4916-a4fd-58c138eb8f8f"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="CBA"/>
       <column name="OBJECT_ROWID" value="6d3d16cd-733e-41d1-ab6c-8a6cba63ba4a"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="25a1b340-538d-4c4f-8b1e-25126286cd53"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BB"/>
       <column name="OBJECT_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="2ab913d3-e1a8-4fe2-904b-77b02f6be689"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BA"/>
       <column name="OBJECT_ROWID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="3893da8a-f357-46e0-a0b9-65aa58b0dfa6"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="777246d5-7a73-4c52-af14-84df66128e5d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="42cc772e-53c6-4849-be29-ebb4e18ab860"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACB"/>
       <column name="OBJECT_ROWID" value="d422ad81-717f-42b0-bd64-fc892744aac7"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="471aafd5-a348-453f-8b2a-64bb365fd0ee"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACB"/>
       <column name="OBJECT_ROWID" value="ef7f4726-4476-4f59-97c2-706dc1e0046f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="4ce62df5-f0ea-4593-a152-6704c61d7cef"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="2c14fb05-d48e-4eeb-8a7f-85d423746848"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="63dd36bb-74b8-487b-811f-521438ef9491"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7a4762f5-90a3-4b6c-8a5d-93125381c18a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="e83c45e0-c30b-436e-b445-00a8b58383b0"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7b2eb62a-b686-4eaf-bde1-2e1dd1028f65"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="fb07cb0e-c391-4503-9c47-a39ec7388f4f"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7e59d485-01a8-4e43-9655-ba751d5983a4"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="449080f6-b714-4189-a261-37439d0d4010"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="7f7dfe1d-cb98-44c8-8106-858d991d2b06"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="CLASSIFICATIONVALUE" value="ACA"/>
       <column name="OBJECT_ROWID" value="ebb04ae2-d1f9-4ef3-bdfa-e9f562d215ba"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="80eac6e6-f237-455e-96fd-8484722a79d4"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="821c7eed-7bee-4879-97ec-44d2014a192b"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="33ae2997-7bff-4c3c-8038-2fa6781dbe9d"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="84a92c36-88df-4c06-a36a-650ed92d4d0a"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="8db70618-5840-4d4b-90e2-66e1919fc6c1"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="fd082db5-be43-4219-a705-588f9c06e59b"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="b4d2847f-0548-4cc8-b002-7723b5fc9184"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BD"/>
       <column name="OBJECT_ROWID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="bbc19466-8d76-4f35-be56-8458f677d4a9"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="c64c9f31-a108-4df9-b515-6e523b1341c1"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
-      <column name="CLASSIFICATIONVALUE" value="AC"/>
+      <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="e2142492-eeab-482d-a37e-b1c8fe7b2545"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="BC"/>
       <column name="OBJECT_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="f451479f-97dc-4570-b342-c8d53f04b493"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="8eecb5e5-40d9-4bf0-a152-1ca456795563"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationstorage">
       <column name="CLASSIFICATIONSTORAGEID" value="fc665249-9efc-4d90-839d-cdffb4c3f407"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="CLASSIFICATIONVALUE" value="AC"/>
       <column name="OBJECT_ROWID" value="eda61ea6-35ed-4a92-a93c-6118fc67d533"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
index 60482c030a909eb068ae282c7a51d0c2c1fbe4fb..7d2dadd9477c0f3e0c90da9b5b73a9184125e900 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/classificationtype.xml
@@ -7,120 +7,169 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Headquarters"/>
       <column name="CLASSIFICATIONTYPEID" value="037a9de1-fa6d-4895-9db3-82f7769682ae"/>
+      <column name="SCOREPOINTS" valueNumeric="35"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreCustomizing"/>
       <column name="CLASSIFICATIONTYPEID" value="2031525e-6ca3-46b4-91d4-7f90cd31a630"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreStandard"/>
       <column name="CLASSIFICATIONTYPEID" value="2a702a31-9907-4f1b-abfd-3342640f1c9e"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreDepartment"/>
       <column name="CLASSIFICATIONTYPEID" value="31c169aa-ba5b-4f9d-9dd3-b0d0e8d1b632"/>
+      <column name="SCOREPOINTS" valueNumeric="10"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreUsers"/>
       <column name="CLASSIFICATIONTYPEID" value="382b311e-b2b2-49da-b6e1-339afae92657"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBranch"/>
       <column name="CLASSIFICATIONTYPEID" value="4977ba88-074c-4fe5-b04a-97c9a5eae982"/>
+      <column name="SCOREPOINTS" valueNumeric="50"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Number of employees"/>
       <column name="CLASSIFICATIONTYPEID" value="4b72857e-863d-4254-accf-25281bb7bb64"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Loyalty"/>
       <column name="CLASSIFICATIONTYPEID" value="4d878689-15c0-46cc-acc8-3c524463db5c"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="00cc7b8f-d99e-46bf-90c3-74e05b5af685"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBased"/>
       <column name="CLASSIFICATIONTYPEID" value="54128957-c80b-4b5a-ad1b-cfce665dfb10"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreDecisionPhase"/>
       <column name="CLASSIFICATIONTYPEID" value="57604bc1-d99f-4d61-b28d-55218a72045b"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Creditworthiness"/>
       <column name="CLASSIFICATIONTYPEID" value="80c6ec8b-eb54-4d25-a4f5-0adaf4cdc84e"/>
+      <column name="SCOREPOINTS" valueNumeric="15"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreCloud"/>
       <column name="CLASSIFICATIONTYPEID" value="8c1e8f81-145f-4efe-936f-3f4147f4d59a"/>
+      <column name="SCOREPOINTS" valueNumeric="10"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Business development"/>
       <column name="CLASSIFICATIONTYPEID" value="95396ee7-f0e2-41b4-995e-bac5749709ec"/>
+      <column name="SCOREPOINTS" valueNumeric="25"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Product preference"/>
       <column name="CLASSIFICATIONTYPEID" value="970b251c-ca6e-43f4-9162-ebc5d1142a8b"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScorePosition"/>
       <column name="CLASSIFICATIONTYPEID" value="a43189fc-b712-45ed-9398-58d6e15760ca"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Current supply share"/>
       <column name="CLASSIFICATIONTYPEID" value="be76dab1-c6ab-4b1e-8322-8b052ccda4d9"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Industry"/>
       <column name="CLASSIFICATIONTYPEID" value="d67397c5-5e05-433b-b61d-12807906aa5a"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="b2126d9d-8d18-46d4-a48f-1a03fc456ddd"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreBudget"/>
       <column name="CLASSIFICATIONTYPEID" value="d8091374-f3fd-41dc-8468-91469618c6fc"/>
+      <column name="SCOREPOINTS" valueNumeric="50"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="c1305d16-320e-44f8-95f9-e4cff05d3cfb"/>
       <column name="OBJECT_TYPE" value="Salesproject"/>
       <column name="SCORETYPE" value="ScoreProjectStart"/>
       <column name="CLASSIFICATIONTYPEID" value="f4d3791e-1717-4473-987b-0cd751805387"/>
+      <column name="SCOREPOINTS" valueNumeric="30"/>
+      <column name="OUTDATED" valueNumeric="0"/>
     </insert>
     <insert tableName="classificationtype">
       <column name="CLASSIFICATIONGROUP_ID" value="fb1349b6-6dc1-44b7-b7ea-03d5483e7fac"/>
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="SCORETYPE" value="Purchasing potential p. a."/>
       <column name="CLASSIFICATIONTYPEID" value="f581dcb9-db6f-4a82-995c-695d0a7393d3"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
+    </insert>
+    <insert tableName="classificationtype">
+      <column name="CLASSIFICATIONGROUP_ID" value="e3b0a84f-d2a7-4d7c-b734-82ab4b262e84"/>
+      <column name="OBJECT_TYPE" value="Organisation"/>
+      <column name="SCORETYPE" value="Focus"/>
+      <column name="CLASSIFICATIONTYPEID" value="df4aacdc-7e17-484c-a96e-a07550a7220e"/>
+      <column name="SCOREPOINTS" valueNumeric="20"/>
+      <column name="OUTDATED" valueNumeric="0"/>
+      <column name="FILTER" value='{"entity":"Organisation_entity","filter":{"type":"group","operator":"AND","childs":[{"type":"row","name":"TYPE","operator":"EQUAL","value":"Interessent","key":"ORGPROSPECT","contenttype":"TEXT"}]}}'/>
     </insert>
   </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
index 9d3ad487ecbb0c6f2e9ff10365b7a8a53f5228a0..9d0f1862c96565eec34d545663371ea31ba17236 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/dsgvoinfo.xml
@@ -4,7 +4,7 @@
     <delete tableName="dsgvoinfo"/>
     <insert tableName="dsgvoinfo">
       <column name="TRANSMISSION" value="DSGVONONE"/>
-      <column name="DATASOURCE" value="756662b5-f5e4-479c-8d97-abd6a395bd79"/>
+      <column name="DATASOURCE" value="449080f6-b714-4189-a261-37439d0d4010"/>
       <column name="CONTACT_ID" value="b3906c2d-7b2e-4f64-8c97-ae92e39f96b6"/>
       <column name="DSGVOINFOID" value="6b117aad-02f4-4746-985a-de931059b72e"/>
     </insert>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
index 9edca5ffee807eb090d1402af3ba9da6ac6de0ef..02c3077b02a98842edc63705625527984ae56052 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/organisation.xml
@@ -11,6 +11,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="03e09527-21cc-489a-b37f-0dd7df553c20"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Lichtenstein Document Solutions GmbH&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:21:44"/>
       <column name="CUSTOMERCODE" value="2419"/>
@@ -71,6 +72,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="62175b31-b432-4ec6-932f-8e69033884c6"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Kronen AG"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:21:07"/>
       <column name="CUSTOMERCODE" value="5874"/>
@@ -111,6 +113,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="82c7b72d-da4e-4fab-a6cc-31e1be07dd08"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Pichelmaier Financial  AG&#13;&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:25:36"/>
       <column name="CUSTOMERCODE" value="3579"/>
@@ -131,6 +134,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="97b66b3c-a9f5-4dc4-902e-850d69973d1d"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Bucher Unternehmensgruppe"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:17:51"/>
       <column name="CUSTOMERCODE" value="3698"/>
@@ -160,6 +164,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="b043cd42-058c-48bd-8326-4c92e0e74c48"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="Waken Neuser SE"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:28:03"/>
       <column name="CUSTOMERCODE" value="5612"/>
@@ -179,6 +184,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="d3707591-5620-49a8-a63f-19e88ca7a21c"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="MNF Versicherung"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:24:53"/>
       <column name="CUSTOMERCODE" value="7691"/>
@@ -188,6 +194,7 @@
     </insert>
     <insert tableName="organisation">
       <column name="ORGANISATIONID" value="ea07af40-4918-4ea2-94ad-031d01aeaab4"/>
+      <column name="KIND" value="ORGPROSPECT"/>
       <column name="NAME" value="International Kältetechnik AG&#10;"/>
       <column name="DATE_EDIT" valueDate="2019-11-26T06:20:08"/>
       <column name="CUSTOMERCODE" value="6983"/>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
index 04c72218c576ff03540b136aeaf811f1e83c3ae4..018d8fd16f3b8db0d46d982ebea3cbf967ac2603 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/tasklink.xml
@@ -12,7 +12,7 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="44c1f582-7681-4f6f-b592-6221ebbdee52"/>
       <column name="TASK_ID" value="81a4c8e7-4429-41e1-a534-f1be21e56b5e"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
@@ -24,7 +24,7 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="6c2f84af-ff2e-4b70-b4d0-607a2bd0d941"/>
       <column name="TASK_ID" value="2e50d2cd-9429-433c-8f6e-2e31a9e7908e"/>
-      <column name="OBJECT_ROWID" value="6a92df58-2b98-40da-ba6a-d0ddb1fde234"/>
+      <column name="OBJECT_ROWID" value="6efb4fab-64f9-4d8e-aa6f-a158d13fc273"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
@@ -36,13 +36,13 @@
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="b618fb87-d39d-41d8-be41-2b03bce29538"/>
       <column name="TASK_ID" value="96ec8b48-9fac-4216-bc98-a8323f0592f9"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Organisation"/>
       <column name="TASKLINKID" value="eca5c8cb-bd10-4425-b4bc-a2e50f2518b9"/>
       <column name="TASK_ID" value="46164eac-62d1-4dbb-a252-93ac49429855"/>
-      <column name="OBJECT_ROWID" value="2c63e0de-f21c-474f-89d7-bff8ba1dbf43"/>
+      <column name="OBJECT_ROWID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/>
     </insert>
     <insert tableName="tasklink">
       <column name="OBJECT_TYPE" value="Salesproject"/>
diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index 3f25ca1dbb1f91ed6ec3330368189a268665602b..12d0865aebe1c4bc81cb8563000a34e896ec8998 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -18,6 +18,8 @@
     <include relativeToChangelogFile="true" file="basic/2020.2.0/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.2.1/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.2.2/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="basic/2020.2.3/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="basic/2021.0.0/changelog.xml"/>
 
     <!--enable this only when you definetly want to overwrite the existing data with demo records:-->
     <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>-->
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index f6ca924823cd52f294612b9096542cbf87235b44..a81a739efc0c54a5b8c3151861c62ae10a8f6313 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -3108,6 +3108,48 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DISCOUNT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="3" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DISCOUNTED_NET</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="3" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DISCOUNTED_VAT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="3" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -9478,6 +9520,48 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>FILTER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SCOREPOINTS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OUTDATED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -9541,48 +9625,55 @@
                 </dependencies>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONSCORE_ID</name>
+                <name>CLASSIFICATIONID</name>
                 <dbName></dbName>
-                <primaryKey v="false" />
+                <primaryKey v="true" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="false" />
+                <isUnique v="true" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
-                <dependencies>
-                  <entityDependency>
-                    <name>aeeb4a24-4e92-4f78-a98c-3c423678000a</name>
-                    <entityName>CLASSIFICATIONSCORE</entityName>
-                    <fieldName>CLASSIFICATIONSCOREID</fieldName>
-                  </entityDependency>
-                </dependencies>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONID</name>
+                <name>OBJECT_TYPE</name>
                 <dbName></dbName>
-                <primaryKey v="true" />
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>VALUE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
                 <columnType v="1" />
                 <size v="36" />
                 <scale v="0" />
                 <notNull v="true" />
-                <isUnique v="true" />
+                <isUnique v="false" />
                 <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>OBJECT_TYPE</name>
+                <name>SCOREPOINTS</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="12" />
-                <size v="50" />
-                <scale v="0" />
-                <notNull v="true" />
+                <columnType v="2" />
+                <size v="14" />
+                <scale v="2" />
+                <notNull v="false" />
                 <isUnique v="false" />
                 <index v="false" />
                 <documentation></documentation>
@@ -9609,20 +9700,6 @@
               <syncIds></syncIds>
             </auditSyncConfig>
             <entityFields>
-              <entityFieldDb>
-                <name>SCORE</name>
-                <dbName></dbName>
-                <primaryKey v="false" />
-                <columnType v="2" />
-                <size v="10" />
-                <scale v="2" />
-                <notNull v="false" />
-                <isUnique v="false" />
-                <index v="false" />
-                <documentation></documentation>
-                <title></title>
-                <description></description>
-              </entityFieldDb>
               <entityFieldDb>
                 <name>CLASSIFICATIONSCOREID</name>
                 <dbName></dbName>
@@ -9679,6 +9756,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>SCOREPERCENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2" />
+                <size v="10" />
+                <scale v="2" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -15216,29 +15307,29 @@
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>MAXGRADEFORSCORE</name>
+                <name>CLASSIFICATIONGROUP_ID</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="4" />
-                <size v="10" />
+                <columnType v="1" />
+                <size v="36" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
               </entityFieldDb>
               <entityFieldDb>
-                <name>CLASSIFICATIONGROUP_ID</name>
+                <name>MINPERCENT</name>
                 <dbName></dbName>
                 <primaryKey v="false" />
-                <columnType v="1" />
-                <size v="36" />
+                <columnType v="4" />
+                <size v="10" />
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="true" />
+                <index v="false" />
                 <documentation></documentation>
                 <title></title>
                 <description></description>
@@ -15319,6 +15410,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>OUTDATED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
diff --git a/aliasDefinition/flowableEngine/flowableEngine.aod b/aliasDefinition/flowableEngine/flowableEngine.aod
new file mode 100644
index 0000000000000000000000000000000000000000..3f70b6e5426e5a6166c834f5b5aaa90b0ba2360a
--- /dev/null
+++ b/aliasDefinition/flowableEngine/flowableEngine.aod
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aliasDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasDefinition/1.2.0">
+  <name>flowableEngine</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <datasourceType v="19" />
+</aliasDefinition>
diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index 12e1b3dbc18300005affb2292a9d4bf03fadb450..1cdffd7223648bab029e0f8bcb9024abe867b04a 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -38,10 +38,6 @@
                 <name>Task</name>
                 <kind v="10077" />
               </entityNode>
-              <entityNode>
-                <name>Favorite</name>
-                <kind v="10077" />
-              </entityNode>
             </childNodes>
           </entityNode>
         </childNodes>
diff --git a/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js b/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js
index 828bf3fc5838fa000ec45ce424e0b3d9e16aeae8..2708ddc1ec8a3c626e049d0956bd4b116ed2c10b 100644
--- a/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js
+++ b/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js
@@ -4,4 +4,4 @@ import("system.result");
 import("MSTeams_lib");
 
 var isTeamsEnabled = vars.get("$param.ObjectId_param") in MSTeamsUtils.getTeamLinkContexts() && MSTeamsUtils.isTeamsEnabled();
-result.string(/*isTeamsEnabled ? neon.COMPONENTSTATE_EDITABLE : */neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+result.string(isTeamsEnabled ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
diff --git a/entity/Activity_entity/entityfields/newoffer/onActionProcess.js b/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
index 2973002c2cfac6ea1cf0ff1bc79b0c50aa31d5db..73cd9c4d17edf67a358563f95030f6ce963e1859 100644
--- a/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
+++ b/entity/Activity_entity/entityfields/newoffer/onActionProcess.js
@@ -1,4 +1,21 @@
+import("Sql_lib");
 import("system.vars");
 import("Offer_lib");
 
-OfferUtils.createNewOffer(null, null, null, vars.get("$field.ACTIVITYID"));
\ No newline at end of file
+var activityId = vars.get("$field.ACTIVITYID");
+var activityLinks = newSelect("ACTIVITYLINK.OBJECT_TYPE, ACTIVITYLINK.OBJECT_ROWID")
+                                .from("ACTIVITYLINK")
+                                .where("ACTIVITYLINK.ACTIVITY_ID", activityId)
+                                .and("ACTIVITYLINK.OBJECT_TYPE", ["Person", "Organisation", "Salesproject"], SqlBuilder.IN())
+                                .table();
+
+//make a map from the 2d-array to easily access the ids by objectType
+var linkMap = new Map(activityLinks);
+
+//if we only have one Person: that person is the contact.
+//otherwise: we check for organisations: if we only have one then we use that one.
+//same logic for salesprojects: if we have only one: use that one
+var contactId = linkMap.get("Person") || linkMap.get("Organisation");
+var salesprojectId = linkMap.get("Salesproject");
+
+OfferUtils.createNewOffer("Salesproject", salesprojectId, contactId, activityId);
\ No newline at end of file
diff --git a/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js b/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js
index 9a5657456f3a131ca47d303d21a17b46ada862d1..f782309d32349f8320ada9dd3aa91588f3069e4e 100644
--- a/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js
+++ b/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js
@@ -1,3 +1,4 @@
+import("system.tools");
 import("system.SQLTYPES");
 import("system.db");
 import("system.datetime");
@@ -8,45 +9,49 @@ import("Sql_lib");
 import("system.calendars");
 import("Calendar_lib");
 
-var pFilter =  CalendarUtil.reset_filterEvent();
-var conditions = [];
-var conditioncount = 0;
-var user = undefined;
-var stati = [];
-var entries = [];
+var calendarId = tools.getCurrentUser()[tools.PARAMS][tools.CALENDARID];
+if(calendarId != "" && calendarId != null && calendarId != undefined)
+{
+    var pFilter =  CalendarUtil.reset_filterEvent();
+    var conditions = [];
+    var conditioncount = 0;
+    var user = undefined;
+    var stati = [];
+    var entries = [];
 
-var startnumber = Number(vars.get("$sys.date"));
-var endnumber = startnumber + 43200000 ;
+    var startnumber = Number(vars.get("$sys.date"));
+    var endnumber = startnumber + 43200000 ;
 
-var start = startnumber + "";
-var end = endnumber + "";
+    var start = startnumber + "";
+    var end = endnumber + "";
 
-if ( pFilter.tentative == "true" )    
-    stati.push(calendars.STATUS_TENTATIVE);
+    if ( pFilter.tentative == "true" )    
+        stati.push(calendars.STATUS_TENTATIVE);
 
-if ( pFilter.cancelled == "true" )    
-    stati.push(calendars.STATUS_CANCELLED);
+    if ( pFilter.cancelled == "true" )    
+        stati.push(calendars.STATUS_CANCELLED);
 
-if ( pFilter.confirmed == "true" )
-    stati.push(CalendarUtil.mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() ));
+    if ( pFilter.confirmed == "true" )
+        stati.push(CalendarUtil.mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() ));
 
-if (CalendarUtil.getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true")
-    stati.push(calendars.STATUS_FREE);
+    if (CalendarUtil.getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true")
+        stati.push(calendars.STATUS_FREE);
 
-if ( pFilter.user != "" )	
-    user = (pFilter.user).trim();
+    if ( pFilter.user != "" )	
+        user = (pFilter.user).trim();
 
-for ( var z = 0; z < stati.length; z++ )
-    CalendarUtil.addEntryCondition(conditions, ++conditioncount,
-    {
-        TYPE: calendars.VEVENT,
-        START: start,
-        END: end,
-        USER: user,
-        STATUS: stati[z]
-    });
+    for ( var z = 0; z < stati.length; z++ )
+        CalendarUtil.addEntryCondition(conditions, ++conditioncount,
+        {
+            TYPE: calendars.VEVENT,
+            START: start,
+            END: end,
+            USER: user,
+            STATUS: stati[z]
+        });
 
-conditions["COUNT"] = String(conditioncount);
-entries = calendars.getEntries(conditions);
+    conditions["COUNT"] = String(conditioncount);
+    entries = calendars.getEntries(conditions);
 
-result.string(entries.length);
+    result.string(entries.length);
+}
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
index 102089af40ad4f3e510e4ef8387f40864d031e8f..785fe3e0ac18b69e2acc9856afb0875fc81b73e7 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("system.vars");
 import("Sql_lib");
 
@@ -9,4 +10,6 @@ if (rowData["AB_ATTRIBUTE_ID.value"])
         : vars.get("$local.uid");
     newWhereIfSet("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", attributeRelationId)
         .deleteData();
-}
\ No newline at end of file
+}
+
+WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
index 09bcd82719b1c36aaf7f44cc92d9834f003f9388..2836dcd5bc7ee17da8d0d75e560f05b6117a36ea 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("DataPrivacy_lib");
 import("system.datetime");
 import("system.util");
@@ -39,4 +40,6 @@ if (valueField)
 db.insertData("AB_ATTRIBUTERELATION", columns, null, values);
 
 if (vars.get("$param.ObjectType_param") == "Person")
-    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
\ No newline at end of file
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
+
+WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
index e5bd33ae96f917320e2024b7c57ab2d7b88f3676..e88af46b5b0766cd413f835d6435b7b19609693c 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js
@@ -1,3 +1,4 @@
+import("Workflow_lib");
 import("DataPrivacy_lib");
 import("Sql_lib");
 import("system.util");
@@ -69,4 +70,6 @@ else
 }
 
 if (vars.get("$param.ObjectType_param") == "Person")
-    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
\ No newline at end of file
+    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(vars.get("$param.ObjectRowId_param"), vars.get("$param.ShowDsgvoMessage_param"));
+
+WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
index dc74f4716b87e075d26e2926315c508bdf77726c..ce749baea128960103c82f364bb810fc668a018d 100644
--- a/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
+++ b/entity/ClassificationAdmin_entity/ClassificationAdmin_entity.aod
@@ -39,7 +39,7 @@
     <entityField>
       <name>CLASSIFICATIONTYPEID</name>
       <title>Indicator</title>
-      <mandatory v="true" />
+      <mandatory v="false" />
       <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypeid/displayValueProcess.js</displayValueProcess>
@@ -49,9 +49,10 @@
       <title>Classification</title>
       <contentType>TEXT</contentType>
       <groupable v="true" />
-      <mandatory v="true" />
+      <mandatory v="false" />
       <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -71,6 +72,7 @@
       <title>Place Of Use</title>
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/dropDownProcess.js</dropDownProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/valueProcess.js</valueProcess>
       <onValueChange>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/object_type/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -119,13 +121,36 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>classificationTypeFilter</name>
+      <title>Usage</title>
+      <contentType>FILTER_TREE</contentType>
+      <filterTreeExcludedFieldsProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js</filterTreeExcludedFieldsProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js</stateProcess>
+    </entityField>
+    <entityField>
+      <name>CLASSIFICATIONGROUPDISPLAYVALUE</name>
+      <title>Classification</title>
+      <mandatory v="true" />
+      <dropDownProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js</dropDownProcess>
+      <textInputAllowed v="true" />
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SCOREPOINTS</name>
+      <title>Max Points</title>
+      <mandatory v="true" />
+      <mandatoryProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js</mandatoryProcess>
+      <stateProcess>%aditoprj%/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js</stateProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
       <name>jDito</name>
       <jDitoRecordAlias>Data_alias</jDitoRecordAlias>
       <contentProcess>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
-      <hasDependentRecords v="false" />
+      <hasDependentRecords v="true" />
       <onInsert>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js</onInsert>
       <onUpdate>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
       <onDelete>%aditoprj%/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js</onDelete>
@@ -160,6 +185,18 @@
         <jDitoRecordFieldMapping>
           <name>recordCategory.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>classificationTypeFilter.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>classificationTypeFilter.displayValue</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>SCOREPOINTS.value</name>
+        </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CLASSIFICATIONGROUPDISPLAYVALUE.value</name>
+        </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
   </recordContainers>
diff --git a/entity/ClassificationAdmin_entity/documentation.adoc b/entity/ClassificationAdmin_entity/documentation.adoc
index 390fb4c5dca8e222225334788788753279bc5d4b..52829958f6942c4a6c44173339b47fb1422aacfe 100644
--- a/entity/ClassificationAdmin_entity/documentation.adoc
+++ b/entity/ClassificationAdmin_entity/documentation.adoc
@@ -10,19 +10,19 @@ Purpose:
     This Entity gives the administrators an easy way to change the classification.
     Classifications get stored in the Classification table with their own uid, the ids of the classification type, classification score, object_rowId and object_type.
 
-    This entity displays the classifications (classificationGroup) and indicators (classificationType) grouped with the usage (object_type) in an treetable.
-    with the usage (object_type) as the first group, followed by the classifications (classificationgroup) of that group and it's indicators.
+    This entity displays the classifications (classificationGroup) and indicators (classificationType) and their usage(filter) grouped with the object_type in an treetable.
+    with the object_type as the first group, followed by the classifications (classificationgroup) of that group and it's indicators.
     The grading of the classification can be changed in the preview of an classification.
     The possible values of an indicator can be changed when opening the preview of the indicator.
 
     TreeTable Example: 
 
-        USAGE           CLASSIFICATION      INDICATOR
+                       CLASSIFICATION      INDICATOR            USAGE
         Organisation
                         1. Target Group     
-                                            Industry
-                                            Headquarters
-                                            Product preference
+                                            Industry            No restrictions
+                                            Headquarters        Filter set                  (ToDo: 1067241)
+                                            Product preference  No restrictions
                         2. Customer value   
         Salesproject    
                         1. Classification
@@ -31,8 +31,8 @@ Purpose:
 
 Particularities:
     
-    The classification gets updated via the "updateClassifications_serverProcess", which runs periodically, 
-    you can also start it manually using the action of this entity (currently invisible).
+    The classification gets updated via the "updateClassifications_serverProcess", which should run periodically, 
+    you can also start it manually using the action of this entity.
 
     The Classification consists of the following entities:
     Classification_entity,
@@ -53,23 +53,45 @@ Particularities:
 
 Adding the classification to other modules:
 
-    The Classification is only implemented for Organisation and Salesproject at the moment but can easily be used in other modules aswell by doing the following:
 
-    Add the Consumers "Classifications" and "ClassificationGroups" to the module you want to add the classification functionality 
-    and configure them the same way as in organisation and salesproject.
-    If you want to also have the classification in the preview and Filterview you also have to add the field "CLASSIFICATIONSTORAGE_ID" 
-    and configure the following things:
-        -add CLASSIFICATIONSTORAGE at the Linkinformation of the recordContainer (Primary key: CLASSIFICATIONSTORAGEID, UID Table: false, Read only: true)
-        -add the left join in the fromClauseProcess to CLASSIFICATIONSTORAGE using CLASSIFICATIONSTORAGE.OBJECT_ROWID = TableName.TableUid 
-        -add the recordfieldmapping to the field (CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID)
-        -add the CLASSIFICATIONSTORAGE_ID to the Filterview and Preview
-    Add the reference to the ClassificationView to the Mainview Context (see als organsiation and salesproject) 
+    The Classification is only implemented for Organisation and Salesproject at the moment but can easily be used in other modules aswell by doing the following:
 
     Extend the Keywordregistry and the classificationTypes in AB_KEYWORD_ENTRY by the new Module you are implementing the classification for.
     Also extend the CLASSIFICATIONADMIN_entity.CLASSIFICATIONTYPEPLACEOFUSE DropDownProcess.
-    Add ClassificationUtils.insertEmptyClassification() with the Uid und vars.get("$sys.currentcontextname") to the onInsert of the Module 
-    and also add the delete conditon to the onDelete (newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", eigeneUid).deleteData();)
-    !Important: if you are adding or deleting these datasets you always have to also insert/delete the dataset into CLASSIFICATIONSTORAGE entry,
-     so add the above mentioned delete condition and onInsertFunction to all actions that delete/create those datasets.!
 
-    Now you can either configure your classifications in the client or via liquibase
\ No newline at end of file
+    Add the Consumers "Classifications" and "ClassificationGroups" to the module you want to add the classification functionality and configure them the same way as in Organisation_entity and Salesproject_entity.
+    If you want to also have the classification in the preview and Filterview you also have to add the field "CLASSIFICATIONSTORAGEVALUE" and configure the following things:
+            -add CLASSIFICATIONSTORAGE at the Linkinformation of the recordContainer (Primary key: CLASSIFICATIONSTORAGEID, UID Table: false, Read only: true)
+            -add the left join in the fromClauseProcess to CLASSIFICATIONSTORAGE using CLASSIFICATIONSTORAGE.OBJECT_ROWID = TableName.TableUid 
+            -add the recordfieldmapping to the field (CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID)
+            -add CLASSIFICATIONSTORAGE_ID to the Filterview and Preview.
+            -optional: check "filterable" if you want it filterable (probably not that useful)
+    Add the reference to the ClassificationView to the Mainview Context (see als organsiation and salesproject) 
+    Add both of the classificationFilterExtensionSets: 
+        -"ClassificationType_filter" for filtering of the classificationTypes and it's values
+        -"ClassificationType_filter" for filtering of the achieved Classifications for each group
+
+    Important: 
+    -If you are deleting these datasets you always have to also delete the CLASSIFICATIONSTORAGE entry and the classification entries(if they exist), 
+    so add the these deleteconditions to all actions that delete those datasets:
+            newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", eigeneUid).deleteData();
+            newWhere("CLASSIFICATION.OBJECT_ROWID", eigeneUid).deleteData();
+    -Be sure to use WorkflowSignalSender.updated(); in the onUpdateProcess of the module and add the dependency mapping for classificationStorage in 
+    the Dependency_lib so the outdated flag of the classificationStorage dataset can automatically be set everytime an dataset get's modified
+
+
+    Now you can either configure your classifications in the client or via liquibase
+
+    If you already have old ClassificationDatasets:
+    A lot has changed in terms of datastructure:
+    The groups now have their own table and we are using an uuid instead of the groupname for the classificationgroups
+    We store classificationgrading with the the minPERCENT and the resulting grading for each classificationGroup dataset
+    We can now store filter for classificationtype datasets
+    We now store the scorepoints for classificationtype datasets
+    we are storing the achieved classifications (e.g. "ACD") in CLASSIFICATIONSTORAGE 
+    and the stored classifiaction now also store the value(because it will be possible to also use things like attributes as classifications) and the 
+    scorepoints (scorepercent of the linked classificationscore dataset * Scorepoints of the linked classificationtype dataset)
+    We also added an outdated flag to both ClassificationStorage and ClassificationType -> so the updateClassificationsServerprocess knows what it 
+    has to update (see also documentationProperty of said process)
+        - The ClassificationStorage one get's set via the onUpdate of the module (see above)
+        - The ClassificationType get's set for changes in classificationAdmin
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..04d6ba3c02af036fc51b33769653aaf8c06e1088
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroup/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_EDIT && vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW)
+    result.string(neon.COMPONENTSTATE_EDITABLE)
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE)
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..917fbdf4fd535892b9a297d66d82bd0e16e21c92
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/dropDownProcess.js
@@ -0,0 +1,16 @@
+import("Classification_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+//no Translation since the same logic as in the Keywords applies (Admin User is able to change the title)
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    var objectType = vars.get("$field.OBJECT_TYPE")
+    if (objectType)
+    {
+        var obj = ClassificationUtils.getAllGroups(objectType);
+        
+        result.object(obj);
+    }
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..75628dd48b118ed61a38a10a7e1a96a2b58d8ec7
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/stateProcess.js
@@ -0,0 +1,11 @@
+import("Classification_lib");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if((vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW))
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE)
+}
+else
+    result.string(neon.COMPONENTSTATE_INVISIBLE)
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad68c834ce9d2dde7ae05c13957bbab6d3737755
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationgroupdisplayvalue/valueProcess.js
@@ -0,0 +1,19 @@
+import("system.result");
+import("system.vars");
+import("system.translate");
+import("Sql_lib");
+import("Classification_lib");
+
+var res = vars.get("$this.value");
+if(!res)
+{
+    var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP");
+    if(classificationGroupId)
+    {
+        res = newSelect("CLASSIFICATIONGROUP.TITLE")
+                            .from("CLASSIFICATIONGROUP")
+                            .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", classificationGroupId)
+                            .cell();
+    }
+}
+result.string(res);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf03254dee3ad99700634720a48d4bbeb569bd23
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/filterTreeExcludedFieldsProcess.js
@@ -0,0 +1,84 @@
+import("system.neon");
+import("system.text");
+import("Classification_lib");
+import("system.vars");
+import("Context_lib");
+import("Dependency_lib");
+import("system.project");
+import("ClassificationFilter_lib");
+import("Sql_lib");
+import("system.result");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    //We want to exclude all the classificationFilterFields.
+    //Excluding via this process works by returning a array with all the fieldNames you want to exclude.
+    //The ClassificationFilters are ClassificationFilterExtensionSets so the name of one of these fields looks like this:
+    //      "#EXTENSION." + Set-Name + "." + Field-Name + "#" + Contenttype
+    // e.g: "#EXTENSION.ClassificationType_filter.d67397c5-5e05-433b-b61d-12807906aa5a#TEXT""
+
+    var classificationTypes = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.OBJECT_TYPE")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.SORTING")
+                                        .table();
+
+    var res = ["CLASSIFICATIONVALUE"];
+    var groupObject = {};
+    var sqlHelper = new SqlMaskingUtils();
+    var ii;
+    var previousObjectType;
+
+    for (let i = 0; i < classificationTypes.length; i++) {
+        //classificationTypeFilterFields are just the classificationTypeId with the correct prefix and contenttype
+        res.push("#EXTENSION.ClassificationType_filter."+classificationTypes[i][0]+"#TEXT")
+
+        //classificationGroupFilterFields are are a little more complicated:
+        //it's the classificationGroupId + the correct SqlCondition (as String) encoded via ClassificationGroupFilterNameCoder +correct prefix and contenttype
+        if(!groupObject.hasOwnProperty(classificationTypes[i][1]))//only once per group
+        {
+            if(previousObjectType == null || previousObjectType != classificationTypes[i][2])
+            {
+                ii = 0;// reset the position once we are done with that object_type (possible thanks to the orderBy of the select above
+            }
+            
+            var sqlConditionForGroup = SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE is null"))
+                                                            .thenString("-")
+                                                            .elseValue(sqlHelper.substring("CLASSIFICATIONVALUE", ii+1, 1))
+                                                            .toString();
+                                                            
+            res.push("#EXTENSION.ClassificationGroup_filter."+ClassificationGroupFilterNameCoder.encode(classificationTypes[i][1], sqlConditionForGroup)+"#TEXT");
+            groupObject[classificationTypes[i][1]] = "";
+            ii++;// used for the correct Position in the grading string (we need the exact same condition as in the filterExtensionSet
+            previousObjectType = classificationTypes[i][2];
+        }
+    }
+
+    //remove all the fields of consumers with no dependency set between the entity of the object_type and the consumer entity
+    var context = text.decodeMS(text.decodeMS(vars.get("$field.UID"))[0])[0];
+
+    var entity = ContextUtils.getEntity(context);
+    var fields = project.getEntityStructure(entity)["fields"];
+
+    for (var field in fields)
+    {
+        if(fields[field]["fieldType"] == "CONSUMER")
+        {
+            var consumerEntity = fields[field]["entityName"];
+
+            if(!Dependency.getReverseDependency(entity).includes(consumerEntity))
+            {
+                var consumerStructure = project.getEntityStructure(consumerEntity);
+                var consumerName = fields[field]["name"];
+                var consumerFields = consumerStructure["fields"];
+                
+                for (var consumerField in consumerFields)
+                {
+                    //name of these filterFields = consumerName + '.' + fieldname
+                    res.push(consumerName +"."+consumerFields[consumerField]["name"]);
+                }
+            }
+        }
+    }
+    result.object(res);
+}
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..460ef2a0b5860fafd7186f2d359295cd25c4b90e
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/classificationtypefilter/stateProcess.js
@@ -0,0 +1,15 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+if((recordCategory != $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE() 
+        && (vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW)&& (vars.get("$sys.presentationmode") != neon.CONTEXT_PRESENTATIONMODE_FILTER)) 
+            || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    state = neon.COMPONENTSTATE_INVISIBLE;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e826e0c8c9c707c2a6618da377d37812671571a
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/object_type/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory != $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory != $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory != $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    state = neon.COMPONENTSTATE_DISABLED;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js b/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..17d5c36488374de4df1f312b44a470014b336a36
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/scorepoints/mandatoryProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var mandatory;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    mandatory = false;
+else
+    mandatory = true;
+    
+result.string(mandatory);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js b/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1698a32794efed84f712e9985fe0ac602a8c07c6
--- /dev/null
+++ b/entity/ClassificationAdmin_entity/entityfields/scorepoints/stateProcess.js
@@ -0,0 +1,16 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Classification_lib");
+
+var state;
+var recordCategory = vars.get("$field.recordCategory");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW && (recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS() 
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()
+    || recordCategory == $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST()))
+    state = neon.COMPONENTSTATE_INVISIBLE;
+else
+    state = neon.COMPONENTSTATE_EDITABLE;
+    
+result.string(state);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js b/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
index 6eaad20db1e0a95b1bfa4842971a4e69a037b151..c59d575fa674c2fcbe2d4702f0257f71cfd040c0 100644
--- a/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
+++ b/entity/ClassificationAdmin_entity/entityfields/sorting/valueProcess.js
@@ -4,40 +4,36 @@ import("system.result");
 import("system.text");
 import("Sql_lib");
 
-if(!vars.get("$this.value"))
+var sysSelection = vars.get("$sys.selection");
+var uid = vars.get("$field.UID");
+var id;
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT )
 {
-    var sysSelection = vars.get("$sys.selection");
-    var uid = vars.get("$field.UID");
-    var id;
-    if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT )
+    if(sysSelection.length > 0)
     {
-        if(sysSelection.length > 0)
+        var res;
+        var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
+        if(value)
         {
-            var res;
-            var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
-            if(value)
+            if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
+                id = text.decodeMS(uid)[1];
+            else
             {
-                if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
-                    id = text.decodeMS(uid)[1];
-                else
-                {
-                    decodedIdvalues = text.decodeMS(value);
-                    if(decodedIdvalues[0].charAt(0) != ";" && decodedIdvalues[0].charAt(decodedIdvalues[0].length) != ";")
-                        id = text.decodeMS(text.decodeMS(uid)[0])[1];
-                }
+                decodedIdvalues = text.decodeMS(value);
+                if(decodedIdvalues[0].charAt(0) != ";" && decodedIdvalues[0].charAt(decodedIdvalues[0].length) != ";")
+                    id = text.decodeMS(text.decodeMS(uid)[0])[1];
             }
         }
     }
-    else if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
-        id = vars.get("$field.CLASSIFICATIONGROUP");
-        
-    var sorting = newSelect("CLASSIFICATIONGROUP.SORTING")
-                                .from("CLASSIFICATIONGROUP")
-                                .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", id)
-                                .cell();
-    if(sorting)
-        result.string(sorting);
-    else
-        result.string("1");
 }
+else if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+    id = vars.get("$field.CLASSIFICATIONGROUP");
 
+var sorting = newSelect("CLASSIFICATIONGROUP.SORTING")
+                            .from("CLASSIFICATIONGROUP")
+                            .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", id)
+                            .cell();
+if(sorting)
+    result.string(sorting);
+else
+    result.string("1");
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
index 62e3899f1be13fb9086e3539720f58b0a177adc3..4022fc575bdb2dd5b3884809e0bb4819285cc65b 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,7 @@
+import("Context_lib");
+import("JditoFilter_lib");
+import("system.entities");
+import("system.eMath");
 import("Classification_lib");
 import("Sql_lib");
 import("system.result");
@@ -7,13 +11,15 @@ import("system.util");
 import("system.vars");
 
 var idvalues = vars.get("$local.idvalues");
-var decodedIdvalues;
+var decodedIdvalues, entity, groupTitle;
 var res = [];
 if(idvalues)
 {
     if(idvalues[0].charAt(0) != ";" && idvalues[0].charAt(idvalues[0].length) != ";")
+    {
         res.push([idvalues[0], "", "", "", "", "", idvalues[0], translate.text(idvalues[0]), 
-            "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE()])
+            "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE(), "", "", "", ""]);
+    }
     else
     {
         decodedIdvalues = text.decodeMS(idvalues[0]);
@@ -23,59 +29,88 @@ if(idvalues)
                                     .from("CLASSIFICATIONGROUP")
                                     .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", decodedIdvalues[1])
                                     .cell();
+
             res.push([idvalues[0], decodedIdvalues[0], decodedIdvalues[1], translate.text(groupName), "", "", "", 
-                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()]);
+                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP(), "", "", "", groupName]);
         }
-        
         else
         {
-            var scoreType = newSelect("CLASSIFICATIONTYPE.SCORETYPE")
+            var typeAndFilter = newSelect("OBJECT_TYPE, CLASSIFICATIONTYPE.FILTER, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.SCOREPOINTS")
                                     .from("CLASSIFICATIONTYPE")
                                     .where("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", decodedIdvalues[1])
                                     .orderBy("CLASSIFICATIONTYPE.SCORETYPE")
-                                    .cell();
-            res.push([idvalues[0], decodedIdvalues[0], "", "",decodedIdvalues[1], translate.text(scoreType), 
-                "", "","", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE()]);
+                                    .arrayRow();
+                                    
+            var filter = typeAndFilter[1];
+            var filterDisplay = translate.text("Filter set"); //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            entity = ContextUtils.getEntity(typeAndFilter[0]);
+            var emptyFilter = JditoFilterUtils.getEmptyFilter(entity)
+            if(filter == "")
+                filter = emptyFilter;
+            if (filter == emptyFilter)
+                filterDisplay = translate.text("No Restrictions");
+            
+            var maxScore = typeAndFilter[3];
+            groupTitle = newSelect("CLASSIFICATIONGROUP.TITLE")
+                                        .from("CLASSIFICATIONGROUP")
+                                        .where("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", text.decodeMS(decodedIdvalues[0])[1])
+                                        .cell();
+            
+            //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            res.push([idvalues[0], decodedIdvalues[0], "", "", decodedIdvalues[1], translate.text(typeAndFilter[2]), 
+                "", "","", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE(), filter, filterDisplay, maxScore, groupTitle]);
         }
     }
 }
 else
 {
-    var savedData = {};
+    var savedData = new Set();
     var classificationData = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
-                                            CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID,  CLASSIFICATIONTYPE.SCORETYPE")
+                                            CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID,  CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.FILTER, CLASSIFICATIONTYPE.SCOREPOINTS")
                                             .from("CLASSIFICATIONGROUP")
                                             .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
                                             .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.SORTING")
-                                            .table()
-                                            
-    var objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType, uidClassificationGroup, uidClassificationType;
-    for (let  i = 0; i < classificationData.length; i++) 
-        {
-        [objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType] = classificationData[i];
-                
+                                            .table()                                   
+    
+    //run trough the data and build the tree
+    classificationData.forEach(function ([objectType, classificationGroupId, classificationGroupName, classificationTypeId, classificationScoreType, classificationTypeFilter, classificationTypeScorePoints])
+    {                
         uidClassificationGroup = text.encodeMS([objectType, classificationGroupId]);
         uidClassificationType = text.encodeMS([uidClassificationGroup, classificationTypeId]);
+        uidClassificationTypeFilter = text.encodeMS([uidClassificationType, util.getNewUUID()]);
         
         
-        if(!savedData.hasOwnProperty(classificationData[i][0])) //objectType
+        if(!savedData.has(objectType)) //objectType
         { 
             res.push([objectType, "", "", "", "", "", objectType, translate.text(objectType), 
-                "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE()]);
-            savedData[classificationData[i][0]] = "";
+                "", $ClassificationRecordCategories.CLASSIFICATION_OBJECT_TYPE(), "", "", "", ""]);
+            savedData.add(objectType);
         }
-        if(!savedData.hasOwnProperty(classificationData[i][1])) //classificationGroup
+        if(!savedData.has(classificationGroupId)) //classificationGroup
         {
             res.push([uidClassificationGroup, objectType, classificationGroupId, translate.text(classificationGroupName), "", "", "",
-                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()]);
-            savedData[classificationData[i][1]] = "";
+                "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP(), "", "", "", ""]);
+            savedData.add(classificationGroupId);
         }
-        if(!savedData.hasOwnProperty(classificationData[i][3])) //classificationType
+        if(!savedData.has(classificationTypeId)) //classificationType
         {
+            var classificationTypeFilterDisplay = translate.text("Filter set"); //ToDo: "resolved" DisplayValue for the Filterstrings #1067160/1067241
+            entity = ContextUtils.getEntity(objectType);
+            emptyFilter = JditoFilterUtils.getEmptyFilter(entity);
+            if(classificationTypeFilter == "")
+            {
+                classificationTypeFilter = emptyFilter;
+            }
+            if(classificationTypeFilter == emptyFilter)
+            {
+                classificationTypeFilterDisplay = translate.text("No Restrictions");
+            }
+
             res.push([uidClassificationType, uidClassificationGroup, "", "", classificationTypeId, translate.text(classificationScoreType), 
-                "", "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE()]);
-            savedData[classificationData[i][3]] = "";
+                "", "", "", $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_TYPE(), classificationTypeFilter, classificationTypeFilterDisplay, classificationTypeScorePoints, ""]);
+
+            savedData.add(classificationTypeId);
         }
-    }
+    })
 }
 result.object(res);
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
index c7da129c3b05bfcf9fd0f48988914efa532bc5ac..57378b99c786b9baab1443e999d675df3fb6a351 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onDelete.js
@@ -5,26 +5,22 @@ import("system.util");
 import("system.db");
 import("system.vars");
 
-try
-{
-    _delete();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //dependecies are deleted so the cache needs to be updated
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-    entities.invalidateCache("ClassificationScore_entity", "db");
-}
+    
+//always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//dependecies are deleted so the cache needs to be updated
+entities.invalidateCache("ClassificationGrading_entity", "db");
+entities.invalidateCache("ClassificationGroup_entity", "db");
+entities.invalidateCache("ClassificationScore_entity", "db");
+
+_delete();
 
 //private helper function for better code readability
 function _delete()
 {
     var rowData = vars.get("$local.rowdata");
-    var groupID;
-    var groupValue = rowData["CLASSIFICATIONGROUP.value"];
     var classificationType = rowData["CLASSIFICATIONTYPEID.value"];
     var objectType = rowData["OBJECT_TYPE.value"];
     var table;
@@ -40,25 +36,6 @@ function _delete()
         newWhere("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationType).deleteData(); //deletes the classificationscores that are linked to the classificationtype
         newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationType).deleteData(); //deletes the classificationtype
         newWhere("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationType).deleteData(); //deletes all the classifications
-    
-        var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup); 
-
-        var maxScore = ClassificationUtils.getMaxScore(classificationGroup) //important to do this AFTER deleting the classificationscores to get the new value
-
-        if(gradingTable[0][1] != maxScore)
-        {
-            var column = ["MAXGRADEFORSCORE"];
-            table = ["CLASSIFICATIONGRADING"];
-            var multiplicand = maxScore/gradingTable[0][1];
-            var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-            .updateData(true, table, column, null, [maxScore]);
-
-            for (let i = 1; i < gradingTable.length; i++) 
-            {
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-            }
-        }
     }
 
     else if(recordCategory == $ClassificationRecordCategories.CLASSIFICATION_CLASSIFICATION_GROUP()) //the deleted dataset must be an classificationGroup
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
index 62d83bc0564f53c4c851555ceaf91d428fe5a234..687c5a1a474b6a974e613b30fdff2d4675d9a55d 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onInsert.js
@@ -3,32 +3,29 @@ import("system.util");
 import("system.db");
 import("system.vars");
 
-try
-{
-    _insert();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are inserted within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    //groups are dependent since they are inserted within this process
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-}
+ //always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//Grading-values are dependent since they are inserted within this process (maxgrade)
+entities.invalidateCache("ClassificationGrading_entity", "db");
+//groups are dependent since they are inserted within this process
+entities.invalidateCache("ClassificationGroup_entity", "db");
+
+_insert();
 
 //private helper function for better code readability
 function _insert()
 {
     var rowData = vars.get("$local.rowdata");
-    var groupID;
-    var groupValue = rowData["CLASSIFICATIONGROUP.value"];
-    if(groupValue.length != 36 && (groupValue.match(/-/g) || []).length != 4) //if classificationGroup is no Id -> insert new group
+    var groupId;
+    var groupValue = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
+    if(groupValue.length != 36 && (groupValue.match(/-/g) || []).length != 4) //if groupValue is no Id -> insert new group
     {
-        groupID = util.getNewUUID();
+        groupId = util.getNewUUID();
         var groupValues = [
             groupValue,
-            groupID,
+            groupId,
             rowData["SORTING.value"]
         ];
         
@@ -39,40 +36,28 @@ function _insert()
         ];
         
         db.insertData("CLASSIFICATIONGROUP", groupColumns, null, groupValues);
-        
-        var gradingColumns = [
-            "CLASSIFICATIONGRADINGID",
-            "GRADING",
-            "MAXGRADEFORSCORE",
-            "CLASSIFICATIONGROUP_ID"
-        ];
-        
-        var gradingValues = [
-            util.getNewUUID(),
-            "A",
-            0,
-            groupID
-        ];
-        
-        db.insertData("CLASSIFICATIONGRADING", gradingColumns, null, gradingValues); // insert a "dummy" classificationGradingValue
     }
-    else{
-        groupID = groupValue; //else the groupValue is the groupId
+    else
+    {
+        groupId = groupValue; //else the groupValue is the groupId
     }
     
     var typeValues = [
         vars.get("$field.CLASSIFICATIONTYPEIDDISPLAYVALUE"),
         util.getNewUUID(),
-        groupID,
-        rowData["OBJECT_TYPE.value"]
-    ]
+        groupId,
+        rowData["OBJECT_TYPE.value"],
+        rowData["SCOREPOINTS.value"],
+        1
+    ];
     
     var typeColumns = [
         "SCORETYPE",
         "CLASSIFICATIONTYPEID",
         "CLASSIFICATIONGROUP_ID",
-        "OBJECT_TYPE"
+        "OBJECT_TYPE",
+        "SCOREPOINTS",
+        "OUTDATED"
     ];
-    
     db.insertData("CLASSIFICATIONTYPE", typeColumns, null, typeValues); // always insert the classificationtype
 }
\ No newline at end of file
diff --git a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
index ea803f184c537724212607c29cfa59f9342de57c..9a9e04cfd71ca1864d2663355453c080d3cc4d05 100644
--- a/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/ClassificationAdmin_entity/recordcontainers/jdito/onUpdate.js
@@ -8,25 +8,23 @@ import("system.text");
 import("system.util");
 import("system.vars");
 
-try
-{
-    _update();
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-    //groups are dependent since they are modified within this process
-    entities.invalidateCache("ClassificationGroup_entity", "db");
-}
+
+//always make sure that the cache is as valid as possible
+
+//ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
+entities.invalidateCache("ClassificationType_entity", "db");
+//Grading-values are dependent since they are modified within this process (maxgrade)
+entities.invalidateCache("ClassificationGrading_entity", "db");
+//groups are dependent since they are modified within this process
+entities.invalidateCache("ClassificationGroup_entity", "db");
+
+_update();
 
 //private helper function for better code readability
 function _update()
 {
-    var rowdata = vars.get("$local.rowdata");
-    var uid = vars.get("$field.UID");
+    var rowData = vars.get("$local.rowdata");
+    var uid = rowData["UID.value"];
 
     //for changes of the place of use (object_type), group, and title of an scoretpye dataset
     var dbFields = {
@@ -35,20 +33,27 @@ function _update()
         "CLASSIFICATIONGROUP.value": "CLASSIFICATIONGROUP_ID",
         "CLASSIFICATIONTYPEID.displayValue": "SCORETYPE",
         "SORTING.value": "SORTING",
-        "CLASSIFICATIONTYPEIDDISPLAYVALUE.value": "CLASSIFICATIONTYPEID"
+        "CLASSIFICATIONTYPEIDDISPLAYVALUE.value": "CLASSIFICATIONTYPEID",
+        "classificationTypeFilter.value": "FILTER",
+        "CLASSIFICATIONGROUPDISPLAYVALUE.value": "CLASSIFICATIONGROUP_ID",
+        "SCOREPOINTS.value": "SCOREPOINTS"
     };
 
     var table = "CLASSIFICATIONTYPE";
-    var cond;
+    var cond, typeCond;
     var values = [];
     var columns = [];
+    var groupCol = [];
+    var groupVal = [];
+    var gradingCol = [];
+    var gradingVal = [];
 
     var i;
     var isGroupDataSet = false;
 //    the classificationtypeId.value has the placeholder set when editing a classificationgroup dataset to allow us 
 //    to handle the updating differently depending on whether its an classifcation group dataset or an classification type dataset
 //    since you want changes to the name of groups to effect only the group name and changes to the group of an classificationtype to change it's group
-    if(rowdata["CLASSIFICATIONTYPEID.value"] == $ClassificationPlaceholder.TOPSECRETPLACEHOLDER()) 
+    if(rowData["CLASSIFICATIONTYPEID.value"] == $ClassificationPlaceholder.TOPSECRETPLACEHOLDER()) 
         isGroupDataSet = true;
 
     vars.get("$local.changed").forEach(function (field, i)
@@ -57,135 +62,117 @@ function _update()
         if (dbField)
         {
             columns[i] = dbField;
-            values[i] = rowdata[field] || "";
+            values[i] = rowData[field] || "";
         }
     });
 
-
     if(!isGroupDataSet) //-> update the classification type dataset
     {
-        var groupIds = ClassificationUtils.getAllGroups(vars.get("$field.OBJECT_TYPE")); //gets all existing groups of the object_type
+        var groupIds = ClassificationUtils.getAllGroups(rowData["OBJECT_TYPE.value"]); //gets all existing groups of the object_type
         var newGroupId;
         var newGroupName;
         var insertGroup = false;
-        var groupchange = true;
+        var groupChange = false;
+        var markOutdated = false;
         var newId;
-        for (i = 0; i < columns.length; i++) {
+        var condition;
+        
+        for (i = 0; i < columns.length; i++) {     
+
             if(columns[i] == "CLASSIFICATIONGROUP_ID")//if the classificationgroup_Id changed: determine whether or not a new group has to be inserted
             {
-                if(!groupIds.toString().includes(values[i]))
+                condition = true;
+                for (let ii = 0; ii < groupIds.length; ii++) {
+                    if(groupIds[ii][1] == rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"])
+                    {
+                        condition = false;
+                    }
+                }
+                if(condition && rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"].length != 36)
                 {
-                    newGroupName = values[i];
+                    newGroupName = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
                     newGroupId = util.getNewUUID();
                     values[i] = newGroupId;
                     insertGroup = true;
-                    groupchange = true;
+                    groupChange = true;
                 }
-                else if(values[i] == text.decodeMS(text.decodeMS(uid)[0])[1])
+                else if(values[2] != rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"] && values[2] != rowData["CLASSIFICATIONGROUP.value"] && rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"].length == 36)
                 {
-                    groupchange = false;
-                    insertGroup = true;
-                    break;
+                    groupChange = true;
+                    insertGroup = false;
+                    values[i] = rowData["CLASSIFICATIONGROUPDISPLAYVALUE.value"];
                 }
             }
             else if(columns[i] == "CLASSIFICATIONTYPEID")
-                {
-                    columns.splice(i, 1);
-                    values.splice(i, 1);
-                    i = i-1
-                }
+            {
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
+            }
             else if(columns[i] == "SORTING")
-                {
-                    columns.splice(i, 1);
-                    values.splice(i, 1);
-                    i = i-1
-                }
-        }
-
-        if(groupchange == true)
-        {
-            var gradeColumn, gradeTable, multiplicand, update, gradingTable;
-            var oldGroup = ClassificationUtils.getClassificationGroup(text.decodeMS(uid)[1]);
-            var newMax = ClassificationUtils.getMaxScoreExcludeType(oldGroup, text.decodeMS(uid)[1]);
-            gradingTable = ClassificationUtils.getGradingTableByGroupId(oldGroup); 
-            
-            var lostScore = parseInt(newSelect("max(SCORE)")
-                                                .from("CLASSIFICATIONSCORE")
-                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", text.decodeMS(uid)[1])
-                                                .cell()); //the greatest score of the "moved" classificationtype affects the classificationGradings
-            
-            if(insertGroup) //new group has to be inserted
             {
-                var maxSorting = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-                                            .from("CLASSIFICATIONGROUP")
-                                            .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", vars.get("$field.OBJECT_TYPE"))
-                                            .orderBy("CLASSIFICATIONGROUP.SORTING desc")
-                                            .table()[0][1]; //gets the greatest sorting value of the object_type
-                db.insertData("CLASSIFICATIONGROUP", ["CLASSIFICATIONGROUPID", "TITLE", "SORTING"], null, [newGroupId, newGroupName, eMath.addInt(maxSorting, 1)]) //insert the new group (sorting is greater than the greatest one
-
-                var gradingColumns = [
-                "CLASSIFICATIONGRADINGID",
-                "GRADING",
-                "MAXGRADEFORSCORE",
-                "CLASSIFICATIONGROUP_ID"
-                ];
-
-                var gradingValues = [
-                util.getNewUUID(),
-                "A",
-                lostScore,
-                newGroupId
-                ];
-
-                db.insertData("CLASSIFICATIONGRADING", gradingColumns, null, gradingValues); // insert a "dummy" classificationGradingValue, since not having one results in problems
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
             }
-            else // classificationtype has to be moved to another classificatingroup
+            else if(columns[i] == "SCOREPOINTS" || columns[i] == "FILTER")
             {
-                newId = vars.get("$field.CLASSIFICATIONGROUP"); //we know that the field has the classificationgroupId of the new group set
-                newGradingTable = ClassificationUtils.getGradingTableByGroupId(newId); //we use this id to get the gradingtable of the new group
-                newNewMax = eMath.addInt(newGradingTable[0][1], lostScore) //maxvalue of the gradingtable with the added lostScore = the new maxValue
-                if(newGradingTable[0][1] != newNewMax) //update existing classificationGrading if the maxValue has changed
+                markOutdated = true
+                if(columns[i] == "FILTER")
                 {
-                    gradeColumn = ["MAXGRADEFORSCORE"];
-                    gradeTable = "CLASSIFICATIONGRADING";
-                    multiplicand = newNewMax/newGradingTable[0][1];
-                    update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", newGradingTable[0][0])
-                                            .updateData(true, gradeTable, gradeColumn,  null, [parseInt(newGradingTable[0][1] * multiplicand)]);
-
-                    for (i = 1; i < newGradingTable.length; i++) 
-                    {
-                        update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", newGradingTable[i][0])
-                                        .updateData(true, gradeTable, gradeColumn,  null, [parseInt(newGradingTable[i][1] * multiplicand)]);
-                    }
+                    if(JSON.parse(values[i]).filter.childs.length == 0) //insert "" intead of an empty filter
+                        values[i] = "";
                 }
-
             }
-
-            if(gradingTable[0][1] != newMax) //update old classificationGrading if the maxValue has changed
+            else if(columns[i] == undefined || columns[i] == null || columns[i] == "")
             {
-                gradeColumn = ["MAXGRADEFORSCORE"];
-                gradeTable = "CLASSIFICATIONGRADING";
-                multiplicand = newMax/gradingTable[0][1];
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                        .updateData(true, gradeTable, gradeColumn,  null, [newMax]);
+                columns.splice(i, 1);
+                values.splice(i, 1);
+                i = i-1;
+            }
+        }
+        if(insertGroup) // new group has to be inserted
+        {
+            groupVal = [newGroupId, newGroupName];
+            groupCol = ["CLASSIFICATIONGROUPID", "TITLE"];
+            db.insertData("CLASSIFICATIONGROUP", groupCol, null, groupVal)
+            
+            gradingCol = ["CLASSIFICATIONGRADINGID", "GRADING", "MINPERCENT", "CLASSIFICATIONGROUP_ID"];
+            //also insert this dummy gradingtable
+            gradingVal = [util.getNewUUID(), "A", 76, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "B", 51, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "C", 26, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal)
+            gradingVal = [util.getNewUUID(), "D", 0, newGroupId];
+            db.insertData("CLASSIFICATIONGRADING", gradingCol, null, gradingVal) 
+        }
 
-                for (i = 0; i < gradingTable.length; i++) 
+        if(groupChange || insertGroup || markOutdated)
+        {
+            columns.push("OUTDATED");
+            values.push(1)
+            if(groupChange || insertGroup)
+            {
+                var classificationTypesOfOldGroup = ClassificationUtils.getClassificationTypesOfGroup(rowData["CLASSIFICATIONGROUP.value"],rowData["CLASSIFICATIONTYPEID.value"], true)
+                                                        
+                for (i = 0; i < classificationTypesOfOldGroup.length; i++) 
                 {
-                    update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                                    .updateData(true, gradeTable, gradeColumn,  null, [parseInt(gradingTable[i][1] * multiplicand)]);
+                    typeCond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypesOfOldGroup[i]);
+                    typeCond.updateData(true, "CLASSIFICATIONTYPE" , ["OUTDATED"], null, [1]);
                 }
             }
         }
 
         cond = newWhereIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", text.decodeMS(uid)[1]);
-        columns.push("SCORETYPE");
-        values.push(vars.get("$field.CLASSIFICATIONTYPEIDDISPLAYVALUE"));
+
         cond.updateData(true, table, columns, null, values);
     }
+    
     else //-> update the classification group dataset
     {
-        var value = vars.get("$field.CLASSIFICATION_PARENT_ID");
+        var value = rowData["CLASSIFICATION_PARENT_ID.value"];
 
         if(value.charAt(0) != ";" && value.charAt(value.length) != ";")
             id = text.decodeMS(uid)[1];
@@ -199,8 +186,8 @@ function _update()
 
         var groupTable = "CLASSIFICATIONGROUP";
         var groupColumns = ["SORTING", "TITLE"];
-        var groupName = rowdata["CLASSIFICATIONGROUP.value"] == classificationGroupId ? rowdata["CLASSIFICATIONGROUP.displayValue"] : rowdata["CLASSIFICATIONGROUP.value"];
-        var groupValues = [vars.get("$field.SORTING"), groupName];
+        var groupName = rowData["CLASSIFICATIONGROUP.value"] == classificationGroupId ? rowData["CLASSIFICATIONGROUP.displayValue"] : rowData["CLASSIFICATIONGROUP.value"];
+        var groupValues = [rowData["SORTING.value"], groupName];
         var groupCond = newWhereIfSet("CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", classificationGroupId);
         groupCond.updateData(true, groupTable, groupColumns, null, groupValues);
     }
diff --git a/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod b/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
index 39144723e62796ee2c7e4b433e0400cd47bdb623..845919600c928adc631a0bd0b4c8519bda9f3db5 100644
--- a/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
+++ b/entity/ClassificationGrading_entity/ClassificationGrading_entity.aod
@@ -4,7 +4,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ClassificationGrading_entity/documentation.adoc</documentation>
   <title>Grading</title>
-  <titlePlural>Gradings</titlePlural>
+  <titlePlural>Gradings in Percent</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
@@ -18,16 +18,6 @@
       <name>GRADING</name>
       <title>Scoretype</title>
     </entityField>
-    <entityField>
-      <name>MAXGRADEFORSCORE</name>
-      <documentation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc</documentation>
-      <title>Max Value</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#####</outputFormat>
-      <inputFormat>#####</inputFormat>
-      <valueProcess>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js</valueProcess>
-      <onValidation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js</onValidation>
-    </entityField>
     <entityField>
       <name>CLASSIFICATIONGROUP_ID</name>
       <title>Classification</title>
@@ -43,6 +33,7 @@
       <children>
         <entityParameter>
           <name>ClassificationTypeId_param</name>
+          <valueProcess>%aditoprj%/entity/ClassificationGrading_entity/entityfields/classificationgradings/children/classificationtypeid_param/valueProcess.js</valueProcess>
           <expose v="true" />
         </entityParameter>
       </children>
@@ -59,6 +50,13 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>MINPERCENT</name>
+      <documentation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc</documentation>
+      <title>Percent</title>
+      <displayValueProcess>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js</onValidation>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -67,6 +65,9 @@
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBUpdate>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
+      <onDBDelete>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <cacheType>GLOBAL</cacheType>
       <cacheKeyProcess>%aditoprj%/entity/ClassificationGrading_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess>
       <linkInformation>
@@ -79,10 +80,6 @@
         </linkInformation>
       </linkInformation>
       <recordFieldMappings>
-        <dbRecordFieldMapping>
-          <name>MAXGRADEFORSCORE.value</name>
-          <recordfield>CLASSIFICATIONGRADING.MAXGRADEFORSCORE</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>GRADING.value</name>
           <recordfield>CLASSIFICATIONGRADING.GRADING</recordfield>
@@ -95,6 +92,10 @@
           <name>CLASSIFICATIONGRADINGID.value</name>
           <recordfield>CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MINPERCENT.value</name>
+          <recordfield>CLASSIFICATIONGRADING.MINPERCENT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/ClassificationGrading_entity/documentation.adoc b/entity/ClassificationGrading_entity/documentation.adoc
index faa566900db907439f90781456e63e894d2ccf2d..9638714b062297d11de3f9ae52382a81e9500040 100644
--- a/entity/ClassificationGrading_entity/documentation.adoc
+++ b/entity/ClassificationGrading_entity/documentation.adoc
@@ -11,9 +11,9 @@ Purpose:
     This Entity gives the administrators an easy way to change the classification grading in the preview of classificationAdmin 
     when selecting a classification (classificationGroup).
     The classificationgrading gets stored in the table classificationgrading with it's own classificationgradingId, the classificationGroup_id, 
-    the grading (e.g. "A", "B", "C") and the max score you this grade for.
+    the grading (e.g. "A", "B", "C") and the min score you get this grade for.
 
-    This entity only has one view: the ClassificationGradingMultipleEdit_view which has both the MaxGradeForScore and the grading column.
+    This entity only has one view: the ClassificationGradingMultipleEdit_view which has both the minPercent and the grading column.
     making it possible for the admin to configure something like this:
 
     ClassificationAdminPreviewOfClassification Example: 
@@ -21,22 +21,24 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         SORTING:        1
-         A               100
-         B               75
-         C               50
-         D               25
+         A               76% - 100%
+         B               51% - 76%
+         C               26% - 51%
+         D               0% - 26%
 
     --> The Score "72" would lead to the grade "B" (<<<not included in the preview, just for easier understanding of how this works)
 
 Particularities:
     
-    The MaxGradeForScore of the best possible score (in our example for "A") has to always be the largest possibly achievable value, 
-    otherwise it would lead to errors, which is why this field always get's the maximum value set as default 
-    and it's not possible to save something greater than that (validationProcess).
-    
-    Also, since the indicators under the classification and the possible values of those indicators can be changed:
-    The grading get's updated automatically after changes to the maximum possible value, 
-    using the rule of three (see onInsert-, onUpdate- and onDelete- processes of classificationScore).
+    The reason why we use percent is because the classificationTypes of the group can have different filterconditions, which excludes them for some datasets
+    -> we had to settle for percent
+    The score itself get's calculated by the adding all the archeived scores of the relevant classificationType datasets of the object 
+    (scorePercent of the classificationScore dataset * the scorePoints of the classificationType dataset)
+    and matching it against the the sum of the best possible scores of each relevant classificationType of that group and calculating it via the classificationGrading minPercents
+    If none of the classificationTypes of a group is relevant we ignore that group.
+
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update/delete
+
 
     The Classification consists of the following entities:
     Classification_entity,
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc
deleted file mode 100644
index d42cd1657ab6afe2b94c0306d9a901d4097059a2..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/documentation.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-== ClassificationGrading.MaxGradeForScore:
-
-Used to store the highest value for the Grade.
-
-Example: 
-A 100-75,
-B 74-50,
-C 49-25,
-D 24-0
---> maxGradeForScore: A:100, B:74, C:49, D:24
-
-The maxGradeForScore of the best possible grading (In our Example A), should always be the highest possible value, 
-that's why it's set as the default value of the field.
-The maxGradeForScore should never be greater than the highest possible value, that's why this field has it's onValidationProcess.
-
-The highest possible value get's calculated by calculating the sum of all the classificationScores of the types under the group. 
-(ClassificationUtils.getMaxScore)
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js
deleted file mode 100644
index 1e60bc18fdb2d3ec65ba10aa47ce63f7e225e579..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/onValidation.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import("Classification_lib");
-import("system.result");
-import("system.translate");
-import("system.vars");
-
-var classificationTypeGroup = vars.get("$field.CLASSIFICATIONGROUP_ID");
-var maxValue = ClassificationUtils.getMaxScore(classificationTypeGroup);
-
-if (maxValue == "")
-    maxValue = 100;
-        
-if (parseFloat(vars.get("local.value")) > maxValue)
-    result.string(translate.withArguments("${HIGHER_THAN_MAX} max: %0", [maxValue]));
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js b/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js
deleted file mode 100644
index 24571535a888b634c3f4381ed280eda6321a0555..0000000000000000000000000000000000000000
--- a/entity/ClassificationGrading_entity/entityfields/maxgradeforscore/valueProcess.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import("Classification_lib");
-import("system.neon");
-import("system.vars");
-import("system.result");
-    
-if(((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && 
-    (vars.get("$this.value") == null || vars.get("$this.value") == undefined)))
-{
-    var group = vars.getString("$param.ClassificationTypeId_param");
-    result.string(ClassificationUtils.getMaxScore(group));
-}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js b/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae81080bc44d0bdcfc3acc1cc47b7aee5c469898
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/displayValueProcess.js
@@ -0,0 +1,30 @@
+import("system.neon");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+if(vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_EDIT){
+
+
+var min = vars.get("$field.MINPERCENT");
+var max;
+
+var gradingTable = newSelect("CLASSIFICATIONGRADING.MINPERCENT")
+                                .from("CLASSIFICATIONGRADING")
+                                .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", vars.get("$field.CLASSIFICATIONGROUP_ID"))
+                                .orderBy("MINPERCENT desc")
+                                .arrayColumn();
+                                
+for (let i = 0; i < gradingTable.length; i++) 
+{    
+    if(min >= gradingTable[i])
+    {
+        if(gradingTable[i-1] != undefined)
+            max = (gradingTable[i-1]);
+        else
+            max = 100;
+        break;
+    }
+}
+    result.string(min + "% - " + max + "%");
+}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc b/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..a69c2bab0e23246a08d026d3ecd96110688ed2f1
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/documentation.adoc
@@ -0,0 +1 @@
+newAndImprovedâ„¢
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js b/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..01fcc4024cec17d06442e711165ac20ec5ae7014
--- /dev/null
+++ b/entity/ClassificationGrading_entity/entityfields/minpercent/onValidation.js
@@ -0,0 +1,15 @@
+import("system.result");
+import("system.vars");
+
+var val = vars.get("$this.value");
+if(val)
+{
+    var res;
+    if(!Number.isInteger(Number(val)))
+        res = "Only Integers allowed";
+    else if(val < 0 || val > 100)
+        res = "The Value has to be in the 0-100% range";
+
+    if(res)
+        result.string(res);
+}
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa7d86fe4e885314eba29f09dc9ecd9651b1fbeb
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds, SqlBuilder.IN());
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c06240960ec310a0b8dec6386a6bf8667ce396f
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds);
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js b/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa7d86fe4e885314eba29f09dc9ecd9651b1fbeb
--- /dev/null
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,9 @@
+import("Classification_lib");
+import("Sql_lib");
+import("system.vars");
+
+var classificationGroupId = vars.get("$field.CLASSIFICATIONGROUP_ID") 
+var classificationTypeIds = ClassificationUtils.getClassificationTypesOfGroup(classificationGroupId, null, true)
+
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeIds, SqlBuilder.IN());
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js b/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
index 7d2ce489cafba9b89d7db5fedf9ef221da7f8bad..1e65fbee70b528e58de3ed3af97a38bdb65d615a 100644
--- a/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
+++ b/entity/ClassificationGrading_entity/recordcontainers/db/orderClauseProcess.js
@@ -2,5 +2,5 @@ import("system.result");
 import("system.db");
 
 result.object({
-    "CLASSIFICATIONGRADING.MAXGRADEFORSCORE": db.DESCENDING
+    "CLASSIFICATIONGRADING.MINPERCENT": db.DESCENDING
     });
\ No newline at end of file
diff --git a/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js b/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
index 1bd5882b79ef1bdc97ba4ed6d408b4401eeb35a2..faa7580ef55101e0036640e5a650898564860e81 100644
--- a/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
+++ b/entity/ClassificationGroup_entity/entityfields/title/displayValueProcess.js
@@ -1,4 +1,5 @@
+import("system.translate");
 import("system.result")
 import("system.vars")
 
-result.string(vars.get("$this.value"));
\ No newline at end of file
+result.string(translate.text(vars.get("$this.value")));
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/ClassificationScore_entity.aod b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
index b24809498150ef8eca45712cbaa279277a9607d6..1a55247ab44801df27d030e7845b5039c0620f89 100644
--- a/entity/ClassificationScore_entity/ClassificationScore_entity.aod
+++ b/entity/ClassificationScore_entity/ClassificationScore_entity.aod
@@ -31,14 +31,6 @@
       <title>Sorting</title>
       <mandatory v="true" />
     </entityField>
-    <entityField>
-      <name>SCORE</name>
-      <title>Points</title>
-      <contentType>NUMBER</contentType>
-      <outputFormat>#,##0.00</outputFormat>
-      <inputFormat>#,##0.00</inputFormat>
-      <mandatory v="true" />
-    </entityField>
     <entityProvider>
       <name>ClassificationScores</name>
       <sortingField>SORT</sortingField>
@@ -90,6 +82,17 @@
       <name>translatedTitle</name>
       <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/translatedtitle/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>SCOREPERCENT</name>
+      <title>Percent</title>
+      <contentType>NUMBER</contentType>
+    </entityField>
+    <entityField>
+      <name>scoreInPoints</name>
+      <title>Points</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -98,7 +101,6 @@
       <isPageable v="false" />
       <conditionProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
-      <onDBInsert>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
       <onDBUpdate>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <onDBDelete>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <cacheType>GLOBAL</cacheType>
@@ -117,10 +119,6 @@
           <name>CLASSIFICATIONSCOREID.value</name>
           <recordfield>CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>SCORE.value</name>
-          <recordfield>CLASSIFICATIONSCORE.SCORE</recordfield>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>SORT.value</name>
           <recordfield>CLASSIFICATIONSCORE.SORT</recordfield>
@@ -137,6 +135,10 @@
           <name>CLASSIFICATIONTYPE_ID.displayValue</name>
           <expression>%aditoprj%/entity/ClassificationScore_entity/recordcontainers/db/recordfieldmappings/classificationtype_id.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SCOREPERCENT.value</name>
+          <recordfield>CLASSIFICATIONSCORE.SCOREPERCENT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/ClassificationScore_entity/documentation.adoc b/entity/ClassificationScore_entity/documentation.adoc
index b726994060331781c42824c0019eb30c1f2df4b6..8d280e34f85ddcafd52b0ea546f64389b0ea40ee 100644
--- a/entity/ClassificationScore_entity/documentation.adoc
+++ b/entity/ClassificationScore_entity/documentation.adoc
@@ -2,14 +2,14 @@
 
 Definition:
 
-    Stores the possible Values of Classification score types and their score and the sorting value.
+    Stores the possible Values of Classification score types their scorePercent and the sorting value.
     (For more information about the classification see also Classification_entity)
 
 Purpose:
 
-    This Entity gives the administrators an easy way to edit the possible values, their scoring and sorting in the preview of classificationAdmin 
+    This Entity gives the administrators an easy way to edit the possible values, their scorePercent and sorting in the preview of classificationAdmin 
     when selecting a indicator (classificationType).
-    The values gets stored in the table classificationscore with their own classificationScoreId, the classificationType_Id, title, score und sort.
+    The values gets stored in the table classificationscore with their own classificationScoreId, the classificationType_Id, title, scorePercent and sort.
 
     This entity only has one view: the ClassificationScoreMultipleEdit_view which has title as the title field and score and sort as columns
     making it possible for the admin to configure something like this:
@@ -19,15 +19,22 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         INDICATOR:      Headquarters
-         Germany         35,00, 10
-         Austria         35,00 20
-         Switzerland     25,00, 30
-         Other            0,00, 40
+        SCOREPOINTS:    35
+         Germany         100%, 35,00
+         Austria         100%, 35,00
+         Switzerland      70%, 25,00
+         Other             0%, 0,00
 
 Particularities:
 
-    The biggest possible score is being used by classificationGrading to calculate the value for the best possible grade, 
-    if this value is changed the grading get's updated using the rule of three (see onInsert-, onUpdate- and onDelete- processes).
+    The reason why we use percent is because the classificationTypes of the group can have different filterconditions, which excludes them for some datasets
+    -> we had to settle for percent
+    The score itself get's calculated by the adding all the archeived scores of the relevant classificationType datasets of the object 
+    (scorePercent of the classificationScore dataset * the scorePoints of the classificationType dataset)
+    and matching it against the the sum of the best possible scores of each relevant classificationType of that group and calculating it via the classificationGrading minPercents
+    If none of the classificationTypes of a group is relevant we ignore that group.
+
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update/delete
     
     The Classification consists of the following entities:
     Classification_entity,
diff --git a/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js b/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab39285c8e6ce942461544c56aea0796a9a7058d
--- /dev/null
+++ b/entity/ClassificationScore_entity/entityfields/scoreinpoints/valueProcess.js
@@ -0,0 +1,16 @@
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+
+var percent = vars.get("$field.SCOREPERCENT");
+var classificationTypeId = vars.get("$param.ClassificationTypeId_param");
+
+var maxPoints = newSelect("CLASSIFICATIONTYPE.SCOREPOINTS")
+                        .from("CLASSIFICATIONTYPE")
+                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId)
+                        .cell();
+
+var points = percent/100*maxPoints;
+if(!points)
+    points = 0;
+result.string(points.toFixed(2));
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
index f45ecc8306bdd9f82d4249c83fa66b0f8543ac71..c9d29f0a6ed67c07d8974c97aa4318ff6f50cb8a 100644
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/ClassificationScore_entity/recordcontainers/db/onDBDelete.js
@@ -1,39 +1,8 @@
 import("Sql_lib");
-import("system.db");
 import("system.vars");
-import("Classification_lib");
-import("system.eMath");
-import("system.entities");
 
-try
-{
-    newWhere("CLASSIFICATION.CLASSIFICATIONSCORE_ID", "$field.CLASSIFICATIONSCOREID").deleteData();
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
+var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPE_ID");
 
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
 
-    if(gradingTable[0][1] != maxScore) //the gradingTable is already sorted, so gradingTable[0][1] is the maxGradeForScore of the best possible Grade
-    {
-        var column = ["MAXGRADEFORSCORE"];
-        var table = ["CLASSIFICATIONGRADING"];
-        var multiplicand = maxScore/gradingTable[0][1];
-        var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                .updateData(true, table, column, null, column, db.getCurrentAlias(), [maxScore]);
-
-        for (let i = 1; i < gradingTable.length; i++) 
-        {
-            update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                            .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js
deleted file mode 100644
index 0dfe964c1e25974c57ac6b79e9f09adf783cdc26..0000000000000000000000000000000000000000
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBInsert.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import("system.entities");
-import("system.db");
-import("Sql_lib");
-import("system.vars");
-import("Classification_lib");
-import("system.eMath")
-
-try
-{
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
-
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
-
-    if(gradingTable.length > 0 && gradingTable != undefined && gradingTable != null)
-    {
-        if(gradingTable[0][1] != maxScore)
-        {
-            var column = ["MAXGRADEFORSCORE"];
-            var table = ["CLASSIFICATIONGRADING"];
-            var multiplicand = maxScore/gradingTable[0][1];
-            var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                    .updateData(true, table, column,  null, [maxScore]);
-
-            for (let i = 1; i < gradingTable.length; i++) 
-            {
-                update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                                .updateData(true, table, column,  null, [parseInt(gradingTable[i][1] * multiplicand)]);
-            }
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
\ No newline at end of file
diff --git a/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js b/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
index dc07afd47acdfced255c79862004b15ea01f911a..c9d29f0a6ed67c07d8974c97aa4318ff6f50cb8a 100644
--- a/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/ClassificationScore_entity/recordcontainers/db/onDBUpdate.js
@@ -1,38 +1,8 @@
-import("system.entities");
-import("system.db");
 import("Sql_lib");
 import("system.vars");
-import("Classification_lib");
-import("system.eMath")
 
-try
-{
-    var classificationScoreId = vars.get("$field.CLASSIFICATIONSCOREID")
+var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPE_ID");
 
-    var classificationType = ClassificationUtils.getClassificationType(classificationScoreId);
-    var classificationGroup = ClassificationUtils.getClassificationGroup(classificationType);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    var maxScore = ClassificationUtils.getMaxScore(classificationGroup)
+var cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationTypeId);
 
-    if(gradingTable[0][1] != maxScore)
-    {
-        var column = ["MAXGRADEFORSCORE"];
-        var table = ["CLASSIFICATIONGRADING"];
-        var multiplicand = maxScore/gradingTable[0][1];
-        var update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[0][0])
-                                .updateData(true, table, column, null, [maxScore]);
-
-        for (let i = 1; i < gradingTable.length; i++) 
-        {
-            update = newWhere("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID", gradingTable[i][0])
-                            .updateData(true, table, column, null, [parseInt(gradingTable[i][1] * multiplicand)]);
-        }
-    }
-}
-finally //always make sure that the cache is as valid as possible
-{
-    //ClassificationType_entity accesses the CLASSIFICATIONSCORE (max value of scores) so we need to update the cache to prevent inconsesty
-    entities.invalidateCache("ClassificationType_entity", "db");
-    //Grading-values are dependent since they are modified within this process (maxgrade)
-    entities.invalidateCache("ClassificationGrading_entity", "db");
-}
\ No newline at end of file
+cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [1]);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/ClassificationType_entity.aod b/entity/ClassificationType_entity/ClassificationType_entity.aod
index 2434fa0a53dd70bbd17eb270b3ce3fa7bc92f247..97ee107365e3364867e1ba09d2fc665b754fe96a 100644
--- a/entity/ClassificationType_entity/ClassificationType_entity.aod
+++ b/entity/ClassificationType_entity/ClassificationType_entity.aod
@@ -56,19 +56,10 @@
         <fieldName>ClassificationScores</fieldName>
       </dependency>
     </entityConsumer>
-    <entityField>
-      <name>infoField</name>
-      <title>Hint</title>
-      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js</valueProcess>
-    </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
-    <entityField>
-      <name>maxScore</name>
-      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js</valueProcess>
-    </entityField>
     <entityParameter>
       <name>ClassificationGroupId_param</name>
       <expose v="true" />
@@ -83,6 +74,20 @@
         </entityParameter>
       </children>
     </entityProvider>
+    <entityField>
+      <name>FILTER</name>
+      <title>Usage</title>
+      <contentType>FILTER_TREE</contentType>
+      <stateProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/filter/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ClassificationType_entity/entityfields/filter/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>SCOREPOINTS</name>
+      <title>Max Points</title>
+    </entityField>
+    <entityField>
+      <name>OUTDATED</name>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -119,8 +124,12 @@
           <recordfield>CLASSIFICATIONTYPE.SCORETYPE</recordfield>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
-          <name>maxScore.value</name>
-          <expression>%aditoprj%/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js</expression>
+          <name>FILTER.value</name>
+          <recordfield>CLASSIFICATIONTYPE.FILTER</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SCOREPOINTS.value</name>
+          <recordfield>CLASSIFICATIONTYPE.SCOREPOINTS</recordfield>
         </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
diff --git a/entity/ClassificationType_entity/documentation.adoc b/entity/ClassificationType_entity/documentation.adoc
index a09562ce3a4c852c52ff3a616d3838531b041890..ec1b4d8a15791b2e5f541eb575bde404113fbc1b 100644
--- a/entity/ClassificationType_entity/documentation.adoc
+++ b/entity/ClassificationType_entity/documentation.adoc
@@ -10,9 +10,10 @@ Purpose:
     This entity is used for storing the indicators and making it possible for the admin to change 
     the details of the indicator (classificationType) like the name, it's usage or it's classification (classificationGroup)
 
-    This entity only has one view: the ClassificationTypePreview which has the usage (object_type), 
-    classification (classificationgroup_Id), and title (scoretype)
-    and the ClassificationScoreMultipleEdit_view.
+    This entity only has one view: the ClassificationTypePreview which has the usagePlace (object_type), 
+    classification (classificationgroup_Id), title (scoretype), and the usagefilter to make it possible to have classificationTypes 
+    that are only relevant for certain objects, scorepoints
+    + the ClassificationScoreMultipleEdit_view.
     making it possible for the admin to configure something like this:
 
     ClassificationAdminPreviewOfIndicator Example: 
@@ -20,16 +21,19 @@ Purpose:
         USAGE:          Organisation
         CLASSIFICATION: 1. Target Group
         INDICATOR:      Headquarters
-         Germany         35,00, 10
-         Austria         35,00 20
-         Switzerland     25,00, 30
-         Other            0,00, 40
+        SCOREPOINTS:    35
+         Germany         100%, 35,00
+         Austria         100%, 35,00
+         Switzerland      70%, 25,00
+         Other             0%, 0,00
 
 Particularities:
 
-    The biggest possible score of the subordinated classificationScores is being used by classificationGrading to calculate the value for the best possible grade, 
-    if this value is changed the grading get's updated using the rule of three (see onInsert-, onUpdate- and onDelete- processes of classificationScore_entity).
+    The admin is maintaining the scorepoints per classificationType and percentages for the classificationscores
     
+    We also have to set the outdated flag of the classificationtype dataset everytime we insert/update it and set the flag 
+    for all the other classificationtypes of the group if we delete the current classificationType
+
     The Classification consists of the following entities:
     Classification_entity,
     ClassificationAdmin_entity,
diff --git a/entity/ClassificationType_entity/entityfields/filter/stateProcess.js b/entity/ClassificationType_entity/entityfields/filter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c40c68f93058b33af2e171d58ac34b1d62d436a
--- /dev/null
+++ b/entity/ClassificationType_entity/entityfields/filter/stateProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+
+if(vars.get("$field.FILTER") == null || vars.get("$field.FILTER") == undefined || vars.get("$field.FILTER") == "")
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else
+    result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/entityfields/filter/valueProcess.js b/entity/ClassificationType_entity/entityfields/filter/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdbc23fc58624088fb9d0f9a462b75f3da562ce2
--- /dev/null
+++ b/entity/ClassificationType_entity/entityfields/filter/valueProcess.js
@@ -0,0 +1,26 @@
+import("Context_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+import("Attribute_lib");
+
+var entity = ContextUtils.getEntity(vars.getString("$field.OBJECT_TYPE"));
+var emptyFilter = {
+    entity: entity, 
+    filter: {
+        type: "group", 
+        operator: "AND", 
+        childs: []
+    }
+};
+
+var currentFilter = vars.get("$this.value");
+if (currentFilter)
+    currentFilter = JSON.parse(currentFilter);
+
+//if the filter field is empty or if the entity was changed, reset the filter
+if (!currentFilter || currentFilter.entity != emptyFilter.entity)
+{
+    var condJson = JSON.stringify(emptyFilter);
+    result.string(condJson);
+}
diff --git a/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js b/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js
deleted file mode 100644
index 1aec260db1641b4b7b282eacb60d756408b1f086..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/entityfields/infofield/valueProcess.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import("system.neon");
-import("system.translate");
-import("Entity_lib");
-import("system.result");
-import("Sql_lib");
-import("system.vars");
-import("Classification_lib");
-import("system.eMath");
-
-//references needed for auto refresh:
-"$field.ClassificationScores.insertedRows";
-"$field.ClassificationScores.changedRows";
-"$field.ClassificationScores.deletedRows";
-
-var rows = EntityConsumerRowsHelper.getCurrentConsumerRows("ClassificationScores", ["SCORE"]);
-var maxScore = 0;
-var i;
-var randomScoreId;
-
-var res = ClassificationUtils.getTranslatedInfo();
-if(rows.length > 0)
-{
-    for (i = 0; i < rows.length; i++) 
-    {
-        randomScoreId = rows[i]["#UID"];
-        break;
-    }
-    var classificationGroup = vars.get("$field.CLASSIFICATIONGROUP_ID");
-    var classificationType = ClassificationUtils.getClassificationType(randomScoreId);
-    var gradingTable = ClassificationUtils.getGradingTableByGroupId(classificationGroup);
-    for (i = 0; i < rows.length; i++) 
-        {
-            if(parseFloat(rows[i]["SCORE"]) > maxScore)
-                maxScore = parseFloat(rows[i]["SCORE"]);
-        }
-    if(classificationType.length > 0)
-    {
-        maxScore = eMath.addDec(parseFloat(maxScore), parseFloat(ClassificationUtils.getMaxScoreExcludeType(classificationGroup, classificationType)));
-    }
-    else
-    {
-        maxScore = eMath.addDec(parseFloat(maxScore), parseFloat(ClassificationUtils.getMaxScore(classificationGroup)));
-    }
-    
-    if(gradingTable.length > 0 && gradingTable != undefined && gradingTable != null)
-    {
-        var greatestGrading = gradingTable[0][1];
-        if(gradingTable[0][1] != maxScore)
-        {
-            var multiplicand;
-            var oldToNewValueString = "";
-            if(greatestGrading != 0)
-            {
-                multiplicand = maxScore/greatestGrading;
-                for (i = 0; i < gradingTable.length; i++) 
-                {
-                    oldToNewValueString += gradingTable[i][2] + ": " + gradingTable[i][1] + "->" + parseInt(gradingTable[i][1] * multiplicand) + "\n\
-    ";
-                }
-            }
-            else 
-            {
-                greatestGrading = maxScore;
-                multiplicand = 1;
-                for (i = 0; i < gradingTable.length; i++) 
-                {
-                    oldToNewValueString += gradingTable[i][2] + ": " + gradingTable[i][1] + "->" + greatestGrading * multiplicand + "\n\
-            ";
-                }
-            }
-            res = translate.text("This is how the Classification Gradings of the Classification will get affected by these changes:") + "\n\
-    "+ oldToNewValueString;
-        }
-    }
-}
-result.string(res);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js b/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js
deleted file mode 100644
index 49d9c5de791ae6d83bb8a6f61da2927d509ebddd..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/entityfields/maxscore/valueProcess.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import("system.result");
-import("Sql_lib");
-import("system.vars");
-
-var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
-
-var score = null;
-if (classificationTypeId)
-{
-    score = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-        .from("CLASSIFICATIONSCORE")
-        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
-        .cell();
-}
-
-result.string(score);
\ No newline at end of file
diff --git a/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js b/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js
deleted file mode 100644
index d8c6a26ee9e7e6851db78a9c24172140d0d2aa8d..0000000000000000000000000000000000000000
--- a/entity/ClassificationType_entity/recordcontainers/db/recordfieldmappings/maxscore.value/expression.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import("system.result");
-import("system.result");
-import("Sql_lib");
-
-var statement = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-        .from("CLASSIFICATIONSCORE")
-        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID");
-
-result.string(statement.toString());
\ No newline at end of file
diff --git a/entity/Classification_entity/Classification_entity.aod b/entity/Classification_entity/Classification_entity.aod
index 61c825296a1680b522cae9a883f7a6a38c5fb226..ea396e3a3d6e0e0448b2ec3c5b9975bab0b9dd7e 100644
--- a/entity/Classification_entity/Classification_entity.aod
+++ b/entity/Classification_entity/Classification_entity.aod
@@ -16,11 +16,10 @@
       <name>CLASSIFICATIONID</name>
     </entityField>
     <entityField>
-      <name>CLASSIFICATIONSCORE_ID</name>
+      <name>VALUE</name>
       <title>Selection</title>
       <consumer>ClassificationScores</consumer>
-      <titleProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js</titleProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js</displayValueProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/value/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityParameter>
       <name>ClassificationType_param</name>
@@ -59,6 +58,9 @@
     </entityProvider>
     <entityField>
       <name>CLASSIFICATIONTYPEID</name>
+      <title>Indicator</title>
+      <consumer>KeywordClassificationTypes</consumer>
+      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -69,11 +71,6 @@
       <groupable v="true" />
       <mandatoryProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/mandatoryProcess.js</mandatoryProcess>
       <textInputAllowed v="true" />
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js</displayValueProcess>
-    </entityField>
-    <entityField>
-      <name>CLASSIFICATIONTYPE_ID</name>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>OBJECT_ROWID</name>
@@ -108,22 +105,13 @@
         <fieldName>ClassificationScores</fieldName>
       </dependency>
     </entityConsumer>
-    <entityField>
-      <name>CLASSIFICATIONTYPE</name>
-      <title>Usage</title>
-      <consumer>KeywordClassificationTypes</consumer>
-      <groupable v="true" />
-      <mandatory v="true" />
-      <stateProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/stateProcess.js</stateProcess>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js</displayValueProcess>
-    </entityField>
     <entityField>
       <name>Info</name>
       <title>Rating</title>
       <contentType>HTML</contentType>
+      <groupable v="true" />
       <state>READONLY</state>
-      <valueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/info/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>SCORE_RESULTS</name>
@@ -145,7 +133,7 @@
     <entityField>
       <name>SCORETYPE</name>
       <title>Indicator</title>
-      <mandatory v="true" />
+      <mandatory v="false" />
       <displayValueProcess>%aditoprj%/entity/Classification_entity/entityfields/scoretype/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -160,7 +148,11 @@
       <useAggregates v="true" />
     </entityProvider>
     <entityField>
-      <name>CLASSIFICATIONGROUP_ID</name>
+      <name>SCOREPOINTS</name>
+      <title>Points</title>
+    </entityField>
+    <entityField>
+      <name>DISPLAYVALUE</name>
     </entityField>
   </entityFields>
   <recordContainers>
@@ -170,11 +162,15 @@
       <isFilterable v="true" />
       <isRequireContainerFiltering v="true" />
       <contentProcess>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
+      <hasDependentRecords v="true" />
       <onUpdate>%aditoprj%/entity/Classification_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
       <recordFieldMappings>
         <jDitoRecordFieldMapping>
           <name>UID.value</name>
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CLASSIFICATIONTYPEID.value</name>
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>CLASSIFICATIONID.value</name>
         </jDitoRecordFieldMapping>
@@ -185,37 +181,22 @@
           <name>CLASSIFICATIONGROUP.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONGROUP_ID.displayValue</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONSCORE_ID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONSCORE_ID.displayValue</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPEID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE_ID.value</name>
-        </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>OBJECT_TYPE.value</name>
+          <name>CLASSIFICATIONTYPEID.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>OBJECT_ROWID.value</name>
+          <name>SCOREPOINTS.value</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>SCORETYPE.value</name>
+          <name>VALUE.value</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>CLASSIFICATIONTYPE.value</name>
+          <name>VALUE.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>SCORE_RESULTS.value</name>
+          <name>Info.displayValue</name>
         </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
-          <name>GroupScore.value</name>
+          <name>Info.value</name>
         </jDitoRecordFieldMapping>
       </recordFieldMappings>
     </jDitoRecordContainer>
diff --git a/entity/Classification_entity/documentation.adoc b/entity/Classification_entity/documentation.adoc
index 6fb30333ca4369806f0dd63d76773d4e580df977..1b1f222e40d994f35f7f49536ffd465bb1853136 100644
--- a/entity/Classification_entity/documentation.adoc
+++ b/entity/Classification_entity/documentation.adoc
@@ -2,7 +2,7 @@
 
 Definition:
 
-    Offers the possibility to flexibly classify sales projects, organisations, or any other data. 
+    Offers the possibility to flexibly classify sales projects, organiations, or any other data. 
     The classification can be dynamically configured at runtime.
 
 Purpose:
@@ -10,7 +10,7 @@ Purpose:
     Classifications get stored in the Classification table with their own uid, the ids of the classification type, classification score, object_rowId and object_type.
 
     This entity displays the classification of an dataset in an treetable,
-    with the classification (classificationgroup), including the archieved and possible points and the resulting grading, as the groupfield.
+    with the classification (classificationgroup), including the achieved and possible points and the resulting grading, as the groupfield.
     And Columns for the indicators (classificationtype) and the selected values (selection).
 
     Example: 
@@ -27,6 +27,26 @@ Purpose:
 
 Particularities:
 
+    The classification datasets get persisted for performance reasons and can be flagged as outdated so they can be updated by the 
+    updateClassifications_serverProcess.
+    For further information how this works see also the documentation property of updateClassifications_serverProcess.
+    
+    The calculated ClassificationStrings (e.g. "ACD") get stored in "CLASSIFICATIONSTORAGE" with their own id, the object_type, object_rowId, 
+    and the 'outdated' flag (datatype Boolean, might be changed to a timestamp in the future).
+    This dataset get's inserted when opening the Classification context of the object for the first time. (otherwise we would have a lot of 
+    useless datasets for object's that are not getting classified in any way, which is also the reason why we are deleting them via the process 
+    if they only consist of '-', since there is no reason for storing those)
+    The 'outdated' flag get's set when editing the current object or a linked object of a dependency of the current object_type 
+    (dependencies have to be configured in the Dependency_lib)
+    
+    We also persist the classificationValues themselves (e.g. Industy - Service) with with their own id, the object_type, object_rowId, 
+    classificationtypeId, value(classificationScoreId) and the scorepoints.
+    Reason for that are the filters the admin can set for the classificationtypes which can make some classificationtypes irrelevant for certain objects.
+    If we had to always check those every time we would load the Classification conetext for example, the performance would suffer tremendously.
+    The solution to that Problem is persisting those the same way as the string (they get persisted the first time you open the context, 
+    which only results in poor performance only once)
+    This also means that we have to insert/delete those persisted once in the serverProcess when filters change.
+
     The Classification consists of the following entities:
     Classification_entity,
     ClassificationAdmin_entity,
diff --git a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js b/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
deleted file mode 100644
index d0b202c003896906849e53907d10e67333faf168..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationgroup/displayValueProcess.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import("Sql_lib");
-import("Classification_lib");
-import("system.translate");
-import("system.result");
-import("system.vars");
-
-if (vars.getString("$field.CLASSIFICATIONGROUP"))
-{
-    var score = vars.getString("$field.GroupScore");
-    var group = vars.getString("$field.CLASSIFICATIONGROUP");
-    var groupName = vars.getString("$field.CLASSIFICATIONGROUP_ID.displayValue");
-    var res = ClassificationUtils.formatDisplaySummaryForGroup(score, group, groupName);
-    result.string(res);
-}
diff --git a/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js b/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js
deleted file mode 100644
index 5f69ddae0ef78a61fc8be88201023c420f4dfb09..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationscore_id/titleProcess.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import("system.neon");
-import("system.result");
-import("system.vars");
-import("system.translate");
-
-if (vars.get("$sys.recordstate") && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW)
-{
-    result.string(translate.text(vars.get("$field.SCORETYPE")));
-}
diff --git a/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js b/entity/Classification_entity/entityfields/classificationtype/displayValueProcess.js
deleted file mode 100644
index 55fc33359a0fc8b9496e9dc12f56e15eb3a7b4ce..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationtype/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.classificationType(), vars.get("$field.OBJECT_TYPE")));
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype/valueProcess.js b/entity/Classification_entity/entityfields/classificationtype/valueProcess.js
deleted file mode 100644
index 2bccd5eb7fbb2311971da0e6ae2ed3b56ed21268..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationtype/valueProcess.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    result.string(vars.get("$param.ClassificationType_param"));
-}
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js b/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js
deleted file mode 100644
index e294cffd162af0b88230b7052c38c407862add9e..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/classificationtype_id/valueProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import("system.result");
-import("system.neon");
-import("system.vars");
-
-if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) 
-        && vars.get("$this.value") == null)
-    result.string(vars.get("$field.CLASSIFICATIONTYPEID"));
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtype/stateProcess.js b/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
similarity index 99%
rename from entity/Classification_entity/entityfields/classificationtype/stateProcess.js
rename to entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
index 2a616f4edfa3c6e68a81c8d99b17d08c353ceb69..d2c0dd18db355cc71410e59b8fae386dc591254e 100644
--- a/entity/Classification_entity/entityfields/classificationtype/stateProcess.js
+++ b/entity/Classification_entity/entityfields/classificationtypeid/stateProcess.js
@@ -4,6 +4,5 @@ import("system.vars");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
     result.string(neon.COMPONENTSTATE_EDITABLE);
-
 else
     result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js b/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
index 16c47d8b58490ac63829673a531ffce4e6896745..2bccd5eb7fbb2311971da0e6ae2ed3b56ed21268 100644
--- a/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
+++ b/entity/Classification_entity/entityfields/classificationtypeid/valueProcess.js
@@ -1,10 +1,8 @@
-import("system.util");
 import("system.result");
 import("system.neon");
 import("system.vars");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
-    var newId = util.getNewUUID();
-    result.string(newId);
+    result.string(vars.get("$param.ClassificationType_param"));
 }
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/info/displayValueProcess.js b/entity/Classification_entity/entityfields/info/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8cc250e8c5e8bb966333b5dd0843cebbe01e2991
--- /dev/null
+++ b/entity/Classification_entity/entityfields/info/displayValueProcess.js
@@ -0,0 +1,26 @@
+import("system.translate");
+import("system.neon");
+import("system.result");
+import("system.vars");
+import("Sql_lib");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
+{
+    var classificationTypeId = vars.get("$field.CLASSIFICATIONTYPEID");
+    var value = vars.get("$field.VALUE");
+    if(classificationTypeId)
+    {
+        var select = newSelect(["CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS", 
+                                            newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)/100*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                        .from("CLASSIFICATIONSCORE")
+                                                        .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                        .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
+                                                        .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                        .from("CLASSIFICATIONSCORE")
+                                        .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", value)
+                                        .arrayRow();
+
+        result.string(Math.round(select[0] * 100) / 100 +"/"+Math.round(select[1] * 100) / 100 + " " +translate.text("Points"));
+    }
+}
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/info/valueProcess.js b/entity/Classification_entity/entityfields/info/valueProcess.js
deleted file mode 100644
index 7030b6384f6e2a7e9dae80a5b931081a2583b7fd..0000000000000000000000000000000000000000
--- a/entity/Classification_entity/entityfields/info/valueProcess.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import("system.vars");
-import("system.db");
-import("system.translate");
-import("system.result");
-import("system.text");
-import("Sql_lib");
-
-var data = newSelect("TITLE, SCORE")   
-                .from("CLASSIFICATIONSCORE")
-                .orderBy("SORT")
-                .whereIfSet("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", "$field.CLASSIFICATIONTYPEID")
-                .table(true);
-
-var resultText = "";
-
-data.forEach(function(pScore)
-{
-    resultText += translate.text(pScore[0]) + " = " + text.formatDouble(pScore[1], "#,##0.00", true) + "<br>"
-});
-
-result.string(resultText);
\ No newline at end of file
diff --git a/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js b/entity/Classification_entity/entityfields/value/displayValueProcess.js
similarity index 81%
rename from entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js
rename to entity/Classification_entity/entityfields/value/displayValueProcess.js
index 0b086fdea352f7d072715c805172bf2e4f680d0c..142bdf632c32fc623494dd125caca5f75abc104e 100644
--- a/entity/Classification_entity/entityfields/classificationscore_id/displayValueProcess.js
+++ b/entity/Classification_entity/entityfields/value/displayValueProcess.js
@@ -5,12 +5,12 @@ import("system.db");
 import("system.result");
 
 // no need to load, if no classificationscore exists
-if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+if (vars.get("$field.VALUE"))
 {
     // TODO: loadEntity / #Title
     result.string(translate.text(newSelect("TITLE")
                                     .from("CLASSIFICATIONSCORE")
-                                    .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", "$field.CLASSIFICATIONSCORE_ID")
+                                    .where("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID", "$field.VALUE")
                                     .cell()));
 } 
 else
diff --git a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
index 9af7e2ab58bfb43d0f1fcbfa4c0b35f42ad13c23..f9ef4620aaacf66e7fadb9917ba6bb6a017692ca 100644
--- a/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Classification_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,8 @@
+import("Context_lib");
+import("Util_lib");
+import("system.eMath");
+import("system.entities");
+import("Organisation_lib");
 import("system.text");
 import("Classification_lib");
 import("Contact_lib");
@@ -32,141 +37,527 @@ _UidEncoder.decode = function (pEncodedUid)
 
 var objectRowIdParam = vars.get("$param.ObjectRowid_param");
 var objectTypeParam = vars.get("$param.ObjectType_param");
-var scoresPerGroup = ClassificationUtils.getScoreAsObject(objectTypeParam, objectRowIdParam);
 
-var masking = new SqlMaskingUtils();
+var classificationTypeGroupDisplayCache = {};
+var gradingObject = {};
+var bestPossibleValuesObj = {};
+var achievedGroupScoresObj = {};
+var achievedGroupGradingsObj = {};
+var translatedClassificationTypesObj = {};
+var gradingTables = {};
+var maxScoresObj = {};
+
+var resultSet = [];
+var select;
+
+var classificationGroups = [];
 
-//store the content of $local.idValues depending on the provided type in the idvalues
-var filterClassificationIds = [];
-var filterClassificationTypeIds = [];
-// if the id starts with "C," it is a classificationId. If it starts with "T,", it is a classificationtypeId
 if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
 {
-    vars.get("$local.idvalues").forEach(function (pIdValue) {
-        var decodedId = _UidEncoder.decode(pIdValue);
-        filterClassificationTypeIds.push(decodedId.classifactionTypeId);
-    });
+    var decodedId = _UidEncoder.decode(vars.get("$local.idvalues"));
 }
 
-//this is the main select for the data
-var select = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID \n\
-                    ,CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATION.CLASSIFICATIONSCORE_ID, CLASSIFICATION.OBJECT_ROWID \n\
-                    ,CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.SCORETYPE \n\
-                    ,CLASSIFICATIONSCORE.TITLE\n\
-                    ,CLASSIFICATIONGROUP.TITLE ")
-                .from("CLASSIFICATION")
-                .rightJoin("CLASSIFICATIONTYPE", newWhere()
-                    .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                    .andIfSet("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
-                    .andIfSet("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam))
-                .join("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
-                .whereIfSet("CLASSIFICATIONTYPE.OBJECT_TYPE", "$param.ClassificationType_param")
-                .andIfSet(
-                        newWhereIfSet("CLASSIFICATION.CLASSIFICATIONID", filterClassificationIds, SqlBuilder.IN())
-                             .orIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", filterClassificationTypeIds, SqlBuilder.IN())
-                    )
-                .orderBy("CLASSIFICATIONGROUP.SORTING");
-
-
-if (filterClassificationIds.length == 0 && filterClassificationTypeIds.length == 0)//no idvalues for filtering
+if(decodedId)//data selected -> only one select has to be done with the classificationtype (which we get from the uuid) in the condition
 {
-    select.and(newWhereIfSet("CLASSIFICATION.OBJECT_TYPE", "$param.ObjectType_param")
-                    .or("CLASSIFICATION.OBJECT_TYPE is null"))
-            .and(newWhereIfSet("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
-                    .or("CLASSIFICATION.OBJECT_ROWID is null"));
-}
+    select = newSelect(["CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, \n\
+                            CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE, CLASSIFICATIONSCORE.TITLE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", 
+                                    newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                .from("CLASSIFICATIONSCORE")
+                                                .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                                .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                .from("CLASSIFICATIONSCORE")
+                                .join("CLASSIFICATION", "CLASSIFICATION.VALUE = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
+                                .leftJoin("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                .and("CLASSIFICATION.OBJECT_TYPE", decodedId["objectType"])
+                                .and("CLASSIFICATION.OBJECT_ROWID", decodedId["objectRowId"])
+                                .arrayRow();
+                                
+    if(select.length == 0)//different select needed if no classifications have been stored for the current object_rowId (otherwise problem with the from clause)
+    {
+        select = newSelect(["CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, \n\
+                            CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE"
+                            , SqlBuilder.caseWhen(newWhere("CLASSIFICATION.VALUE", ""))
+                                                            .thenString("")
+                                                            .elseValue("CLASSIFICATIONSCORE.TITLE")
+                                                            .toString()
+                            , "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID", 
+                                    newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                .from("CLASSIFICATIONSCORE")
+                                                .join("CLASSIFICATIONTYPE on CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                                .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                                .groupBy("CLASSIFICATIONTYPE.SCOREPOINTS").cell()])
+                                .from("CLASSIFICATION")
+                                .leftJoin("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID", decodedId["classifactionTypeId"])
+                                .and("CLASSIFICATION.OBJECT_TYPE", decodedId["objectType"])
+                                .and("CLASSIFICATION.OBJECT_ROWID", decodedId["objectRowId"])
+                                .arrayRow();
+    }
+                                
+                                
+    var groupId = select[6];        
+    _buildMaxScore(); //builds maxScoresObj
+    maxTypeScoreObj = {};
+    achievedScoresObj = {};
+    var maxPointsArray = newSelect("CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATIONTYPE.SCOREPOINTS")
+                                    .from("CLASSIFICATION")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                    .where("CLASSIFICATION.CLASSIFICATIONTYPE_ID",
+                                        newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupId), SqlBuilder.IN())
+                                    .and("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                                    .table();
+    var maxScoreGroup = 0;
+    var achievedScoreGroup = 0;
+    for (let i = 0; i < maxPointsArray.length; i++) 
+    {
+        [achievedScore, classificationTypeId, maxScore] = maxPointsArray[i];
 
-_addLocalFilter();
-_updateScore();
 
-/* After loading the data from the database the data some preparation for the record container is done like translating display values into the 
- * correct locale or calculating some values
- */
-var classificationTypeGroupDisplayCache = {};
-var resultSet = [];
-//declaration needs to be separated because if declaration is done in the deconstructioning the IDE (designer) autocomplete does not work anymore
-var uid, classificationId, classificationScoreId, classificationObjectRowId, classificationTypeGroupId, classificationTypeId
-    , classificationTypeObjectType, classificationTypeScoreType, classificationScoreTitle, classificationGroupTitle;
-select.table().forEach(function (pRow){
-    //deconstructioning for easy access when the selected data changes
-    [uid, classificationId, classificationScoreId, classificationObjectRowId, classificationTypeGroupId, classificationTypeId
-    , classificationTypeObjectType, classificationTypeScoreType, classificationScoreTitle, classificationGroupTitle] = pRow;
+        maxScoreGroup = eMath.addDec(maxScoreGroup, (maxScoresObj[classificationTypeId]*maxScore));
+
+        achievedScoreGroup = eMath.addDec(achievedScore, achievedScoreGroup);
+    }
     
-    uid = _UidEncoder.encode(uid, objectRowIdParam, objectTypeParam);
-    if (classificationScoreTitle)
-        classificationScoreTitle = translate.text(classificationScoreTitle);
-    if (classificationGroupTitle)
-        classificationGroupTitle = translate.text(classificationGroupTitle);
+        gradingTables = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                                    .from("CLASSIFICATIONGRADING")
+                                    .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", groupId)
+                                    .orderBy("CLASSIFICATIONGRADING.MINPERCENT asc")
+                                    .table();
+                                    
+    for (let i = 0; i < gradingTables.length; i++) 
+    {
+        [groupId, minPercent, grading] = gradingTables[i];
 
-    var currentGroupScore = scoresPerGroup[classificationTypeGroupId] || 0;
+        if(gradingObject[groupId] == undefined)
+            gradingObject[groupId] = [];
 
-    //display value is the same for every groupId, so let's cache it that we do not need to load it in every row  => better performance
-    if (classificationTypeGroupDisplayCache[classificationTypeGroupId] == undefined)
+        gradingObject[groupId].push([minPercent, grading]);
+    }
+    
+    displayString = ClassificationUtils.formatDisplaySummaryForGroup(achievedScoreGroup, maxScoreGroup, groupId, translate.text(select[1]),
+                                                ClassificationUtils.getGradingFromObject(gradingObject, groupId, achievedScoreGroup, maxScoreGroup))
+    
+    resultSet.push([vars.get("$local.idvalues")[0]
+                    , decodedId["classifactionTypeId"]
+                    , select[0]
+                    , groupId
+                    , displayString
+                    , translate.text(select[2])
+                    , select[3]
+                    , select[4]
+                    , translate.text(select[5])
+                    , Math.round(select[3] * 100) / 100 +"/"+Math.round(select[7]) / 100 + " " +translate.text("Points")//do this here instead of in the sql so we don't get a lot of zeros behind the comma
+                    , groupId
+                ]);
+                
+}   
+else//else -> build via stored classification datasets; if we don't have any: 1. we get all relevant classificationtypes (this can take some time due to the filters)
+{   //2. insert empty values for them and then 3. load the selected classificationtypes
+
+    // if the select that's done in _buildTreeFromPersistetData() doesnt't return any persisted classifications -> the context has never been opened 
+    // for this dataset before and we need to load all relevant classificationTypes and persist them and return the data
+    if(!_buildTreeFromPersistetData())
     {
-        classificationTypeGroupDisplayCache[classificationTypeGroupId] = ClassificationUtils.formatDisplaySummaryForGroup(currentGroupScore
-                , classificationTypeGroupId, classificationGroupTitle);
+        _buildMaxScore();
+
+        //get's all the the classificationtypes of the current objectType
+        var classificationTypeArray = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                                    CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONTYPE.SCOREPOINTS, CLASSIFICATIONTYPE.FILTER")
+                                                    .from("CLASSIFICATIONTYPE")
+                                                    .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                                    .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                                    .orderBy("CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                                    .table();
+
+        helperObject = {};
+        classificationTypeObj = {};
+        checkedFilterObj = {};
+        for (let i = 0; i < classificationTypeArray.length; i++) 
+        {
+            [groupId, classificationGroupTitle, typeId, classificationTypeScoreType, classificationTypeScorePoints, classificationTypeFilter] = classificationTypeArray[i];
+
+            if(!helperObject.hasOwnProperty(groupId)) //classificationGroup
+            {
+                classificationTypeObj[groupId] = {};
+                classificationGroups.push(groupId);
+                helperObject[groupId] = "";
+            }
+            if(!helperObject.hasOwnProperty(typeId)) //classificationType
+            {
+                if(_isRelevant())
+                {
+                    classificationTypeObj[groupId][typeId] = {  "classificationGroupTitle": classificationGroupTitle
+                                                                                                    ,"classificationTypeScoreType": classificationTypeScoreType
+                                                                                                    ,"classificationTypeMaxPoints": Math.round(classificationTypeScorePoints*maxScoresObj[typeId] * 100) / 100};
+                    if(bestPossibleValuesObj[groupId] == undefined)
+                        bestPossibleValuesObj[groupId] = 0;
+                    bestPossibleValuesObj[groupId] = eMath.addDec(bestPossibleValuesObj[groupId], classificationTypeScorePoints)
+                }
+                helperObject[typeId] = "";
+            }
+        }
+
+        var columns = ["CLASSIFICATION.CLASSIFICATIONID"
+                        , "CLASSIFICATION.VALUE"
+                        , "CLASSIFICATION.CLASSIFICATIONTYPE_ID"
+                        , "CLASSIFICATION.OBJECT_TYPE"
+                        , "CLASSIFICATION.OBJECT_ROWID"
+                        , "CLASSIFICATION.SCOREPOINTS"
+                       ];
+
+        
+        //we loop  trough all the relevant classificationtypes and insert classification datasets for every one of them.
+        //here we can easily build resultSet since we are already looping trough all the classificationTypes, so why not do it?
+        for (groupId in classificationTypeObj) 
+        {
+            for (var typeId in classificationTypeObj[groupId])
+            {
+                classificationId = util.getNewUUID();
+                var values = [classificationId
+                , " "
+                , typeId
+                , objectTypeParam
+                , objectRowIdParam
+                , "0"
+               ];
+                
+                db.insertData("CLASSIFICATION", columns, null, values);//insert into CLASSIFICATION for every relevant classificationtype
+                
+                //build resultSet:
+                uid = _UidEncoder.encode(typeId, objectRowIdParam, objectTypeParam);
+                resultSet.push([uid, typeId, classificationId, groupId, translate.text(classificationTypeObj[groupId][typeId]["classificationGroupTitle"]), 
+                    translate.text(classificationTypeObj[groupId][typeId]["classificationTypeScoreType"]), 
+                "0", "", "", classificationTypeObj[groupId][typeId]["classificationTypeMaxPoints"]+" "+translate.text("Points")]);
+            }
+        }
     }
-    var classificationTypeGroupDisplay = classificationTypeGroupDisplayCache[classificationTypeGroupId];
+    
+    // get displayvalues, and build the infoString using gradingObj (this is relevant for every way of loading data)
+    
+    gradingTables = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                                    .from("CLASSIFICATIONGRADING")
+                                    .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroups, SqlBuilder.IN())
+                                    .orderBy("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID, MINPERCENT asc")
+                                    .table();
+                                    
+    for (i = 0; i < gradingTables.length; i++) 
+    {
+        [groupId, minPercent, grading] = gradingTables[i];
 
-    //a field can only contain a string so format complex data into string
-    scoresPerGroupForPush = JSON.stringify(scoresPerGroup);
+        if(gradingObject[groupId] == undefined)
+            gradingObject[groupId] = [];
 
-    resultSet.push([uid, classificationId, classificationTypeGroupId, classificationTypeGroupDisplay, classificationGroupTitle
-        , classificationScoreId, classificationScoreTitle, classificationTypeId, classificationTypeId, classificationTypeObjectType
-        , objectRowIdParam, classificationTypeScoreType, classificationTypeObjectType, scoresPerGroupForPush, currentGroupScore]);
-});
+        gradingObject[groupId].push([minPercent, grading]);
+    }
 
-result.object(resultSet);
+    for (i = 0; i < classificationGroups.length; i++)
+    {
+        var classificatioGroupId = classificationGroups[i];
+        if(achievedGroupScoresObj[classificatioGroupId] == undefined)
+            achievedGroupScoresObj[classificatioGroupId] = 0;
+        
+        achievedGroupGradingsObj[classificatioGroupId] = ClassificationUtils.getGradingFromObject(gradingObject, classificatioGroupId, 
+                                                            achievedGroupScoresObj[classificatioGroupId], bestPossibleValuesObj[classificatioGroupId]);
+    }
 
-/* private helper functions for better readability are following now
- * variable scope is shared so there is no need to pass the values as parameters
- */
 
-/**
- * adds the $local.filter to the sql condition
- */
-function _addLocalFilter()
+    for (i = 0; i < resultSet.length; i++) {
+        groupId = resultSet[i][3];
+
+            //display value is the same for every groupId, so let's cache it that we do not need to load it in every row  => better performance
+        if (classificationTypeGroupDisplayCache[groupId] == undefined)
+        {
+            classificationTypeGroupDisplayCache[groupId] = ClassificationUtils.formatDisplaySummaryForGroup(achievedGroupScoresObj[groupId]
+                    ,bestPossibleValuesObj[groupId], groupId, resultSet[i][4], achievedGroupGradingsObj[groupId]);
+        }
+        resultSet[i][4] = classificationTypeGroupDisplayCache[groupId];
+        resultSet[i][9] = "";
+        resultSet[i][10] = "";
+    }
+    
+    
+}
+var newStorageString = "";
+var oldStorageString = newSelect("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                .from("CLASSIFICATIONSTORAGE")
+                                .where("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                                .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                                .cell();
+                                
+for(var groupid in classificationTypeGroupDisplayCache)
 {
-    if (vars.exists("$local.filter") && vars.get("$local.filter"))
+    newStorageString += classificationTypeGroupDisplayCache[groupid].slice(classificationTypeGroupDisplayCache[groupid].length-1)
+}
+
+var update;
+if(newStorageString != oldStorageString && !decodedId)//update the old string if the new one differs
+{
+    update = newWhere("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                            .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                            .updateData(true, "CLASSIFICATIONSTORAGE", ["CLASSIFICATIONVALUE"], null, [newStorageString]);//don't set the OUTDATED flag to false since even our new value could be outdated!
+    
+    if(update == 0)//update wasnt succesfull -> the storage dataset doesnt exist yet -> insert
+    {
+        db.insertData("CLASSIFICATIONSTORAGE", ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE", "OUTDATED"], null, 
+                                [util.getNewUUID(), newStorageString, objectRowIdParam, objectTypeParam, 0])
+    }
+}
+else if(decodedId)//different way of handling when data is selected since we can only check for the grading of the group of the current classificationtype
+{
+    var orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
+                                    .from("CLASSIFICATION")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                    .join("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                    .where("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                                    .orderBy("CLASSIFICATIONGROUP.SORTING")
+                                    .table();
+    //get the of our grading in the string
+    var position = 0;
+    for (i = 0; i < orderedGroups.length; i++) {
+        if(orderedGroups[i][0] == groupId)
+        {
+            position = i;
+            break;
+        }
+    }
+    newStorageString = displayString.slice(displayString.length-1); //slice current grading from the displaystring
+    if(newStorageString != oldStorageString.slice(position, position+1)) // our letter/char/whatever differs from the one at the correct position of the storred string
     {
-        var filter = vars.get("$local.filter");
-        if (filter.filter)
-            select.andIfSet((JditoFilterUtils.getSqlCondition(filter.filter, "CLASSIFICATION", undefined, {
-                OBJECT_TYPE : "CLASSIFICATIONTYPE.OBJECT_TYPE"
-            })));
+        newStorageString = StringUtils.replaceAt(oldStorageString, position, newStorageString)
+        update = newWhere("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypeParam)
+                                .and("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
+                                .updateData(true, "CLASSIFICATIONSTORAGE", ["CLASSIFICATIONVALUE"], null, [newStorageString]);//don't set the OUTDATED flag to false since even our new value could be outdated!
+
+        if(update == 0)//update wasnt succesfull -> the storage dataset doesnt exist yet -> insert
+        {
+            db.insertData("CLASSIFICATIONSTORAGE", ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE", "OUTDATED"], null, 
+                                    [util.getNewUUID(), newStorageString, objectRowIdParam, objectTypeParam, 0])
+        }
     }
 }
 
+result.object(resultSet);
 
 /**
- * performs an update in  the precalculated classification-stoarge information if there is a missmatch between the IS-value and the SHOULD-BE-value
+ * Checks whether or not the classification is relevant for the current dataset
  */
-function _updateScore()
+function _isRelevant()
 {
-    var calculatedScore = ClassificationUtils.getScore(objectTypeParam, objectRowIdParam)
+    var cond = ((classificationTypeFilter == "" || classificationTypeFilter == undefined || classificationTypeFilter == null) 
+                    && checkedFilterObj[classificationTypeFilter] == undefined)
+                || (checkedFilterObj[classificationTypeFilter] != undefined && checkedFilterObj[classificationTypeFilter] != false);
+    if(!cond)// return true if we don't have an filter set or already checked the filter and it's true
+    {
+        if(checkedFilterObj[classificationTypeFilter] != false)
+        {
+            var selectRelevance, loadConfig, row, filterFields, filterableRow, value, filteredRecs;
+            var res = false;
+            var entityField = true;
 
-    var calculatedClassification = "";
-    for (let i = 0; i < calculatedScore.length; i++) {
-        calculatedClassification += ClassificationUtils.getClassifications(calculatedScore[i][0], calculatedScore[i][1]);
-    }
+            parsedFilter = JSON.parse(classificationTypeFilter).filter;
 
-    var storedClassification = newSelect("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE ")
-    .from("CLASSIFICATIONSTORAGE")
-    .where("CLASSIFICATIONSTORAGE.OBJECT_ROWID", objectRowIdParam)
-    .arrayRow();
+            if(parsedFilter["childs"]["0"] != undefined) // ignore empty filters
+            {
+                //no "." in the name means its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords 
+                //to check whether or not the Filter excludes this row
+                //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                if(parsedFilter["childs"]["0"]["name"].includes("."))
+                {
+                    entityField = false
+                    parsedFilter = JSON.stringify(parsedFilter);
+                }
 
-    var table = "CLASSIFICATIONSTORAGE";
-    var columns = ["CLASSIFICATIONVALUE"];
-    var values = [calculatedClassification];
+                if(objectTypeParam == "Organisation")
+                {
+                    if(entityField == true) 
+                    {
+                        filterFields = ["CUSTOMERCODE", "INFO", "LANGUAGE", "NAME", "STANDARD_CITY", "STANDARD_EMAIL_COMMUNICATION", "STANDARD_PHONE_COMMUNICATION", "STATUS", "TYPE"];
+                    }
+                    else
+                    {
+                      selectRelevance = newSelect("count(*)")
+                                                    .from("ORGANISATION")
+                                                    .join("CONTACT", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null")
+                                                    .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+                                                    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+                                                    .where(db.toFilterCondition(parsedFilter, "Organisation_entity"))
+                                                    .and("ORGANISATION.ORGANISATIONID", OrgUtils.getPrivateOrganisationId(), SqlBuilder.NOT_EQUAL())
+                                                    .and("CONTACT.CONTACTID", objectRowIdParam)
+                    }
+                }
+                else if(objectTypeParam == "Salesproject")
+                {
+                    if(entityField == true)
+                    {
+                        filterFields = ["CONTACT_ID", "ENDDATE", "INFO", "PHASE", "PROBABILITY", "PROJECTCODE", "PROJECTTITLE", "REASONS", "STARTDATE", "STATUS", "VOLUME"];
+                    }
+                    else
+                    {
+                        selectRelevance = newSelect("count(*)")
+                                                    .from("Salesproject")
+                                                    .leftJoin("CONTACT", "SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID")
+                                                    .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
+                                                    .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SAALESPROJECTID") 
+                                                    .where(db.toFilterCondition(parsedFilter, "Salesproject_entity"))
+                                                    .and("SALESPROJECT.SALESPROJECTID", objectRowIdParam)
+                    }
+                }
+                else
+                {
+                    throw new Error("Classification_entity.jdito.contentProcess: objectType doesn't exist or is not implemented correctly, contact an administrator.");
+                }
 
-    if(storedClassification[1] != undefined && calculatedClassification != storedClassification[1]) //Update the stored classification if the freshly calculated one differs
-    {
-    newWhere("CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID", storedClassification[0]).updateData(true, table, columns, null, values);
+                //if its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords to check whether or not the Filter excludes this row
+                if(entityField == true)
+                {   
+                    if(filterableRow == undefined)//filterableRow has only have to be done once per objectType -> cache for better performance
+                    {
+                        loadConfig = entities.createConfigForLoadingRows()
+                                                .entity(ContextUtils.getEntity(objectTypeParam))
+                                                .uid(objectRowIdParam)
+                                                .fields(filterFields)
+
+                        row = entities.getRow(loadConfig)
+
+                        filterableRow = filterFields.map(function (field){
+                        value = null;
+                        if (field in row)
+                            value = row[field];
+                        return value;
+                        });
+                    }
+                    //filter gets used after using entities.getRow and not in the loadconfig, since we can have multiple filters 
+                    //and don't want to do entities.getRow for every single one 
+                    filteredRecs = JditoFilterUtils.filterRecords(filterFields, [filterableRow], parsedFilter);
+                    if(filteredRecs.length > 0)
+                        res = true;
+                }
+                //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                else 
+                {
+                    selectRelevance = selectRelevance.cell();
+
+                    if(selectRelevance > 0)
+                        res = true;
+                }
+            }
+            if(res == true)
+            {
+                checkedFilterObj[classificationTypeFilter] = true;
+            }
+            else
+            {    
+                checkedFilterObj[classificationTypeFilter] = false;
+                res = false;
+            }
+        }
     }
-    else if(storedClassification[1] == undefined) //insert if no classificationstorage exists yet
+    else
+        res = true;
+        
+    return res;
+}
+
+/**
+ * Builds the Array using stored classification datasets;
+ * returns true after pushing into resultSet and false if there are no persistent datasets for the current object
+ */
+function _buildTreeFromPersistetData()
+{
+    var treeBuilt = false;
+    var maxPercents = newSelect("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID, max(CLASSIFICATIONSCORE.SCOREPERCENT)/100")
+                                .from("CLASSIFICATIONSCORE")
+                                .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                .groupBy("CLASSIFICATIONTYPE_ID")
+                                .table();
+
+
+    //this is the main select for the data
+    select = newSelect("CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
+                                CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATION.SCOREPOINTS, CLASSIFICATION.VALUE, \n\
+                                CLASSIFICATIONSCORE.TITLE, CLASSIFICATIONTYPE.SCOREPOINTS")
+                            .from("CLASSIFICATIONTYPE")
+                            .leftJoin("CLASSIFICATION", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                            .leftJoin("CLASSIFICATIONGROUP", "CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID = CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                            .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
+                            .where("CLASSIFICATION.OBJECT_TYPE", objectTypeParam)
+                            .and("CLASSIFICATION.OBJECT_ROWID", objectRowIdParam)
+                            .orderBy("CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+
+
+
+    /* After loading the data from the database some preparation for the record container is done like translating display values into the 
+     * correct locale or calculating some values
+     */
+    //declaration needs to be separated because if declaration is done in the deconstructioning the IDE (designer) autocomplete does not work anymore
+    var typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType
+        , classificationScorePoints, classificationValue, valueDisplayValue, uid, classificationTypeScorePoints, maxValue;
+    select.table().forEach(function (pRow){
+        //deconstructioning for easy access when the selected data changes
+        [typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType, 
+            classificationScorePoints, classificationValue, valueDisplayValue, classificationTypeScorePoints] = pRow;
+
+        uid = _UidEncoder.encode(typeId, objectRowIdParam, objectTypeParam);
+
+        if(translatedClassificationTypesObj[typeId] == undefined)
+        {
+            translatedClassificationTypesObj[typeId] = translate.text(classificationTypeScoreType)
+        }
+        classificationTypeScoreType = translatedClassificationTypesObj[typeId];
+        
+        if (valueDisplayValue)
+            valueDisplayValue = translate.text(valueDisplayValue);
+        if (classificationGroupTitle)
+            classificationGroupTitle = translate.text(classificationGroupTitle);
+
+        for (i = 0; i < maxPercents.length; i++) {
+            if(typeId == maxPercents[i][0])
+            {
+                maxValue = classificationTypeScorePoints*maxPercents[i][1];
+                break;
+            }
+        }
+        if(bestPossibleValuesObj[groupId] == undefined)
+            bestPossibleValuesObj[groupId] = 0;
+        bestPossibleValuesObj[groupId] = eMath.addDec(bestPossibleValuesObj[groupId], maxValue)
+
+        if(achievedGroupScoresObj[groupId] == undefined)
+        {
+            achievedGroupScoresObj[groupId] = 0
+            classificationGroups.push(groupId)
+        }
+        if(classificationScorePoints != undefined)
+            achievedGroupScoresObj[groupId] = eMath.addInt(Number(achievedGroupScoresObj[groupId]), Number(classificationScorePoints));
+        
+        treeBuilt = true;
+        resultSet.push([uid, typeId, classificationId, groupId, classificationGroupTitle, classificationTypeScoreType, 
+            classificationScorePoints, classificationValue, valueDisplayValue, maxValue]);
+    });
+    return treeBuilt;
+}
+
+/**
+ * selects maxScoresArray and builds maxScoresObj (maxScoresObj[classificationTypeId] = maxScorePercent)
+ */
+function _buildMaxScore()
+{
+    var maxScoresArray = newSelect("max(CLASSIFICATIONSCORE.SCOREPERCENT)/100, CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .from("CLASSIFICATIONSCORE")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypeParam)
+                                        .groupBy("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID")
+                                        .table();
+
+    for (i = 0; i < maxScoresArray.length; i++) 
     {
-        db.insertData(table, ["CLASSIFICATIONSTORAGEID", "CLASSIFICATIONVALUE", "OBJECT_ROWID", "OBJECT_TYPE"], null, 
-                                [util.getNewUUID(), calculatedClassification, objectRowIdParam, objectTypeParam])
+        maxScoresObj[maxScoresArray[i][1]] = maxScoresArray[i][0]; //build maxScoresObj using maxScoresArray (easier acces later)
     }
 }
\ No newline at end of file
diff --git a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
index a8f0f8ad9849604d27646572f35229f8eb8c212d..cae77afa19642fa2f242928af66a796cb1141be7 100644
--- a/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/Classification_entity/recordcontainers/jdito/onUpdate.js
@@ -1,35 +1,11 @@
-import("Classification_lib");
-import("system.neon");
-import("system.util");
 import("Sql_lib");
-import("system.db");
 import("system.vars");
 
 var changed = vars.get("$local.changed");
-
-// check if it already exists. Else it only exists as ScoreType but has no Classification-Entry
-if (vars.get("$field.CLASSIFICATIONID"))
-{
-    if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
-    {
-        newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID")
-            .updateFields({"CLASSIFICATIONSCORE_ID" : vars.get("$field.CLASSIFICATIONSCORE_ID")});
-    }
-    else
-    {
-        newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID").deleteData();
-    }
-}
-else if (vars.get("$field.CLASSIFICATIONSCORE_ID"))
+if(changed)
 {
-    var newId = util.getNewUUID();
-    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "CLASSIFICATIONSCORE_ID"], null, [
-        newId,
-        vars.get("$field.OBJECT_TYPE"),
-        vars.get("$field.OBJECT_ROWID"),
-        vars.get("$field.CLASSIFICATIONTYPE_ID"),
-        vars.get("$field.CLASSIFICATIONSCORE_ID"),
-    ]);
-    
-    neon.setFieldValue("$field.CLASSIFICATIONID", newId);
+    newWhere("CLASSIFICATION.CLASSIFICATIONID", "$field.CLASSIFICATIONID")
+        .updateFields({"VALUE" : vars.get("$field.VALUE")
+                        ,"SCOREPOINTS" : vars.get("$field.Info.displayValue").slice(0, vars.get("$field.Info.displayValue").indexOf("/"))
+                        });
 }
\ No newline at end of file
diff --git a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
index 841ff10b1844fa44c81a817f99987d1ff2f42db7..aef50aebaf302304a699c6713ceeec227d70350b 100644
--- a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
+++ b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
@@ -1,7 +1,7 @@
 import("system.neon");
 import("system.vars");
 
-neon.openContext("MSTTeamsDocument", "MSTeamsDocumentEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+neon.openContext("MSTeamsDocument", "MSTeamsDocumentEdit_view", null, neon.OPERATINGSTATE_VIEW, {
     "MSTTeamId_param" : vars.get("$param.MSTTeamId_param"),
     "ObjectRowId_param" : vars.get("$param.AssignmentRowId_param"),
     "AssignmentName_param" : vars.get("$param.AssignmentName_param"),
diff --git a/entity/LetterRecipient_entity/LetterRecipient_entity.aod b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
index 63ec8c14576769c9f89e4cedc7152fb2fc92b02c..e8f4ac96e66e694bab194186688c63f7c8bfa300 100644
--- a/entity/LetterRecipient_entity/LetterRecipient_entity.aod
+++ b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
@@ -6,6 +6,7 @@
   <siblings>
     <element>Address_entity</element>
   </siblings>
+  <onValidation>%aditoprj%/entity/LetterRecipient_entity/onValidation.js</onValidation>
   <titlePlural>Recipients</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
diff --git a/entity/LetterRecipient_entity/onValidation.js b/entity/LetterRecipient_entity/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..b165c8bd18fd2983e52e191b2ec9e71b404cbb7f
--- /dev/null
+++ b/entity/LetterRecipient_entity/onValidation.js
@@ -0,0 +1,16 @@
+import("system.translate");
+import("system.result");
+import("Sql_lib");
+import("system.vars");
+
+var contactId = vars.get("$field.CONTACT_ID");
+
+var standardAddress = newSelect("CONTACT.ADDRESS_ID")
+                                .from("CONTACT")
+                                .where("CONTACT.CONTACTID", contactId)
+                                .cell();
+
+if(!standardAddress)
+{
+    result.string(translate.text("The selected Contact doesn't have an address set."));
+}
\ No newline at end of file
diff --git a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
index 72dead10e1dc47cf5fe80fb31d4493667fd40677..1f1e68f496fa64090a7ddcdb33ef5aad5634e607 100644
--- a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
+++ b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod
@@ -94,6 +94,7 @@
       <mandatoryProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/mandatoryProcess.js</mandatoryProcess>
       <dropDownProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js</dropDownProcess>
       <stateProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>INVITE</name>
@@ -101,6 +102,7 @@
       <mandatoryProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/mandatoryProcess.js</mandatoryProcess>
       <dropDownProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/dropDownProcess.js</dropDownProcess>
       <stateProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js</valueProcess>
     </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
diff --git a/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..516e09d60f21ed6d91e8f27b41593afec8f686ff
--- /dev/null
+++ b/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string(false);
\ No newline at end of file
diff --git a/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d79978a6cbc07884ec953adb3be3de3d78997b78
--- /dev/null
+++ b/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string("member");
\ No newline at end of file
diff --git a/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js b/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js
index 0629031e507398d3f502728590e967582d74fc50..ab18aabd0ba1fb0f4c2d93a91aa191b29ba2c352 100644
--- a/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js
+++ b/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js
@@ -1,8 +1,20 @@
+import("system.vars");
+import("system.entities");
 import("Entity_lib");
 import("system.result");
 import("system.translate");
 
-var members = EntityConsumerRowsHelper.getCurrentConsumerRows("TeamMembers", ["ROLE"]);
+//this is a workaround, EntityConsumerRowsHelper.getCurrentConsumerRows should be used here
+var loadRowsConfig = entities.createConfigForLoadingRows()
+    .entity("MSTTeamMember_entity")
+    .provider("MembersOfTeam")
+    .fields(["#UID", "ROLE"])
+    .addParameter("MSTTeamId_param", vars.get("$field.UID"));
+var savedRows = entities.getRows(loadRowsConfig);
+var members = new EntityConsumerRowsHelper(savedRows)
+    .consumer("TeamMembers")
+    .applyConsumerRowChanges()
+    .getRows();
 var hasOwner = members.some(function (member)
 {
     return member["ROLE"] == "owner";
diff --git a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
index 2f279cf23fb22d886b2a3a7bce9c60edcf83206c..17cde5886a40df0410dcd5b3c9ea721f13d32cf1 100644
--- a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
+++ b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod
@@ -78,9 +78,11 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
-    <entityActionField>
-      <name>importMessages</name>
-    </entityActionField>
+    <entityField>
+      <name>TeamMessages</name>
+      <consumer>Messages</consumer>
+      <selectionMode>MULTI</selectionMode>
+    </entityField>
   </entityFields>
   <recordContainers>
     <datalessRecordContainer>
diff --git a/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod b/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
index 7b63c5f0e10641d17d6bc056c6f771d217cc1e7d..282dfbc5ff907b3da341b62f9a5079a3628c3645 100644
--- a/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
+++ b/entity/MSTeamsDocument_entity/MSTeamsDocument_entity.aod
@@ -63,6 +63,7 @@
     </entityProvider>
     <entityActionField>
       <name>importDocuments</name>
+      <title>Import Documents</title>
       <onActionProcess>%aditoprj%/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js</onActionProcess>
     </entityActionField>
   </entityFields>
diff --git a/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js b/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js
index 7237c6c01de74d5355cde59d84173d56989b55b0..23dcd6873c5979acde3412cd24bc618244881c17 100644
--- a/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js
+++ b/entity/MSTeamsDocument_entity/entityfields/importdocuments/onActionProcess.js
@@ -1,14 +1,11 @@
 import("system.text");
-import("system.teams");
 import("system.vars");
 import("system.db");
-import("system.util")
+import("system.util");
 import("Sql_lib");
-import("system.net")
-import("system.logging");
+import("system.net");
 import("system.neon");
 
-var rowData = vars.get("$local.rowdata");
 var documents = text.decodeMS(vars.get("$field.DOCUMENTS"));
 
 documents.forEach(function (document)
@@ -25,3 +22,5 @@ documents.forEach(function (document)
         file, documentName, "", "", alias, util.getNewUUID());    
 });
 
+neon.closeImage(vars.get("$sys.currentimage"), true);
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod b/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
index 437ba4f01752bc9a118f40f47ce80f9fdb5b7e3c..8100af9bbee696961ab43850b8e49906237b4f00 100644
--- a/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
+++ b/entity/MSTeamsMessage_entity/MSTeamsMessage_entity.aod
@@ -57,6 +57,20 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityActionField>
+      <name>importMessages</name>
+      <title>Import</title>
+      <onActionProcess>%aditoprj%/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js</onActionProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>loadNext</name>
+      <title>Next</title>
+      <onActionProcess>%aditoprj%/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js</onActionProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>loadPrevious</name>
+      <title>Prev</title>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b5a94d660b9cbd5ef4a49457965ad8bd4767f0e
--- /dev/null
+++ b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js
@@ -0,0 +1,23 @@
+import("Sql_lib");
+import("system.datetime");
+import("system.neon");
+import("Util_lib");
+import("system.vars");
+
+var messages = vars.get("$sys.selection");
+var description = messages.map(function (id)
+{
+    var [user, date, message] = JSON.parse(id);
+    date = Date.parse(date).valueOf();
+    return "[" + datetime.toDate(date, "dd.MM.yyyy HH:mm") + "] " + user + "<br>" + message + "<br>";
+}).join("<br>");
+
+var links = newSelect(["OBJECT_TYPE", "OBJECT_ROWID"])
+    .from("MST_TEAMLINK")
+    .where("MST_TEAMLINK.MST_TEAM_ID", vars.get("$param.TeamId_param"))
+    .table();
+
+neon.openContext("Activity", "ActivityEdit_view", null, neon.OPERATINGSTATE_NEW, {
+    "Info_param": description,
+    "PresetLinks_param": JSON.stringify(links)
+});
\ No newline at end of file
diff --git a/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js b/entity/MSTeamsMessage_entity/entityfields/loadnext/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js b/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js
index d8c0bad8a65f7fb8ad38753f002d20f1eb5f505a..0007cf9a2d5994cbbf002e496d12620d49ee358c 100644
--- a/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js
@@ -31,7 +31,7 @@ else if (vars.get("$param.TeamId_param") && vars.get("$param.Channel_param"))
 messages = messages.map(function (message)
 {
     return [
-        util.getNewUUID(), 
+        JSON.stringify([message.author.userName, message.createdDateTime, message.message.message]), 
         message.author.userName, 
         message.message.message, 
         Date.parse(message.createdDateTime).toString()
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 5349b4d8fd4c116790e08f7527679c5de5f74b5f..16bc1d967bbb1e7d6dea78d43d65f8985b06327a 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -98,6 +98,7 @@
       <contentType>NUMBER</contentType>
       <inputFormat>#,##0.00</inputFormat>
       <state>READONLY</state>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/vat/stateProcess.js</stateProcess>
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/vat/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -145,6 +146,10 @@
           <name>Language_param</name>
           <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/language_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>Discount_param</name>
+          <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offeritems/children/discount_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
       <dependency>
         <name>dependency</name>
@@ -164,7 +169,7 @@
       <contentType>NUMBER</contentType>
       <outputFormat>#,##0.00</outputFormat>
       <inputFormat>#,##0.00</inputFormat>
-      <groupable v="true" />
+      <groupable v="false" />
       <state>READONLY</state>
       <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/net/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -1056,6 +1061,45 @@
     <entityField>
       <name>ACTIVE</name>
     </entityField>
+    <entityField>
+      <name>DISCOUNT</name>
+      <title>Discount</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>0.00'%'</outputFormat>
+      <inputFormat>0.00</inputFormat>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/discount/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/discount/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+      </onValueChangeTypes>
+      <onValidation>%aditoprj%/entity/Offer_entity/entityfields/discount/onValidation.js</onValidation>
+    </entityField>
+    <entityField>
+      <name>DISCOUNTED_NET</name>
+      <title>discounted Price</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <inputFormat>#,##0.00</inputFormat>
+      <state>READONLY</state>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/discounted_net/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/discounted_net/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityParameter>
+      <name>Discount_param</name>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityField>
+      <name>DiscountChanged</name>
+    </entityField>
+    <entityField>
+      <name>DISCOUNTED_VAT</name>
+      <title>discounted Vat</title>
+      <contentType>NUMBER</contentType>
+      <inputFormat>#,##0.00</inputFormat>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/discounted_vat/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/discounted_vat/displayValueProcess.js</displayValueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -1308,6 +1352,18 @@
           <name>ACTIVE.value</name>
           <expression>%aditoprj%/entity/Offer_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISCOUNTED_NET.value</name>
+          <recordfield>OFFER.DISCOUNTED_NET</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISCOUNT.value</name>
+          <recordfield>OFFER.DISCOUNT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DISCOUNTED_VAT.value</name>
+          <recordfield>OFFER.DISCOUNTED_VAT</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
       <filterExtensions>
         <filterExtensionSet>
diff --git a/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js b/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
index d610943f3409687827462179063e28df0aa3dde8..1b596584b051bec97da19e07429f38fecb1a9894 100644
--- a/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/copyoffer/onActionProcess.js
@@ -1,8 +1,8 @@
 import("system.vars");
+import("system.neon");
 import("Offer_lib");
 
 var offerId = vars.getString("$field.OFFERID");
-
 var fieldValues = {
     contactId: vars.getString("$field.CONTACT_ID"),
     language: vars.getString("$field.ISOLANGUAGE"),
@@ -12,7 +12,9 @@ var fieldValues = {
     deliveryTerm: vars.getString("$field.DELIVERYTERMS"),
     paymentTerm: vars.getString("$field.PAYMENTTERMS"),
     objectRowId: vars.getString("$field.OBJECT_ROWID"),
-    objectType: vars.getString("$field.OBJECT_TYPE")
+    objectType: vars.getString("$field.OBJECT_TYPE"),
+    discount: vars.getString("$field.DISCOUNT")
+    
 };
 
 OfferUtils.copyOffer(offerId, fieldValues);
diff --git a/entity/Offer_entity/entityfields/discount/onValidation.js b/entity/Offer_entity/entityfields/discount/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..595a5d9aae549242aaa2246e2e4b6e6d602249a0
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discount/onValidation.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("Util_lib");
+import("Entity_lib");
+
+var value = vars.get("local.value");
+var validationResult = NumberUtils.validateIsBetweenFloat("Discount", value, 0, 100);
+
+if (validationResult)
+    result.string(validationResult);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discount/onValueChange.js b/entity/Offer_entity/entityfields/discount/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..5fc7651884946ad0f59a3f5c51b5bb93f0505c30
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discount/onValueChange.js
@@ -0,0 +1,5 @@
+import("system.neon");
+import("system.vars");
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon. OPERATINGSTATE_EDIT){
+    neon.setFieldValue("$field.DiscountChanged", "true");
+}
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discount/valueProcess.js b/entity/Offer_entity/entityfields/discount/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa96d16798f8258f091583613760f918dc4a8126
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discount/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.neon");
+import("system.vars");
+import("system.result");
+    
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Discount_param")
+    && vars.get("$param.Discount_param")){
+    result.string(vars.get("$param.Discount_param"));
+}
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discounted_net/displayValueProcess.js b/entity/Offer_entity/entityfields/discounted_net/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7473e812c66616164442674dc87bdd5282dc50d
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discounted_net/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("Util_lib");
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+result.string(NumberUtils.formatWithCurrency(vars.get("$field.DISCOUNTED_NET"), translate.text("#,##0.00"), vars.get("$field.CURRENCY")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discounted_net/stateProcess.js b/entity/Offer_entity/entityfields/discounted_net/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7443b0c0dcb6c9e38045968ddaa64b5763dfd85e
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discounted_net/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+var discount = vars.get("$field.DISCOUNT");
+
+if(parseInt(discount) == parseInt("0") || !discount)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else 
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discounted_vat/displayValueProcess.js b/entity/Offer_entity/entityfields/discounted_vat/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..730396f16084a8c954d9cd54640efdd758e8cb52
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discounted_vat/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("Util_lib");
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+result.string(NumberUtils.formatWithCurrency(vars.get("$field.DISCOUNTED_VAT"), translate.text("#,##0.00"), vars.get("$field.CURRENCY")));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/discounted_vat/stateProcess.js b/entity/Offer_entity/entityfields/discounted_vat/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7443b0c0dcb6c9e38045968ddaa64b5763dfd85e
--- /dev/null
+++ b/entity/Offer_entity/entityfields/discounted_vat/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("system.neon");
+import("system.result");
+
+var discount = vars.get("$field.DISCOUNT");
+
+if(parseInt(discount) == parseInt("0") || !discount)
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+else 
+    result.string(neon.COMPONENTSTATE_READONLY);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
index 5a7493c41130f53a5a877ad0823f5783c8c80c02..02f67ef9c37049f446df6879107ff67b6032e91e 100644
--- a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
@@ -15,6 +15,7 @@ var params = {
     "OfferHeader_param" : vars.get("$field.HEADER"),
     "OfferFooter_param" : vars.get("$field.FOOTER"),
     "OfferDeliveryTerm_param" : vars.get("$field.DELIVERYTERMS"),
-    "OfferPaymentTerm_param" : vars.get("$field.PAYMENTTERMS")
+    "OfferPaymentTerm_param" : vars.get("$field.PAYMENTTERMS"),
+    "Discount_param": vars.get("$field.DISCOUNT")
 }
 neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
index 8074aca46e2680d0b0d19060e41f370b84830fa1..44cc4476bcc740985830e3575cd626e03b526918 100644
--- a/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
+++ b/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js
@@ -1,11 +1,11 @@
-import("system.neon");
-import("system.vars");
-import("system.db");
-import("system.result");
-import("Context_lib");
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.OBJECT_ROWID") == null) {
-    result.string("");
-} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) {
-    result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID")));
-}
\ No newline at end of file
+//import("system.neon");
+//import("system.vars");
+//import("system.db");
+//import("system.result");
+//import("Context_lib");
+//
+//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.OBJECT_ROWID") == null) {
+//    result.string("");
+//} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) {
+//    result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID")));
+//}
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/offeritems/children/discount_param/valueProcess.js b/entity/Offer_entity/entityfields/offeritems/children/discount_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..67b63c37f044f7d1f4e807d7a863457a78552701
--- /dev/null
+++ b/entity/Offer_entity/entityfields/offeritems/children/discount_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.DISCOUNT"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/totalgross/valueProcess.js b/entity/Offer_entity/entityfields/totalgross/valueProcess.js
index 6e374c8f50a610ed0f50b89319726224167631d0..9d6a6c9330d2fd3eb57fa5f5102e55ad5eb0ef3b 100644
--- a/entity/Offer_entity/entityfields/totalgross/valueProcess.js
+++ b/entity/Offer_entity/entityfields/totalgross/valueProcess.js
@@ -2,7 +2,8 @@ import("system.result");
 import("system.vars");
 import("system.eMath");
 
-var netValue = vars.get("$field.NET");
-var vatValue = vars.get("$field.VAT");
+var discount = vars.get("$field.DISCOUNT");
+var netValue = discount && parseInt(discount) != parseInt("0")  ? vars.get("$field.DISCOUNTED_NET") : vars.get("$field.NET")
+var vatValue =  discount && parseInt(discount) != parseInt("0") ? vars.get("$field.DISCOUNTED_VAT") : vars.get("$field.VAT");
 
 result.string( eMath.addDec(netValue, vatValue) );
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/vat/stateProcess.js b/entity/Offer_entity/entityfields/vat/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..42a2d8e6788a09e0c2c8b410c5e4eadb7bfeb115
--- /dev/null
+++ b/entity/Offer_entity/entityfields/vat/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.neon");
+import("system.result");
+import("system.vars");
+var discount = vars.get("$field.DISCOUNT");
+
+if(discount && parseInt(discount) != parseInt("0")){
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else 
+    result.string(neon.COMPONENTSTATE_READONLY)
\ No newline at end of file
diff --git a/entity/Offer_entity/recordcontainers/db/onDBInsert.js b/entity/Offer_entity/recordcontainers/db/onDBInsert.js
index da551808a8c82e05a35c7aecf40d283434b2f4c0..c7d3c3336eadfb5bc6b41deaec997081f23c491b 100644
--- a/entity/Offer_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Offer_entity/recordcontainers/db/onDBInsert.js
@@ -1,17 +1,20 @@
 import("Context_lib");
 import("system.workflow");
 import("Workflow_lib");
+import("system.db");
 import("system.datetime");
+import("system.util");
 import("system.neon");
 import("system.vars");
 import("Offer_lib");
-import("Sql_lib");
 
+var rowdata = vars.get("$local.rowdata");
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     var offerId = vars.get("$local.uid");
-    if (vars.exists("$param.OfferOriginal_Id_param"))
-        OfferUtils.copyOfferItems(vars.getString("$param.OfferOriginal_Id_param"), offerId);
+    var discount = rowdata["OFFER.DISCOUNT"];
+    if (vars.exists("$param.OfferOriginal_Id_param") && vars.get("$param.OfferOriginal_Id_param"))
+        OfferUtils.copyOfferItems(vars.getString("$param.OfferOriginal_Id_param"), offerId, discount);
     
     var activityId = vars.get("$param.ActivityId_param");
     if (activityId)
diff --git a/entity/Offer_entity/recordcontainers/db/onDBUpdate.js b/entity/Offer_entity/recordcontainers/db/onDBUpdate.js
index 2e53f3cad9a9edf21cc5bbc6fdecc00c5001dfee..866c488632bc1e0629e2bfd4b4681a8f3baad6a5 100644
--- a/entity/Offer_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Offer_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,38 @@
+import("system.entities");
+import("Offer_lib");
+import("system.vars");
 import("Workflow_lib");
 
+var rowdata = vars.get("$local.rowdata");
+var oid = rowdata["OFFER.OFFERID"];
+if(vars.get("$field.DiscountChanged") == "true" && oid){
+    var discount = rowdata["OFFER.DISCOUNT"];
+    var oiUtils = new OfferItemUtils(oid);  
+    
+    var vals = oiUtils.getNetAndVat();
+    var discountedVals = OfferItemUtils.getDiscountedNet(null, oid, discount);
+    
+    let config = entities.createConfigForUpdatingRows();
+    config.entity("Offer_entity");
+    if(discountedVals){
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1],
+            "DISCOUNTED_NET": discountedVals[0],
+            "DISCOUNTED_VAT": discountedVals[1]
+        });
+    }
+    else 
+    {
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1]
+        });
+    }
+
+    config.uid(oid);
+    entities.updateRow(config);
+
+}
+
 WorkflowSignalSender.updated();
\ No newline at end of file
diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index 281231dc1f88650ef4b04dd1f128b7d1438a4e60..75863bb226da7a67d62d2b265bfb791c382af773 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -248,6 +248,10 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityParameter>
+      <name>Discount_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Offeritem_entity/recordcontainers/db/onDBDelete.js b/entity/Offeritem_entity/recordcontainers/db/onDBDelete.js
index 88f823f4fb90b6fcbd3e10b059a1bbf3df190dc0..283d1cb7a7cdb0568b117c1f8001fe4f7a2ef796 100644
--- a/entity/Offeritem_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Offeritem_entity/recordcontainers/db/onDBDelete.js
@@ -1,3 +1,4 @@
+import("system.entities");
 import("system.neon");
 import("system.vars");
 import("system.db");
@@ -8,6 +9,7 @@ var oid = vars.get("$field.OFFER_ID");
 if(oid != "")
 {
     var oiid = vars.get("$field.OFFERITEMID");
+    var discount = vars.exists("$param.Discount_param") ? vars.get("$param.Discount_param"): "";
     var oiUtils = new OfferItemUtils(oid);
     var deletedIds = oiUtils.deletePartsList(oiid);
     oiUtils.reOrgItems();
@@ -15,8 +17,27 @@ if(oid != "")
     deletedIds.push(oiid);
     var cols = ["NET", "VAT"];
     
-    var vals = oiUtils.getNetAndVat(deletedIds);
+    var vals = oiUtils.getNetAndVat(deletedIds);    
+    var discountedVals = OfferItemUtils.getDiscountedNet(deletedIds, oid, discount);
     
-    newWhere("OFFER.OFFERID", oid)
-        .updateData(true, "OFFER", cols, null, vals)
+    let config = entities.createConfigForUpdatingRows()
+    config.entity("Offer_entity");
+    
+    if(discountedVals){
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1],
+            "DISCOUNTED_NET": discountedVals[0],
+            "DISCOUNTED_VAT": discountedVals[1]
+        });
+    }
+    else{
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1]
+        });
+    }
+    config.uid(oid);
+    entities.updateRow(config);
+
 }
\ No newline at end of file
diff --git a/entity/Offeritem_entity/recordcontainers/db/onDBInsert.js b/entity/Offeritem_entity/recordcontainers/db/onDBInsert.js
index 473b49850845193bb86ddee243f668ae206617e4..f7e305e7c5ecac3ab334df84828152e91e3e9d30 100644
--- a/entity/Offeritem_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Offeritem_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("system.entities");
 import("system.datetime");
 import("system.neon");
 import("system.vars");
@@ -14,14 +15,34 @@ if(oid != "")
 {
     var curr = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : "";
     var contactid = vars.exists("$param.ContactId_param") ? vars.get("$param.ContactId_param") : "";
+    var discount = vars.exists("$param.Discount_param") ? vars.get("$param.Discount_param"): "";
     var oiUtils = new OfferItemUtils(rowdata["OFFERITEM.OFFER_ID"]);    
     oiUtils.insertPartsList(rowdata["OFFERITEM.PRODUCT_ID"], vars.get("$local.uid"), curr, contactid, vars.get("$param.Language_param"));
     oiUtils.reOrgItems();
     
     //update offer price
     var vals = oiUtils.getNetAndVat();
-    var cols = ["NET", "VAT"];
+    var discountedVals = OfferItemUtils.getDiscountedNet(null, oid,  discount);
+    
+    let config = entities.createConfigForUpdatingRows()
+    config.entity("Offer_entity");
+
+    if(discountedVals){
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1],
+            "DISCOUNTED_NET": discountedVals[0],
+            "DISCOUNTED_VAT": discountedVals[1]
+        });
+    }
+    else{
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1]
+        });
+
+    }
+    config.uid(oid);
+    entities.updateRow(config);
 
-    newWhere("OFFER.OFFERID", oid)
-        .updateData(true, "OFFER", cols, null, vals);    
 }
\ No newline at end of file
diff --git a/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js b/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
index a1e94cd51186a9e57ee45df344263e3cc26d79b9..a004c7c8b6e4ca57eb19c52f75ef55dafded35b8 100644
--- a/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Offeritem_entity/recordcontainers/db/onDBUpdate.js
@@ -1,3 +1,4 @@
+import("system.entities");
 import("system.vars");
 import("system.db");
 import("system.neon");
@@ -7,9 +8,30 @@ import("Sql_lib");
 var oid = vars.get("$field.OFFER_ID");
 if(oid != "")
 {
+    var discount = vars.exists("$param.Discount_param") ? vars.get("$param.Discount_param"): "";
     var cols = ["NET", "VAT"];    
     var oiUtils = new OfferItemUtils(oid);
+    var vals = oiUtils.getNetAndVat();
+    var discountedVals = OfferItemUtils.getDiscountedNet(null, oid, discount);
     
-    newWhere("OFFER.OFFERID", oid)
-        .updateData(true, "OFFER", cols, null, oiUtils.getNetAndVat());    
+    let config = entities.createConfigForUpdatingRows()
+    config.entity("Offer_entity");
+    
+    if(discountedVals){
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1],
+            "DISCOUNTED_NET": discountedVals[0],
+            "DISCOUNTED_VAT": discountedVals[1]
+        });
+    }
+    else{
+        config.fieldValues({
+            "NET": vals[0],
+            "VAT": vals[1]
+        });
+    }
+    config.uid(oid);
+    entities.updateRow(config);
+ 
 }
\ No newline at end of file
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 1707c9025b951eb46b15afdeeb781db85b39ad68..1b0fc5e0a6f097b1be2e4a280b6ce2023712a06a 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -209,6 +209,11 @@
       <consumer>Addresses</consumer>
       <state>AUTO</state>
       <displayValueProcess>%aditoprj%/entity/Organisation_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityConsumer>
       <name>Communications</name>
@@ -1146,13 +1151,6 @@
       <color>$priority-high-color</color>
       <displayValueProcess>%aditoprj%/entity/Organisation_entity/entityfields/commrestrictions_active/displayValueProcess.js</displayValueProcess>
     </entityField>
-    <entityActionField>
-      <name>startWorkflow</name>
-      <title>Start workflow</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PLAY</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>STANDARD_ADDRESS</name>
     </entityField>
@@ -1170,26 +1168,6 @@
       <name>ORGANISATION_REPORT_DATA</name>
       <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/organisation_report_data/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>newVisitRecommendation</name>
-      <title>New Visit Recommendation</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CALENDAR</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>newVisitPlanEntry</name>
-      <title>New Weekplanentry</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CAR</iconId>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>openLocation</name>
-      <title>Open Location</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js</onActionProcess>
-      <iconId>NEON:TACKED</iconId>
-    </entityActionField>
     <entityConsumer>
       <name>Classifications</name>
       <refreshParent v="true" />
@@ -1286,16 +1264,6 @@
         </entityDependency>
       </dependencies>
     </entityProvider>
-    <entityActionField>
-      <name>openAroundLocation</name>
-      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/documentation.adoc</documentation>
-      <title>Radius Search</title>
-      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js</onActionProcess>
-      <isSelectionAction v="true" />
-      <iconId>VAADIN:LOCATION_ARROW_CIRCLE_O</iconId>
-      <state>DISABLED</state>
-      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>STANDARD_LAT</name>
     </entityField>
@@ -1405,6 +1373,43 @@
         </entityDependency>
       </dependencies>
     </entityProvider>
+    <entityActionField>
+      <name>startWorkflow</name>
+      <title>Start workflow</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PLAY</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/startworkflow/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newVisitRecommendation</name>
+      <title>New Visit Recommendation</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CALENDAR</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>newVisitPlanEntry</name>
+      <title>New Weekplanentry</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CAR</iconId>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>openLocation</name>
+      <title>Open Location</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js</onActionProcess>
+      <iconId>NEON:TACKED</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>openAroundLocation</name>
+      <documentation>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/documentation.adoc</documentation>
+      <title>Radius Search</title>
+      <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js</onActionProcess>
+      <isSelectionAction v="true" />
+      <iconId>VAADIN:LOCATION_ARROW_CIRCLE_O</iconId>
+      <state>DISABLED</state>
+      <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/openaroundlocation/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityActionGroup>
       <name>orgReportDispatch</name>
       <children>
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index a4e9edc5b2c7f90da86619beb5d4d968bb0a392b..bffcdb6a1e0be8fb6cc55de23fc79701ba3d660d 100644
--- a/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -18,7 +18,7 @@ var sql = newSelect(isCount ? "1" : columns)
                     .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = CONTACT.CONTACTID")
                         .and("CLASSIFICATION.OBJECT_TYPE", "Organisation")
                         .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
-                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+                    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
                     .whereIfSet(condition.trim())
                     .groupBy(groupedColumns);
 
diff --git a/entity/Organisation_entity/recordcontainers/db/onDBDelete.js b/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
index 730c29c8f1984d5ebc75d045a5ee75779f13a204..00e50690d485216c4b4956f416b688ab433e68a8 100644
--- a/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
+++ b/entity/Organisation_entity/recordcontainers/db/onDBDelete.js
@@ -16,5 +16,6 @@ newWhere("COMMUNICATION.CONTACT_ID", contactId).deleteData();
 newWhere("ADDRESS.CONTACT_ID", contactId).deleteData();
 newWhere("COMMRESTRICTION.CONTACT_ID", contactId).deleteData();
 newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", vars.get("$field.CONTACTID")).deleteData();
+newWhere("CLASSIFICATION.OBJECT_ROWID", vars.get("$field.CONTACTID")).deleteData();
 
 WorkflowSignalSender.deleted();
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/onDBInsert.js b/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
index 87c54eb133ade2f232b31f1ef23e47e3053e1f7f..60299cd7d4eda2ceed743571cec9cbda912ad318 100644
--- a/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Organisation_entity/recordcontainers/db/onDBInsert.js
@@ -1,9 +1,6 @@
 import("system.vars");
 import("Workflow_lib");
 
-var uid = vars.get("$sys.uid");
-var contextname = vars.get("$sys.currentcontextname");
-
 //start the execution in afterOperatingState, because here the dataset is not yet inserted
 vars.set("$context.workflowQueue", {});
 WorkflowSignalSender.inserted();
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index afc95caa0edab0f2d58760314ef6c1987c2e5c8c..eef8bd4f4493a7fef2ab0572920a883766869eaa 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -110,7 +110,7 @@
       </dependencies>
     </entityProvider>
     <entityParameter>
-      <name>RoleTitle_param</name>
+      <name>RoleName_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
@@ -133,7 +133,7 @@
       </dependency>
     </entityConsumer>
     <entityParameter>
-      <name>EntityTitle_param</name>
+      <name>EntityId_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js
index 327e3f48bfe87797eb4f122b038302ea716de517..4ab83eef7bd698f6e11166a888ecbf502ba578bb 100644
--- a/entity/PermissionDetail_entity/contentTitleProcess.js
+++ b/entity/PermissionDetail_entity/contentTitleProcess.js
@@ -6,18 +6,21 @@ import("system.result");
 
 var res = "";
 var entityName = vars.get("$field.ENTITY");
+var roleName = vars.get("$field.ROLE");
+var accesstype = vars.get("$field.ACCESSTYPE");
+var cond = vars.get("$field.CONDITION");
 var emptyCond = PermissionUtil.getEmptyCondString(entityName);
 
-switch (vars.get("$field.ACCESSTYPE")) {
+switch (accesstype) {
     case "E":
-        if (vars.get("$param.RoleTitle_param") && vars.get("$field.ENTITY") != "") {
-            res += vars.get("$field.ENTITY");
-        } else if (vars.get("$param.EntityTitle_param") && vars.get("$field.ROLE") != "") {
-            res += vars.get("$field.ROLE");
-        } else if (vars.get("$field.ROLE") != "") {
-            res += vars.get("$field.ROLE");
-        } else if (vars.get("$field.ENTITY") != "") {
-            res += vars.get("$field.ENTITY");
+        if (vars.get("$param.RoleName_param") && entityName != "") {
+            res += entityName;
+        } else if (vars.get("$param.EntityId_param") && roleName != "") {
+            res += roleName;
+        } else if (roleName != "") {
+            res += roleName;
+        } else if (entityName != "") {
+            res += entityName;
         }
         break;
     case "R":
@@ -31,8 +34,8 @@ switch (vars.get("$field.ACCESSTYPE")) {
         break;
 }
 
-if (vars.get("$field.ACCESSTYPE") != "E") {
-    if (vars.get("$field.CONDITION") != emptyCond && vars.get("$field.CONDITION") != "") {
+if (accesstype != "E") {
+    if (cond != emptyCond && cond != "") {
         res += " - conditional";
     } else {
         res += " - default";
diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
index 366a3b45d7d89260fedc3f340331ff5d67f22f55..a559d0e548e50f9100892d4f684a222c0477f25d 100644
--- a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js
@@ -10,7 +10,11 @@ var roleName = vars.get("$field.ROLE");
 var entity = vars.get("$field.ENTITY");
 var accesstype = vars.get("$field.ACCESSTYPE");
 
-if (operatingState == neon.OPERATINGSTATE_SEARCH || operatingState == neon.OPERATINGSTATE_VIEW) {
+if (
+    operatingState == neon.OPERATINGSTATE_SEARCH ||
+    operatingState == neon.OPERATINGSTATE_VIEW ||
+    operatingState == neon.OPERATINGSTATE_EDIT
+    ) {
     switch (accesstype) {
         case "E":
             result.string(translate.text("Entity"));
@@ -23,7 +27,7 @@ if (operatingState == neon.OPERATINGSTATE_SEARCH || operatingState == neon.OPERA
             break;
     }
 } else {
-    // editing/creating a new permission
+    // creating a new permission
     // if there is no permission set for a given role-entity-combination or only one with condtype 0 -> permission has to be Entity
     // otherwise Record
     // if $field.FIELD is filled, then its a permission on Field access level
diff --git a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
index d6e5c24e75eed9d70d14526054b11a129a22f83b..9af4d04f98f855a4ac508c84de3efe76fa26ecdc 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/displayValueProcess.js
@@ -5,8 +5,8 @@ import("system.neon");
 var recordstate = vars.get("$sys.recordstate");
 var entity = "";
 
-if(vars.exists("$param.EntityTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
-    entity = vars.get("$param.EntityTitle_param"); 
+if(vars.exists("$param.EntityId_param") && recordstate == neon.OPERATINGSTATE_NEW) {
+    entity = vars.get("$param.EntityId_param"); 
 } else {
     entity = vars.get("$field.ENTITY");
 }
diff --git a/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js b/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js
index 943bb0881702bf7d6a70344f64c3d99834e6834b..81377c2374ab5fb09010365597bd8ea59d280baf 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/stateProcess.js
@@ -2,7 +2,7 @@ import("system.result");
 import("system.vars");
 import("system.neon");
 
-var entityTitle = vars.get("$param.EntityTitle_param");
+var entityTitle = vars.get("$param.EntityId_param");
 
 if (entityTitle != undefined && entityTitle != null && entityTitle != "") {
     result.string(neon.COMPONENTSTATE_READONLY);
diff --git a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
index d6e5c24e75eed9d70d14526054b11a129a22f83b..9af4d04f98f855a4ac508c84de3efe76fa26ecdc 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js
@@ -5,8 +5,8 @@ import("system.neon");
 var recordstate = vars.get("$sys.recordstate");
 var entity = "";
 
-if(vars.exists("$param.EntityTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
-    entity = vars.get("$param.EntityTitle_param"); 
+if(vars.exists("$param.EntityId_param") && recordstate == neon.OPERATINGSTATE_NEW) {
+    entity = vars.get("$param.EntityId_param"); 
 } else {
     entity = vars.get("$field.ENTITY");
 }
diff --git a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
index 2451eaf8b61ddfb81691af626c0e388f80b07cc1..dd624541a8d9d3bc51548ef10d3d536cd41f7f4a 100644
--- a/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/displayValueProcess.js
@@ -6,8 +6,8 @@ import("system.neon");
 var recordstate = vars.get("$sys.recordstate");
 var role = "";
 
-if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
-    role = vars.get("$param.RoleTitle_param");
+if (vars.exists("$param.RoleName_param") && recordstate == neon.OPERATINGSTATE_NEW) {
+    role = vars.get("$param.RoleName_param");
 } else {
     role = vars.get("$this.value"); // this.value is already role title - role name gets converted to role title in contentProcess
 }
diff --git a/entity/PermissionDetail_entity/entityfields/role/stateProcess.js b/entity/PermissionDetail_entity/entityfields/role/stateProcess.js
index f5fec84a8c27d08002a0d7e50ab9aa4839078944..2a216166d092e128f9b3d2d8f544b6a8c8c7ddad 100644
--- a/entity/PermissionDetail_entity/entityfields/role/stateProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/stateProcess.js
@@ -2,7 +2,7 @@ import("system.result");
 import("system.vars");
 import("system.neon");
 
-var roleTitle = vars.get("$param.RoleTitle_param");
+var roleTitle = vars.get("$param.RoleName_param");
 
 if (roleTitle != undefined && roleTitle != null && roleTitle != "") {
     result.string(neon.COMPONENTSTATE_READONLY);
diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
index 83a1eb4e203e560ee9f4be26a3e1fed3886bbe8e..a085bf7a670d5f99bee99966ea01e134a3af6e8e 100644
--- a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
+++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js
@@ -6,8 +6,8 @@ import("system.neon");
 var recordstate = vars.get("$sys.recordstate");
 var role = "";
 
-if (vars.exists("$param.RoleTitle_param") && recordstate == neon.OPERATINGSTATE_NEW) {
-    role = vars.get("$param.RoleTitle_param");
+if (vars.exists("$param.RoleName_param") && recordstate == neon.OPERATINGSTATE_NEW) {
+    role = vars.get("$param.RoleName_param");
 } else {
     role = PermissionUtil.resolveRoleTitle(vars.get("$this.value"));
 }
diff --git a/entity/PermissionDetail_entity/iconIdProcess.js b/entity/PermissionDetail_entity/iconIdProcess.js
index a1d937f1db6a42a70921758a3cf759f1701701ad..a52fc0e601bfdae5f3d3676d6ca0ec9b3e9ceff1 100644
--- a/entity/PermissionDetail_entity/iconIdProcess.js
+++ b/entity/PermissionDetail_entity/iconIdProcess.js
@@ -3,9 +3,9 @@ import("system.result");
 
 switch (vars.get("$field.ACCESSTYPE")) {
     case "E":
-        if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
+        if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
             result.string("VAADIN:CONNECT");
-        } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
+        } else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
             result.string("VAADIN:USER_CHECK");
         }
         break;
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
index af8f904bf6b375b2f4ffd304214a0879a3f6d5cf..64e6cf96666fb928990c9c5b01372351b4050c4e 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
@@ -52,10 +52,10 @@ else if (entitiesUsePermFlagSet.length > 0)
     querySelect.and(newWhereIfSet("ASYS_PERMISSIONSET.FIELD_ID", fieldsUsePermFlagSet, SqlBuilder.IN(), undefined, alias)
                               .or("FIELD_ID is NULL"));
     
-    if (vars.get("$param.RoleTitle_param")) {
-        querySelect.and("ASYS_PERMISSIONSET.ROLE_ID", "$param.RoleTitle_param")
-    } else if (vars.get("$param.EntityTitle_param")) {
-        querySelect.and("ASYS_PERMISSIONSET.ENTITY_ID", "$param.EntityTitle_param")
+    if (vars.get("$param.RoleName_param")) {
+        querySelect.and("ASYS_PERMISSIONSET.ROLE_ID", "$param.RoleName_param")
+    } else if (vars.get("$param.EntityId_param")) {
+        querySelect.and("ASYS_PERMISSIONSET.ENTITY_ID", "$param.EntityId_param")
     }
     
     // get all permissions which are already in db
@@ -206,7 +206,7 @@ function sortResultsByCondition(a, b) {
 }
 
 function sortResultByTitleAlphabetically(a, b) {
-    if (vars.get("$param.RoleTitle_param")) {
+    if (vars.get("$param.RoleName_param")) {
         if (a[1] < b[1]) return -1;
         if (a[1] > b[1]) return 1;
         return 0;
diff --git a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
index 6c80e3e90f082da76319817007d6a006c1349bd2..1cff5303d35856f42af96b2896a48af5c973465a 100644
--- a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
+++ b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod
@@ -52,7 +52,7 @@
       <refreshParent v="true" />
       <children>
         <entityParameter>
-          <name>EntityTitle_param</name>
+          <name>EntityId_param</name>
           <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
@@ -61,13 +61,19 @@
         <entityName>PermissionOverview_entity</entityName>
         <fieldName>PermissionOverviews</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>EntityId_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>PermissionDetails</name>
       <refreshParent v="true" />
       <children>
         <entityParameter>
-          <name>EntityTitle_param</name>
+          <name>EntityId_param</name>
           <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
@@ -76,6 +82,12 @@
         <entityName>PermissionDetail_entity</entityName>
         <fieldName>Permissions</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>EntityId_param</name>
+          <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityParameter>
       <name>EntityName_param</name>
diff --git a/entity/PermissionOverview_entity/PermissionOverview_entity.aod b/entity/PermissionOverview_entity/PermissionOverview_entity.aod
index 70dfee92a9a3555047c7503b3f829a8ff6be0df7..f0e8a0786144a64086670e6506476e93f625f4de 100644
--- a/entity/PermissionOverview_entity/PermissionOverview_entity.aod
+++ b/entity/PermissionOverview_entity/PermissionOverview_entity.aod
@@ -76,12 +76,12 @@
       </dependencies>
     </entityProvider>
     <entityParameter>
-      <name>RoleTitle_param</name>
+      <name>RoleName_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
     <entityParameter>
-      <name>EntityTitle_param</name>
+      <name>EntityId_param</name>
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
diff --git a/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js b/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js
index 4dc06d1921917b2bf4fbad084eed77af247ba273..5973b8dab2349f1dc0538156f49abdb96e65740e 100644
--- a/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js
+++ b/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js
@@ -2,8 +2,8 @@ import("system.result");
 import("system.vars");
 import("system.translate");
 
-if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
+if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
     result.string(translate.text("Entity"));
-} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
+} else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
     result.string(translate.text("Role"));
 }
\ No newline at end of file
diff --git a/entity/PermissionOverview_entity/iconIdProcess.js b/entity/PermissionOverview_entity/iconIdProcess.js
index df51be0f8f1a0e175ed2c78421459b46cc76721d..48a0dccaacf8b151c0628908159a1ad5899e4fa3 100644
--- a/entity/PermissionOverview_entity/iconIdProcess.js
+++ b/entity/PermissionOverview_entity/iconIdProcess.js
@@ -1,8 +1,8 @@
 import("system.vars");
 import("system.result");
 
-if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
+if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
     result.string("VAADIN:CONNECT");
-} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
+} else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
     result.string("VAADIN:USER_CHECK");
 }
\ No newline at end of file
diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
index 293144a2513456337e2e290106ec4020e21269a3..74858275777a3decccb191074f1cf3c611ca0333 100644
--- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js
@@ -25,8 +25,8 @@ for each (let entityMetaData in entitiesMetaData) {
 var rolesOrEntitiesSelect = new SqlBuilder(alias).where();
 var rolesOrEntities = [];
 
-if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
-    roleName = vars.getString("$param.RoleTitle_param");
+if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
+    roleName = vars.getString("$param.RoleName_param");
     if (roleName == roleInternalEveryone) {
         var counter = 0;
         for each (let entityUsePermFlagSet in entitiesUsePermFlagSet) {
@@ -39,8 +39,8 @@ if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param"))
     rolesOrEntitiesSelect.select("distinct ASYS_PERMISSIONSET.ENTITY_ID")
         .from("ASYS_PERMISSIONSET")
         .and("ASYS_PERMISSIONSET.ROLE_ID", roleName);
-} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
-    entityName = vars.getString("$param.EntityTitle_param");
+} else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
+    entityName = vars.getString("$param.EntityId_param");
     if (PermissionUtil.getNumberOfPermissions(entityName, roleInternalEveryone) == 0) {
         // no permissions for INTERNAL_EVERYONE found -> display X's for all actions
         res.push(["NOREALPERMINDB", roleInternalEveryone, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]);
@@ -56,9 +56,9 @@ rolesOrEntities = rolesOrEntitiesSelect
 
 var entityPermSetId = "";
 for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists
-    if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
+    if (vars.exists("$param.RoleName_param") && vars.get("$param.RoleName_param")) {
         entityPermSetId = PermissionUtil.getSetRoot(roleName, entry);
-    } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
+    } else if (vars.exists("$param.EntityId_param") && vars.get("$param.EntityId_param")) {
         entityPermSetId = PermissionUtil.getSetRoot(entry, entityName);
     }
     var recordPermSetId = newSelect("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID", alias)
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index f0e58d37b3a62f85a3c86ff1d846df90adcaff02..ec5c4ba86dfbc45651ad2f2904b1ef484958f796 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -7,6 +7,7 @@
   <title>Contact</title>
   <siblings>
     <element>Address_entity</element>
+    <element>Contact_entity</element>
   </siblings>
   <grantDeleteProcess>%aditoprj%/entity/Person_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess>
@@ -1433,6 +1434,12 @@
         <fieldName>#PROVIDER</fieldName>
       </dependency>
     </entityConsumer>
+    <entityActionField>
+      <name>deleteFunction</name>
+      <title>Delete this Function</title>
+      <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/deletefunction/onActionProcess.js</onActionProcess>
+      <stateProcess>%aditoprj%/entity/Person_entity/entityfields/deletefunction/stateProcess.js</stateProcess>
+    </entityActionField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Person_entity/entityfields/deletefunction/onActionProcess.js b/entity/Person_entity/entityfields/deletefunction/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..083e2d8b0d3d0649e0984e06b3947a6ae709fd3e
--- /dev/null
+++ b/entity/Person_entity/entityfields/deletefunction/onActionProcess.js
@@ -0,0 +1,40 @@
+import("system.entities");
+import("system.neon");
+import("Workflow_lib");
+import("Context_lib");
+import("DuplicateScanner_lib");
+import("Sql_lib");
+import("system.vars");
+
+var personId = vars.get("$field.PERSONID");
+
+var contactIds = newSelect("count(CONTACT.CONTACTID)")
+                            .from("CONTACT")
+                            .join("PERSON", "CONTACT.PERSON_ID = PERSON.PERSONID")
+                            .where("PERSON.PERSONID", personId)
+                            .cell();
+if(contactIds > 1)
+{
+    var contactId = vars.get("$field.CONTACTID");
+
+    var config = entities.createConfigForDeletingRows().entity("Contact_entity").uid(contactId);
+    
+    entities.deleteRow(config);
+    
+    DuplicateScannerUtils.deleteCachedDuplicate(contactId);
+
+    new AttributeRelationQuery(contactId, null, ContextUtils.getCurrentContextId())
+        .deleteAllAttributes();
+
+    newWhere("COMMUNICATION.CONTACT_ID", contactId).deleteData();
+    newWhere("ADDRESS.CONTACT_ID", contactId).deleteData();
+    newWhere("COMMRESTRICTION.CONTACT_ID", contactId).deleteData();
+    newWhere("AB_APPOINTMENTLINK.OBJECT_TYPE", "Person")
+    .and("AB_APPOINTMENTLINK.OBJECT_ROWID", contactId).deleteData();
+    newWhere("AB_ATTRIBUTERELATION.OBJECT_TYPE", "Person")
+    .and("AB_ATTRIBUTERELATION.OBJECT_ROWID", contactId).deleteData();
+
+    WorkflowSignalSender.deleted();
+    
+    neon.closeImage(vars.get("$sys.currentimage"), true); //ToDo: #1070797 This should probably not be necessary 
+}
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/deletefunction/stateProcess.js b/entity/Person_entity/entityfields/deletefunction/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1b946d06bd61d13e75b51286466d8fbcd8d9f41
--- /dev/null
+++ b/entity/Person_entity/entityfields/deletefunction/stateProcess.js
@@ -0,0 +1,20 @@
+import("system.result");
+import("system.neon");
+import("Sql_lib");
+import("system.vars");
+
+var res = neon.COMPONENTSTATE_DISABLED;
+
+var personId = vars.get("$field.PERSONID");
+
+var contactIds = newSelect("count(CONTACT.CONTACTID)")
+                            .from("CONTACT")
+                            .join("PERSON", "CONTACT.PERSON_ID = PERSON.PERSONID")
+                            .where("PERSON.PERSONID", personId)
+                            .cell();
+if(contactIds > 1)
+{
+    res = neon.COMPONENTSTATE_EDITABLE;
+}
+
+result.string(res);
\ No newline at end of file
diff --git a/entity/QuickEntry_entity/recordcontainers/jdito/onInsert.js b/entity/QuickEntry_entity/recordcontainers/jdito/onInsert.js
index aa0f51c76fd12f0f2b68af5357d04ea7f1303952..d356c25a42ac666f57272596da429d9afa741fd1 100644
--- a/entity/QuickEntry_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/QuickEntry_entity/recordcontainers/jdito/onInsert.js
@@ -25,7 +25,7 @@ if (rowdata["ORGANISATION_NAME.value"])
         "USER_NEW_CONTACT": userNew,
         "DATE_NEW_CONTACT" : dateNew,
         "STATUS" : $KeywordRegistry.contactStatus$active(),
-        "ISOLANGUAGE" : rowdata["ISOLANGUAGE.value"]
+        "LANGUAGE" : rowdata["ISOLANGUAGE.value"]
     });
     
     entities.createRow(configOrg);
@@ -55,7 +55,7 @@ if (rowdata["LASTNAME.value"])
         "CONTACTID": rowdata["PERSON_CONTACT_ID.value"],
         "ORGANISATION_ID": organisationId,
         "STATUS" : $KeywordRegistry.contactStatus$active(),
-        "ISOLANGUAGE": rowdata["ISOLANGUAGE.value"]
+        "LANGUAGE": rowdata["ISOLANGUAGE.value"]
     });
     
     entities.createRow(configPer);
diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod
index cb7d090b6506b259734f2a52ee4e40639f896c31..b2d23b5d87cd6cc41b29d3cbee11c913218217c3 100644
--- a/entity/Role_entity/Role_entity.aod
+++ b/entity/Role_entity/Role_entity.aod
@@ -41,6 +41,12 @@
     </entityField>
     <entityConsumer>
       <name>TheirPermissions</name>
+      <children>
+        <entityParameter>
+          <name>RoleName_param</name>
+          <valueProcess>%aditoprj%/entity/Role_entity/entityfields/theirpermissions/children/roletitle_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
       <children>
         <entityParameter>
           <name>RoleTitle_param</name>
@@ -57,7 +63,7 @@
       <name>PermissionOverviews</name>
       <children>
         <entityParameter>
-          <name>RoleTitle_param</name>
+          <name>RoleName_param</name>
           <valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
index cf3462e69ddf08a90ec5e2a230b1c0d8bcdd3856..2120bd1a538559a9c50f8af3831405f0471cfb70 100644
--- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
+++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js
@@ -16,7 +16,7 @@ var sql = newSelect(isCount ? "1" : columns)
     .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID")
         .and("CLASSIFICATION.OBJECT_TYPE", "Salesproject")
         .and("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationId))
-    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.CLASSIFICATIONSCORE_ID")
+    .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID = CLASSIFICATION.VALUE")
     .whereIfSet(condition.trim())
     .groupBy(groupedColumns);
 
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 6a411bf77a0d1f729463e3c860da695cb782442b..a758af9c942cc250d654bdd434668da16fd5c0b7 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7614,9 +7614,27 @@
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>No Restrictions</key>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+    </entry>
     <entry>
       <key>The team must have at least one owner</key>
     </entry>
+    <entry>
+      <key>Delete this Function</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 6cd9555affc3bc6e5e7e4ebbb931855722fc4cc5..777c475f3627acbcb77f8713ad18a85ccfa8f34b 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -10,6 +10,10 @@
       <key>The max participants count can not be equal or less then 0</key>
       <value>Die maximale Teilnehmerzahl muss größer 0 sein!</value>
     </entry>
+    <entry>
+      <key>discounted Vat</key>
+      <value>Rbt. Mehrwertssteuer</value>
+    </entry>
     <entry>
       <key>Illegal Parent Operator in buildFilterObj-Function:</key>
       <value>Übergebener Operator ungültig in Funktion "buildFilterObj"</value>
@@ -38,6 +42,10 @@
       <key>Private</key>
       <value>Privat</value>
     </entry>
+    <entry>
+      <key>discounted Price</key>
+      <value>Rbt. Betrag netto</value>
+    </entry>
     <entry>
       <key>Add app</key>
       <value>App hinzufügen</value>
@@ -202,6 +210,10 @@
       <key>Sender address</key>
       <value>Senderadresse</value>
     </entry>
+    <entry>
+      <key>The selected Contact doesn't have an address set.</key>
+      <value>Der ausgewählte Kontakt hat keine Adresse festgelegt.</value>
+    </entry>
     <entry>
       <key>Complete tasks</key>
       <value>Aufgaben abschließen</value>
@@ -2847,6 +2859,10 @@
       <key>Guam</key>
       <value>Guam</value>
     </entry>
+    <entry>
+      <key>Subtotal</key>
+      <value>Zwischensumme</value>
+    </entry>
     <entry>
       <key>Lesotho</key>
       <value>Lesotho</value>
@@ -4463,6 +4479,10 @@
       <key>Salesproject milestone Id</key>
       <value>VertriebsprojektsmeilensteinId</value>
     </entry>
+    <entry>
+      <key>without Vat</key>
+      <value>ohne UmSt.</value>
+    </entry>
     <entry>
       <key>Appointment Id</key>
       <value>Termin Id</value>
@@ -8385,7 +8405,6 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Subcategory</key>
-      <value>Unterkategorie</value>
     </entry>
     <entry>
       <key>The radius has to be at least %0.</key>
@@ -8659,6 +8678,10 @@ Bitte Datumseingabe prüfen</value>
       <key>My Calendar</key>
       <value>Mein Kalender</value>
     </entry>
+    <entry>
+      <key>Invoice Discount</key>
+      <value>Rechnungsrabatt</value>
+    </entry>
     <entry>
       <key>Variable</key>
       <value>Variable</value>
@@ -9546,6 +9569,10 @@ Bitte Datumseingabe prüfen</value>
       <key>Date (Month)</key>
       <value>Datum (Monat)</value>
     </entry>
+    <entry>
+      <key>Delete this Function</key>
+      <value>Diese Funktion löschen</value>
+    </entry>
     <entry>
       <key>Date (Year)</key>
       <value>Datum (Jahr)</value>
@@ -9903,6 +9930,10 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Messages</key>
     </entry>
+    <entry>
+      <key>incl. Vat</key>
+      <value>inkl. UmSt.</value>
+    </entry>
     <entry>
       <key>Channel Name</key>
     </entry>
@@ -10039,15 +10070,32 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>My campaigns</key>
     </entry>
-    <entry>
-      <key>Subcategory</key>
-    </entry>
     <entry>
       <key>Campaign costs</key>
     </entry>
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>No Restrictions</key>
+      <value>Keine Einschränkungen</value>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+      <value>Bewertungen in Prozent</value>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+      <value>Maximale Punktzahl</value>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+      <value>Bist du dir sicher, dass du alle Klassifizierungen anhand der konfigurierten Bewertungen neuberechnen willst?</value>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+      <value>Filter gesetzt</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 82147cf013dc88e2e619220ee2d1af350c3675d9..d814ed36cd51e1f102adc00c99214b1d22e83e4a 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7695,9 +7695,27 @@
     <entry>
       <key>Verantwortlicher</key>
     </entry>
+    <entry>
+      <key>No Restrictions</key>
+    </entry>
+    <entry>
+      <key>Gradings in Percent</key>
+    </entry>
+    <entry>
+      <key>Max Points</key>
+    </entry>
+    <entry>
+      <key>Are you sure you want to reload all classifications using the current classificationgradings?</key>
+    </entry>
+    <entry>
+      <key>Filter set</key>
+    </entry>
     <entry>
       <key>The team must have at least one owner</key>
     </entry>
+    <entry>
+      <key>Delete this Function</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Classification/Classification.aod b/neonContext/Classification/Classification.aod
index b6c29daeda62c2747e8e1f8ba59e94c5b727ada8..07bc14712048df8b6962b9852069175b5954d472 100644
--- a/neonContext/Classification/Classification.aod
+++ b/neonContext/Classification/Classification.aod
@@ -3,6 +3,7 @@
   <name>Classification</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonContext/Classification/documentation.adoc</documentation>
+  <filterView>ClassificationTree_view</filterView>
   <previewView>ClassificationPreview_view</previewView>
   <entity>Classification_entity</entity>
   <references>
diff --git a/neonContext/MSTeamsMessage/MSTeamsMessage.aod b/neonContext/MSTeamsMessage/MSTeamsMessage.aod
index ecf21a7e76897a9415073d8108020d36522d2d4d..3e2fdddb1fd203df7b6ab0bc1243e94fd3ab92d2 100644
--- a/neonContext/MSTeamsMessage/MSTeamsMessage.aod
+++ b/neonContext/MSTeamsMessage/MSTeamsMessage.aod
@@ -3,6 +3,7 @@
   <name>MSTeamsMessage</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterView>MSTeamsMessageFilter_view</filterView>
+  <lookupView>MSTeamsMessageFilter_view</lookupView>
   <entity>MSTeamsMessage_entity</entity>
   <references>
     <neonViewReference>
diff --git a/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
index b3c80308e0208093dbb468c21c5f2a227db7c5ac..fa695d764b70226d806e36091b5b5501a663db07 100644
--- a/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
+++ b/neonView/ClassificationAdminEdit_view/ClassificationAdminEdit_view.aod
@@ -26,6 +26,10 @@
           <name>66ce2c02-1cd3-4867-91a6-825655d6d16a</name>
           <entityField>CLASSIFICATIONGROUP</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>a3b4429d-9d40-4057-9df3-7bcbb1664853</name>
+          <entityField>CLASSIFICATIONGROUPDISPLAYVALUE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>5493520c-27d9-4333-a804-02c07b0b0747</name>
           <entityField>SORTING</entityField>
@@ -38,6 +42,14 @@
           <name>91f2555e-214c-44f0-8798-029b94be9c00</name>
           <entityField>CLASSIFICATIONTYPEIDDISPLAYVALUE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>274fd441-b0c3-48c2-8b4e-d4cace69946c</name>
+          <entityField>SCOREPOINTS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>1d35951d-1661-4a5d-93bc-323f11f35667</name>
+          <entityField>classificationTypeFilter</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
   </children>
diff --git a/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod b/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
index 66bc95107a363eda4d20e2da950fd06c3a332987..3528f67c437def5cc586aae0446a5c97702545b1 100644
--- a/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
+++ b/neonView/ClassificationAdminFilter_view/ClassificationAdminFilter_view.aod
@@ -21,6 +21,14 @@
           <name>2e04e92e-9af8-46a6-9845-8bf822cd05f3</name>
           <entityField>#CONTENTTITLE</entityField>
         </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>0d27f1ef-91e3-44fd-9514-e666ac10748e</name>
+          <entityField>SCOREPOINTS</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>e9a13e67-4a9c-4086-b7c3-2d1bfcc0b721</name>
+          <entityField>classificationTypeFilter</entityField>
+        </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
   </children>
diff --git a/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod b/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
index 2a66faca02e59683ff6ea9d27365ea4c6b92cffd..dccec06d69c0b15d435d7493eb4f25e8db859349 100644
--- a/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
+++ b/neonView/ClassificationGradingMultipleEdit_view/ClassificationGradingMultipleEdit_view.aod
@@ -17,8 +17,8 @@
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTitledListTableColumn>
-          <name>9fffb1ac-b842-4c1c-9f81-85a17d78f649</name>
-          <entityField>MAXGRADEFORSCORE</entityField>
+          <name>f9becf36-1a76-4121-a999-8b1fb9619650</name>
+          <entityField>MINPERCENT</entityField>
         </neonTitledListTableColumn>
       </columns>
     </titledListViewTemplate>
diff --git a/neonView/ClassificationPreview_view/ClassificationPreview_view.aod b/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
index 099382a2e2dccd5a9ec78daef6edf2a29b74b84d..06dfaaaccaf59b9d2aa3cf307d538e7e57960ba9 100644
--- a/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
+++ b/neonView/ClassificationPreview_view/ClassificationPreview_view.aod
@@ -19,9 +19,13 @@
       <hideEmptyFields v="false" />
       <entityField>#ENTITY</entityField>
       <fields>
+        <entityFieldLink>
+          <name>7e79491f-5891-4fd7-b6e1-1045865f36f6</name>
+          <entityField>CLASSIFICATIONTYPEID</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>dfdbc6f4-4859-495b-96e7-0853bdbc611f</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+          <entityField>VALUE</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
diff --git a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
index 20524c3da830f14a171723be27f487813ccf31f4..15f3f6c2d0dc55ff6226d35f5df4176a1ad15c07 100644
--- a/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
+++ b/neonView/ClassificationScoreMultipleEdit_view/ClassificationScoreMultipleEdit_view.aod
@@ -15,8 +15,12 @@
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTitledListTableColumn>
-          <name>d56f97c1-a634-4b12-8dd3-c2c32a9e16f1</name>
-          <entityField>SCORE</entityField>
+          <name>8c04eb99-5721-49ff-8db1-90461e11e55e</name>
+          <entityField>SCOREPERCENT</entityField>
+        </neonTitledListTableColumn>
+        <neonTitledListTableColumn>
+          <name>6e729412-1533-4067-a709-5229341037cf</name>
+          <entityField>scoreInPoints</entityField>
         </neonTitledListTableColumn>
       </columns>
     </titledListViewTemplate>
diff --git a/neonView/ClassificationTree_view/ClassificationTree_view.aod b/neonView/ClassificationTree_view/ClassificationTree_view.aod
index 7c7200def91c52a3759349f831010d700606509f..e047078bcdbb14c6fe8b3a9525028c1417ab728c 100644
--- a/neonView/ClassificationTree_view/ClassificationTree_view.aod
+++ b/neonView/ClassificationTree_view/ClassificationTree_view.aod
@@ -13,17 +13,22 @@
       <hideActions v="true" />
       <showChildrenCount v="false" />
       <entityField>#ENTITY</entityField>
+      <linkedColumns />
       <defaultGroupFields>
         <element>CLASSIFICATIONGROUP</element>
       </defaultGroupFields>
       <columns>
         <neonTreeTableColumn>
-          <name>246c0212-dadb-4d71-9567-ceab37e9ef10</name>
-          <entityField>SCORETYPE</entityField>
+          <name>5541a641-81c8-46d4-a5c9-e32a8edb8f80</name>
+          <entityField>CLASSIFICATIONTYPEID</entityField>
         </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>9a62baa4-71cf-4b9d-8cd6-883b233a9b84</name>
-          <entityField>CLASSIFICATIONSCORE_ID</entityField>
+          <entityField>VALUE</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>6ce4567b-d3fb-4be1-9557-46e0f24108d0</name>
+          <entityField>SCOREPOINTS</entityField>
         </neonTreeTableColumn>
       </columns>
     </treeTableViewTemplate>
diff --git a/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod b/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
index e9a3e74a76cb8ed1dfd9e3524065853bf9910330..b7248e380f9ab9338b0f12a07ba0c4eb698399c9 100644
--- a/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
+++ b/neonView/ClassificationTypePreview_View/ClassificationTypePreview_View.aod
@@ -2,6 +2,7 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.7" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.7">
   <name>ClassificationTypePreview_View</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="false" />
   <layout>
     <headerFooterLayout>
       <name>layout</name>
@@ -11,6 +12,7 @@
   <children>
     <genericViewTemplate>
       <name>generic</name>
+      <editMode v="false" />
       <entityField>#ENTITY</entityField>
       <fields>
         <entityFieldLink>
@@ -26,8 +28,12 @@
           <entityField>SCORETYPE</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>d070599e-2a60-4de2-ae65-efda4943d199</name>
-          <entityField>infoField</entityField>
+          <name>1409747f-68c4-497d-960e-dd53510a63d7</name>
+          <entityField>SCOREPOINTS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a992e61b-1bfc-4241-a407-a03500880d85</name>
+          <entityField>FILTER</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
@@ -36,5 +42,9 @@
       <entityField>ClassificationScores</entityField>
       <view>ClassificationScoreMultipleEdit_view</view>
     </neonViewReference>
+    <actionsViewTemplate>
+      <name>action</name>
+      <entityField>#ENTITY</entityField>
+    </actionsViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod b/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
index c089822821e52c011004d916fe196c0d3f2b61f0..d6c1e6544c896792136357debd14151298eafd88 100644
--- a/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
+++ b/neonView/MSTeamsActivityImportEdit_view/MSTeamsActivityImportEdit_view.aod
@@ -22,16 +22,9 @@
       </fields>
     </genericViewTemplate>
     <neonViewReference>
-      <name>e486a1bb-5deb-432a-aa28-c3872f0f88fc</name>
+      <name>59b3d882-d067-43eb-b19b-f52758c9d10b</name>
       <entityField>Messages</entityField>
       <view>MSTeamsMessageFilter_view</view>
     </neonViewReference>
-    <actionsViewTemplate>
-      <name>Actions</name>
-      <actions>
-        <element>loadNextMessages</element>
-      </actions>
-      <entityField>#ENTITY</entityField>
-    </actionsViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod b/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
index 017eb32c7d626d7b970a03ed7ff4ff2e479a56f1..db8af51a511e4733298227797c361f7aecc4ce30 100644
--- a/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
+++ b/neonView/MSTeamsDocumentEdit_view/MSTeamsDocumentEdit_view.aod
@@ -26,5 +26,11 @@
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
+    <actionsViewTemplate>
+      <name>Actions</name>
+      <actions>
+        <element>importDocuments</element>
+      </actions>
+    </actionsViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod b/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
index 469ba0bec31d6149eecec43077644d0625eb7ecf..b784c3075e1bcf269521e0cfbe78e7bdf388d519 100644
--- a/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
+++ b/neonView/MSTeamsMessageFilter_view/MSTeamsMessageFilter_view.aod
@@ -27,5 +27,11 @@
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
+    <actionsViewTemplate>
+      <name>ImportAction</name>
+      <actions>
+        <element>importMessages</element>
+      </actions>
+    </actionsViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod
index 3d4de5a7dc5fefa2bd15b025468a6082e10f171d..37b79ebaaa60ed1e412ff2cd67900352df527fa8 100644
--- a/neonView/OfferEdit_view/OfferEdit_view.aod
+++ b/neonView/OfferEdit_view/OfferEdit_view.aod
@@ -36,6 +36,10 @@
           <name>768683f3-08c8-4e85-bb4c-7e5c74a8dec0</name>
           <entityField>OFFERDATE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>35804879-e866-477a-a0e6-9fea1506fc1d</name>
+          <entityField>DISCOUNT</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name>
           <entityField>CURRENCY</entityField>
diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod
index 5cff758218dd6ff41acd29eef9b95cb8b4a985bf..8162e949f1273de2af5dfa0a4a204ce6033bfe6e 100644
--- a/neonView/OfferPreview_view/OfferPreview_view.aod
+++ b/neonView/OfferPreview_view/OfferPreview_view.aod
@@ -67,10 +67,18 @@
           <name>d7ca2b66-5e7a-4951-a89b-fbeab0f4f798</name>
           <entityField>NET</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>3e9e37e2-6756-41c2-ace7-6ff094dc78c1</name>
+          <entityField>DISCOUNTED_NET</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>c50dec3f-5468-4196-be88-a413ae3947de</name>
           <entityField>VAT</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>5cc461e4-fd0f-47e6-ab06-886a18621c31</name>
+          <entityField>DISCOUNTED_VAT</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>43972a26-67f7-4fb5-9107-111731d326af</name>
           <entityField>TotalGross</entityField>
@@ -99,6 +107,10 @@
           <name>a3a9ee30-bdd2-4907-b215-d4b4adcc0f1d</name>
           <entityField>DELIVERYTERMS</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>b67494ee-f7c1-4002-a550-50ce1eac5020</name>
+          <entityField>DISCOUNT</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
     <neonViewReference>
diff --git a/neonView/OrderFilter_view/OrderFilter_view.aod b/neonView/OrderFilter_view/OrderFilter_view.aod
index 329fad392be076770b345315d413a0bc5777bf07..dade5ff2b8a906b361a842106235eb3d54985677 100644
--- a/neonView/OrderFilter_view/OrderFilter_view.aod
+++ b/neonView/OrderFilter_view/OrderFilter_view.aod
@@ -51,7 +51,7 @@
   <children>
     <tableViewTemplate>
       <name>Orders</name>
-      <inlineEdit v="true" />
+      <inlineEdit v="false" />
       <iconField>IMAGE</iconField>
       <titleField>SALESORDERCODE</titleField>
       <subtitleField>ORDERSTATUS</subtitleField>
diff --git a/neonView/RoleChildrenList_view/RoleChildrenList_view.aod b/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
index 149c223100cad88892c6fb383da176b690ca0a30..e7c06076a1e2ad402702d6bd5d8a6ebcd8a12ad0 100644
--- a/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
+++ b/neonView/RoleChildrenList_view/RoleChildrenList_view.aod
@@ -10,16 +10,12 @@
   <children>
     <titledListViewTemplate>
       <name>TitledList</name>
+      <titleField>CHILD_ROLE</titleField>
+      <titleFieldFullWidth v="true" />
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
       <isEditable v="false" />
       <isCreatable v="false" />
-      <columns>
-        <neonTitledListTableColumn>
-          <name>0451e2ec-e216-4d4f-8080-e6b9aaf56613</name>
-          <entityField>CHILD_ROLE</entityField>
-        </neonTitledListTableColumn>
-      </columns>
     </titledListViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/RoleParentList_view/RoleParentList_view.aod b/neonView/RoleParentList_view/RoleParentList_view.aod
index 357f92e53732c38b1de3f682ce6dff5fe3cab63d..740c95888f9b85c31d8ee1201f3f89c113875929 100644
--- a/neonView/RoleParentList_view/RoleParentList_view.aod
+++ b/neonView/RoleParentList_view/RoleParentList_view.aod
@@ -10,16 +10,12 @@
   <children>
     <titledListViewTemplate>
       <name>TitledList</name>
+      <titleField>PARENT_ROLE</titleField>
+      <titleFieldFullWidth v="true" />
       <entityField>#ENTITY</entityField>
       <isDeletable v="false" />
       <isEditable v="false" />
       <isCreatable v="false" />
-      <columns>
-        <neonTitledListTableColumn>
-          <name>cdc83256-2ea4-4a97-a323-b400a4037915</name>
-          <entityField>PARENT_ROLE</entityField>
-        </neonTitledListTableColumn>
-      </columns>
     </titledListViewTemplate>
   </children>
 </neonView>
diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js
index f3934b933660f8cb2ba2fe7b756d1b0094b87e7f..2d0507917a2047a0e9a8028ceb221045a9db3326 100644
--- a/process/Campaign_lib/process.js
+++ b/process/Campaign_lib/process.js
@@ -283,17 +283,17 @@ CampaignUtils.getDefaultCampaignStep = function(pCampaignId)
 /**
  * Returns the start date to the corresponding campaign id.<br>
  * 
- * @param {String} pCapmaignId                  <p>
+ * @param {String} pCampaignId                  <p>
  *                                              The corresponding campaign id.<br>
  * @return {String}                             <p>
  *                                              The end date in this format:<br>
  *                                              <b>yyyy-mm-dd</b>                                             
  */
-CampaignUtils.getCampaignStartDate = function(pCapmaignId)
+CampaignUtils.getCampaignStartDate = function(pCampaignId)
 {
     return newSelect("DATE_START")
         .from("CAMPAIGNSTEP")
-        .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId)
+        .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCampaignId)
         .orderBy("SORTING ASC")
         .cell(true);
 }
@@ -301,17 +301,17 @@ CampaignUtils.getCampaignStartDate = function(pCapmaignId)
 /**
  * Returns the end date to the corresponding campaign id.<br>
  * 
- * @param {String} pCapmaignId                          <p>
+ * @param {String} pCampaignId                          <p>
  *                                                      The corresponding campaign id.<br>
  * @return {String}                                     <p>
  *                                                      The end date in this format:<br>
  *                                                      <b>yyyy-mm-dd</b>                                                     
  */
-CampaignUtils.getCampaignEndDate = function(pCapmaignId)
+CampaignUtils.getCampaignEndDate = function(pCampaignId)
 {
     return newSelect("DATE_END")
         .from("CAMPAIGNSTEP")
-        .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId)
+        .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCampaignId)
         .orderBy("SORTING DESC")
         .cell(true);
 }
diff --git a/process/ClassificationFilter_lib/process.js b/process/ClassificationFilter_lib/process.js
index bf593e707733064fa47d17aa6fb2534d5785eec1..d99652fcf5c671b48ff348ea8cc7b6d9c9a1a7bc 100644
--- a/process/ClassificationFilter_lib/process.js
+++ b/process/ClassificationFilter_lib/process.js
@@ -19,6 +19,11 @@ function ClassificationTypeFilterUtils() {}
 
 /**
  * fetches classificationtypes and transforms them into filter fields
+ * <br/>
+ * <br/>
+ * Important: 
+ * <br/>
+ * Any changes to the name of the filterFields does also have to be changed in the filterTreeExcludeFieldsProcess of the filterField of the classificationAdmin_entity
  * 
  * @param {String} pObjectType       <p/> contextId of the context whoes classification types are used for providing the filter fields
  *                                      
@@ -51,7 +56,7 @@ ClassificationTypeFilterUtils.getFilterFields = function(pObjectType)
                 contentType: "TEXT",
                 hasDropDownValues: true,
                 isGroupable: true,          // These Fields are also able to be grouped
-                groupedRecordField: "CLASSIFICATION.CLASSIFICATIONSCORE_ID",  // The DB-field that is being grouped by (see also groupQueryProcess)
+                groupedRecordField: "CLASSIFICATION.VALUE",  // The DB-field that is being grouped by (see also groupQueryProcess)
                 titleRecordField: titleField     // The displayname (see also groupQueryProcess)
             });
     }
@@ -76,6 +81,7 @@ var classificationValue = newSelect("CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID,
                                         .where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classificationTypeId)
                                         .orderBy("CLASSIFICATIONSCORE.TITLE")
                                         .table();
+
                                         
 for (let i = 0; i < classificationValue.length; i++) 
     classificationValue[i][1] = translate.text(classificationValue[i][1])
@@ -115,14 +121,13 @@ ClassificationTypeFilterUtils.getFilterCondition = function(pCondition, pIdTable
 {
     var resSql;   
     
-    var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, "CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID");
+    var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, "CLASSIFICATION.VALUE");
         
     //a SqlBuilder.IN() in a newWhere is not used here since the subselect can contain a placeholder
     //(the variable condition) that would break the function
     resSql = pIdTableName + "." + pIdColumnName + " in (" + newSelect(pIdTableName + "." + pIdColumnName)
             .from(pIdTableName)
             .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATION.OBJECT_ROWID = " + pIdTableName + "." + pIdColumnName))
-            .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATION.CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
             .where(condition) + ")";
 
     return resSql;
@@ -142,7 +147,7 @@ ClassificationTypeFilterUtils.getTranslationSql = function()
         
 
         var rows = entities.getRows(config);
-        var res = SqlUtils.getResolvingCaseWhenFromObject(rows, "CLASSIFICATIONSCOREID", "translatedTitle", "CLASSIFICATIONSCORE_ID");
+        var res = SqlUtils.getResolvingCaseWhenFromObject(rows, "CLASSIFICATIONSCOREID", "translatedTitle", "VALUE");
         return res;
 }
 
@@ -210,6 +215,11 @@ function ClassificationGroupFilterUtils() {}
 
 /**
  * fetches classificationgroups and transforms them into filter fields
+ * <br/>
+ * <br/>
+ * Important: 
+ * <br/>
+ * Any changes to the name of the filterFields does also have to be changed in the filterTreeExcludeFieldsProcess of the filterField of the classificationAdmin_entity
  * 
  * @param {String} pObjectType       <p/> contextId of the context whoes classification groups are used for providing the filter fields
  *                                      
@@ -239,7 +249,7 @@ ClassificationGroupFilterUtils.getFilterFields = function(pObjectType)
     classificationGroups.forEach(function(classificationGroup, idx){
         var classificationGroupId = classificationGroup["CLASSIFICATIONGROUPID"];
         var classificationGroupTitle = classificationGroup["#CONTENTTITLE"];
-
+        
         //"case when" needed since we want to group both the ones that have no classification for said classificationgroup ("-") 
         //and the ones that have null as the value (since not all datasets have a CLASSIFICATIONSTORAGE dataset) together
         // since both don't have an classification for that group
@@ -255,7 +265,7 @@ ClassificationGroupFilterUtils.getFilterFields = function(pObjectType)
             contentType: "TEXT",
             hasDropDownValues: true,
             isGroupable: true,
-            groupedRecordField: representingSqlExpression  //title and group valure are the same (for example a resulting "A")
+            groupedRecordField: representingSqlExpression  //title and group value are the same (for example a resulting "A")
         });
     });
     return JSON.stringify(res);
@@ -284,7 +294,7 @@ ClassificationGroupFilterUtils.getFilterValues = function(pFilter)
     var classificationValue = newSelect("CLASSIFICATIONGRADING.GRADING, CLASSIFICATIONGRADING.GRADING")
         .from("CLASSIFICATIONGRADING")
         .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroupId)
-        .orderBy("CLASSIFICATIONGRADING.MAXGRADEFORSCORE desc")
+        .orderBy("CLASSIFICATIONGRADING.MINPERCENT desc")
         .table();
 
     return classificationValue;
@@ -299,7 +309,7 @@ ClassificationGroupFilterUtils.getFilterValues = function(pFilter)
  */
 ClassificationGroupFilterUtils.makeFilterValues = function()
 {
-    var filter = vars.getString("$local.filter")
+    var filter = vars.getString("$local.filter");
     var res = ClassificationGroupFilterUtils.getFilterValues(filter);
     return res;
 };
@@ -326,11 +336,11 @@ ClassificationGroupFilterUtils.getFilterCondition = function(pObjectType, pFilte
     var decodedFilterName = ClassificationGroupFilterNameCoder.decode(pFilterName);
     var condition = StringUtils.replaceAll(pCondition, pColumnPlaceholder, decodedFilterName.representingSqlExpression);
     
-    //"case when" needed since we want to filter both the ones that have no classification for said classificationgroup ("-") 
+    //"or" needed since we want to filter both the ones that have no classification for said classificationgroup ("-") 
     //and the ones that have null as the value (since not all datasets have a CLASSIFICATIONSTORAGE dataset) the same way
     // since both don't have an classification for that group
     if(pOperatorName == "IS NULL")
-        condition += " OR " + decodedFilterName.representingSqlExpression +"='-'";
+        condition += " OR " + decodedFilterName.representingSqlExpression +"='-'" ;
     return condition;
 };
 
diff --git a/process/Classification_lib/process.js b/process/Classification_lib/process.js
index b0a5a6830003d7b1ec3ffc91cccd9c6897221938..a52b6fb0b21031a67548cc4141ff55780af557aa 100644
--- a/process/Classification_lib/process.js
+++ b/process/Classification_lib/process.js
@@ -1,3 +1,4 @@
+import("Dependency_lib");
 import("system.text");
 import("system.translate");
 import("system.result");
@@ -22,200 +23,25 @@ function ClassificationUtils() {}
  * This is done by 
  * 
 
- * @param {Number|String} pCurrentScore     <p/>Current score that is reached for a group, e.g. 45
+ * @param {Number|String} pAchievedScore   <p/>Current score that is reached for a group, e.g. 45
+ * @param {Number|String} pbestPossibleScore   <p/>Current score that is reached for a group, e.g. 45
  * @param {String} pGroupId                 <p/>UID of the classification group where the display value is determined. <br/>
  *                                          This is used for determing the maximum value of the group and the resulting 
  *                                          classificaiton value (for example: "B")
  * @param {String} pGroupName               <p/>Name of the group that was passed as ID. This is used as display value and will not be translated,
  *                                          you have to pass this value already translated to the target locale. <br/>
  *                                          The reason for not loading this value based on the groupId is: better performance optimization
+ * @param {Number|String} pGrading          <p/>Current score that is reached for a group, e.g. 45
  * @return {String}                         <p/>formated and translated title, e.g.: "1. Target Group: 45/120 points = B"
  */
-ClassificationUtils.formatDisplaySummaryForGroup = function(pCurrentScore, pGroupId, pGroupName) 
+ClassificationUtils.formatDisplaySummaryForGroup = function(pAchievedScore, pbestPossibleScore, pGroupId, pGroupName, pGrading) 
 {
-    var maxScore = ClassificationUtils.getMaxScore(pGroupId);
-    var classifications = ClassificationUtils.getClassifications(pCurrentScore, pGroupId);
-
-    pCurrentScore = text.formatDouble(pCurrentScore, "#");
-    maxScore = text.formatDouble(maxScore, "#");
-    var res = translate.withArguments("%0: %1/%2 points = %3", [pGroupName, pCurrentScore, maxScore, classifications]);
+    pCurrentScore = text.formatDouble(pAchievedScore, "#");
+    pbestPossibleScore = text.formatDouble(pbestPossibleScore, "#");
+    var res = translate.withArguments("%0: %1/%2 points = %3", [pGroupName, pAchievedScore, pbestPossibleScore, pGrading]);
     return res;
 };
 
-/**
- * Get the score of the classification. You can get all groups at once or only the score for one group.
- * 
-
- * @param {String} pObjectType                                  <p>
- *                                                              The object type.<br>
- * @param {String} pObjectRowid                                 <p>
- *                                                              The row id.<br>
- * @param {String} pClassificationGroup=undefined (optional)    <p>
- *                                                              The classification group. If it is undefined,<br>
- *                                                              the classification for all groups are returned <br>
- *                                                              as Object(-map)<br>
- * @return {Object}                                             <p>
- *                                                              Returns all scores as object-map.<br>
- *                                                              (e.g. {"scoreGroup1": 0, "scoreGroup2": 20})
- */
-ClassificationUtils.getScoreAsObject = function(pObjectType, pObjectRowid, pClassificationGroup)
-{
-    var score = newSelect("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, case when sum(score) is not null then sum(score) else 0 end")
-        .from("CLASSIFICATIONTYPE")
-        .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID")
-            .and("CLASSIFICATION.OBJECT_TYPE", pObjectType)
-            .and("CLASSIFICATION.OBJECT_ROWID", pObjectRowid))
-        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-        .andIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroup)
-        .groupBy("CLASSIFICATIONGROUP_ID")
-        .orderBy("CLASSIFICATIONGROUP_ID")
-        .table();
-        
-    var scores = {};
-    score.forEach(function(pRow)
-    {
-        scores[pRow[0]] = pRow[1];
-    });
-    return scores;
-}
-
-/**
- * Gets the scores of a Object, either for all of them or only for one group (depending on the pClassificationGroupId param, 
- * if it's set you get only the score of that group)
- * 
- * @param {String} pObjectType                                  <p>
- *                                                              The object type.<br>
- * @param {String} pObjectRowid                                 <p>
- *                                                              The row id. (UUID of the object, e.g: OrganisationId of Organisation)<br>
- * @param {String} pClassificationGroupId (optional)    <p>
- *                                                              The classification group id. If it is undefined,<br>
- *                                                              the classificationScores for all groups are returned <br>
- *                                                              as Object(-map)<br>
- * @return {Array}                                             <p>
- *                                                              Returns all scores in a Array with this structure:<br>
- *                                                              
- *                                                              [[ID, SCORE], [ID, SCORE], [ID, SCORE]];
- */
-ClassificationUtils.getScore = function(pObjectType, pObjectRowid, pClassificationGroupId)
-{
-    var scoreArray = [];
-    var score = newSelect("sum(score), CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
-        .from("CLASSIFICATIONTYPE")
-        .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID")
-            .and("CLASSIFICATION.OBJECT_TYPE", pObjectType)
-            .and("CLASSIFICATION.OBJECT_ROWID", pObjectRowid))
-        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-        .andIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroupId)
-        .groupBy("CLASSIFICATIONGROUP_ID")
-        .orderBy("CLASSIFICATIONGROUP_ID")
-        .table();
-
-    var sorting = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-                            .from("CLASSIFICATIONGROUP")
-                            .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-                            .orderBy("CLASSIFICATIONGROUP.SORTING")
-                            .table();
-
-    for (var i = 0; i < sorting.length; i++)
-    {
-        for (var ii = 0; ii < score.length; ii++) {
-            if(score[ii][1] == sorting[i][0])
-            {
-                scoreArray[i] = score[ii]
-            }
-        }
-    }
-        
-    return scoreArray;
-}
-
-/**
- * Get all classifications for one dataset as String.<br>
- * Each char represents one classification.<br>
- * 
- * @param {String} pScore           <p>
- *                                  The archieved score
- * @param {String} pClassificationGroupId  <p>     
- *                                  The Id of the Classification Group
- * @return {String}                 <p>
- *                                  Returns the corresponding classification.<br>
- */
-ClassificationUtils.getClassifications = function(pScore, pClassificationGroupId) 
-{
-    var score = pScore;
-    var classificationGroupId = pClassificationGroupId
-    var gradingTable = ClassificationUtils.getClassificationGrading(classificationGroupId);
-    var grade = "-";
-
-        
-    for(let i = 0; i < gradingTable.length; i++)
-    {
-            if(Number(score) <= Number(gradingTable[i][0]) && score !=0 && grade == "-")
-            {
-                grade = gradingTable[i][1];
-                break;
-            }
-    }
-    return grade;
-}
-
-/**
- * Gets the classification table <br>
- * 
- * @param {String} pClassificationGroupId  <p>     
- *                                  The Classification Group              
- * @return {String}                 <p>
- *                                  Returns the corresponding classification table, ordered by the maxscore ascending.<br>
- */
-ClassificationUtils.getClassificationGrading = function(pClassificationGroupId) 
-{
-    var config = entities.createConfigForLoadingRows()
-        .entity("ClassificationGrading_entity")
-        .addParameter("ClassificationTypeId_param", pClassificationGroupId)
-        .fields(["MAXGRADEFORSCORE", "GRADING"])
-        .ignorePermissions(true);
-        
-    var gradings = entities.getRows(config);
-    ArrayUtils.sortArrayOfObjects(gradings, "MAXGRADEFORSCORE", true, true);
-    gradings = gradings.map(function (row){
-        return [row["MAXGRADEFORSCORE"], row["GRADING"]];
-    });
-    return gradings;
-}
-
-/**@cl
- * Gets the maximum score for one group depending on the pClassificationGroupId param.
- * 
- * @param {String} pClassificationGroupId                       <p>
- *                                                              The classification groupname.<br>
- * @return {String}                                             <p>
- *                                                              Returns the maximum possible score of the chosen group.<br>
- *                                                              
- */
-ClassificationUtils.getMaxScore = function(pClassificationGroupId)
-{
-    var sumMaxScore = 0;
-    
-    var config = entities.createConfigForLoadingRows()
-                    .entity("ClassificationType_entity")
-                    .ignorePermissions(true)
-                    .addParameter("ClassificationGroupId_param", pClassificationGroupId)
-                    .fields(["maxScore"]);
-    var scores = entities.getRows(config);
-                            
-    for (let i = 0; i < scores.length; i++)
-    {
-        var maxScore = scores[i]["maxScore"];
-        if (maxScore)
-            sumMaxScore = eMath.addInt(sumMaxScore, parseInt(maxScore));
-    }
-    
-    return sumMaxScore;
-}
-
 /**
  * Get all possible groupnames for a classificationtype.<br>
  * Either as [["group", "group"]] (for the possible items process).
@@ -248,19 +74,20 @@ ClassificationUtils.getAllGroups = function(pObjectType)
 ClassificationUtils.setClassificationValue = function(pObjectType, pObjectId, pClassificationTypeId, pClassificationScoreId)
 {   
     var newId = util.getNewUUID();
-    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "CLASSIFICATIONSCORE_ID"], null, [
+    db.insertData("CLASSIFICATION", ["CLASSIFICATIONID", "OBJECT_TYPE", "OBJECT_ROWID", "CLASSIFICATIONTYPE_ID", "VALUE"], null, [
         newId,
         pObjectType,
         pObjectId,
         pClassificationTypeId,
         pClassificationScoreId,
     ]);
+    newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", pObjectId).updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, 1)
 }
 
 
 /**
  * Gets the classificationGradingTable for a classificationGroup as Array.<br>
- * ordered by the MaxGradeForScore descending              <br>
+ * ordered by the MinPercent       descending              <br>
  * 
  * @param {String} pClassificationGroupId                   <p>
  *                                                          The classificationgroup you want the grading for <br>
@@ -272,13 +99,21 @@ ClassificationUtils.getGradingTableByGroupId = function(pClassificationGroupId)
 {
 
     var classificationGroupId = pClassificationGroupId;
-
-    var gradingTable = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MAXGRADEFORSCORE, CLASSIFICATIONGRADING.GRADING")
+    var gradingObject = {};
+    var gradingTable = newSelect("CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
                                         .from("CLASSIFICATIONGRADING")
                                         .where("CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID", classificationGroupId)
-                                        .orderBy("MAXGRADEFORSCORE desc")
+                                        .orderBy("CLASSIFICATIONGRADING.MINPERCENT asc")
                                         .table()
-    return gradingTable;
+                                        
+    for (let i = 0; i < gradingTable.length; i++) 
+    {
+        if(gradingObject[classificationGroupId] == undefined)
+            gradingObject[classificationGroupId] = [];
+        
+        gradingObject[classificationGroupId].push([gradingTable[i][1], gradingTable[i][2]]);
+    }
+    return gradingObject;
 }
 
 /**
@@ -318,99 +153,40 @@ ClassificationUtils.getClassificationType = function(pClassificationScoreId)
 }
 
 /**
- * Gets the Grading of a score for a group using an object that contains all the gradings.<br>
+ * Gets the Grading of a score for a group using an object that contains all the gradings and the greatest possible score.<br>
  * 
  * @param {String} pGradingObject                          <p>
  *                                                          The classification grading object 
  * @param {String} pGroupId                                <p>
  *                                                          The classification group id 
  * @param {String} pScore                                  <p>
- *                                                          The score 
-* @return {String}                                          <p>
-*                                                           The resulting classification grading.<br>
+ *                                                          The achieved score 
+ * @param {String} pMaxPossibleScore                       <p>
+ *                                                         The greatest possible score
+* @return {String}                                         <p>
+*                                                          The resulting classification grading.<br>
  */
-ClassificationUtils.getGradingFromObject = function(pGradingObject, pGroupId, pScore)
+ClassificationUtils.getGradingFromObject = function(pGradingObject, pGroupId, pScore, pMaxPossibleScore)
 {
     var gradingObject = pGradingObject;
+    if(gradingObject == null)
+    {
+        gradingObject = ClassificationUtils.getGradingTableByGroupId(pGroupId);
+    }
+    
     var groupId = pGroupId;
-    var score = pScore;
+    var scorePercent = pScore/(pMaxPossibleScore/100); //the score in percent in relation to the maxScore
     var grading = "-";
     for (var index in gradingObject[groupId])
     {
-        if(Number(score) <= Number(gradingObject[groupId][index][0]) && score != 0)
+        if(Number(scorePercent) >= Number(gradingObject[groupId][index][0]) && scorePercent != 0)
         {
             grading = gradingObject[groupId][index][1];
-            break;
         }
     }
     return grading;
 }
 
-/**
- * Inserts a empty classification data set into Classificationstorage, since every dataset of a classifiable module has to have an entry 
- * because the updateClassifications_serverProcess is only updating instead of inserting.<br>
- * 
- * @param {String|Array} pUids         <p/>The unique uid('s) of the inserted record, string for one element, array for several elements
- * @param {String} pObjectType         <p>contextId for the passed uids that shall be initialized
- */
-ClassificationUtils.insertEmptyClassification = function(pUids, pObjectType)
-{
-    var classificationCount = newSelect("count(distinct CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID)")
-                                            .from("CLASSIFICATIONTYPE")
-                                            .where("CLASSIFICATIONTYPE.OBJECT_TYPE", pObjectType)
-                                            .cell();
-    var classificationvalue = "-".repeat(classificationCount);  
-            
-    if(Utils.isString(pUids))
-        pUids = [pUids];
-    
-    var columns = ["CLASSIFICATIONSTORAGEID",
-            "CLASSIFICATIONVALUE",
-            "OBJECT_ROWID",
-            "OBJECT_TYPE"
-            ];
-    var inserts = [];
-    var values;
-    for (var i = 0; i < pUids.length; i++) 
-    {
-        values = [util.getNewUUID(),
-                classificationvalue,
-                pUids[i],
-                pObjectType];
-        inserts.push(["CLASSIFICATIONSTORAGE", columns, null, values]);
-    }
-    db.inserts(inserts);
-}
-
-/**
- * Gets the maximum score for one group depending on the pClassificationGroupId param.
- * 
- * @param {String} pClassificationGroupId                       <p>
- *                                                              The classification groupname.<br>
- * @param {String} pClassificationType                          <p>
- *                                                              The classification type id.<br>
- * @return {String}                                             <p>
- *                                                              Returns the maximum possible score of the chosen group.<br>
- *                                                              
- */
-ClassificationUtils.getMaxScoreExcludeType = function(pClassificationGroupId, pClassificationType)
-{
-    var classificationGroupId = pClassificationGroupId;
-    var classificationType = pClassificationType;
-    var maxScore = 0;
-    scores = newSelect("max(CLASSIFICATIONSCORE.SCORE)")
-                            .from("CLASSIFICATIONTYPE")
-                            .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                            .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", classificationGroupId)
-                            .and("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", classificationType, SqlBuilder.NOT_EQUAL())
-                            .groupBy("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                            .arrayColumn();
-                            
-    for (let i = 0; i < scores.length; i++)
-        maxScore = eMath.addInt(maxScore, parseInt(scores[i]));
-    
-    return maxScore;
-}
 
 /**
  * decodes a string that was encoded with AttributeSearchNameCoder.encode
@@ -450,6 +226,85 @@ ClassificationUtils.getTranslatedInfo = function ()
 return translate.text("Keep in Mind that changes to the Value with the greatest score directly affect the Classification Gradings of the Classification!");
 };
 
+/**
+ * Gets all the ClassificationTypeIds of the specified group
+ * 
+ * 
+ * @param {String} pClassificationGroupId                       <p/> The groupId of the group you want the classificationTypes of
+ * @param {String} pExcludeClassificationTypeID (optional)       <p/> Array of ClassificatioNTypeId you don't want to get back
+ * @param {Boolean} pOnlyUptoDate (optional)                    <p/> if true = condition get's added to only return the types where outdated != 1
+ *                                      
+ * @return {Object}                             <p/> an object that contains all keys and values that have been encoded with AttributeSearchNameCoder.encode
+ * @static 
+ */
+ClassificationUtils.getClassificationTypesOfGroup = function (pClassificationGroupId, pExcludeClassificationTypeID, pOnlyUptoDate)
+{
+    var classificationTypesOfOldGroup = newSelect("CLASSIFICATIONTYPEID")
+                                            .from("CLASSIFICATIONTYPE")
+                                            .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", pClassificationGroupId)
+    
+    if (pExcludeClassificationTypeID != null) 
+    {
+        classificationTypesOfOldGroup = classificationTypesOfOldGroup
+                                            .and("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", pExcludeClassificationTypeID, SqlBuilder.NOT_EQUAL())
+    }
+    if (pOnlyUptoDate) 
+    {
+        classificationTypesOfOldGroup = classificationTypesOfOldGroup
+                                            .and("CLASSIFICATIONTYPE.OUTDATED", 1, SqlBuilder.NOT_EQUAL())
+    }
+    
+    return classificationTypesOfOldGroup.arrayColumn();
+};
+
+/**
+ * This function get's used in the workflowExtention_serverProcess.
+ * It checks whether or not the change has any influence on stored classificationStorage datasets
+ * by checking if the entity itself is classificationRelevant or the entity has an relation with an classificationRelevant entity
+ * <p/>
+ * For further context behind why we use this outdated flag see also the documentation properties of "updateClassifications_serverProcess" and the classification_entities
+ * 
+ * 
+ * @param {Array} pTargetIds                    <p/> TargetIds
+ * @param {String} pEntityName                  <p/> Entity name
+ * @param {Object} pRowData                     <p/> row data
+ * @param {Object} pChangedRows                 <p/> changed rows
+ *                                      
+ * @return {void}
+ * @static 
+ */
+ClassificationUtils.setClassificationStorageDatasetsOutdated = function (pTargetIds, pEntityName, pRowData, pChangedRows)
+{
+    var relevantForClassification = false;
+    var classificationStorageIds = [];
+    var entityName = pEntityName;
+
+    if(entityName == "Organisation_entity" || entityName == "Salesproject_entity")
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(pTargetIds);
+    }
+    if(Dependency.getDependency(entityName).includes("Organisation_entity"))
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(Dependency.mapping()[entityName]["Organisation_entity"].getUIDsfn(pRowData, pChangedRows));
+    }
+    if(Dependency.getDependency(entityName).includes("Salesproject_entity"))
+    {
+        relevantForClassification = true;
+        classificationStorageIds.push(Dependency.mapping()[entityName]["Salesproject_entity"].getUIDsfn(pRowData, pChangedRows));
+    }
+
+    //set outdated flag for the classificationStorage datasets
+    if(relevantForClassification)
+    {
+        var cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", classificationStorageIds, SqlBuilder.IN());
+        cond.updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, [1]);
+    }
+};
+
+
+
 
 /*this is right now (2020-08-15) the only way to get something like a constant with 
  - a prober name
@@ -464,4 +319,4 @@ $ClassificationRecordCategories.CLASSIFICATION_GROUP_EXISTS =            functio
 $ClassificationRecordCategories.CLASSIFICATION_GROUP_DOESNT_EXIST =      function(){return "ClassificationGroupDoesntExist"};
 
 function $ClassificationPlaceholder(){}
-$ClassificationPlaceholder.TOPSECRETPLACEHOLDER =                        function(){return "T0PS3CR3TPL4CEH0LD3R"};
+$ClassificationPlaceholder.TOPSECRETPLACEHOLDER =                        function(){return "T0PS3CR3TPL4CEH0LD3R"};
\ No newline at end of file
diff --git a/process/Dependency_lib/process.js b/process/Dependency_lib/process.js
index 1f4e1267a8ed2a749d255f6560ec704e5fec1d28..cc1d4fdf31e3dbf165725adaf039a798676dee35 100644
--- a/process/Dependency_lib/process.js
+++ b/process/Dependency_lib/process.js
@@ -1,3 +1,4 @@
+import("Sql_lib");
 
 function Dependency(){}
 
@@ -20,7 +21,7 @@ Dependency.templateFunction = function (pTableField) {
  * 
  * The mapping is structured as follows: <br>
  *  
- * @example { "Entity_entity" : { "Dependency_entity": { "getUIDsfn" : fucntion (pRowData, pChangedData) {return //the IDs of the EntityField } } } }
+ * @example { "Entity_entity" : { "Dependency_entity": { "getUIDsfn" : function (pRowData, pChangedData) {return //the IDs of the EntityField } } } }
  * 
  * @return {Object}
  */
@@ -43,6 +44,42 @@ Dependency.mapping = function ()
                 }
             }
         }
+        ,"Order_entity": {
+            "Organisation_entity" : {
+                "options" : {
+                    "isObservable" : true
+                },
+                "getUIDsfn" : function (pRowData, pChangedData) {
+                    var tableField = "SALESORDER.CONTACT_ID";
+                    var res = [];
+                    if (pRowData[tableField])
+                        res.push(pRowData[tableField])
+                    if (pChangedData[tableField] && pChangedData[tableField] != pRowData[tableField])
+                        res.push(pChangedData[tableField])
+                    return res;
+                }
+            }
+        }
+        ,"AttributeRelation_entity": {
+                "Organisation_entity" : {
+                    "options" : {
+                        "isObservable" : true
+                    },
+                    "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Organisation")
+                },
+                "Activity_entity" : {
+                     "options" : {
+                        "isObservable" : true
+                    },
+                    "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Activity")
+                },
+                "Salesproject_entity" : {
+                     "options" : {
+                        "isObservable" : true
+                    },
+                    "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Salesproject")
+                }
+            }
     };
 };
 
@@ -55,11 +92,11 @@ Dependency.mapping = function ()
  * @example
  * Dependency.getDependency("Organisation_entity", {"isObservable" : true });
  * @example
- * Dependency.getDependency("Organisation_entity", {}));
+ * Dependency.getDependency("Organisation_entity", {});
  * @example
  * Dependency.getDependency("Organisation_entity"));
  * 
- * @return {String[]} the founded Dependencies. If no one is found, you get an empty Array
+ * @return {String[]} the found Dependencies. If none have been found, you get an empty Array
  */
 Dependency.getDependency = function (pEntity, pOptionFilter) {
     if (Dependency.mapping()[pEntity]) 
@@ -100,4 +137,26 @@ Dependency.getReverseDependency = function (pEntity, pOptionFilter) {
     });
 }
 
+Dependency.defaultFunctionForRelation = function (pRelationTable, pRelationField, pDataField, pContext, pDataTable)
+{
+    return function (pNewData, pOldData)
+    {
+        var relationFieldValue;
+        if (!pDataTable)
+        {
+            relationFieldValue = pNewData["UID.value"] || pNewData[pDataField  +".value"];
+        }
+        else
+        {
+            relationFieldValue = pNewData[pDataTable + "." + pDataField];
+        }
+           
+        return newSelect(pRelationTable + ".OBJECT_ROWID")
+        .from(pRelationTable)
+        .groupBy(pRelationTable + ".OBJECT_ROWID")
+        .whereIfSet(pRelationTable + "." + pRelationField, relationFieldValue)
+        .and(pRelationTable + ".OBJECT_TYPE", pContext)
+        .arrayColumn();
+    }
+}
 
diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js
index e6e2ec67865fb6d45cc71b1a70860547c96540f8..c2244518ffb427f82f1273d879f7c16c878be589 100644
--- a/process/JditoFilter_lib/process.js
+++ b/process/JditoFilter_lib/process.js
@@ -406,6 +406,29 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter, pCustomC
     return filterObj.filterRecords(pRecords);
 }
 
+/**
+ * Filters the given records manually. If you get the records using a sql query, you might consider using
+ * JditoFilterUtils.getSqlCondition instead for better performance.
+ * 
+ * @param {Array} pColumns one dimensional array with all column names (only the columns with the idValue, displayValue columns should be null or ""), 
+ *                          the order has to match the columns of the recordFields property in the recordcontainer
+ * @param {Array} pRecords two dimensional array with all records
+ * @param {String|Object} pFilter the value of vars.get($local.filter).filter
+ * @param {Object} [pCustomCheckFns] Object of custom functions that should be used to ckeck records. The key has to be the name of the fields you want to
+ *          check. The provided function will be called with the arguments (recordValue, filterValue, operator, record) and should return a boolean (or something truthy or falsy).
+ * @param {Object} [pCheckFnThisArg] The object that should be the this-context when the custom check functions are called. This can be useful if you
+ *          need some kind of storage for extra data you need in your function that you don't have to load for every record.
+ * 
+ * @return {Array} the filtered records
+ */
+JditoFilterUtils.filterRecordsReturnOnlyFirst = function (pColumns, pRecords, pFilter, pCustomCheckFns, pCheckFnThisArg)
+{
+    if (!pFilter)
+        return pRecords[0];
+    
+    return new JditoFilter(pColumns, pFilter, pCustomCheckFns, pCheckFnThisArg).filterRecords(pRecords);
+}
+
 /**
  * builds an sql condition from the given filter
  * 
@@ -467,6 +490,27 @@ JditoFilterUtils.isUserIgnoreCase = function ()
     return ignoreCase == "" || /true/i.test(ignoreCase);
 }
 
+/**
+ * Gets you an empty Filter for the specified entity.
+ * 
+ * @param {String} pEntity the entity you want the empty filter from
+
+ * @return {String} the stringified Filter
+ */
+JditoFilterUtils.getEmptyFilter = function (pEntity)
+{
+    var emptyFilter = {
+        entity: pEntity, 
+        filter: {
+            type: "group", 
+            operator: "AND", 
+            childs: []
+        }
+    };
+    return JSON.stringify(emptyFilter);
+}
+
+
 /**
  * Object for translating a filter object to a sql condition.
  * 
diff --git a/process/OfferOrder_lib/process.js b/process/OfferOrder_lib/process.js
index f33eba68fa16f14af4e88b25b3102a64e3da4d04..49477739fd0a0b2931359ff565701150edf9108a 100644
--- a/process/OfferOrder_lib/process.js
+++ b/process/OfferOrder_lib/process.js
@@ -390,7 +390,7 @@ ItemUtils.prototype.getNextItemPosition = function(assignedTo, tree, ids) {
         }
     } else {
         if (ids.length > 0) {
-            maxPos[0] = this.ItemTree[ids[ids.length-1]].pos.split(".")[0];
+            maxPos[0] = tree[ids[ids.length-1]].pos.split(".")[0];
         }    
     }
     maxPos[maxPos.length-1] = (Number(maxPos[maxPos.length-1]) + 1).toString();
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 78ea329bfc0de71f18965d80cc03b82397687b0e..86cc96712ade6e652f107912eb59adba772e00f3 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -18,6 +18,7 @@ import("Neon_lib");
 import("KeywordRegistry_basic");
 import("Address_lib");
 import("DocumentTemplate_lib");
+import("system.eMath");
 
 /**
  * Methods used by Offer.
@@ -99,37 +100,42 @@ OfferUtils.createNewOffer = function(pContextId, pRowId, pRelationId, pActivityI
  * Builds the Offer report.
  * 
  * @param {String} pOfferID
+ * @param {String} pExclDiscountGroupcodes
  * @return {Array} [filename, data_bytes]
  */
-OfferUtils.buildOfferReport = function (pOfferID)
+OfferUtils.buildOfferReport = function (pOfferID, pExclDiscountGroupcodes)
 {
     var offerReport = new Report("Offer_report");  
 
     var sqlUtil = new SqlMaskingUtils();
     
     var offerFields = [
-        "ADDRESS", 
-        "CONTACT_ID", 
-        "ISOLANGUAGE", 
-        "PAYMENTTERMS", 
-        "DELIVERYTERMS", //4
-        "OFFERCODE", 
-        "CURRENCY", 
-        "OFFERDATE", 
-        "HEADER", //8
-        "VAT", 
-        sqlUtil.isNull("VERSNR", "0"),
-        sqlUtil.isNull("OFFERCODE", "0"), 
-        "OBJECT_TYPE", //12
-        "OBJECT_ROWID", //13
-        "FOOTER", //14
-        "LETTERSALUTATION" // 15
+    "ADDRESS", 
+    "CONTACT_ID", 
+    "ISOLANGUAGE", 
+    "PAYMENTTERMS", 
+    "DELIVERYTERMS", //4
+    "OFFERCODE", 
+    "CURRENCY", 
+    "OFFERDATE", 
+    "HEADER", //8
+    "VAT", 
+    sqlUtil.isNull("VERSNR", "0"),
+    sqlUtil.isNull("OFFERCODE", "0"), 
+    "OBJECT_TYPE", //12
+    "OBJECT_ROWID", //13
+    "FOOTER", //14
+    "LETTERSALUTATION", // 15
+    "DISCOUNT",
+    "NET",
+    "DISCOUNTED_NET", 
+    "DISCOUNTED_VAT"
     ];
    
     var offerData = newSelect(offerFields)
-                        .from("OFFER")
-                        .where("OFFER.OFFERID", pOfferID)
-                        .arrayRow();
+    .from("OFFER")
+    .where("OFFER.OFFERID", pOfferID)
+    .arrayRow();
   
     if (offerData.length === 0)
         return null;
@@ -137,36 +143,37 @@ OfferUtils.buildOfferReport = function (pOfferID)
     var letterSalutation = offerData[15];
     
     var language = newSelect("ISO2")
-                        .from("AB_LANGUAGE")
-                        .where("AB_LANGUAGE.ISO3", offerData[2])
-                        .cell();
+    .from("AB_LANGUAGE")
+    .where("AB_LANGUAGE.ISO3", offerData[2])
+    .cell();
                         
     offerData[7] = datetime.toDate(offerData[7], translate.text("dd.MM.yyyy", language));                    
         
     var offerItemFields = [
-        "OFFERITEM.INFO", 
-        "OFFERITEM.ASSIGNEDTO",
-        "OFFERITEM.PRODUCT_ID", 
-        "OFFERITEM.ITEMNAME" , 
-        "OFFERITEM.OPTIONAL",  //4
-        "OFFERITEM.ITEMPOSITION", 
-        "PRODUCT.PRODUCTCODE", 
-        "PRODUCT.PRODUCTID", 
-        "OFFERITEM.UNIT", //8
-        sqlUtil.isNull("OFFERITEM.QUANTITY", "0"), 
-        sqlUtil.isNull("OFFERITEM.PRICE", "0"),
-        sqlUtil.isNull("OFFERITEM.DISCOUNT", "0"), 
-        sqlUtil.isNull("OFFERITEM.VAT", "0"), //12
-        "0", 
-        "''"
+    "OFFERITEM.INFO", 
+    "OFFERITEM.ASSIGNEDTO",
+    "OFFERITEM.PRODUCT_ID", 
+    "OFFERITEM.ITEMNAME" , 
+    "OFFERITEM.OPTIONAL",  //4
+    "OFFERITEM.ITEMPOSITION", 
+    "PRODUCT.PRODUCTCODE", 
+    "PRODUCT.PRODUCTID", 
+    "OFFERITEM.UNIT", //8
+    sqlUtil.isNull("OFFERITEM.QUANTITY", "0"), 
+    sqlUtil.isNull("OFFERITEM.PRICE", "0"),
+    sqlUtil.isNull("OFFERITEM.DISCOUNT", "0"), 
+    sqlUtil.isNull("OFFERITEM.VAT", "0"), //12
+    "0", 
+    "''",
+    "OFFERITEM.GROUPCODEID"
     ]; 
 
     var itemData = newSelect(offerItemFields)
-                            .from("OFFERITEM")
-                            .leftJoin("PRODUCT", "PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID")
-                            .where("OFFERITEM.OFFER_ID", pOfferID)
-                            .orderBy("OFFERITEM.ITEMSORT asc")
-                            .table();
+    .from("OFFERITEM")
+    .leftJoin("PRODUCT", "PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID")
+    .where("OFFERITEM.OFFER_ID", pOfferID)
+    .orderBy("OFFERITEM.ITEMSORT asc")
+    .table();
             
     if (itemData.length == 0)
         return null;
@@ -178,10 +185,29 @@ OfferUtils.buildOfferReport = function (pOfferID)
     var sums = [];
     var vatsum = 0;
     var printDiscount = false;
+    var printHeadDiscount = false; 
+    var discValue = 0;
     
     var header = new DocumentTemplate(offerData[8], DocumentTemplate.types.PLAIN).getReplacedContentByContactId(offerData[1]);
     var footer = new DocumentTemplate(offerData[14], DocumentTemplate.types.PLAIN).getReplacedContentByContactId(offerData[1]);
     
+    var discount;
+    if(offerData[17] && offerData[18]){
+        discount = eMath.subDec(offerData[17].toString(), offerData[18].toString());
+        discount = text.formatDouble(discount.toString(), "#,##0.00", true);     
+    }
+    if (!printHeadDiscount && discount && parseFloat(discount) != parseFloat("0"))
+        printHeadDiscount = true;
+    if(printHeadDiscount){
+        total = eMath.addDec(offerData[18], offerData[19])
+    }
+    if(offerData[16]){
+        discValue = text.formatDouble(offerData[16], "#,##0.00", true);
+    }
+    if(offerData[18]){
+        offerData[18] = text.formatDouble(offerData[18], "#,##0.00", true);
+    }
+    
     itemData = itemData.map(function (item)
     {
         //quantity * price
@@ -192,45 +218,62 @@ OfferUtils.buildOfferReport = function (pOfferID)
             //itemSum = (fullPrice * (100 - discount)) / 100
             itemSum = eMath.roundDec(eMath.divDec(eMath.mulDec(fullPrice, eMath.subDec(100, item[11])), 100), 2, eMath.ROUND_HALF_EVEN); //sum of the item (with discount)
             sumItemSum += itemSum; //total sum (without vat) 
+
+            let excluded = -1
+            if(pExclDiscountGroupcodes){
+                excluded = pExclDiscountGroupcodes.indexOf(item[15])
+            }
+            //vatsum = itemSum * vat / 100
+
+            if(printHeadDiscount && offerData[16] && excluded == -1){
+                vatsum = ItemUtils.prototype.getItemVAT(item[9], item[10], item[11], item[12], item[4]);
+                vatsum = eMath.subDec(vatsum, eMath.divDec(eMath.mulDec(vatsum, offerData[16]), "100"));
+            }
+            else
+                vatsum = ItemUtils.prototype.getItemVAT(item[9], item[10], item[11], item[12], item[4])
+
+            if (item[12] > 0) 
+                sums.push([item[12], vatsum]); //MWSteuerwerte für Map vorbereiten
         }
-        //vatsum = itemSum * vat / 100
-        vatsum = eMath.divDec(eMath.mulDec(itemSum, item[12]), 100); //vat per product
-        if (item[12] > 0) 
-            sums.push([item[12], vatsum]); //MWSteuerwerte für Map vorbereiten
+        
         
         // sumItemSum + vat
-        total = eMath.addDec(sumItemSum, offerData[9]); //total sum with vat
+        if(!printHeadDiscount)
+            total = eMath.addDec(sumItemSum, offerData[9]); //total sum with vat
         
         if (!printDiscount && item[11] > 0)
             printDiscount = true;
         
         return [
-            offerData[6],   //currency
-            offerData[7],   //offerdate
-            pOfferID,       //offerId
-            item[0],        //info
-            item[1],        //assignedTo
-            item[3],        //itemname
-            item[4],        //optional
-            item[5],        //itemposition
-            item[6],        //productcode
-            header,         //header 
-            footer,         //footer 
-            text.formatDouble(item[9], "#,##0", true),          //quantity
-            text.formatDouble(item[10], "#,##0.00", true),      //price
-            text.formatDouble(item[11], "0.00", true),          //discount
-            offerData[10],  //versnr
-            offerData[5],   //offercode
-            text.formatDouble(item[12], "#,##0.00", true),      //vat
-            text.formatDouble(itemSum, "#,##0.00", true),       //itemsum
-            KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), item[8]) //unittext
+        offerData[6],   //currency
+        offerData[7],   //offerdate
+        pOfferID,       //offerId
+        item[0],        //info
+        item[1],        //assignedTo
+        item[3],        //itemname
+        item[4],        //optional
+        item[5],        //itemposition
+        item[6],        //productcode
+        header,         //header 
+        footer,         //footer 
+        text.formatDouble(item[9], "#,##0", true),          //quantity
+        text.formatDouble(item[10], "#,##0.00", true),      //price
+        text.formatDouble(item[11], "0.00", true),          //discount
+        offerData[10],  //versnr
+        offerData[5],   //offercode
+        text.formatDouble(item[12], "#,##0.00", true),      //vat
+        text.formatDouble(itemSum, "#,##0.00", true),       //itemsum
+        KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), item[8]), //unittext
+        discValue,
+        offerData[18],
+        discount
         ];
     });
     
     // TODO: get Images implementieren
     var imgData = ["meineFirma | Wilhelm-Str. 2  |  DE 80807 München",
-                   "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
-                // getMyASYS_ICONSdata();
+    "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII="]
+    // getMyASYS_ICONSdata();
     
     // TODO: implementieren wenn Attribute möglich sind
     var adma = ""; //adma = Aussendienstmitarbeiter
@@ -266,7 +309,12 @@ OfferUtils.buildOfferReport = function (pOfferID)
         "responsible" : adma,
         "SUMITEMSUM" : sumItemSum,
         "TOTAL" : text.formatDouble(total, "#,##0.00", true),
-        "printDiscount" : printDiscount ? "1" : "0"
+        "printDiscount" : printDiscount ? "1" : "0",
+        "subTotal": translate.text("Subtotal", language),
+        "InvoiceDiscount": translate.text("Invoice Discount", language),
+        "TotalWithoutVat": translate.text("without Vat", language),
+        "TotalWithVat": translate.text("incl. Vat", language),
+        "printHeadDiscount": printHeadDiscount ? "1" : "0"
     };
     
     
@@ -278,27 +326,30 @@ OfferUtils.buildOfferReport = function (pOfferID)
 
     offerReport.setReportData(ReportData.begin(
         [
-            "OFFER_CURRENCY", 
-            "OFFER_OFFERDATE", 
-            "OFFER_OFFERID",  
-            "OFFERITEM_INFO", 
-            "OFFERITEM_ASSIGNEDTO", //4
-            "OFFERITEM_ITEMNAME" , 
-            "OFFERITEM_OPTIONAL", 
-            "OFFERITEM_ITEMPOSITION", 
-            "PRODUCT_PRODUCTCODE", //8
-            "OFFER_HEADER", 
-            "OFFER_FOOTER", 
-            "OFFERITEM_QUANTITY", 
-            "OFFERITEM_PRICE", 
-            "OFFERITEM_DISCOUNT", //13
-            "OFFER_VERSNR", 
-            "OFFER_OFFERCODE", 
-            "OFFERITEM_VAT", 
-            "ITEMSUM", // 17
-            "OFFERITEM_UNITTEXT"
+        "OFFER_CURRENCY", 
+        "OFFER_OFFERDATE", 
+        "OFFER_OFFERID",  
+        "OFFERITEM_INFO", 
+        "OFFERITEM_ASSIGNEDTO", //4
+        "OFFERITEM_ITEMNAME" , 
+        "OFFERITEM_OPTIONAL", 
+        "OFFERITEM_ITEMPOSITION", 
+        "PRODUCT_PRODUCTCODE", //8
+        "OFFER_HEADER", 
+        "OFFER_FOOTER", 
+        "OFFERITEM_QUANTITY", 
+        "OFFERITEM_PRICE", 
+        "OFFERITEM_DISCOUNT", //13
+        "OFFER_VERSNR", 
+        "OFFER_OFFERCODE", 
+        "OFFERITEM_VAT", 
+        "ITEMSUM", // 17
+        "OFFERITEM_UNITTEXT",
+        "OFFER_DISCOUNT",
+        "OFFER_DISCOUNTED_NET",
+        "OFFER_DISCOUNTSUM"
         ])
-        .add(itemData));
+    .add(itemData));
         
     return offerReport.exportReport();
 }
@@ -336,7 +387,8 @@ OfferUtils.copyOffer = function (pOfferId, pOfferData)
         "OfferDeliveryTerm_param": pOfferData.deliveryTerm || "",
         "OfferPaymentTerm_param": pOfferData.paymentTerm || "",
         "ObjectType_param": pOfferData.objectType || "",
-        "ObjectRowId_param": pOfferData.objectRowId || ""
+        "ObjectRowId_param": pOfferData.objectRowId || "",
+        "Discount_param" :  pOfferData.discount || ""
     };
     neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
 }
@@ -347,7 +399,7 @@ OfferUtils.copyOffer = function (pOfferId, pOfferData)
  * @param {String} pSourceOfferId
  * @param {String} pTargetOfferId
  */
-OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId)
+OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId, pDiscount)
 {
     var inputMapping = {
         "OFFERITEM": {
@@ -363,12 +415,24 @@ OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId)
     
     //update order price
     var [netPrice, vat] = oiUtils.getNetAndVat();
+    var discountedVals = OfferItemUtils.getDiscountedNet(null, pSourceOfferId,  pDiscount);
     
-    newWhere("OFFER.OFFERID", pTargetOfferId)
+    if(discountedVals){
+        newWhere("OFFER.OFFERID", pTargetOfferId)
+        .updateFields({
+            "NET": netPrice,
+            "VAT": vat,
+            "DISCOUNTED_NET": discountedVals[0],
+            "DISCOUNTED_VAT": discountedVals[1]
+        });
+    }
+    else{
+        newWhere("OFFER.OFFERID", pTargetOfferId)
         .updateFields({
             "NET": netPrice,
             "VAT": vat
         });
+    }
 }
 
 /**
@@ -384,8 +448,8 @@ OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId)
  */
 OfferUtils.copyToOrder = function (pOfferId, pContextId, pRowId, pContactId, pLanguage, pCurrency, pAddress)
 {  
-        var fieldparams = 
-        {
+    var fieldparams = 
+    {
         "$field.CONTACT_ID" : pContactId,
         "$field.ISOLANGUAGE" : pLanguage,
         "$field.OFFER_ID" : pOfferId,
@@ -393,7 +457,7 @@ OfferUtils.copyToOrder = function (pOfferId, pContextId, pRowId, pContactId, pLa
         "$field.PAYMENTADDRESS" : pAddress || "",
         "$field.OBJECT_TYPE" : pContextId || "",
         "$field.OBJECT_ROWID" : pRowId || ""
-        };
+    };
     
     var params = {};
     params["Copy_param"] = JSON.stringify(fieldparams);
@@ -414,13 +478,13 @@ OfferUtils.getOfferTitleById = function (pOfferId)
     if (!pOfferId)
         return "";
     var offerNumber = newSelect("OFFERCODE, VERSNR")
-                        .from("OFFER")
-                        .where("OFFER.OFFERID", pOfferId)
-                        .arrayRow();
+    .from("OFFER")
+    .where("OFFER.OFFERID", pOfferId)
+    .arrayRow();
                         
     return offerNumber.length > 0 
-        ? translate.text("Offer") + " " + offerNumber.join("-") 
-        : "";
+    ? translate.text("Offer") + " " + offerNumber.join("-") 
+    : "";
 }
 
 
@@ -482,26 +546,26 @@ OfferItemUtils.prototype.insertPartsList = function(pProductId, pAssignedTo, pCu
     this.initItemTree();
     
     var cols =  ["OFFERITEMID"
-                , "OFFER_ID"
-                , "PRODUCT_ID"
-                , "GROUPCODEID"
-                , "ASSIGNEDTO"
-                , "ITEMNAME"
-                , "UNIT"
-                , "PRICE"
-                , "VAT"
-                , "QUANTITY"
-                , "OPTIONAL"
-                , "ITEMPOSITION"
-                , "ITEMSORT"];
+    , "OFFER_ID"
+    , "PRODUCT_ID"
+    , "GROUPCODEID"
+    , "ASSIGNEDTO"
+    , "ITEMNAME"
+    , "UNIT"
+    , "PRICE"
+    , "VAT"
+    , "QUANTITY"
+    , "OPTIONAL"
+    , "ITEMPOSITION"
+    , "ITEMSORT"];
 
     return ItemUtils.prototype.insertPartsList.apply(this, [cols, pProductId, pAssignedTo, pCurrency, pContactId, [[["info", "INFO"], ["info", 
-                            "( " + newSelect("DESCRIPTION")
-                                .from("DESCRIPTIONTRANSLATION")
-                                .where("DESCRIPTIONTRANSLATION.OBJECT_ROWID = PRODUCT.PRODUCTID")
-                                .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE", "Product")
-                                .and("DESCRIPTIONTRANSLATION.LANG", pLanguage)
-                                .toString() + ")"]]]]);
+        "( " + newSelect("DESCRIPTION")
+        .from("DESCRIPTIONTRANSLATION")
+        .where("DESCRIPTIONTRANSLATION.OBJECT_ROWID = PRODUCT.PRODUCTID")
+        .and("DESCRIPTIONTRANSLATION.OBJECT_TYPE", "Product")
+        .and("DESCRIPTIONTRANSLATION.LANG", pLanguage)
+        .toString() + ")"]]]]);
                                   
 }
 
@@ -541,3 +605,51 @@ OfferItemUtils.prototype.reOrgItems = function() {
     ItemUtils.prototype.reOrgItems.apply(this);
 }
 
+
+
+OfferItemUtils.getDiscountedNet = function(pExcludedIs, pOfferId, pDiscount, pExcludedProductgroups){
+    pDiscount = pDiscount ? pDiscount : 0;
+    var ret;
+    var sum = 0;
+    var sumExcluded = 0;
+    var vat = 0;
+    var vatExcluded = 0;
+    if(pOfferId){
+        var offeritemData = newSelect("QUANTITY, PRICE, DISCOUNT, VAT, OPTIONAL")
+        .from("OFFERITEM")
+        .where("OFFERITEM.OFFER_ID", pOfferId)
+        .andIfSet("OFFERITEM.GROUPCODEID", pExcludedProductgroups, SqlBuilder.NOT_IN())
+        .andIfSet("OFFERITEM.OFFERITEMID", pExcludedIs, SqlBuilder.NOT_IN())
+        .table();
+        for (var i = 0; i < offeritemData.length; i++)
+        {
+            sum = eMath.addDec(sum, ItemUtils.prototype.getItemSum(offeritemData[i][0], offeritemData[i][1], offeritemData[i][2], offeritemData[i][4]));
+            vat = eMath.addDec(vat, ItemUtils.prototype.getItemVAT(offeritemData[i][0], offeritemData[i][1], offeritemData[i][2], offeritemData[i][3], offeritemData[i][4]));
+        }
+       
+        sum = eMath.subDec(sum, eMath.divDec(eMath.mulDec(sum, pDiscount), "100"));
+        vat = eMath.subDec(vat, eMath.divDec(eMath.mulDec(vat, pDiscount), "100"));
+        
+        if(pExcludedProductgroups){
+            var excludedOfferitemData = newSelect("QUANTITY, PRICE, DISCOUNT, VAT, OPTIONAL")
+            .from("OFFERITEM")
+            .where("OFFERITEM.OFFER_ID", pOfferId)
+            .and("OFFERITEM.GROUPCODEID", pExcludedProductgroups, SqlBuilder.IN())
+            .andIfSet("OFFERITEM.OFFERITEMID", pExcludedIs, SqlBuilder.NOT_IN())
+            .table();
+            for (var j = 0; j < excludedOfferitemData.length; j++)
+            {
+                sumExcluded = eMath.addDec(sumExcluded, ItemUtils.prototype.getItemSum(excludedOfferitemData[j][0], excludedOfferitemData[j][1], excludedOfferitemData[j][2], excludedOfferitemData[j][4]));
+                vatExcluded = eMath.addDec(vatExcluded, ItemUtils.prototype.getItemVAT(excludedOfferitemData[i][0], excludedOfferitemData[i][1], excludedOfferitemData[i][2], excludedOfferitemData[i][3], excludedOfferitemData[i][4]));
+            }
+        }
+        if(sumExcluded){
+            sum = eMath.addDec(sum, sumExcluded);
+        }
+        if(vatExcluded){
+            vat = eMath.addDec(vat, vatExcluded);
+        }
+    }
+    ret = [sum, vat]
+    return ret;
+}
diff --git a/process/Turnover_lib/process.js b/process/Turnover_lib/process.js
index 1e69ad37d5f05c94e3779b5fe5c6edb3fe81cbc5..b070a1a6605c5a3c5d63ef49760af0709429cf9c 100644
--- a/process/Turnover_lib/process.js
+++ b/process/Turnover_lib/process.js
@@ -78,22 +78,33 @@ TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount, pSalesprojectId)
  */
 TurnoverUtil.getForecastData = function (pMaxYear, pYearCount, pSalesprojectId)
 {
-    var forecastCategory = translate.text('Forecast');
-
+    var forecastCategory = translate.text("Forecast");
     var minYear = pMaxYear - pYearCount + 1;
+    var sqlMask = new SqlMaskingUtils();
 
     // load data
-    var forecastSelect = newSelect("'" + forecastCategory + "', year(DATE_START) yearNum, month(DATE_START) monthNum, 0 discount, 0 vat, sum(VOLUME) price, 1 quantity, GROUPCODE prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName")
-                            .from("FORECAST")
-                            .where("FORECAST.DATE_START", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER)
-                            .and("FORECAST.DATE_START", minYear, "year(#) >= ?", SQLTYPES.INTEGER)
+    var forecastSelect = newSelect([
+            "'" + forecastCategory + "'", 
+            sqlMask.yearFromDate("DATE_START") + " yearNum", 
+            sqlMask.monthFromDate("DATE_START") + " monthNum", 
+            "0 discount", 
+            "0 vat", 
+            "sum(VOLUME) price", 
+            "1 quantity", 
+            "GROUPCODE prodGroup", 
+            "(" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName"
+        ])
+        .from("FORECAST")
+        .where("FORECAST.DATE_START", pMaxYear, sqlMask.yearFromDate("#") + " <= ?", SQLTYPES.INTEGER)
+        .and("FORECAST.DATE_START", minYear, sqlMask.yearFromDate("#") + " >= ?", SQLTYPES.INTEGER);
+        
     if (pSalesprojectId)
     {
-        forecastSelect.and("FORECAST.OBJECT_TYPE", 'Salesproject')
+        forecastSelect.and("FORECAST.OBJECT_TYPE", "Salesproject")
                       .and("FORECAST.OBJECT_ROWID", pSalesprojectId)
     }   
     
-    forecastSelect.groupBy("year(DATE_START), month(DATE_START), GROUPCODE")
+    forecastSelect.groupBy([sqlMask.yearFromDate("DATE_START"), sqlMask.monthFromDate("DATE_START"), "GROUPCODE"])
                   .orderBy("yearNum, monthNum");
                   
     return forecastSelect.table();
diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js
index 154076f048f07ef9c800784fb3e056ea741ee46c..24299b406b32d4e0a30bf6038bd631b2e320a5ef 100644
--- a/process/Util_lib/process.js
+++ b/process/Util_lib/process.js
@@ -564,6 +564,27 @@ StringUtils.concat = function(pSeparator, pElements)
     return res;
 };
 
+/**
+ * Replaces a char of a string at a specified position with a specified replacementString
+ * 
+ * @param {String} pPlainInputStr           <p/>String where you want something to be replaced
+ * @param {String} pIndex                   <p/>Position of the char you want to replace
+ * @param {String} pReplacement             <p/>A string as the replacement-value
+ *
+ * @return {String}                         <p/>ReplacedString (or pPlainInputStr if pIndex >= pPlainInputStr.length)
+ */
+StringUtils.replaceAt = function(pPlainInputStr, pIndex, pReplacement) 
+{
+    if (pIndex >= pPlainInputStr.length) //return the original string if the index is too high
+    {
+        return pPlainInputStr.valueOf();
+    }
+ 
+    return pPlainInputStr.substring(0, pIndex) + pReplacement + pPlainInputStr.substring(pIndex + 1);
+}
+
+
+
 /**
  * concats severel elements by a separator; the separator is only applied if a element is not null and not an empty string "";
  * You can pass >=2 elements to the function and they will be all concated
diff --git a/process/buildSerialLetter_serverProcess/process.js b/process/buildSerialLetter_serverProcess/process.js
index b3210e860dba7d2817b4e9465f17600fca2bcb95..7be5de72cd71f6c4dee9d1fab003af0582d4afcd 100644
--- a/process/buildSerialLetter_serverProcess/process.js
+++ b/process/buildSerialLetter_serverProcess/process.js
@@ -21,4 +21,15 @@ SingleBinaryUtils.set("SERIALLETTER", "SERIALLETTERFILE", letterId, document.con
 
 var message = translate.text("Download ready");
 var description = translate.withArguments("Serial letter \"%0\" can now be downloaded", [document.title]);
-notification.addNotification(util.getNewUUID(), text.encodeMS(["SerialLetter", letterId]), null, null, "DownloadReady", null, notification.PRIO_NORMAL, 2, notification.STATE_UNSEEN, [user], message, description);
\ No newline at end of file
+
+var notificationConfig = notification.createConfig()
+.initialState(notification.STATE_UNSEEN)
+.forcedPriority(notification.PRIO_NORMAL)
+    .linkInfo(text.encodeMS(["SerialLetter", letterId]))
+    .daysToLive(2)
+    .addUserWithId(user)
+    .notificationType("DownloadReady")
+    .caption(message)
+    .description(description);
+    
+notification.addNotificationWith(notificationConfig);
\ No newline at end of file
diff --git a/process/updateClassifications_serverProcess/documentation.adoc b/process/updateClassifications_serverProcess/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..fd053e82fca0a65c6687ffaf4ee013100dc5fcad
--- /dev/null
+++ b/process/updateClassifications_serverProcess/documentation.adoc
@@ -0,0 +1,22 @@
+= updateClassifications_serverProcess
+
+For updating  the values of CLASSIFICATIONSTORAGE and the persistent data stored in CLASSIFICATION.
+Should probably  run in intervals (like once a week) to update all outdated data, 
+but the user can also start it manually via an action at the Classification Admin Context.
+
+We are storing the strings of the achieved classifications (e.g. "ACD") in ClassificationStorage.
+Every time we change something for of an classification relevant object (which has an ClassificationStorage dataset) or an linked object with an 
+dependency to the entity (dependencies have to be configured in the Dependency_lib), 
+we set the outdated flag of it's ClassificationStorage dataset to true.
+
+The classificationType datasets also have an outdated flag get set for changes in classificationAdmin.
+
+This Process now updates both of these:
+First it checks whether outdated classificationStorages and outdated classificationTypes exist
+and always updates the classificationStorages first before updating the for the classificationTypes.
+
+-In the classificationStorage runtrough it calculates the complete classification for every outdated classificationStorage, entirely 
+    from scratch (and inserts "new" relevant ones), and updates both the classificationStorage dataset aswell as the classification datasets
+-In the classificationType runtrough it also updates both the classificationStorage dataset aswell as the classification datasets but 
+    -for every object of said object_type
+    -only recalculates the flagged ones and relies on the already stored values of the not flagged classificationTypes (and inserts "new" relevant ones)
\ No newline at end of file
diff --git a/process/updateClassifications_serverProcess/process.js b/process/updateClassifications_serverProcess/process.js
index 5520e0170e221868a9c89a0639890824756d5cad..db4ab9c27872d6cafb239be8b3f848e9dbaad65e 100644
--- a/process/updateClassifications_serverProcess/process.js
+++ b/process/updateClassifications_serverProcess/process.js
@@ -1,3 +1,8 @@
+import("Context_lib");
+import("system.util");
+import("Util_lib");
+import("JditoFilter_lib");
+import("system.entities");
 import("system.logging");
 import("Classification_lib");
 import("Sql_lib");
@@ -6,208 +11,837 @@ import("system.db");
 import("system.eMath");
 
 var outputInformation = {};//information how much data has been modified
-var gradingObject = {};
-var helperObject = {}; //Used to check whether or not the data has already been added
-var scoreObject = {};
-var archievedScoresObject = {};
+var outputInfo = "updateClassifications_serverProcess output is:\n";
+
+var helperObject = {}; //used to check whether or not the data has already been added
+//object to store all the gradings of the classification groups that have either 1: atleast one classificationType with the outdated flag or 
+//2: have classificationtypes of the object_types that we need for updating for the outdated classificationStorage
+var gradingObject = {}; 
+var scoreObject = {}; //object to store all the classificationScores (with the same logic as above)
+var classificationTypesFilterObj = {}; //object to store all the classificationTypes with filters (logic from above)
+var classificationTypesNoFilterObj = {}; //object to store all the classificationTypes without filters (logic from above)
+var bestPossibleScoresObj = {}; //object to store all the best possible scores of classificationTypes (logic from above)
+var bestPossibleScoresGroupObj = {}; //object to store all the best possible scores of classificationGroups of datasets (logic from above)
+var achievedScoresObj = {}; //object to store all the achieved classificationscores of the classificationgroups (logic from above) (achievedScoresObj[objId][groupId][Score, Grade])
+var achievedScoresTypeObj = {}; //object to store all the achieved classifications (logic from above) (achievedScoresTypeObj[objId][groupId][classificationTypeId][int])
+var staticClassificationsObject = {}; //object to store all the classificationTypes none of the classificationtypes has the outdated flag set (onlyn eeded when storedClassificationFlag == 0, see below)
+var classificationStorageObject = {}; //object to store the classificationstorageStrings (e.g: "ACD")
+var groupObject = {}; //groupObject is another helper object to store all the groupIds
+var outdatedClassificationTypeObj = {};//object to store all outdated classificationtypes (need so we can add empty persisted data later
+var alreadyUpdatedTypesObj = {};
+
+//arrays mainly used for filling the objects
 var objectTypes = [];
 var orderedGroups = [];
+var bestPossibleScoresArray = [];
+var classificationStorageArray = [];
+var groupsThatNeedUpdate = [];
+var outdatedGroupsAndObjectTypes = [];
+var gradingArray = [];
+var scoreArray = [];
+var objectTypesThatNeedUpdate = [];
+var outdatedStoredClassifications = [];
+var objectRowIdArray = [];
+
 var object_type, classificationGroupId, classificationTypeId, classificationScoreId,  classificationScore, classificationGradingId, score, cond,
-classificationGradingMaxScore, classificationGrading, chainedGrading, currentObjectColumn, currentObjectTable, isOrganisation, idsWithoutStoredClassification;
-var groupString ={}
+classificationGradingMaxScore, classificationGrading, chainedGrading, currentObjectColumn, currentObjectTable, isOrganisation, bestValue, minPercent,
+idsWithoutStoredClassification, classificationScorePercent, classificationScoreSaved, classificationScoreTitle, i, ii, iii, deleteCond, count,
+achievedScoresStmt, position, bestPossibleScoreStmt, storedClassificationFlag, deleted, uid;
 var table = "CLASSIFICATIONSTORAGE";
 var column = ["CLASSIFICATIONVALUE"];
+var runUpdating = 0;
 
-//All the possible scores of the classification types
-var scoreArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID, CLASSIFICATIONSCORE.SCORE")
-                                        .from("CLASSIFICATIONGROUP")
-                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                        .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
-                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONSCORE.SORT")
+//all classificationgroups and their object_type that have atleast one classificationtype with the outdated flag set
+outdatedGroupsAndObjectTypes = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where("CLASSIFICATIONTYPE.OUTDATED", 1)
                                         .table();
 
-//build scoreObject out of scoreArray
-for (var i = 0; i < scoreArray.length; i++) 
+objectTypesThatNeedUpdate = [];
+for (i = 0; i < outdatedGroupsAndObjectTypes.length; i++) 
 {
-    for (var ii = 0; ii < scoreArray[ii].length; ii++) 
+    [object_type, classificationGroupId, classificationTypeId, classificationTypeFilter] = outdatedGroupsAndObjectTypes[i];
+
+    if(!helperObject.hasOwnProperty(object_type)) //objectType
     {
-        [object_type, classificationGroupId, classificationTypeId, classificationScoreId, classificationScore] = scoreArray[i];
+        outdatedClassificationTypeObj[object_type] = {}; //puts objectType in classificationStorageObject and already initializes the object that later get's filled with the groups and their types
+        objectTypesThatNeedUpdate.push(object_type)
+        
+        classificationTypesFilterObj[object_type] = {}; //initializing for later use
+        classificationTypesNoFilterObj[object_type] = {}; //initializing for later use
+        
+        helperObject[object_type] = "";
 
-        if(!helperObject.hasOwnProperty(scoreArray[i][0])) //objectType
-        {
-            scoreObject[scoreArray[i][0]] = {}; //puts objectType in scoreObject and already initializes the object that later get's filled with the groups and their types
-            helperObject[scoreArray[i][0]] = "";
-            objectTypes.push(scoreArray[i][0]); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
-        }
-        if(!helperObject.hasOwnProperty(scoreArray[i][1])) //classificationGroup
-        {
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]] = {}; //same logic as before
-            helperObject[scoreArray[i][1]] = "";
-        }
-        if(!helperObject.hasOwnProperty(scoreArray[i][2])) //classificationType
-        {            
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]][scoreArray[i][2]] = {}; //same logic as before
-            helperObject[scoreArray[i][2]] = "";
-        }
-        if(!helperObject.hasOwnProperty(scoreArray[i][3])) //classificationScore
+    }
+    if(!helperObject.hasOwnProperty(classificationGroupId)) //objectRowId
+    {
+        outdatedClassificationTypeObj[object_type][classificationGroupId] = {}; //same logic as before
+        groupsThatNeedUpdate.push(classificationGroupId)
+        
+        classificationTypesFilterObj[object_type][classificationGroupId] = {}; //initializing 
+        classificationTypesNoFilterObj[object_type][classificationGroupId] = {}; //initializing 
+                
+        helperObject[classificationGroupId] = "";
+    }
+    if(!helperObject.hasOwnProperty(classificationTypeId)) //objectRowId
+    {
+        outdatedClassificationTypeObj[object_type][classificationGroupId][classificationTypeId] = {"classificationTypeFilter": classificationTypeFilter}; //same logic as before
+        
+        if(classificationTypeFilter == "" || classificationTypeFilter == JditoFilterUtils.getEmptyFilter(ContextUtils.getEntity(object_type))) //also push all the indicators that have a filter set into classificationTypesFilterObj
+            classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] = classificationTypeFilter;
+        else //and the ones without a filter into classificationTypesNoFilterObj
+            classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] = classificationTypeFilter;
+        
+        helperObject[classificationTypeId] = "";
+    }
+}
+
+//object_type, object_rowId, classificationstorageId and the classificationstring (e.g. "ACB") of the classificationStorage datasets that habe the outdated flag set
+outdatedStoredClassifications = newSelect("CLASSIFICATIONSTORAGE.OBJECT_TYPE, CLASSIFICATIONSTORAGE.OBJECT_ROWID, \n\
+                                                    CLASSIFICATIONSTORAGE.CLASSIFICATIONSTORAGEID, CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE")
+                                                .from("CLASSIFICATIONSTORAGE")
+                                                .where("CLASSIFICATIONSTORAGE.OUTDATED", 1)
+                                                .orderBy("OBJECT_TYPE")
+                                                .table();
+helperObject = {};                                      
+if(outdatedStoredClassifications)
+{
+    //build classificationStorageObject out of outdatedStoredClassifications
+    for (i = 0; i < outdatedStoredClassifications.length; i++) 
+    {
+        for (ii = 0; ii < outdatedStoredClassifications[i].length; ii++) 
         {
-            scoreObject[scoreArray[i][0]][scoreArray[i][1]][scoreArray[i][2]][scoreArray[i][3]] = scoreArray[i][4]; //score
-            helperObject[scoreArray[i][3]] = "";
+            [object_type, object_rowId, classificationStorageId, classificationScore] = outdatedStoredClassifications[i];
+
+            if(!helperObject.hasOwnProperty(object_type)) //objectType
+            {
+                classificationStorageObject[object_type] = {}; //puts objectType in classificationStorageObject and already initializes the object that later get's filled with the groups and their types
+                helperObject[object_type] = "";
+                objectTypes.push(object_type); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
+
+            }
+            if(!helperObject.hasOwnProperty(object_rowId)) //objectRowId
+            {
+                classificationStorageObject[object_type][object_rowId] = [classificationStorageId, classificationScore]; //same logic as before
+                helperObject[object_rowId] = "";
+                objectRowIdArray.push(object_rowId); //also push all the objectTypes in an Array for later
+            }
         }
     }
 }
+                                                
+                                                
+if(outdatedStoredClassifications.length > 0)
+{   storedClassificationFlag = true; //this variable can easily be checked to see what we are updating
+    runUpdating++;
+}
 
-helperObject = {}; //resets the helper object
-
-//All the gradings of the classification groups
-var gradingArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
-                                CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MAXGRADEFORSCORE, CLASSIFICATIONGRADING.GRADING")
-                                .from("CLASSIFICATIONGROUP")
-                                .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                .join("CLASSIFICATIONGRADING", "CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-                                .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, \n\
-                                    CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONGRADING.MAXGRADEFORSCORE asc")
-                                .table();
-                                
-//logic from above applies here aswell
-for (i = 0; i < gradingArray.length; i++) 
+if(groupsThatNeedUpdate.length > 0)
 {
-    [object_type, classificationGroupId, classificationTypeId, classificationGradingId, classificationGradingMaxScore, classificationGrading] = gradingArray[i];
+    runUpdating++;
+}
 
-    if(!helperObject.hasOwnProperty(gradingArray[i][0])) //objectType
+//if runUpdating == 0: noting has to be updated
+//if runUpdating > 0: run the updating this often (possible values: 1 or 2 -> either only for the classificationStorage that's outdated, 
+//                                                                  or only the classificationgroups with atleast one outdated classificationType or both))
+// --> we always start with the updating for the outdated classificationStorage datasets by using the storedClassificationFlag as way of 
+// checking what we are updating (the flag get's set to true if we have atleast one outdated classificationStorage (see above) and to false after the first loop)
+for (xyz = 0; xyz < runUpdating; xyz++)
+{
+    if(!storedClassificationFlag) //flag = false: we are not updating classificationStorage -> different condition needed (this logic get's used a lot)
     {
-        gradingObject[gradingArray[i][0]] = {};
-        helperObject[gradingArray[i][0]] = "";
+        objectTypes = [];
+        staticClassificationTypes = newSelect("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.SCOREPOINTS")
+                                        .from("CLASSIFICATION")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.NOT_IN())
+                                        .table();
+        correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN())
     }
-    if(!helperObject.hasOwnProperty(gradingArray[i][1])) //classificationGroup
+    else
     {
-        gradingObject[gradingArray[i][0]][gradingArray[i][1]] = {};
-        helperObject[gradingArray[i][1]] = "";
+        correctCondition = newWhere("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes, SqlBuilder.IN())
     }
-    if(!helperObject.hasOwnProperty(gradingArray[i][2])) //classificationGrading
+    //All the possible scores of 1: the outdated classification types or 2: of all the classificationtypes of the outdated classificationStorages
+    scoreArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID, CLASSIFICATIONSCORE.SCOREPERCENT/100, CLASSIFICATIONTYPE.FILTER")
+                                        .from("CLASSIFICATIONGROUP")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                        .join("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where(correctCondition)
+                                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONSCORE.SORT")
+                                        .table();
+    helperObject = {};
+    //build scoreObject out of scoreArray and also build classificationTypesFilterObj and classificationTypesNoFilterObj
+    for (i = 0; i < scoreArray.length; i++) 
     {
-        gradingObject[gradingArray[i][0]][gradingArray[i][1]][gradingArray[i][2]] = [gradingArray[i][3], gradingArray[i][4]]; //maxGradeForScore
-        helperObject[gradingArray[i][2]] = "";
+        for (ii = 0; ii < scoreArray[i].length; ii++) 
+        {
+            [object_type, classificationGroupId, classificationTypeId, classificationScoreId, classificationScore] = scoreArray[i];
+
+            if(!helperObject.hasOwnProperty(object_type)) //objectType
+            {
+                scoreObject[object_type] = {}; //puts objectType in scoreObject and already initializes the object that later get's filled with the groups and their types
+                helperObject[object_type] = "";
+                if(!storedClassificationFlag)
+                    objectTypes.push(object_type); //also push all the objectTypes in an Array for later (the updating happens one objectType at a time)
+                
+                if(classificationTypesFilterObj[object_type] == undefined)
+                    classificationTypesFilterObj[object_type] = {}; //initializing for later use
+                if(classificationTypesNoFilterObj[object_type] == undefined)
+                    classificationTypesNoFilterObj[object_type] = {}; //initializing for later use
+            }
+            if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+            {
+                scoreObject[object_type][classificationGroupId] = {}; //same logic as before
+                helperObject[classificationGroupId] = "";
+
+                if(classificationTypesFilterObj[object_type][classificationGroupId] == undefined)
+                    classificationTypesFilterObj[object_type][classificationGroupId] = {}; //initializing 
+                if(classificationTypesNoFilterObj[object_type][classificationGroupId] == undefined)
+                    classificationTypesNoFilterObj[object_type][classificationGroupId] = {}; //initializing 
+            }
+            if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationType
+            {            
+                scoreObject[object_type][classificationGroupId][classificationTypeId] = {}; //same logic as before
+                helperObject[classificationTypeId] = "";
+                if(scoreArray[i][5] == "" || scoreArray[i][5] == JditoFilterUtils.getEmptyFilter(ContextUtils.getEntity(object_type))) //also push all the indicators that have a filter set into classificationTypesFilterObj
+                {
+                    if(classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] == undefined)
+                        classificationTypesNoFilterObj[object_type][classificationGroupId][classificationTypeId] = scoreArray[i][5];
+                }
+                else //and the ones without a filter into classificationTypesNoFilterObj
+                {
+                    if(classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] == undefined)
+                        classificationTypesFilterObj[object_type][classificationGroupId][classificationTypeId] = scoreArray[i][5];
+                }
+            }
+            if(!helperObject.hasOwnProperty(scoreArray[i][3])) //classificationScore
+            {
+                scoreObject[object_type][classificationGroupId][classificationTypeId][scoreArray[i][3]] = scoreArray[i][4]; //score
+                helperObject[scoreArray[i][3]] = "";
+            }
+        }
     }
-}
+    if(!storedClassificationFlag) // we already habe the classificationStorageObject if we are updating for the outdated classificationStorage
+    {
+        classificationStorageArray = newSelect("OBJECT_TYPE, OBJECT_ROWID, CLASSIFICATIONSTORAGEID, CLASSIFICATIONVALUE")
+                                                .from("CLASSIFICATIONSTORAGE")
+                                                .orderBy("OBJECT_TYPE")
+                                                .table();
+        helperObject = {}; //resets the helper object
+        for (i = 0; i < classificationStorageArray.length; i++) 
+        {
+            for (ii = 0; ii < classificationStorageArray[i].length; ii++) 
+            {
+                [object_type, object_rowId, classificationStorageId, classificationValue] = classificationStorageArray[i];
 
-for (i = 0; i < objectTypes.length; i++) //update for each object_type
-{
-    outputInformation[objectTypes[i]] = {
-        updatedElements: 0,
-        nonChangedElements: 0
-    };
-    isOrganisation = false;
-    if(objectTypes[i] == "Organisation")
+                if(!helperObject.hasOwnProperty(object_type)) //objectType
+                {
+                    classificationStorageObject[object_type] = []; //same logic as before
+                    helperObject[object_type] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId)) //objectType
+                {
+                    classificationStorageObject[object_type][object_rowId] = []; //same logic as before
+                    helperObject[object_rowId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationStorageId)) //objectRowId
+                {
+                    classificationStorageObject[object_type][object_rowId] = [classificationStorageId, classificationValue]; //same logic as before
+                    helperObject[object_rowId + classificationStorageId] = "";
+                }
+
+            }
+        }
+    }
+    if(!storedClassificationFlag) //we don't have any static classifications if we are updating for the outdated classificationStorage
     {
-        currentObjectTable = "CONTACT";
-        currentObjectColumn = "CONTACT.CONTACTID";
-        isOrganisation = true;
+        staticClassificationsArray = newSelect("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
+                                                    CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATION.SCOREPOINTS")
+                                        .from("CLASSIFICATION")
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATION.CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID")
+                                        .where("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.NOT_IN())
+                                        .orderBy("CLASSIFICATION.OBJECT_TYPE, CLASSIFICATION.OBJECT_ROWID, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .table();
+
+        helperObject = {}; //resets the helper object
+        //build staticClassificationsObject out of scoreArray and also build classificationTypesFilterObj
+        for (i = 0; i < staticClassificationsArray.length; i++) 
+        {
+            for (ii = 0; ii < staticClassificationsArray[i].length; ii++) 
+            {
+                [object_type, object_rowId, classificationGroupId,  classificationTypeId, classificationScorePoints] = staticClassificationsArray[i];
+
+                if(!helperObject.hasOwnProperty(object_type)) //objectType
+                {
+                    staticClassificationsObject[object_type] = {}; //same logic as before
+                    helperObject[object_type] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId)) //objectRowId
+                {
+                    staticClassificationsObject[object_type][object_rowId] = {}; //same logic as before
+                    helperObject[object_rowId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationGroupId)) //classificationGroupId
+                {            
+                    staticClassificationsObject[object_type][object_rowId][classificationGroupId] = {}; //same logic as before
+                    helperObject[object_rowId + classificationGroupId] = "";
+                }
+                if(!helperObject.hasOwnProperty(object_rowId + classificationTypeId)) //classificationScore
+                {
+                    if(staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] == undefined)
+                        staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] = classificationScorePoints;
+                    else
+                        staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId] = eMath.addInt(Number(staticClassificationsObject[object_type][object_rowId][classificationGroupId][classificationTypeId]), Number(classificationScorePoints))
+                    helperObject[object_rowId + classificationTypeId] = "";
+                }
+            }
+        }
     }
-    else
+    
+    if(!storedClassificationFlag)
     {
-        currentObjectTable =  objectTypes[i];
-        currentObjectColumn = objectTypes[i] + "." + objectTypes[i] +"ID";
+        correctCondition = newWhere("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypesThatNeedUpdate, SqlBuilder.IN())
     }
+
+    //All the gradings of the classification groups that have either 1: atleast one classificationType with the outdated flag or 2: have classificationtypes 
+    //of the object_types that we need for updating for the outdated classificationStorage (depends on the condition, see above) 
+    gradingArray = newSelect("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, \n\
+                                    CLASSIFICATIONGRADING.CLASSIFICATIONGRADINGID, CLASSIFICATIONGRADING.MINPERCENT, CLASSIFICATIONGRADING.GRADING")
+                        .from("CLASSIFICATIONGROUP")
+                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                        .where(correctCondition)
+                        .join("CLASSIFICATIONGRADING", "CLASSIFICATIONGRADING.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                        .orderBy("CLASSIFICATIONTYPE.OBJECT_TYPE, CLASSIFICATIONGROUP.TITLE, CLASSIFICATIONGROUP.SORTING, \n\
+                                                        CLASSIFICATIONTYPE.SCORETYPE, CLASSIFICATIONGRADING.MINPERCENT asc")
+                        .table();
     
-    //this is the "upgrade" part of this process:
-    //update all entries with correct classificaiton values
+    helperObject = {}; //resets the helper object
+
+    //logic from above applies here aswell
+    for (i = 0; i < gradingArray.length; i++) 
+    {
+        [object_type, classificationGroupId, classificationTypeId, minPercent, classificationGrading] = gradingArray[i];
+
+        if(!helperObject.hasOwnProperty(object_type)) //objectType
+        {
+            gradingObject[object_type] = {};
+            helperObject[object_type] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+        {
+            gradingObject[object_type][classificationGroupId] = {};
+            helperObject[classificationGroupId] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationGrading
+        {
+            gradingObject[object_type][classificationGroupId][classificationTypeId] = [minPercent, classificationGrading]; //minPercent
+            helperObject[classificationTypeId] = "";
+        }
+    }
     
-    //all groups of the objectType in the correct order, needed later to also add the "-" gradings if no classificationType has been set under that group
-    orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
-        .from("CLASSIFICATIONGROUP")
-        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
-        .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes[i])
-        .orderBy("CLASSIFICATIONGROUP.SORTING")
-        .table();
+    if(!storedClassificationFlag)
+    {
+        correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN());
+    }
+
+    bestPossibleScoresArray = newSelect("OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID, \n\
+                                    CLASSIFICATIONTYPE.SCOREPOINTS *(select max(CLASSIFICATIONSCORE.SCOREPERCENT)/100 from CLASSIFICATIONSCORE)")
+                                        .from("CLASSIFICATIONTYPE")
+                                        .where(correctCondition)
+                                        .orderBy("OBJECT_TYPE, CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID")
+                                        .table();
+                                        
+    helperObject = {}; //resets the helper object
+
+    //logic from above applies here aswell
+    for (i = 0; i < bestPossibleScoresArray.length; i++) 
+    {
+        [object_type, classificationGroupId, classificationTypeId, bestValue] = bestPossibleScoresArray[i];
+
+        if(!helperObject.hasOwnProperty(object_type)) //objectType
+        {
+            bestPossibleScoresObj[object_type] = {};
+            helperObject[object_type] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationGroupId)) //classificationGroup
+        {
+            bestPossibleScoresObj[object_type][classificationGroupId] = {};
+            helperObject[classificationGroupId] = "";
+        }
+        if(!helperObject.hasOwnProperty(classificationTypeId)) //classificationType
+        {
+            bestPossibleScoresObj[object_type][classificationGroupId][classificationTypeId] = bestValue; //best possible value
+            helperObject[classificationTypeId] = "";
+        }
+    }
+
+    for (i = 0; i < objectTypes.length; i++)
+    {
 
-    //private callback function that processes the achieved scores per object type
-    function _processAchievedScoresBatchFn(pBatchData, pBatchNum)
+        outputInformation[objectTypes[i]] = {
+            updatedElements: 0,
+            nonChangedElements: 0,
+            checkedElements: 0,
+            persistentDatasetsUpdated: 0
+        };
+    }
+    
+    for (i = 0; i < objectTypes.length; i++) //update for each object_type
     {
-        //logic from above applies here aswell
-        for (ii = 0; ii < pBatchData.length; ii++) 
+        isOrganisation = false;
+        if(objectTypes[i] == "Organisation")
+        {
+            currentObjectTable = "CONTACT";
+            currentObjectColumn = "CONTACT.CONTACTID";
+            isOrganisation = true;
+        }
+        else
         {
-            [uid, classificationGroupId, classificationTypeId, classificationScore] = pBatchData[ii];
+            currentObjectTable =  objectTypes[i];
+            currentObjectColumn = objectTypes[i] + "." + objectTypes[i] +"ID";
+        }
 
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0])) //uid
+        if(isOrganisation)
+            filterFields = ["CONTACTID", "CUSTOMERCODE", "INFO", "LANGUAGE", "NAME", "STANDARD_CITY", "STANDARD_EMAIL_COMMUNICATION", "STANDARD_PHONE_COMMUNICATION", "STATUS", "TYPE"];
+        else if(currentObjectTable == "Salesproject")
+            filterFields = ["SALESPROJECTID", "CONTACT_ID", "ENDDATE", "INFO", "PHASE", "PROBABILITY", "PROJECTCODE", "PROJECTTITLE", "REASONS", "STARTDATE", "STATUS", "VOLUME"];
+        else
+            throw new Error("updateClassifications_serverProcess: objectType doesn't exist or is not implemented correctly, contact an administrator.");
+
+        //private function for code readability (get's called once for every object_type)
+        _buildFilteredRecsObject();
+
+        //this is the "upgrade" part of this process:
+        //Update all entries with correct classificaiton values
+
+        //all groups of the objectType in the correct order, needed later to also add the "-" gradings if no classificationType has been set under that group
+        orderedGroups = newSelect("distinct CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID, CLASSIFICATIONGROUP.SORTING")
+                                    .from("CLASSIFICATIONGROUP")
+                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID = CLASSIFICATIONGROUP.CLASSIFICATIONGROUPID")
+                                    .where("CLASSIFICATIONTYPE.OBJECT_TYPE", objectTypes[i])
+                                    .orderBy("CLASSIFICATIONGROUP.SORTING")
+                                    .table();
+        
+        var persistedClassificationObj = {}
+        //private callback function that processes the achieved scores per object type
+        function _processAchievedScoresBatchFn(pBatchData, pBatchNum)
+        {
+            //logic from above applies here aswell
+            for (ii = 0; ii < pBatchData.length; ii++) 
             {
-                archievedScoresObject[pBatchData[ii][0]] = {};
-                helperObject[pBatchData[ii][0]] = "";
-                groupString[pBatchData[ii][0]] = ""; //groupString is another helper object to store all the groupIds
+                [uid, classificationGroupId, classificationTypeId, classificationScore, classificationScorePercent, classificationScoreSaved, classificationTypeFilter, classificationId, classificationScoreTitle] = pBatchData[ii];
+
+                if(!helperObject.hasOwnProperty(uid)) //uid
+                {
+                    achievedScoresObj[uid] = {};
+                    groupObject[uid] = ""; //groupObject is another helper object to store all the groupIds
+                    achievedScoresTypeObj[uid] = {};
+                    persistedClassificationObj[uid] = {};
+                    helperObject[uid] = "";
+                }
+                if(!helperObject.hasOwnProperty(uid + classificationGroupId)) //classificationGroup
+                {
+                    groupObject[uid] = groupObject[uid].toString() + classificationGroupId.toString() +" ";
+                    achievedScoresObj[uid][classificationGroupId] = {};
+                    achievedScoresTypeObj[uid][classificationGroupId] = {};
+                    persistedClassificationObj[uid][classificationGroupId] = {};
+                    helperObject[uid + classificationGroupId] = "";
+                }
+                if(!helperObject.hasOwnProperty(uid + classificationTypeId)) //classificationType
+                {
+                    if(_isRelevant())
+                    {
+                        if(achievedScoresObj[uid][classificationGroupId]["Score"] == undefined)
+                            achievedScoresObj[uid][classificationGroupId]["Score"] = 0;
+                        score = eMath.addDec(parseFloat(achievedScoresObj[uid][classificationGroupId]["Score"]), parseFloat(classificationScore));
+                        achievedScoresObj[uid][classificationGroupId]["Score"] = score;
+                        achievedScoresObj[uid][classificationGroupId]["Grade"] = ClassificationUtils.getGradingFromObject(
+                            gradingObject[objectTypes[i]], classificationGroupId, score, bestPossibleScoresGroupObj[uid][classificationGroupId]);
+                        
+                        if(parseFloat(classificationScore) != parseFloat(classificationScoreSaved) && classificationScore != undefined)
+                        {
+
+                            achievedScoresTypeObj[uid][classificationGroupId][classificationId] = [parseFloat(classificationScore)];
+                        }
+                        persistedClassificationObj[uid][classificationGroupId][classificationTypeId] = {};//store all classificationtypes that we have for that dataset in persistedClassificationObj
+                        helperObject[uid + classificationTypeId] = "";
+                    }
+                    else
+                    {
+                        deleteCond = newWhere("CLASSIFICATION.CLASSIFICATIONID", classificationId);
+                        deleteCond.deleteData(true, "CLASSIFICATION");
+                        outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                        
+                        helperObject[uid + classificationTypeId] = "";
+                    }
+                }
             }
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0] + pBatchData[ii][1])) //classificationGroup
+        }
+
+        if(!storedClassificationFlag)
+        {
+            correctCondition = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID", groupsThatNeedUpdate, SqlBuilder.IN())
+        }
+        else
+        {
+            correctCondition = newWhere(currentObjectColumn, objectRowIdArray, SqlBuilder.IN())
+        }
+
+        achievedScoresStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
+                                            CLASSIFICATION.CLASSIFICATIONTYPE_ID, "+ SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS is null"))
+                                                            .then("0")
+                                                            .elseValue("CLASSIFICATIONSCORE.SCOREPERCENT/100*CLASSIFICATIONTYPE.SCOREPOINTS")
+                                                            .toString()+ ", \n\
+                                            "+SqlBuilder.caseWhen(newWhere("CLASSIFICATIONSCORE.SCOREPERCENT/100 is null"))
+                                                            .then("0")
+                                                            .elseValue("CLASSIFICATIONSCORE.SCOREPERCENT/100")
+                                                            .toString()+", CLASSIFICATION.SCOREPOINTS, CLASSIFICATIONTYPE.FILTER, \n\
+                                            CLASSIFICATION.CLASSIFICATIONID, CLASSIFICATIONSCORE.TITLE")
+                                        .from(currentObjectTable)
+                                        .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                        .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATION.VALUE = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
+                                        .where(correctCondition);
+
+        if(isOrganisation)
+            achievedScoresStmt.and("CONTACT.PERSON_ID is null");
+
+        achievedScoresStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONSCORE.SCOREPERCENT asc");
+
+        bestPossibleScoreStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATION.CLASSIFICATIONTYPE_ID,\n\
+                                                CLASSIFICATIONTYPE.FILTER")
+                                        .from(currentObjectTable)
+                                        .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
+                                        .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID")
+                                        .where(correctCondition);
+        if(isOrganisation)
+            bestPossibleScoreStmt.and("CONTACT.PERSON_ID is null");
+
+        bestPossibleScoreStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID");
+
+        bestPossibleScoresGroupObj = {};
+        helperObject = {};
+        bestPossibleScoreStmt.pageSize(100)
+            .forEachPage(_buildBestPossibleScoresGroupObjFn);
+
+        achievedScoresTypeObj = {};
+        helperObject = {};
+        achievedScoresObj = {};
+        achievedScoresStmt.pageSize(100)
+            .forEachPage(_processAchievedScoresBatchFn);
+        
+        if(storedClassificationFlag != true)
+            _insertPersistendClassificationDataIfNeeded();
+        //do this after all the data is collected since the achievedScoresStmt returns several records for each rowId. 
+        //If this would be done in the batch function it would result in false classificationstorage-results because not all records for a rowId have been used
+        for (var row_Id in achievedScoresObj)
+        {   
+            
+            chainedGrading = classificationStorageObject[objectTypes[i]][row_Id][1];
+            
+            for (var groupId in achievedScoresObj[row_Id]) 
             {
-                groupString[pBatchData[ii][0]] = groupString[pBatchData[ii][0]].toString() + pBatchData[ii][1].toString() +" ";
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]] = {};
-                helperObject[pBatchData[ii][0] + pBatchData[ii][1]] = "";
+                position = 0;
+                
+                for (ii = 0; ii < orderedGroups.length; ii++) {
+                    if (orderedGroups[ii][0] == groupId)
+                    {
+                        position = ii; //current position
+                        break;
+                    }
+                }
+                if(achievedScoresObj[row_Id][groupId]["Grade"] != undefined)
+                    chainedGrading = StringUtils.replaceAt(chainedGrading, position, achievedScoresObj[row_Id][groupId]["Grade"]); //update the stored classificationString for each dataset
+                else
+                {
+                    chainedGrading = StringUtils.replaceAt(chainedGrading, position, "-"); //update the stored classificationString -> remove for irrelevant groups
+                }
             }
-            if(!helperObject.hasOwnProperty(pBatchData[ii][0] + pBatchData[ii][2])) //classificationType
+
+            for (ii = 0; iii < orderedGroups.length; ii++) //the empty gradings have been ignored, but should be filled with "-"
             {
-                if(archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] == undefined)
-                    archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] = 0;
-                score = eMath.addDec(parseFloat(archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"]), parseFloat(pBatchData[ii][3]));
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Score"] = score;
-                archievedScoresObject[pBatchData[ii][0]][pBatchData[ii][1]]["Grade"] = ClassificationUtils.getGradingFromObject(gradingObject[objectTypes[i]], pBatchData[ii][1], score);
-                helperObject[pBatchData[ii][0] + pBatchData[ii][2]] = "";
+                if(!groupObject[row_Id].toString().includes(orderedGroups[ii][0].toString())) //check which ones aren't included and add "-" for those at correct the position
+                {
+                    chainedGrading = chainedGrading.substring(0, ii) + "-" + chainedGrading.substring(ii, chainedGrading.length);
+                }
             }
-        }
-    }
 
-    var achievedScoresStmt = newSelect(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, \n\
-                                        CLASSIFICATION.CLASSIFICATIONTYPE_ID, CLASSIFICATIONSCORE.SCORE")
-                                    .from(currentObjectTable)
-                                    .join("CLASSIFICATION", "CLASSIFICATION.OBJECT_ROWID = " + currentObjectColumn)
-                                    .join("CLASSIFICATIONSCORE", "CLASSIFICATION.CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCORE.CLASSIFICATIONSCOREID")
-                                    .join("CLASSIFICATIONTYPE", "CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID = CLASSIFICATION.CLASSIFICATIONTYPE_ID");
+            //update the specified dataset if the already stored ClassificatioNValue differs from the freshly calculated one
+            cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id)
+                .and("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypes[i])
+                .and("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE", chainedGrading, SqlBuilder.NOT_EQUAL());
+            if(new RegExp("^-+$").test(chainedGrading) == true || chainedGrading == "-")
+            {
+                count = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).deleteData(true, "CLASSIFICATIONSTORAGE");
+                deleted = true;
+            }
+            else
+            {
+                count = Number(cond.updateData(true, table, column, null, [chainedGrading]));
+                deleted = false;
+            }
 
-    if(isOrganisation)
-        achievedScoresStmt.where("CONTACT.PERSON_ID is null");
+            outputInformation[objectTypes[i]].checkedElements++;
+            if(storedClassificationFlag && !deleted)
+            {
+                newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).updateData(true, "CLASSIFICATIONSTORAGE", ["OUTDATED"], null, [0])
+            }
+            if (count > 0)
+            {
+                outputInformation[objectTypes[i]].updatedElements += count;
+            }
+            else
+            {
+                outputInformation[objectTypes[i]].nonChangedElements++;
+            }
+        }
+        
+        if(achievedScoresObj.length == 0)
+        {
+            _insertPersistendClassificationDataIfNeeded2()
+        }
 
-    achievedScoresStmt.orderBy(currentObjectColumn + ", CLASSIFICATIONTYPE.CLASSIFICATIONGROUP_ID, CLASSIFICATIONSCORE.SCORE asc");
-    achievedScoresStmt.pageSize(100)
-                        .forEachPage(_processAchievedScoresBatchFn);
+        //loop trough achievedScoresTypeObj and update the stored (persistent) data if needed
+        for (var index in achievedScoresTypeObj)
+        {
+            for (var indexII in achievedScoresTypeObj[index]) 
+            {
+                for (var indexIII in achievedScoresTypeObj[index][indexII]) 
+                {
+                    var scorepoints;
+                    var columns = [];
+                    var values = [];
+                    if(Array.isArray(achievedScoresTypeObj[index][indexII][indexIII])) //if isArray == true: scorepoints have to be updated
+                    {
+                        scorepoints = Number(achievedScoresTypeObj[index][indexII][indexIII][0]);
+                    }
 
-    //do this after all the data is collected since the achievedScoresStmt returns several records for each rowId. 
-    //If this would be done in the batch function it would result in false classificationstorage-results because not all records for a rowId are used
-    for (var row_Id in archievedScoresObject)
-    {
-        chainedGrading = "";
-        //chain all the Classifications together
-        for (var row_IdI in archievedScoresObject[row_Id]) 
+                    cond = newWhere("CLASSIFICATION.CLASSIFICATIONID", indexIII);
+
+                    if(scorepoints != undefined)
+                    {
+                        columns.push("SCOREPOINTS");
+                        values.push(scorepoints);
+                    }
+                    cond.updateData(true, "CLASSIFICATION", columns, null, values);
+                    outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                }
+            }
+        }
+    }
+    
+    if(!storedClassificationFlag)
+    {    for (i = 0; i < scoreArray.length; i++)
         {
-            chainedGrading += archievedScoresObject[row_Id][row_IdI]["Grade"]
+            let cond = newWhere("CLASSIFICATIONTYPE.CLASSIFICATIONTYPEID", scoreArray[i][2]);
+            cond.updateData(true, "CLASSIFICATIONTYPE", ["OUTDATED"], null, [0]);
         }
+    }
+
+    outputInfo = outputInfo  + JSON.stringify(outputInformation) + "\n";
+    storedClassificationFlag = false;
+}
+if(runUpdating == 0)
+{
+    outputInfo = outputInfo  + "No Data has been updated, everything already up-to-date"
+}
+logging.log(outputInfo);
 
-        for (var iii = 0; iii < orderedGroups.length; iii++) //the empty gradings have been ignored, but should be filled with "-"
+
+/**
+ * Builds filteredRecsObj Object which stores all the included Datasets to the specific filter.
+ * (loops trough classificationTypesFilterObj and uses either entites.getRow or an select for every different filter)
+ */
+function _buildFilteredRecsObject()
+{
+    filteredRecsObj = {}; //reset for every objectType
+    executeGetRows = true; //reset for every objectTyp
+    
+    for (var index in classificationTypesFilterObj[objectTypes[i]])
+    {
+        for (var indexIndex in classificationTypesFilterObj[objectTypes[i]][index]) 
         {
-            if(!groupString[row_Id].toString().includes(orderedGroups[iii][0].toString())) //check which ones aren't included and add "-" for those at correct the position
+            var unparsedFilter = classificationTypesFilterObj[objectTypes[i]][index][indexIndex];
+            var filter = JSON.parse(unparsedFilter).filter;
+            //filteredRecsObj uses the filter as the key -> if multiple indicators use the exact same filtercondition we only have to get these rows once
+            if(filteredRecsObj[classificationTypesFilterObj[objectTypes[i]][index][indexIndex]] == undefined)
             {
-                chainedGrading = chainedGrading.substring(0, iii) + "-" + chainedGrading.substring(iii, chainedGrading.length);
+                if(filter["childs"]["0"] != undefined) // ignore empty filters
+                {
+                    //no "." in the name means its a field of the entity itself: use entities.getRow and JditoFilterUtils.filterRecords 
+                    //to check whether or not the Filter excludes this row
+                    if(!filter["childs"]["0"]["name"].includes(".")) 
+                    {
+                        if(executeGetRows) //only do this once for every object type, since the rows don't change depending on the filter
+                        {
+                            var loadConfig = entities.createConfigForLoadingRows()
+                            .entity(ContextUtils.getEntity(objectTypes[i]))
+                            .fields(filterFields);
+
+                            var rows = entities.getRows(loadConfig);
+                            var filterableRows = [];
+                            for (ii = 0; ii < rows.length; ii++) {
+                                filterableRows[ii] = filterFields.map(function (field)
+                                {
+                                    value = null;
+                                    if (field in rows[ii])
+                                        value = rows[ii][field];
+                                    return value;
+                                });
+                            }
+                            executeGetRows = false;
+                        }
+                        //filter gets used after using entities.getRow and not in the loadconfig, since we can have multiple filters 
+                        //and don't want to do entities.getRow for every single one 
+                        filteredRecsObj[unparsedFilter] = JditoFilterUtils.filterRecords(filterFields, filterableRows, filter);
+                    }
+                    else //else: currently a count is made whith the filtercondition as the where clause --> poor performance
+                    {
+                        if(objectTypes[i] == "Organisation")
+                        {
+                            filteredRecsObj[unparsedFilter] = newSelect("CONTACT.CONTACTID")
+                                            .from("ORGANISATION")
+                                            .join("CONTACT", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null")
+                                            .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+                                            .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+                                            .where(db.toFilterCondition(JSON.stringify(filter), "Organisation_entity"))
+                                            .and("ORGANISATION.ORGANISATIONID", OrgUtils.getPrivateOrganisationId(), SqlBuilder.NOT_EQUAL())
+                                            .table();
+                        }
+                        else if(objectTypes[i] == "Salesproject")
+                        {
+                            filteredRecsObj[unparsedFilter] = newSelect("SALESPROJECT.SALESPROJECTID")
+                                            .from("SALESPROJECT")
+                                            .leftJoin("CONTACT", "SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID")
+                                            .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
+                                            .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID") 
+                                            .where(db.toFilterCondition(JSON.stringify(filter), "Salesproject_entity"))
+                                            .table();
+                        }
+                    }
+                }
             }
         }
+    }
+}
 
-        //update the specified dataset if the already stored ClassificatioNValue differs from the freshly calculated one
-        cond = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id)
-            .and("CLASSIFICATIONSTORAGE.OBJECT_TYPE", objectTypes[i])
-            .and("CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE", chainedGrading, SqlBuilder.NOT_EQUAL());
-        if(new RegExp("^-+$").test(chainedGrading) == true || chainedGrading == "-")
+/**
+ * Checks whether or not the classificationType is relevant for the current dataset 
+ * (looping trough classificationTypesNoFilterObj if it's included there: no filter is set and it's relevant, 
+ * othwerwises uses _isRelevantFilter() to check whether or not it get's excluded by the set filter)
+ * returns true/false
+ */
+function _isRelevant()
+{
+    var include = false;
+    
+    if(classificationTypeFilter == "" || classificationTypeFilter == undefined)
+    {
+        for (var index in classificationTypesNoFilterObj[objectTypes[i]])
         {
-            count = newWhere("CLASSIFICATIONSTORAGE.OBJECT_ROWID", row_Id).deleteData(true, "CLASSIFICATIONSTORAGE");
+            for (var indexIndex in classificationTypesNoFilterObj[objectTypes[i]][index])
+            {
+                if(classificationTypesNoFilterObj[objectTypes[i]][index][indexIndex] != undefined)
+                {    
+                    include = true;
+                    break;
+                }
+            }
         }
-        else
+    }
+    else
+    {
+        include = _isRelevantFilter();
+    }
+    return include;
+}
+
+/**
+ * Checks whether or not the classificationType is relevant for the current dataset, 
+ * (loops trough filteredRecsObj to check whether or not the filter excluded the dataset)
+ * returns true/false
+ */
+function _isRelevantFilter()
+{
+    var include = false;
+    var recs = filteredRecsObj[classificationTypeFilter];
+    if(recs != undefined)
+    {
+        include = recs.some(function (rec) {return rec[0] == uid});
+    }
+    return include;
+}
+
+
+function _buildBestPossibleScoresGroupObjFn(pBatchData, pBatchNum)
+{
+    //logic from above applies here aswell
+    for (ii = 0; ii < pBatchData.length; ii++) 
+    {
+        [uid, classificationGroupId, classificationTypeId, classificationTypeFilter, classificationScoreTitle, classificationTypeFilter] = pBatchData[ii];
+
+        if(!helperObject.hasOwnProperty(uid)) //uid
         {
-            count = Number(cond.updateData(true, table, column, null, [chainedGrading]));
+            bestPossibleScoresGroupObj[uid] = {};
+            helperObject[uid] = "";
         }
-        if (count > 0)
+        if(!helperObject.hasOwnProperty(uid + classificationGroupId)) //classificationGroup
         {
-            outputInformation[objectTypes[i]].updatedElements += count;
+            bestPossibleScoresGroupObj[uid][classificationGroupId] = "";
+            helperObject[uid + classificationGroupId] = "";
         }
-        else
+        if(!helperObject.hasOwnProperty(uid + classificationTypeId)) //classificationType
         {
-            outputInformation[objectTypes[i]].nonChangedElements++;
+            if(_isRelevant() != false)
+            {
+                if(bestPossibleScoresGroupObj[uid][classificationGroupId] == "")
+                    bestPossibleScoresGroupObj[uid][classificationGroupId] = 0;
+                if(bestPossibleScoresObj[objectTypes[i]][classificationGroupId] != undefined && bestPossibleScoresObj[objectTypes[i]][classificationGroupId][classificationTypeId] != undefined)
+                    bestPossibleScoresGroupObj[uid][classificationGroupId] = eMath.addInt(Number(bestPossibleScoresGroupObj[uid][classificationGroupId]), Number(bestPossibleScoresObj[objectTypes[i]][classificationGroupId][classificationTypeId]));
+
+                helperObject[uid + classificationTypeId] = "";
+            }
         }
     }
 }
 
-var outputInfo = "updateClassifications_serverProcess output is:\n" + JSON.stringify(outputInformation);
-logging.log(outputInfo);
\ No newline at end of file
+function _insertPersistendClassificationDataIfNeeded()
+{   
+    var objectsWithClassification = newSelect("distinct CLASSIFICATION.OBJECT_ROWID")
+                                                .from("CLASSIFICATION")
+                                                .where("CLASSIFICATION.OBJECT_TYPE", objectTypes[i])
+                                                .arrayColumn();
+    for (z = 0; z < objectsWithClassification.length; z++) {
+        
+        uid = objectsWithClassification[z];
+        var columns = ["CLASSIFICATION.CLASSIFICATIONID"
+                        , "CLASSIFICATION.VALUE"
+                        , "CLASSIFICATION.CLASSIFICATIONTYPE_ID"
+                        , "CLASSIFICATION.OBJECT_TYPE"
+                        , "CLASSIFICATION.OBJECT_ROWID"
+                        , "CLASSIFICATION.SCOREPOINTS"
+                        ];
+
+        for (var groupId in outdatedClassificationTypeObj[objectTypes[i]])
+        {
+            for (var typeId in outdatedClassificationTypeObj[objectTypes[i]][groupId])
+            {
+                classificationTypeFilter = outdatedClassificationTypeObj[objectTypes[i]][groupId][typeId]["classificationTypeFilter"];
+                if(!persistedClassificationObj[uid][groupId].hasOwnProperty(typeId) && _isRelevant())
+                {
+                    var values = [util.getNewUUID()
+                                    , " "
+                                    , typeId
+                                    , objectTypes[i]
+                                    , uid
+                                    , "0"
+                                ];
+                    db.insertData("CLASSIFICATION", columns, null, values);
+                    outputInformation[objectTypes[i]].persistentDatasetsUpdated++;
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod b/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
index c3142850326968443c10f656f4ecf7468ebcdee2..2ba0b1ef3bf179083e4c64eb0ca8d4c6748a4e0e 100644
--- a/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
+++ b/process/updateClassifications_serverProcess/updateClassifications_serverProcess.aod
@@ -3,6 +3,7 @@
   <name>updateClassifications_serverProcess</name>
   <title>Update all Classification entries in the system</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/process/updateClassifications_serverProcess/documentation.adoc</documentation>
   <process>%aditoprj%/process/updateClassifications_serverProcess/process.js</process>
   <alias>Data_alias</alias>
   <variants>
diff --git a/process/workflowExtension_serverProcess/process.js b/process/workflowExtension_serverProcess/process.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ce13d62e6701972701b2e0620dbb9ebc4e3c232d 100644
--- a/process/workflowExtension_serverProcess/process.js
+++ b/process/workflowExtension_serverProcess/process.js
@@ -0,0 +1,12 @@
+import("Context_lib");
+import("Classification_lib");
+import("Workflow_lib");
+import("system.vars");
+
+var localVariables = JSON.parse(vars.get("$local.variablesWorkflow"));
+var targetId = localVariables["targetId"];
+var entityName = ContextUtils.getEntity(localVariables["targetContext"]);
+var rowData = JSON.parse(localVariables[WorkflowVariables.ROWDATA()]);
+var changedRows = JSON.parse(localVariables[WorkflowVariables.CHANGED_ROWS()]);
+
+ClassificationUtils.setClassificationStorageDatasetsOutdated([targetId], entityName, rowData, changedRows); 
diff --git a/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod b/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod
index 195a4cd633e30d180b82eec95ea16e5be180a292..c344dc7204460dbcff99ddb0c5d92ef5c1656fe6 100644
--- a/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod
+++ b/process/workflowExtension_serverProcess/workflowExtension_serverProcess.aod
@@ -3,6 +3,7 @@
   <name>workflowExtension_serverProcess</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <process>%aditoprj%/process/workflowExtension_serverProcess/process.js</process>
+  <alias>Data_alias</alias>
   <variants>
     <element>EXECUTABLE</element>
   </variants>
diff --git a/report/Offer_report/reportData.jrxml b/report/Offer_report/reportData.jrxml
index 2f3a25316e09aa7a8a18a74718bb72d930e3e4f5..76b33d239d03b4c903aed440ea6f8c4b5c30df50 100644
--- a/report/Offer_report/reportData.jrxml
+++ b/report/Offer_report/reportData.jrxml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
-	<property name="ireport.zoom" value="1.0"/>
+	<property name="ireport.zoom" value="1.7715610000000064"/>
 	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="0"/>
+	<property name="ireport.y" value="279"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Pos" class="java.lang.String"/>
 	<parameter name="Articledescription" class="java.lang.String"/>
@@ -24,7 +24,7 @@
 	<parameter name="OfferDeliveryTerm" class="java.lang.String"/>
 	<parameter name="responsible" class="java.lang.String"/>
 	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
-		<defaultValueExpression><![CDATA["C:\\dev\\project\\basic\\report\\Offer_report\\"]]></defaultValueExpression>
+		<defaultValueExpression><![CDATA["C:\\Users\\s.neumaier\\Documents\\AditoProjects\\basic_2020.2\\report\\Offer_report\\"]]></defaultValueExpression>
 	</parameter>
 	<parameter name="adito.datasource.subdata" class="java.lang.Object"/>
 	<parameter name="SUMITEMSUM" class="java.lang.Double"/>
@@ -32,6 +32,11 @@
 	<parameter name="adito.image.myLogo" class="java.lang.String"/>
 	<parameter name="printDiscount" class="java.lang.String"/>
 	<parameter name="directlyResponsible" class="java.lang.String"/>
+	<parameter name="subTotal" class="java.lang.String"/>
+	<parameter name="InvoiceDiscount" class="java.lang.String"/>
+	<parameter name="TotalWithoutVat" class="java.lang.String"/>
+	<parameter name="TotalWithVat" class="java.lang.String"/>
+	<parameter name="printHeadDiscount" class="java.lang.String"/>
 	<queryString>
 		<![CDATA[]]>
 	</queryString>
@@ -53,6 +58,9 @@
 	<field name="OFFER_HEADER" class="java.lang.String"/>
 	<field name="ITEMSUM" class="java.lang.String"/>
 	<field name="OFFER_FOOTER" class="java.lang.String"/>
+	<field name="OFFER_DISCOUNT" class="java.lang.String"/>
+	<field name="OFFER_DISCOUNTED_NET" class="java.lang.String"/>
+	<field name="OFFER_DISCOUNTSUM" class="java.lang.String"/>
 	<sortField name="OFFER_OFFERID"/>
 	<group name="OFFERID" isStartNewPage="true">
 		<groupExpression><![CDATA[$F{OFFER_OFFERID}]]></groupExpression>
@@ -233,19 +241,69 @@
 			</band>
 		</groupHeader>
 		<groupFooter>
-			<band height="24">
+			<band height="23">
 				<line>
 					<reportElement x="356" y="4" width="196" height="1" uuid="228a3e86-96b6-470f-b9d8-9c566a0f1065"/>
 				</line>
 				<textField pattern="#,##0.00;-#,##0.00">
-					<reportElement x="452" y="6" width="100" height="15" uuid="f71cd6ef-6a10-4bd5-9bd5-4c8de5a276f1"/>
+					<reportElement x="469" y="8" width="83" height="15" uuid="f71cd6ef-6a10-4bd5-9bd5-4c8de5a276f1"/>
 					<textElement textAlignment="Right">
-						<font size="8"/>
+						<font size="8" isBold="true"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{SUMITEMSUM}]]></textFieldExpression>
 				</textField>
+				<textField>
+					<reportElement x="356" y="8" width="113" height="15" uuid="c505a568-afb9-4cb3-9d15-b7803aeff207"/>
+					<textElement>
+						<font size="8" isBold="true"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$P{subTotal}]]></textFieldExpression>
+				</textField>
 			</band>
-			<band height="18">
+			<band height="34">
+				<printWhenExpression><![CDATA[!$P{printHeadDiscount}.equals("0")]]></printWhenExpression>
+				<textField isStretchWithOverflow="true">
+					<reportElement positionType="Float" x="469" y="19" width="83" height="15" uuid="26cc2b42-75a8-4e17-a674-f75a83465476">
+						<printWhenExpression><![CDATA[!$P{printHeadDiscount}.equals("0")]]></printWhenExpression>
+					</reportElement>
+					<textElement textAlignment="Right">
+						<font size="8" isBold="true"/>
+						<paragraph lineSpacing="Proportional"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$F{OFFER_DISCOUNTED_NET}]]></textFieldExpression>
+				</textField>
+				<textField isStretchWithOverflow="true">
+					<reportElement positionType="Float" x="356" y="19" width="113" height="15" uuid="05470803-14c1-4ecc-81f0-de432ec80c27">
+						<printWhenExpression><![CDATA[!$P{printHeadDiscount}.equals("0")]]></printWhenExpression>
+					</reportElement>
+					<textElement>
+						<font size="8" isBold="true"/>
+						<paragraph lineSpacing="Proportional"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$P{Total} + " " + $F{OFFER_CURRENCY} + " " + $P{TotalWithoutVat}]]></textFieldExpression>
+				</textField>
+				<textField isStretchWithOverflow="true">
+					<reportElement positionType="Float" x="356" y="2" width="113" height="15" uuid="152d4841-b63c-4cd3-bc6b-935af23ad0b8">
+						<printWhenExpression><![CDATA[!$P{printHeadDiscount}.equals("0")]]></printWhenExpression>
+					</reportElement>
+					<textElement>
+						<font size="8"/>
+						<paragraph lineSpacing="Proportional"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$F{OFFER_DISCOUNT} + " % " + $P{InvoiceDiscount}]]></textFieldExpression>
+				</textField>
+				<textField isStretchWithOverflow="true">
+					<reportElement positionType="Float" x="469" y="2" width="83" height="15" uuid="e205d256-1ac5-439b-9b9c-3735d7a301df">
+						<printWhenExpression><![CDATA[!$P{printHeadDiscount}.equals("0")]]></printWhenExpression>
+					</reportElement>
+					<textElement textAlignment="Right">
+						<font size="8"/>
+						<paragraph lineSpacing="Proportional"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$F{OFFER_DISCOUNTSUM}]]></textFieldExpression>
+				</textField>
+			</band>
+			<band height="19">
 				<subreport>
 					<reportElement isPrintRepeatedValues="false" x="355" y="2" width="196" height="15" isRemoveLineWhenBlank="true" uuid="8683c745-01bf-44aa-af62-a6ba881a9edd"/>
 					<subreportParameter name="PlusSalestax">
@@ -257,46 +315,47 @@
 			</band>
 			<band height="33">
 				<textField>
-					<reportElement x="20" y="13" width="100" height="20" uuid="112f15db-0989-430e-b2c4-61f975f7b8a4">
-						<printWhenExpression><![CDATA[!$P{OfferPaymentTerm}.equals("")]]></printWhenExpression>
-					</reportElement>
-					<textElement>
-						<font size="8"/>
-					</textElement>
-					<textFieldExpression><![CDATA[$P{PaymentConditions}]]></textFieldExpression>
-				</textField>
-				<textField>
-					<reportElement x="122" y="13" width="100" height="20" uuid="8149be09-d439-4e1a-a853-f82bd5e5683e"/>
+					<reportElement x="122" y="12" width="100" height="20" uuid="8149be09-d439-4e1a-a853-f82bd5e5683e"/>
 					<textElement>
 						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{OfferPaymentTerm}]]></textFieldExpression>
 				</textField>
+				<line>
+					<reportElement x="356" y="29" width="196" height="1" uuid="982cac61-6b87-4439-93cb-6c89fcc7932c"/>
+					<graphicElement>
+						<pen lineWidth="3.0" lineStyle="Double"/>
+					</graphicElement>
+				</line>
 				<textField>
-					<reportElement x="402" y="8" width="90" height="20" uuid="c3444576-6cb8-47f2-9dc9-e892a91ceb07"/>
-					<textElement textAlignment="Right">
+					<reportElement x="356" y="7" width="113" height="20" uuid="c3444576-6cb8-47f2-9dc9-e892a91ceb07"/>
+					<textElement textAlignment="Left">
 						<font size="8" isBold="true"/>
 					</textElement>
-					<textFieldExpression><![CDATA[$P{Total} + " " + $F{OFFER_CURRENCY}]]></textFieldExpression>
+					<textFieldExpression><![CDATA[$P{Total} + " " + $F{OFFER_CURRENCY} + " " + $P{TotalWithVat}]]></textFieldExpression>
 				</textField>
 				<line>
-					<reportElement x="356" y="2" width="196" height="1" uuid="8973e664-cfc0-4b52-bd0d-c80a49910da2"/>
-				</line>
-				<line>
-					<reportElement x="356" y="30" width="196" height="1" uuid="982cac61-6b87-4439-93cb-6c89fcc7932c"/>
-					<graphicElement>
-						<pen lineWidth="3.0" lineStyle="Double"/>
-					</graphicElement>
+					<reportElement x="356" y="1" width="196" height="1" uuid="8973e664-cfc0-4b52-bd0d-c80a49910da2"/>
 				</line>
 				<textField pattern="###0.00;-###0.00">
-					<reportElement x="491" y="8" width="59" height="20" uuid="75bb0951-e562-4170-a5c2-731d3219ec66"/>
+					<reportElement x="469" y="7" width="81" height="20" uuid="75bb0951-e562-4170-a5c2-731d3219ec66"/>
 					<textElement textAlignment="Right">
 						<font size="8" isBold="true"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{TOTAL}]]></textFieldExpression>
 				</textField>
+				<textField>
+					<reportElement x="20" y="12" width="100" height="20" uuid="112f15db-0989-430e-b2c4-61f975f7b8a4">
+						<printWhenExpression><![CDATA[!$P{OfferPaymentTerm}.equals("")]]></printWhenExpression>
+					</reportElement>
+					<textElement>
+						<font size="8"/>
+					</textElement>
+					<textFieldExpression><![CDATA[$P{PaymentConditions}]]></textFieldExpression>
+				</textField>
 			</band>
 			<band height="20">
+				<printWhenExpression><![CDATA[($F{OFFER_FOOTER} != null && !$F{OFFER_FOOTER}.trim().isEmpty())]]></printWhenExpression>
 				<textField>
 					<reportElement x="20" y="0" width="100" height="20" uuid="75b328c0-4ab1-478d-afb8-0ed8974da1af">
 						<printWhenExpression><![CDATA[!$P{OfferDeliveryTerm}.equals("")]]></printWhenExpression>
@@ -315,7 +374,6 @@
 				</textField>
 			</band>
 			<band height="20">
-				<printWhenExpression><![CDATA[($F{OFFER_FOOTER} != null && !$F{OFFER_FOOTER}.trim().isEmpty())]]></printWhenExpression>
 				<textField isStretchWithOverflow="true">
 					<reportElement x="20" y="0" width="530" height="20" uuid="2a2d0fe8-9c83-43b7-913d-a551a9879608"/>
 					<textElement>
diff --git a/report/Offer_report/reportData_subreport1.jrxml b/report/Offer_report/reportData_subreport1.jrxml
index 45e05cbc8afa6664aeeca709bcf3ec6afcf86df2..2429050e564354bcdb770e4cdb3ce3d989251f82 100644
--- a/report/Offer_report/reportData_subreport1.jrxml
+++ b/report/Offer_report/reportData_subreport1.jrxml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="reportData_subreport1" pageWidth="200" pageHeight="802" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="65da6912-abcf-40ed-a854-750d851fe857">
-	<property name="ireport.zoom" value="6.72749994932561"/>
+	<property name="ireport.zoom" value="4.177248169415656"/>
 	<property name="ireport.x" value="0"/>
 	<property name="ireport.y" value="0"/>
 	<parameter name="PlusSalestax" class="java.lang.String"/>
diff --git a/report/Reminder_report/reportData.jrxml b/report/Reminder_report/reportData.jrxml
index 1347b1ef959b34c58be528e8eecfb4bc139ff51a..ecbfcaa763c5fd38ea839ee2e483d79b57bf80ea 100644
--- a/report/Reminder_report/reportData.jrxml
+++ b/report/Reminder_report/reportData.jrxml
@@ -2,7 +2,7 @@
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Mahnung" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea">
 	<property name="ireport.zoom" value="2.1435888100000016"/>
 	<property name="ireport.x" value="0"/>
-	<property name="ireport.y" value="0"/>
+	<property name="ireport.y" value="192"/>
 	<parameter name="myAddr" class="java.lang.String"/>
 	<parameter name="Kontenabstimmung" class="java.lang.String"/>
 	<parameter name="Rech.-Nr" class="java.lang.String"/>
@@ -114,14 +114,14 @@
 				</textField>
 				<textField>
 					<reportElement x="307" y="0" width="81" height="15" uuid="000feb72-9b7d-42e6-ade9-8e12359c3eef"/>
-					<textElement>
+					<textElement textAlignment="Right">
 						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$R{Rechnungsbetrag}]]></textFieldExpression>
 				</textField>
 				<textField>
 					<reportElement x="430" y="0" width="81" height="15" uuid="8eee46c0-f3c3-4563-b1b1-746aeb7e73c6"/>
-					<textElement>
+					<textElement textAlignment="Right">
 						<font size="8"/>
 					</textElement>
 					<textFieldExpression><![CDATA[$P{OutstandingAmount}]]></textFieldExpression>
@@ -170,14 +170,14 @@
 				<textFieldExpression><![CDATA[$P{Reminder}]]></textFieldExpression>
 			</textField>
 			<textField pattern="dd.MM.yyyy">
-				<reportElement x="388" y="192" width="100" height="20" uuid="5141d92f-3325-445b-b616-90630c1648f7"/>
+				<reportElement x="411" y="192" width="100" height="20" uuid="5141d92f-3325-445b-b616-90630c1648f7"/>
 				<textElement textAlignment="Right">
 					<font size="8"/>
 				</textElement>
 				<textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
 			</textField>
-			<textField>
-				<reportElement x="13" y="232" width="294" height="20" uuid="3f7d1c4a-a326-436b-831d-5da9fd255bf0"/>
+			<textField isStretchWithOverflow="true">
+				<reportElement x="13" y="232" width="542" height="20" isPrintWhenDetailOverflows="true" uuid="3f7d1c4a-a326-436b-831d-5da9fd255bf0"/>
 				<textElement>
 					<font size="8" isBold="true"/>
 				</textElement>
diff --git a/system/default/default.aod b/system/default/default.aod
index 9a52a413a65379d11c6a4f41d481f78eef758db0..52bd2d1c0a28061427e4a48cae30f56a521e2e46 100644
--- a/system/default/default.aod
+++ b/system/default/default.aod
@@ -2,7 +2,7 @@
 <system xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/system/1.1.0">
   <name>default</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <serverConfigPath>$ADITODATA/config/serverconfig_default.xml</serverConfigPath>
+  <serverConfigPath>C:\Users\s.neumaier\Documents\AditoProjects\basic_2020.2\data\sn-test-basic.dev.c2.adito.cloud_serverconfig_system.xml</serverConfigPath>
   <aditoHomePath>$ADITOHOME</aditoHomePath>
   <aditoDataPath>$PROJECTHOME/data</aditoDataPath>
   <loginUser>admin</loginUser>