Wednesday, 31 August 2016

Roll-Up Field Enhancement for Related Activities in Dynamics CRM 2016

We all know about Microsoft Dynamics CRM Roll-up fields. Utilizing these Roll-up fields, we can previously create Date field in Contact entity and populate latest activity date or first activity date. But there was a limit to it and we could only find the activities which are related to the Contact via regarding field.
Now a new feature was introduced in Microsoft Dynamics CRM 2016 allowing us to find activities related to the other entities with all activity party records. So we can now include all activities where the source entity (ex. Lead) is entered in CC Recipient, To Recipient, Bcc Recipient, Optional Attendee, etc.
Let’s explore this with an example.
Create one Date field to your source entity. I have taken here Lead as my source entity and then select field type as “Rollup”. Then click on “Edit” button.Rollup field Dynamics CRM
After clicking on “Edit” button. We can see our Source Entity Name (Lead) and select Activities (Regarding) then select your filter criteria as per the activities you want to filter for.Roll-Up field Enhancement
Once we do this, we can see the new option “INCLUDE INDIRECTLY RELATED ACTIVITIES”. We have to select Activity Parties (Activity) for Activities Related via Entity. Then we can see another filter option in which we can set our “Participation Type” we want to include under this filter.Participation Type
Finally we have to set the Aggregation function to show the date in our field.Aggregation function
Once this whole process is completed, we can see the Latest activity date of all activities filtered by our filter criteria and for whom the Lead is in its Regarding, To Recipient, Cc Recipient or in Optional Attendee field.

Friday, 26 August 2016

CRM 2016 Conditional values in Word templates

Word templates introduced in CRM Online and CRM 2016 are not the easiest contraptions to edit. One of the questions that popped up in a recent conversation was how to use conditional IF in the document generation.

To refer to the control values after the document has been generated, wrap content controls using bookmarks defined at the control container level.

Longer

CRM fields are defined as Content Controls and in theory we could have written some simple VBA using ContentControl object. Except that CRM does not play nice when generating the document and simply replaces all content controls with the record values.
The solution is to wrap the content controls using the bookmarks defined at the container level, i.e. cell, row, paragraph, etc. Then this bookmark can be used as a reference in a conditional expression of the IF field.
For example, to insert conditional text depending on the total invoice value:
Insert bookmark
  1. Extract the Invoice template that comes with the sample data and save it under a different name.
  2. Open the template, find total amount, select the entire table cell and clickInsert > Bookmark.
  3. Type totalbookmark as a bookmark name, click Add.
  4. Delete the words “Thank you for your business” and click Insert > Quick Part > Field.
  5. Select IF field and type the following field code:
    IF totalbookmark > 100 “Thank you for you business!” “Thanks for nothing!”
  6. Click OK. Hint: to see and edit field codes in the document, press Alt-F9.
  7. Save the file and upload to CRM as a new template.
  8. Create an invoice and generate the invoice document.
  9. Enable document for editing, press Ctrl-A to select the entire content and press F9 to refresh the field content
  10. Depending on the total value of the invoice, the document will say “Thank you for your business!” or “Thanks for nothing!”
    Conditional values in the template
It’s not a full automation that potentially could be improved with some VBA (I’m not 100% sure if it will work) but it’s a step in the right direction and a cheap way to add some pizazz to your documents.