UpdateRelationship Hierarchy Manager request updates a Relationship between two Entities. The existing relationship record is updated if the Start Date, End Date, or custom columns for the Relationship record are modified. If the update request changes the Hierarchy, Relationship Type, or one or both Entities in the Relationship, the current Relationship record is deleted (see
DeleteRelationship) and a new Relationship record is added (see
AddRelationship). When a new Relationship record is added, the RecordKey returned in the UpdateRelationshipResponse will be different from the one specified in the UpdateRelationshipRequest.
The request identifies the HM configuration and hierarchy, the relationship type, the records, and a number of optional parameters. The response contains the record key for the updated relationship. Informatica MDM Hub infers the types of the entities being related, and thus the base objects containing those entities, from the relationship type.
Adding a New Relationship for a Foreign Key Relationship Type
Use UpdateRelationshipRequest instead of AddRelationshipRequest to add a new Relationship for a Foreign Key Relationship Type because adding that Relationship really involves updating an existing record in the FK Relationship Base Object. For example, if there is a FK Relationship Base Object C_PERSON with the following columns:
Rowid Object: Primary Key for the FK Relationship and the Entity.
Rowid Company: FK that refers to the records in C_COMPANY Entity Base Object. The value in this column has a non-null when there a HM FK Relationship between C_PERSON and C_COMPANY. The column value is set to null when the Relationship between a Company and a Person is deleted.
Any other columns needed for “Person” Entity Type and “Person To Company” FK Relationship Type.
The Put Package associated with the “Person To Company” FK Relationship Type would have the following columns:
Rowid Object (C_PERSON.Rowid_Object): Primary Key for the FK Relationship
Rowid BO1 (C_PERSON.Rowid_Object): BO1 in the FK Relationship
Rowid BO2 (C_PERSON.Rowid_Company): BO2 in the FK Relationship
In other words either rowid BO1 or rowid BO2 in the Put Package maps to the Rowid Object column in the Base Object. Updating the FK column (Rowid BO2 / C_PERSON.Rowid_Company in the example) to a non-null value is equivalent to adding a new FK Relationship. Also note that the RecordKey specified in setRecordKey() and setBo1RecordKey() in this example would be the same.
UpdateRelationshipRequest cannot be used to modify Relationship Type if the old or the new Relationship Type is a FK Relationship Type. To do that, use DeleteRelationshipRequest to delete the old Relationship. Then use UpdateRelationshipRequest if the new Relationship is a FK Relationship Type or AddRelationshipRequest if the new Relationship is not a FK Relationship Type.
Use Case
This is the common scenario for using the UpdateRelationship request:
Update a relationship between two HM entities
— If you have Hierarchy Manager and have populated it with entities, you can use the UpdateRelationship request to modify a relationship between two entities.