Skip to content
Snippets Groups Projects
Commit 2a00872e authored by David Büchler's avatar David Büchler
Browse files

Temporarily added view to Organisation which calculates duplciates on each...

Temporarily added view to Organisation which calculates duplciates on each main-view-open and doesnt cache the results. Same as on Person
parent 3e96b416
No related branches found
No related tags found
No related merge requests found
......@@ -1045,6 +1045,28 @@
<name>OnlyOwnSupervised_param</name>
<expose v="true" />
</entityParameter>
<entityConsumer>
<name>SelfDuplicatesUncached</name>
<dependency>
<name>dependency</name>
<entityName>Organisation_entity</entityName>
<fieldName>SelfDuplicatesProvider</fieldName>
</dependency>
<children>
<entityParameter>
<name>DuplicateActionsControl_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/duplicateactionscontrol_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>DuplicateCurrentContactId_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>OnlyShowContactIds_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<dbRecordContainer>
......
import("system.result");
result.string("1");//todo use keyword
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
import("system.project");
import("system.indexsearch");
import("system.logging");
import("system.vars");
import("DuplicateScanner_lib");
import("system.result");
let targetEntity = "Organisation_entity";
let valuesToCheck = {};
var entityModel = project.getEntityStructure(targetEntity);
//Read the values of all available entity fields and write the fieldname7value combination
//as key/value pairs into an object. This is used to trigger the scan for duplicates
let fieldValue = "";
let entityFields = [];
for (fieldname in entityModel.fields)
{
field = entityModel.fields[fieldname];
if(field.fieldType == project.ENTITYFIELDTYPE_FIELD)
{
fieldValue = vars.get("$field." + field.name);
if(fieldValue != null && fieldValue != "")
{
// logging.log("field.name -> " + field.name);
valuesToCheck[field.name] = fieldValue;
// logging.log("field value -> " + fieldValue);
}
}
}
let scanResults = DuplicateScannerUtils.ScanForDuplicates("OrganisationDuplicates", targetEntity,
valuesToCheck, null);
let duplicateIds = [];
if(scanResults != null)
{
//Run thru every duplicate result and read out the id.
//Do it now to have a simple array on all usages lateron.
for (let i = 0; i < scanResults.length; i++)
{
let duplicateContactId = scanResults[i][indexsearch.FIELD_ID];
duplicateIds.push(duplicateContactId);
}
}
/*
* To achieve that if there are no duplicates, no contacts should be shown and therefore returned by the
* recordcontainer, an invalid id gets returned. It then is used in the conditionProcess to load the duplicates.
* Because of its invalidity, no records are shown.
*/
if(duplicateIds.length == 0)
result.string(JSON.stringify(["nodata"]));
else
result.string(JSON.stringify(duplicateIds));
\ No newline at end of file
......@@ -33,14 +33,18 @@ let scanResults = DuplicateScannerUtils.ScanForDuplicates("PersonDuplicates", ta
valuesToCheck, null);
let duplicateIds = [];
//Run thru every duplicate result and read out the id.
//Do it now to have a simple array on all usages lateron.
for (let i = 0; i < scanResults.length; i++)
if(scanResults != null)
{
let duplicateContactId = scanResults[i][indexsearch.FIELD_ID];
duplicateIds.push(duplicateContactId);
//Run thru every duplicate result and read out the id.
//Do it now to have a simple array on all usages lateron.
for (let i = 0; i < scanResults.length; i++)
{
let duplicateContactId = scanResults[i][indexsearch.FIELD_ID];
duplicateIds.push(duplicateContactId);
}
}
logging.log("duplicateIds.length -> " + duplicateIds.length);
/*
* To achieve that if there are no duplicates, no contacts should be shown and therefore returned by the
* recordcontainer, an invalid id gets returned. It then is used in the conditionProcess to load the duplicates.
......
......@@ -65,5 +65,10 @@
<entityField>SelfDuplicatesConsumer</entityField>
<view>OrganisationFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>c84abb91-0af3-42d0-825b-78ea4de324ea</name>
<entityField>SelfDuplicatesUncached</entityField>
<view>OrganisationFilter_view</view>
</neonViewReference>
</children>
</neonView>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment