Taking reference of CDI Example, I have multiple contact values for the same person and I want all of these contacts to be a part of the contact master entity.
I am not sure how the same instance record id will affect this. Will ataccama load both these records? Will both these records partivipate in match logic(same master_party_id, same_contact_type,same contact_value) or will it consider just the first one?
Also, if someone can please confirm if the master_party_id is id for master record derived on processing of all party records?
Hi
To clarify how Ataccama handles contact records with the same party instance record ID:
- Loading: Ataccama loads all contact records, even with identical party instance record IDs. This ID is simply a foreign key linking contacts to parties.
- Matching: Contact matching relies on
master_party_id
,contact_type
, andcontact_value
. Identical values across these attributes trigger a match and assign the same master ID. - Merging: Ataccama merges matched records, selecting attribute values based on your configured rules.
- Party-Contact Dependency: Contacts depend on their parent Party record. The
party_master_id
(generated during Party mastering) is copied to the Contact entity. This ensures that contact matching/merging occurs after the parent Party is mastered.
I hope this helps! Feel free to reach out if you have any more questions.
Hi
I do have another question that concerns the significance of source_id and party_source_id fields as defined in load for contact. From what I have understood, party_source_id is supposed to be a unique identifier of each record in the party entity. Tnis acts as a foreging key for party_has_contact relationship. The source_id seems like a unique identifier for each of the contact_values. In the source_id, we prefix a value generally, can you explain the purpose of this.
TIA
Aishwarya
Hi
You're right, the Source ID is the primary key (PK) in an entity's instance table. It can either come directly from the source system or be generated within MDM.
The logic for assigning Source IDs is defined in the corresponding load operation. A common practice is to include the source name in the ID (e.g., "CRM_123") to ensure uniqueness across all sources.
To give you a more tailored explanation, could you share how Source IDs are currently assigned for your contact entity? I can then provide specific guidance in that context.
Hi
Here is an example on how source_id are defined in contact entity for two different source systems in context of my project.
For one of the source systems, it could be “OFFICE_PHONE~^~phone_id
” and the for other it could be “PERSONAL_PHONE~^~phone_num
”.
Where phone_id
column is the id of each phone number and phone_num
column is the phone number value in the source. This was previously configured, not by me and I am not sure if there is a reason for a prefix which is the same as contact_type followed by a value which is the same as contact_value for contact entity in case of second source mentioned in this example. Please let me know if I should check something else as well.
Aishwarya
Hi
You have two source systems with different Source ID formats for the contact entity:
- Source System 1:
"OFFICE_PHONE~^~phone_id"
- Source System 2:
"PERSONAL_PHONE~^~phone_num"
Potential Improvements and Considerations:
- Uniqueness: Since the primary goal of a Source ID is to uniquely identify each record from a source system;
- System 1: Using
phone_id
likely ensures uniqueness, as it's a primary key in the source. - System 2: Using
phone_num
might be unique if phone numbers are unique within that source system. However, this could be problematic if the same phone number can be associated with multiple contacts (e.g., a shared business line). Includingcontact_type
in the Source ID will avoid this duplicate issue to some level. As long as the combination ofcontact_type
andphone_num
is unique, you shouldn’t face any issues.
- System 1: Using
Thank you
But there is no reason to make source_id have contact_type value for internal usage right? Like for creating a set values from contact entity(using ^~ as seprator) to be utilised in party_match component?
As for uniqueness, I also had same doubt regarding the second system. As I mentioned this configuration was not done by me. It was done by someone before me.
I did check the records for uniqueness and they are unique in the current configuration for System 2. I do have my inhibitions to continue with the same config though.
I have another question here kind of related to this. If you think a new post would be better do let me know.
So, I was trying to replicate the match logic locally, and I am getting IllegalNumberFormat error, because the source id, which has String value as we have configured in the load component but it works fine when we do not setup Standalone Bindings for the MDM project.
Can you please explain how does the source_id column gets consumed in _match component?
PS: I observe that source_id defined in load component can have complete string values as well
Hi
To make this information more discoverable for others, I suggest creating a new topic with a specific and relevant title. This will help users searching for similar issues find the solution easily.
Hey
I added the query as a new post here-
Please have a look
Hi
Reply
Login to the Ataccama Community
No account yet? Create an account
For Ataccama Customers and Partners
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.