Activity Party Migration using Scribe Insight

Posted On June 1, 2015 by Posted in 

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

List of ParticipationTypeMask and ParticipationTypeMaskName:

3. Status Update for the Activity entity

We have to lookup on the ActivityId

Update the Status and Status Reason of the Activity as specified in the source


Share Story :

SEARCH BLOGS :

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange