I am trying to set up tribute imports and I would like to set up defaults on the relationship created for Acknowledgees.
Specifically I would like to make the relationship/reciprocal be Acknowledgee/Tributee. The key here is that I don't want the relationship type to be overwritten if the relationship already exists.
For example, if the relationship already exists for a spouse, but a new tribute is added to the record I don't want the spouse relationship to have the new tribute types. I only want the new tribute types to be set on new relationships created through the process.
Normally I would do this with a default set like I do for individuals but I don't see anywhere to include a default individual relationship set.
Ideas? Other people doing Tribute imports that have some insight?
Spouses are just relationships to RE. The only difference is that you can check for the spouse record on the constituent before IOM gets to relationship processing. So if you were to be importing a spouse flag, then you could certainly check to see if the spouse already exists on the constituent before IOM gets to the constituent save event, and then do your custom processing in the relationship event with that knowledge.
Unfortunately, IOM does not have an event for what you wish to do here, in regards to Source.
There have been requests for an AfterIndividualRelationshipOpen event, like IOM currently has for Constituents, but it has not been implemented in IOM yet.
Public Overrides Sub BeforeIndividualRelationshipSave(ByVal oInd As Blackbaud.PIA.RE7.BBREAPI.CIndividual2, _ ByVal oIndRecord As Blackbaud.PIA.RE7.BBREAPI.CRecord, _ ByVal GroupNumber As Integer, _ Cancel as ImportOM.API.iCancel) 'The relationship record is about to be saved 'oInd = Relationship 'oIndRecord = The relationships underlying constituent record 'GroupNumber = The number assigned to the relationship in your profile 'Set the type to be Tribute Acknowledgee unless a type already exists If oInd.Fields(EINDIVIDUAL2Fields.INDIVIDUAL2_fld_RELATION_CODE) = "" Then oInd.Fields(EINDIVIDUAL2Fields.INDIVIDUAL2_fld_RELATION_CODE) = "Tribute Acknowledgee" End If End Sub
Unfortunately, RE Default Sets do not apply to Relationships during imports with IOM. There is also not an event that would allow you to use the API to apply the Default Sets, either. Values for Relationships have to be specified in the data file, or via Virtual Fields.
In regards to the Relationship Type (Spouse vs. Acknowledgee) inquiry: You would have to use the API for this type of conditional evaluation of the Relationship Type. IOM's default functionality will update the Type on an existing relationship unless you choose the option in the profile configuration to create a new relationship if the type is different. If you choose this option, then there will be two relationships on the Relationships tab for the people who had pre-existing relationships, per your example.
If I understand the part about the addresses correctly, this should be handled by mapping the addresses to Individual Address (its full name = Individual Relationship Address). That would put the address on the Relationship's record and not on the Tributee's record (allowing the deceased person is mapped to Constituent, as it appears they are from your post). You would also select to break the address link between those two people in the event both records were pre-existing and already shared an address, to keep the Tributee's address from being changed.
Please let me know if I have misunderstood anything.