diff --git a/entity/DuplicateOrganisation_entity/DuplicateOrganisation_entity.aod b/entity/DuplicateOrganisation_entity/DuplicateOrganisation_entity.aod index eb3318d1aad761ad8f944dd5596c80d20a8999b3..e651b0227e3d342c20dea0aa3be489279800051e 100644 --- a/entity/DuplicateOrganisation_entity/DuplicateOrganisation_entity.aod +++ b/entity/DuplicateOrganisation_entity/DuplicateOrganisation_entity.aod @@ -3,6 +3,7 @@ <name>DuplicateOrganisation_entity</name> <title>Duplicate</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/DuplicateOrganisation_entity/documentation.adoc</documentation> <grantCreate v="false" /> <grantUpdate v="false" /> <grantDelete v="false" /> diff --git a/entity/DuplicateOrganisation_entity/documentation.adoc b/entity/DuplicateOrganisation_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..73695092a6b0fcb6d5afaa09001147aad6bc69f8 --- /dev/null +++ b/entity/DuplicateOrganisation_entity/documentation.adoc @@ -0,0 +1,17 @@ += DuplicateOrganisation_entity + +== Overview + +Shows the duplicates of a record. +The views are only referenced in the OrganisationMain_view. + +This entity is used to show all duplicates of an organisation, merge duplicates to one record and to ignore duplicates. + +==== Actions + +* ignoreDuplicates: The selected record is marked as no duplicate. +* mergeselectedintocurrent: The selected record will be merged into the current opened one. +* mergecurrentintoselected: Same behavior as with the mergeselectedintocurrent action only the other way. + +== AID +More information on duplicates can be found in the AID60 or in the documentation of the DuplicateScanner_entity \ No newline at end of file diff --git a/entity/DuplicatePerson_entity/DuplicatePerson_entity.aod b/entity/DuplicatePerson_entity/DuplicatePerson_entity.aod index 2d5dd73d048c99ae42a4b422275198df818f39d1..76bf7dd0ac61df8cf73e52f42f4473244b9f2d2a 100644 --- a/entity/DuplicatePerson_entity/DuplicatePerson_entity.aod +++ b/entity/DuplicatePerson_entity/DuplicatePerson_entity.aod @@ -3,6 +3,7 @@ <name>DuplicatePerson_entity</name> <title>Duplicate</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/DuplicatePerson_entity/documentation.adoc</documentation> <grantCreate v="false" /> <grantUpdate v="false" /> <grantDelete v="false" /> diff --git a/entity/DuplicatePerson_entity/documentation.adoc b/entity/DuplicatePerson_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..8d2e8be6b145c97ddff336e74921c2d77918c3d2 --- /dev/null +++ b/entity/DuplicatePerson_entity/documentation.adoc @@ -0,0 +1,17 @@ += DuplicateOrganisation_entity + +== Overview + +Shows the duplicates of a record. +The views are only referenced in the PersonMain_view. + +This entity is used to show all duplicates of a person, merge duplicates to one record and to ignore duplicates. + +==== Actions + +* ignoreDuplicates: The selected record is marked as no duplicate. +* mergeselectedintocurrent: The selected record will be merged into the current opened one. +* mergecurrentintoselected: Same behavior as with the mergeselectedintocurrent action only the other way. + +== AID +More information on duplicates can be found in the AID60 or in the documentation of the DuplicateScanner_entity diff --git a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod index 220ca8da86b7ff352ba94fa259602a9f004e9585..b94abcf3580c347872603d09949c5acf1e2a1f4e 100644 --- a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod +++ b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod @@ -97,7 +97,6 @@ <name>DBRecordContainer</name> <onDBInsert>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBInsert.js</onDBInsert> <onDBUpdate>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBUpdate.js</onDBUpdate> - <onDBDelete>%aditoprj%/entity/DuplicateScanner_entity/recordcontainers/dbrecordcontainer/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> <dbRecordFieldMapping> diff --git a/entity/DuplicateScanner_entity/documentation.adoc b/entity/DuplicateScanner_entity/documentation.adoc index 6284402b762958e1f8d9b2d9b848c4189920e666..63f59e3f44e71a5213500fd605fc6879041243af 100644 --- a/entity/DuplicateScanner_entity/documentation.adoc +++ b/entity/DuplicateScanner_entity/documentation.adoc @@ -1,7 +1,27 @@ -=DuplicateScanner_entity += DuplicateScanner_entity -A "DuplicateScanner" is a definition -- WHICH objects may be searched for duplicates -- and HOW these are searched +== Overview +The duplicate scanner is the configuration for duplicate recognition. +It defines WHICH objects may be searched for duplicates and HOW these are searched. -Speaking of this, the duplicate scanner is the configuration for duplicate recognition. +== Technical details +The filter is a field with contentType: FILTER_TREE which is loaded in the onInsert/onUpdate of the db recordcontainer. + +All records in the DuplicateScanner cannot be deleted/created +and should be created via liquibase scripts, during the implementation of the duplicates for a new entity. Note that, the provider and the entity must be set in the filter. + +The field EXTERNAL_SERVICE_USAGE_ALLOWED is deprecated and is not used in the implementation as of 06 May 2021. + +The field FILTER_NAME is only used as displayName in the UI and is irrelevant for the duplicate search. + +SCAN_PATTERN defines the filter. Note that, the provider of the ENTITY_TO_SCAN_NAME must use an index recordContainer. + +ID_FIELD_NAME the uid field for the duplicate search. Note that currently, it must be the uid field of the entity. + +==== Actions +* rebuild: rebuilds all duplicates see rebuildDuplicates_serverProcess. +* viewDuplicates: opens the target entity with default duplicate filter. + +== AID + +Further information and how to implement custom duplicate functionality can be found in AID60 Duplicates diff --git a/process/DuplicateMerge_lib/DuplicateMerge_lib.aod b/process/DuplicateMerge_lib/DuplicateMerge_lib.aod index bc0eb0235229e83f6e13f3215fd29f3dcb46bc1a..0b31b47adabb6dffb053cbabace4bf0ce4f1b723 100644 --- a/process/DuplicateMerge_lib/DuplicateMerge_lib.aod +++ b/process/DuplicateMerge_lib/DuplicateMerge_lib.aod @@ -2,6 +2,7 @@ <process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2"> <name>DuplicateMerge_lib</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/process/DuplicateMerge_lib/documentation.adoc</documentation> <process>%aditoprj%/process/DuplicateMerge_lib/process.js</process> <variants> <element>LIBRARY</element> diff --git a/process/DuplicateMerge_lib/documentation.adoc b/process/DuplicateMerge_lib/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..09fc1f75573d8c685829f051d4731e2285eaf3ed --- /dev/null +++ b/process/DuplicateMerge_lib/documentation.adoc @@ -0,0 +1,5 @@ += DuplicateMerge_lib + +Provides functionalities for merging 2 datasets. Currently implemented for Person and Organisation. + +This lib is, among other things, able to create activities for the merge and to update the duplicates for the merged datasets. diff --git a/process/DuplicateScanner_lib/DuplicateScanner_lib.aod b/process/DuplicateScanner_lib/DuplicateScanner_lib.aod index 6b45659f204354af0a6d1a39a810a6f008eda16c..bf45bdb540e198dcf9464c358b2a43245ab27921 100644 --- a/process/DuplicateScanner_lib/DuplicateScanner_lib.aod +++ b/process/DuplicateScanner_lib/DuplicateScanner_lib.aod @@ -2,6 +2,7 @@ <process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2"> <name>DuplicateScanner_lib</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/process/DuplicateScanner_lib/documentation.adoc</documentation> <process>%aditoprj%/process/DuplicateScanner_lib/process.js</process> <alias>Data_alias</alias> <variants> diff --git a/process/DuplicateScanner_lib/documentation.adoc b/process/DuplicateScanner_lib/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..d824334d2f7be4a57046b2f8efb7730bbb17115e --- /dev/null +++ b/process/DuplicateScanner_lib/documentation.adoc @@ -0,0 +1,15 @@ += DuplicateScanner_lib + +Provides a utility function for reading scan patterns (getScannerByEntity). + +Provides functions to create duplicate filterExtensions (getDuplicateConditionalListSql). + +Provides functions to manage ignored duplicates (filterIgnored, updateIgnored). + +Provides functions to search for ignored duplicates. +The base function is DuplicateScannerUtils.getDuplicateIds. The other helper functions are + DuplicateScannerUtils.getDuplicateIdsByEntityScanner and DuplicateScannerUtils.getDuplicateIdsByEntityObj. + both call the base function but simplify the call for the 2 usecases: + +* get all duplicateids of a dataset by entity and uid: getDuplicateIdsByEntityScanner +* get all duplicateids of a dataset based on the entity and the variable (if the dataset has not been saved yet). diff --git a/process/IndexSearch_lib/IndexSearch_lib.aod b/process/IndexSearch_lib/IndexSearch_lib.aod index b5a2aacd8c33062115f137291582acd7c0d8a36b..966a62229e274087ad9f4afa9a706cf2a5c2167c 100644 --- a/process/IndexSearch_lib/IndexSearch_lib.aod +++ b/process/IndexSearch_lib/IndexSearch_lib.aod @@ -2,6 +2,7 @@ <process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2"> <name>IndexSearch_lib</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/process/IndexSearch_lib/documentation.adoc</documentation> <process>%aditoprj%/process/IndexSearch_lib/process.js</process> <variants> <element>LIBRARY</element> diff --git a/process/IndexSearch_lib/documentation.adoc b/process/IndexSearch_lib/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..e1a46041bb3106b86648236d1096747bf963e355 --- /dev/null +++ b/process/IndexSearch_lib/documentation.adoc @@ -0,0 +1,3 @@ += IndexSearch_lib + +Provides functionality to generate a adito-solr indexquery diff --git a/process/rebuildDuplicates_serverProcess/documentation.adoc b/process/rebuildDuplicates_serverProcess/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..b76ecd14518c25f95453633cb10473be8d112b8a --- /dev/null +++ b/process/rebuildDuplicates_serverProcess/documentation.adoc @@ -0,0 +1,12 @@ += rebuildDuplicate_serverProcess + +== Overview +Manages the asynchronous server-side recalculation of all duplicates of an entity. +This process should only be necessary initially and possibly during data imports. + +== Technical Details +Currently the process is called in the rebuild action of the DuplicateScanner_entity. + +The batchsize of the process (how many data sets should be loaded at once) +can be determined by the preference custom.duplicates.dataBlockSize. +The default value is 5000. diff --git a/process/rebuildDuplicates_serverProcess/rebuildDuplicates_serverProcess.aod b/process/rebuildDuplicates_serverProcess/rebuildDuplicates_serverProcess.aod index 3a72b0bfc4f0fb92cacba8dbda2b2d68acbd3386..e28fee4a9b23675f047ec8759a20a6991495b3ed 100644 --- a/process/rebuildDuplicates_serverProcess/rebuildDuplicates_serverProcess.aod +++ b/process/rebuildDuplicates_serverProcess/rebuildDuplicates_serverProcess.aod @@ -5,6 +5,7 @@ This process can only be executed within the client. The action (Rebuild selected entries) can be found in the administration context "Duplicate Configuration".</description> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/process/rebuildDuplicates_serverProcess/documentation.adoc</documentation> <process>%aditoprj%/process/rebuildDuplicates_serverProcess/process.js</process> <alias>Data_alias</alias> <variants>