Doublet cleansing
Basics
The tool Doublet cleansing offers administrators the option to merge duplicate contact persons, business partners and employees.
In the following, we will only detail the consolidation of contact partner and business partner duplicates. The procedure can also be applied for consolidating employee duplicates.
We distinguish between 4 types of doublet cleansing:
Distribution of datasets (Processing type A)
Deleting a dataset (Processing type L)
Transfer of a dataset (Processing type X, Person ID = Primary keys differ)
Consolidation of datasets (Processing type Z, Person ID = Primary keys are identical)
Overview of the processing types
Processing Type | Description | Original Person | Doublet Person |
---|---|---|---|
A | Shares role of base person (Distribution of roles to new person) | Person to separate roles from | same as original person |
L | Deletes the doublet person and all its roles. Dependent data remains intact. | empty | Person to delete |
X | Moves roles and dependent data from doublet to original person (Doublet will be deleted). | Person to receive the roles (remains) | Person to delete |
Z | Merges multiple roles of the original person to a single role (Person remains). | Person to merge roles from | same as original person |
Case 1: Distribution of business partner roles (Doublet cleansing: Processing type A, Role handling: Processing Type A)
Problem description
Person datasets with multiple roles exist in a system, which are to be distributed.
Note
The primary key (PK) of the business partner changes!
All Pk references (to datasets, link tables, etc.) are also changed to the new Pk.
Procedure for the separation of a business partner role
In the following example, the business partner role Sample AG2 is to be separated from its original person Sample AG1 and given its own new person.
![](../../../__attachments/68653959/Dublette_MusterAG%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Creation of a doublet cleansing
Select the processing type A "Distribute"
The person of the business partner role Sample AG2 to be handled is to be entered as a person doublet
Create a new doublet handling via "create new and assign" /Role Handling
Select the processing type A "Distribute"
enter "Business partner" in the field 'Role name'
Enter the business partner (in older versions the primary key of the business partner role) Sample AG2 in the field "PK slave role"
![](../../../__attachments/68653959/Verarbeitungstyp_A%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/Rollenbehandlung_Verarbeitungstyp_A_1%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/Rollenbehandlung_Verarbeitungstyp_A%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164413.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164434.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164447.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Case 2: Deleting the business partner duplicate (Doublet cleansing: Processing type L)
Problem description
A person dataset with a role that is to be deleted exists in a system.
Procedure for deleting a business partner doublet
In the following example, the business partner role Sample AG2 including the person dataset is to be deleted.
All dependent data will remain intact (activities, documents, etc.).
Creation of a doublet cleansing
Select the processing type L "Delete"
The person of the business partner doublet Sample AG2 to be handled is to be entered as a person doublet
All dependent data will remain intact. Person and role will be deleted (physical removal from the database).
A role handling will not be necessary in this case.
![](../../../__attachments/68653959/Verarbeitungstyp_L%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Case 3: Transferring the business partner (Doublet cleansing: Processing type X, Role handling: Processing type Z)
Problem description
2 person datasets with individual roles exist in a system. Both roles should be assigned to one person, so that one person will be deleted and one role is reassigned.
2 role handling procedures are initiated. One role handling for the role 'Business partner' and one for the role 'Default contact person', because not only the business partners as such must be consolidated - that also has to be done for the default contact persons.
Background
When the two business partners were originally created, the system created a default contact person for each business partner. When the two business partners are now consolidated via doublet cleansing, then you must also include the default contact persons in the relevant role handling.
Use case
Sample AG1 with own person (and an own default contact person).
Sample AG2 with own person (and an own default contact person).
In this case study, Sample AG2 is to be merged with Sample AG1, so that only one person Sample AG1 remains with one role.
Procedure for business partner transfer
In the following example, the person of the business partner role Sample AG2 is to be deleted and the business partner role Sample AG2 is to be transferred to the person of Sample AG1.
![](../../../__attachments/68653959/Dublette_MusterAG_2%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
The Sample AG2 business partner is merged with the Sample AG1 business partner.
A person dataset Sample AG1 with a business partner Sample AG1is created.
All dependent data will remain intact (activities, documents, etc.).
Creation of a doublet cleansing
Select the processing type X "Transfer"
The person of the business partner doublet Sample AG2 to be handled is to be entered as a person doublet
The person Sample AG1 to whom the business partner is to be attached, must be entered in Original Person
Create a new doublet handling via "create new and assign" /Role Handling
Select the processing type Z "Merge"
enter "Business partner" in the field 'Role name'
The business partner Sample AG2 must be entered into the "PK slave role" field
The business partner Sample AG1 must be entered into the "PK master role" field
The two contact persons are also to be merged in the same duplicate run.
The default contact person Sample AG2 will be merged with the default contact person Sample AG1.
A person set Sample AG1 with a default contact person Sample AG1 is created.
Create a new Role handling via "create new and assign" /Role Handling
Select the processing type Z "Merge"
Enter "Contact person" in the field 'Role name'
The default contact person Sample AG2 must be entered into the "PK slave role" field
The default contact person Sample AG1 is to be entered into the "PK master role" field
![](../../../__attachments/68653959/Verarbeitungstyp_X%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Another role handling for the role name 'Contact person' must be created accordingly.
![](../../../__attachments/68653959/image-20230825-164551.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164603.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164615.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Tip
You should extend your search to include the fields 'ID person', 'Primary key', 'Creator', and 'Creation date' if the match code for the entries in the fields 'Original person' and the doublet person are the same.
Case 4: Consolidation of business partner roles (Doublet cleansing: Processing type Z, Role handling: Processing type Z)
Problem description
Two roles exist for one person dataset in a system. Only one role should be attached to the person dataset, which means the roles must be merged.
Use case
Sample AG1 with person dataset Sample AG1
Sample AG2 based on the person dataset Sample AG1 (second business partner role)
Procedure for the consolidation of business partner roles
In the following example, the business partner role Sample AG2 is to be merged with the business partner role Sample AG1.
Creation of a doublet cleansing
Select the processing type Z "Merge"
The person of the business partner roles Sample AG1 and Sample AG2 to be handled is to be entered as a person doublet
The field 'Original person' will be automatically populated with the same value
Create a new doublet handling via "create new and assign" /Role Handling
Select the processing type Z "Merge"
enter "Business partner" in the field 'Role name'
The business partner Sample AG2 must be entered into the "PK slave role" field
The business partner Sample AG1 must be entered into the "PK master role" field
![](../../../__attachments/68653959/Verarbeitungstyp_Z%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164652.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164704.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164713.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Case 5: Transferring contact person roles (Doublet cleansing: Processing type X, Role handling: Processing type X)
Problem description
Two roles with an own person dataset exist in a system. Both roles should be attached to the person dataset, so that one role must be transferred to the other person dataset and the original person dataset will be deleted.
Use case
Hans Mustermann 1 with the person dataset Hans Mustermann 1
Hans Mustermann 2 with the person dataset Hans Mustermann 2
Procedure for the transfer of contact person roles
In the following example, the contact person role Max Mustermann2 is to be transferred to the person of the contact person role Max Mustermann1 .
![](../../../__attachments/68653959/Dublette_MusterMann%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Creation of a doublet cleansing
Select the processing type X "Transfer"
The person of the contact person roles Max Mustermann2 to be handled is to be entered as a person doublet
The field 'Original person' is populated with the person to which the contact person role is to be transferred (Max Mustermann1).
Create a new doublet handling via "create new and assign" /Role Handling
Select the processing type X "Transfer"
Enter "Contact person" in the field 'Role name'
The primary key of Max Mustermann2 is to be entered into the "Slave Role Primary Key" field
![](../../../__attachments/68653959/Verarbeitungstyp_X%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/Rollenbehandlung_Verarbeitungstyp_X_in_X%5B1%5D.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164806.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164825.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
![](../../../__attachments/68653959/image-20230825-164840.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Initializing the doublet script
The consolidation of the individual doublets as per the entry into the tool Doublet cleansing is started by initializing the doublet script.
The doublet script is initialized via special start parameters of the client. These can be modified via the desktop link:
> client\jboss\bin\run.bat doublet <BENUTZERNAME> <PASSWORT>
The doublet script should be initialized at night (e.g. via a Windows server schedule) - and not during business hours. There should be no other users in the system.
That can be verified by the administrator via the menu item Extras / Active Users..
Background
Performance
The greater the volume of data to be moved, the more resources will be needed. This may take some time for large databases. The doublet run should therefore be done at night, so as to not impact on running operations.Conflicts
A conflict may occur if a user is working on a dataset that is currently being edited in the doublet run.Hinweis
Doublet cleansing starts without a prompt. Any changes made cannot be recovered without a backup.
Background
Transaction
All database changes will be rolled back if an error occurs during processing.Logging
The current status and all SQL statements can be viewed in the server log. The following settings are required. Example injboss-log4j.xml
:
<category name="de.cursor.jevi.server.util.doublet.Doublet">
<priority value="DEBUG"/>
</category>
<category name="de.cursor.jevi.server.util.doublet.dao.DefaultDoubletDAO">
<priority value="DEBUG"/>
</category>