Introduction:
Even after working in Dynamics CRM for all these years, it doesn’t fail to throw up surprises. This time it is a property “IsPartyDeleted” in Activity Party.
What is ActivityParty?
For the ones that are just starting out with Microsoft Dynamics CRM, Activity Party is a special entity that is used only to store the parties associated with any activity type. Activity entities have also been treated differently compared to other CRM entities. Infact, even when creating new entities there is a checkbox to indicate the entity being created is an Activity Type.
How are Activity Entities different from other Entities?
Some of the obvious differences
- They have OOB Party List type of attributes added. Party List is not an attribute that is currently available to add to any of the custom entities. They are only available for activity type of entities. You can associate more than one entity record in a Party List type of attributes.
- Activities have one entity per activity type created say for example Appointment, Email, PhoneCall etc. But they are all combined together in a single entity behind the scenes called “ActivityPointer”. Note any custom fields that you add to a specific activity entity remains there and is not added to the ActivityPointer entity.
- The data associated with the Party List attributes are stored in “ActivityParty” entity.
How to Connect PhoneCall with Activity Pointer and Activity Party?
Usually when you retrieve data for Phone Call, it returns the activity parties associated with it as well. ActivityId is the unique field that connects them all. Note, the unique id attribute of activity type of entities is always “activityid” and not “emailid” or “phonecallid”.
Activity Parties can further be classified by Party Types. As you can see in the above screen, there are multiple PartyList attributes and if you specifically wanted to look for records sets as required attendees, you can filter them out by the activity type. The complete list can be found at https://msdn.microsoft.com/en-in/library/gg328549.aspx
What is special about Activity Party?
Activity Party is a way to associate the various entity records with the activity. Usually they would be Guids of other entities like Account, Contact, Lead etc. But there could be cases where there is no master record in CRM to associate it with either an account or contact or lead etc. Take an example of incoming email, the sender of the email may not be a record in your system, but the email still displays the sender, though in red. If you check the activity party settings for this one, you would notice that “Partyid” attribute would not be set but “addressused”
Another handy attribute just discovered is the “isPartyDeleted”. Depending on the relationship settings, you may not want an activity to be deleted if the associated activity party has been deleted. Say you created a phone call, with 2 contacts and a user. Moving forward, you deleted one of the contact, you still want to have the call recorded in your system. This is what CRM does, even if one of the parties has been deleted from CRM, when you open the activity, it shows up just fine. The isPartyDeleted field is however updated to indicate that the associated entity record no longer exists in the system.
Conclusion:
This field can come in handy if you had any further joins in your query using the Partyid field that could return unexpected results since the partyid has been deleted from the system. Good to know that there is a way to identify if the master record associated with the party has been deleted!!!
Booth no. 1000 at Microsoft Envision 2016. Come experience new release of our Maplytics integrating Dynamics CRM with BingMaps. Sales Analytics is now within your CRM.