From dbfe335efffe9bbfcd9f42cadd66a159c5a356c1 Mon Sep 17 00:00:00 2001 From: "d.buechler" <d.buechler@adito.de> Date: Fri, 20 Sep 2019 10:56:57 +0200 Subject: [PATCH] The flag if an external webservice should be used is now used in the code. If true, the parameterized callbackfunction gets called. See DuplicateScannerUtils._isUseExternalWebservice --- process/DuplicateScanner_lib/process.js | 49 +++++++++++++------------ 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/process/DuplicateScanner_lib/process.js b/process/DuplicateScanner_lib/process.js index 655259211f..7b7760625c 100644 --- a/process/DuplicateScanner_lib/process.js +++ b/process/DuplicateScanner_lib/process.js @@ -235,6 +235,8 @@ pQueryTargetRecords, pDuplicateFieldsConfig, pCallExternalWebserviceFunction) logging.log("in RebuildDuplicatesCache -> "); let alreadyIdentifiedIds = []; let targetRecordsData = db.table(pQueryTargetRecords); + let useExternalWebservice = DuplicateScannerUtils._isUseExternalWebservice(pFilterName, pTargetEntity); + logging.log("useExternalWebservice -> " + useExternalWebservice); logging.log("targetRecordsData -> " + JSON.stringify(targetRecordsData)); //If the contact id loading query has no results, stop. @@ -271,7 +273,7 @@ pQueryTargetRecords, pDuplicateFieldsConfig, pCallExternalWebserviceFunction) logging.log("idValue -> " + idValue); let foundDuplicates = DuplicateScannerUtils.ScanForDuplicates(pFilterName, pTargetEntity, - entityFieldValuesRay, resultFields, idField, idValue, pCallExternalWebserviceFunction) + entityFieldValuesRay, resultFields, idField, idValue, pCallExternalWebserviceFunction, useExternalWebservice) // logging.log("foundDuplicates -> " + JSON.stringify(foundDuplicates)); logging.log("foundDuplicates -> " + foundDuplicates); @@ -379,9 +381,21 @@ DuplicateScannerUtils._loadResultFields = function(pFilterName, pTargetEntity) return db.array(db.COLUMN, duplicateResultFields); } +DuplicateScannerUtils._isUseExternalWebservice = function(pFilterName, pTargetEntity) +{ + let scannerUseExternalWebserviceQuery = SqlCondition.begin() + .andPrepare("DUPLICATESCANNER.FILTER_NAME", pFilterName) + .andPrepare("DUPLICATESCANNER.ENTITY_TO_SCAN_NAME", pTargetEntity) + .buildSql("select EXTERNAL_SERVICE_USAGE_ALLOWED from DUPLICATESCANNER" + , "1=2"); + + logging.log("scannerUseExternalWebserviceQuery -> " + scannerUseExternalWebserviceQuery); + let isUseWebservice = db.cell(scannerUseExternalWebserviceQuery); + return (isUseWebservice == 0) ? false : true; +} DuplicateScannerUtils.ScanForDuplicates = function(pFilterName, pTargetEntity, pFilterFieldValueRays, -pTargetEntityResultFields, pRecordIdFieldToIgnore, pRecordIdValueToIgnore, pCallExternalWebserviceFunction) +pTargetEntityResultFields, pRecordIdFieldToIgnore, pRecordIdValueToIgnore, pCallExternalWebserviceFunction, pUseExternalWebservice) { let possibleDuplicates = []; let ignoredRecordFilter = _DuplicateScannerUtils._getIgnoreRecordFilter(pRecordIdFieldToIgnore, pRecordIdValueToIgnore, pTargetEntity); @@ -398,29 +412,18 @@ pTargetEntityResultFields, pRecordIdFieldToIgnore, pRecordIdValueToIgnore, pCall if(preFilter == null) return null; - let useExternalWebservice = false;//todo + possibleDuplicates = DuplicateScannerUtils._callIndexSearch(pTargetEntity, preFilter, pFilterFieldValueRays, pTargetEntityResultFields, 100); + possibleDuplicates = possibleDuplicates[indexsearch.HITS]; - if(useExternalWebservice) - { - possibleDuplicates = DuplicateScannerUtils._callIndexSearch(pTargetEntity, preFilter, pFilterFieldValueRays, pTargetEntityResultFields, 100); - possibleDuplicates = possibleDuplicates[indexsearch.HITS]; - - if(possibleDuplicates.length > 0) - possibleDuplicates = pCallExternalWebserviceFunction.apply(this, [possibleDuplicates]); - } - else - { - logging.log("pTargetEntity -> " + pTargetEntity); - logging.log("preFilter -> " + preFilter); - logging.log("pFilterFieldValueRays -> " + pFilterFieldValueRays); - logging.log("pRecordIdFieldToIgnore -> " + pRecordIdFieldToIgnore); - - //(pTargetEntity, pPreFilterJson, pEntityFieldValueRays, pResultIndexFields, pResultFields, pResultSetRows) - //run actual index duplicate search - possibleDuplicates = DuplicateScannerUtils._callIndexSearch(pTargetEntity, preFilter, pFilterFieldValueRays, pTargetEntityResultFields, 100); - possibleDuplicates = possibleDuplicates[indexsearch.HITS]; - } + if(pUseExternalWebservice && possibleDuplicates.length > 0 && pCallExternalWebserviceFunction != null) + possibleDuplicates = pCallExternalWebserviceFunction.apply(this, [possibleDuplicates]); + + logging.log("pTargetEntity -> " + pTargetEntity); + logging.log("preFilter -> " + preFilter); + logging.log("pFilterFieldValueRays -> " + pFilterFieldValueRays); + logging.log("pRecordIdFieldToIgnore -> " + pRecordIdFieldToIgnore); logging.log("possibleDuplicates -> " + possibleDuplicates); + return possibleDuplicates; } -- GitLab