Activity Party Migration using Scribe Insight
Key Technologies: Scribe Insight, CRM Online
Note: This article assumes experience on Scribe Insight for Data Integration/Migration and understanding of CRM Online
For all the Activities like Email, Letter ,Fax ,Phone Call etc. we need two packages to be set up
a: Activity Entity to Activity Entity (Eg: Email to Email) [with Status= Open]
b: Activity Party to Activity Party (For Party List fields of Email like bcc, cc, from, to)
c: Status Update for the Activity Entity
1. For Activity Entity to Activity Entity (Eg: Email to Email)
There are three field mappings which are mandatory to map
° RegardingObjecttypecode
° RegardingObjectId
° ActivityId (Guid of the Entity)
RegardingObjecttypecode indicates to which entity is the record related
Refer to following article for the Object Type Codes:
https://msdn.microsoft.com/en-in/library/bb887791.aspx
As per the RegardingObjectTypeCode we need to Setup the RegardingObjectId
If(S70=1,DBLOOKUP(S67, "Adapter for Dynamics CRM", "account", "tam_accountguid", "accountid" ), If(S70=2,DBLOOKUP(S67, "Adapter for Dynamics CRM", "contact", "tam_contactguid", "contactid" ), If(S70=3,DBLOOKUP(S67, "Adapter for Dynamics CRM", "opportunity", "tam_opportunityguid", "opportunityid" ), If(S70=4,DBLOOKUP(S67, "Adapter for Dynamics CRM", "lead", "tam_leadguid", "leadid" ),#null!))))
Where S70=RegardingObjectTypeCode S67=RegardingObjectId
Apart from these three fields the other required fields can be mapped
[NOTE: The Status of the activities should be set to Open for the Initial Migration so that the activity party are set correctly. Once the Party list attributes are set up after running Activity Party for that Activity we can then update the activities for the Status again]
2. For Activity Party to Activity Party
Perform a seek on Activity Entity (eg: Email)
[Note: We should lookup on activityid as well as activitytypecode so that all the activity
entities are not processed and filtering is done]
ActivitytypeCode indicates which Activity Entity is it related to
Eg: Appointment=4201 Email=4202
Store the Guid of the Activity Entity in a variable for Step 2
Mapping of the following fields is required:
° ActivityTypeCode needs to be hardcoded
[Eg: If we are migrating Activity Party for Email it should be 4202, For Letter 4207 etc.]
° ActivityId to Variable created in Step 1
° ActivityPartyid to ActivityPartyid
° PartyObjectTypeCode to PartyObjectTypeCode
PartyObjectTypeCode indicates to which entity is the record related.
As per the PartyObjectTypeCode we need to Setup the PartyId as:
If(S26=1,DBLOOKUP(S24, "Adapter for Dynamics CRM", "account", "tam_accountguid", "accountid" ), If(S26=2,DBLOOKUP(S24, "Adapter for Dynamics CRM", "contact", "tam_contactguid", "contactid" ), If(S26=3,DBLOOKUP(S24, "Adapter for Dynamics CRM", "opportunity", "tam_opportunityguid", "opportunityid" ), If(S26=4,DBLOOKUP(S24, "Adapter for Dynamics CRM", "lead", "tam_leadguid", "leadid" ), If(S26=8,DBLOOKUP2(FILELOOKUP(S25, "XREFUsers.INI", "Users" ),"0", "Adapter for Dynamics CRM", "systemuser", "fullname","isdisabled","systemuserid" ),#null!)))))
Where S26=PartyObjectTypeCode S24=PartyId S25=PartyIdName
° ParticipationMaskName to ActivityFieldName
So the Mapping can be mentioned as:
Where S23= ParticipationMaskName IF(S23="Optional attendee","optionalattendees",(IF(S23="Organizer","organizer",(IF(S23="Required attendee","requiredattendees",""))))) Where S23=ParticipationMaskName
Refer to following article for the Activity Party Entity:
https://msdn.microsoft.com/en-us/library/gg328549.aspx