import("system.logging"); import("DuplicateScanner_lib"); var filterName = "PersonDuplicates"; var targetEntity = "Person_entity"; let duplicateFieldsConfig = DuplicateScannerUtils.LoadIndexFieldsConfiguration(filterName, targetEntity); let resultFields = DuplicateScannerUtils.LoadResultFields(filterName, targetEntity); logging.log("duplicateFieldsConfig -> " + duplicateFieldsConfig); logging.log("resultFields -> " + resultFields); let querySelectFields = DuplicateScannerUtils.BuildSqlSelectFieldsFromFieldConfig(duplicateFieldsConfig); logging.log("querySelectFields -> " + querySelectFields); let queryPersonFieldData = "select " + querySelectFields + " from CONTACT" + " join PERSON on PERSONID = PERSON_ID" + " left join ADDRESS on ADDRESS.CONTACT_ID = CONTACT.CONTACTID"; logging.log("Löschen von PERSON Dubletten -> "); DuplicateScannerUtils.DeleteDuplicateClustersByTargetEntity(targetEntity); let formatToJsonAndCallWsCallback = function(pPossibleDuplicatesRay) { logging.log("inside callback -> "); let indexResultFields = DuplicateScannerUtils.TranslateEntityToIndexFields(targetEntity, resultFields) //Run thru every duplicate result an read out the resultfields for (let i = 0; i < pPossibleDuplicatesRay.length; i++) { for (let b = 0; b < resultFields.length; b++) { let entityFieldName = resultFields[b]; let indexFieldName = indexResultFields[entityFieldName]; //logging.log("Entity Field -> "+ pPossibleDuplicatesRay[i][indexFieldName]); //format values } } //call webservice //reformat results to same structure as before return pPossibleDuplicatesRay; }; logging.log("Neu berechnen von PERSON Dubletten -> "); DuplicateScannerUtils.RebuildDuplicatesCache(filterName, targetEntity, queryPersonFieldData, duplicateFieldsConfig, resultFields, formatToJsonAndCallWsCallback); DuplicateScannerUtils.RefreshUnrelatedDuplicateRelations(targetEntity);