Create & Send PDFs from Word Templates for Quotes in D365 CE Wave 2 Updates

And as we continue to ride on the Wave 2 October release features of the D365 for Sales, here’s a much anticipated feature Salespeople have been asking for. The ability to send Quotes as PDF (derived from Word Templates) right from the Quote itself.

At the time of this blog, I had enabled the Wave 2 Updates on the trial instance. Kindly try the same in your Sandbox instance first.

If you’re looking to enable Wave 2 Features for your organization, check this post –  Early Opt-in for October 2019 Wave 2 Updates.It is recommended you try these features on the Sandbox first.

Enable PDF Generation

As a part of the Wave 2 feature, you’ll need to enable this in the App Settings in the Sales Hub (typically).

  1. Navigate to App Settings
    appSettings
  2. In App Settings, look for PDF Generation area as shown below, You’ll notice that the feature might be turned off.
    settingOff.png
  3. You’ll simply need to turn it on and then Apply the changes.
    settingOn
  4. That’s it. You’re all set to use it. You’ll now see the 2 new buttons to Create PDF or Email as PDF.
    newButtons

    When this feature isn’t enabled, you won’t see the buttons –
    noButtons

Generate PDFs only

  1. Now, as the name suggests, if you chose to only Create a PDF out of the Word Templates you already have in place, simply drop down the menu and select the template you wish to get the PDF of.
    createPDF
  2. And the browser will throw a file in your system like any other download.
    downloadedPDF.png

Send Directly in Emails from Quote entity

  1. Typically, once things look good, you want to just send out the PDF as an attachment in an email from Dynamics. This button will let you do just that –
    emailAsPDF
    As you observe, this also works with your personal Word Templates too.
  2. Once you click on the Template, an email is ready for you to start writing and send when ready with the template attached as PDF already.
    draftedEmail

There are also some smart emailing capabilities that let’s you send email right from the context of the record. Check this post of mine for the same: Contextual Email communication in D365 CE Wave 2

Hope this helps!

Advertisements

Store ‘Today’s Date’ in a field to use in workflow conditions in D365 CE

Most of us need this in our workflow conditions to check against – to have today’s date handy and then use them in If conditions in workflows. But, the filter in If conditions in workflows don’t let you dynamically select On or after ‘Today’.

And when you want to compare to today’s date on selection of On or After, you are forced to enter a date and not dynamically select Today.

onOrAfterBlank

To overcome this, here’s what you can do to simply store Today’s Date in all records.

Calculated Date and Time field

So workaround this, you can simply create a new Date and Time type of Calculated field to store the current date and use it in your workflow conditions or wherever you need it.
createCalculatedField

Make sure the type of the field is Calculated and then, Edit the criteria.

Select Now() function to set the value of the field.
Now
And the final criteria condition will simply look like the below
finalCriteria

Once you save and publish all your changes, you’ll see that the field is automatically populated with today’s date.
allDatesPopulated.png

Using in Workflow Conditions

Now, you can use the same in the workflow conditions as shown below –

addedCriteria

and you should be able to use this in your workflow conditions which could look like this

addedOnCondition

Hope this quick workaround comes handy!

 

 

Modified By (Delegate) & Created By (Delegate) in D365

These fields which are everywhere but you don’t really pay attention to really mean something worth.

So if you feel you want to get hold of someone for modifying a record. Maybe also take a look at Modified By (Delegate) just in case so that the actual user might be someone else who wanted to do another thing on that record. 🙂

Impersonation is one of the basic aspects of a plugin step that you need to carefully design to let another user (usually Admins for most implementations) make the plugin run under their context instead of giving more security roles/privileges to every other new user.

Well, same goes for Created By & Created By (Delegate) also!

Modified By

Usually, when you update something on a record, the Modified By is updated as expected. But notice that Modified By (Delegate) is not updated.
noDelegate.png

That’s because you are the rightful owner of the record and there’s no other person involved.

But what is someone else is modifying the record (who don’t have access to that record)?

In that case, Modified On (Delegate) field is populated with the name of that user. In such scenarios, Modified By (Delegate) user is the one who caused changes to the record.

delegatedUser

Why Modified By (Delegate) was populated

The reason this was populated was because the record was updated through a plugin by a user who doesn’t have Write access to the record.

But because the user invoked a plugin which was Impersonating as a User who has rights to the records, the record was successfully updated. And this, the actual user who called the plugin is the one who will be populated in the Modified By (Delegate) field.

impersonatingOtherUser

Hope this quick tip helps!

Using Keys to restrict duplicates in D365 CE

A superb way of restricting duplicate record creation is using Keys in Dynamics 365CE. This is definitely one of the most useful and easy to use features in Dynamics CRM.

In this example, I will create a Key for Email (emailaddress1) field to ensure there are only unique record values for this fields in my environment.

Create Key

It’s pretty straight-forward like creating any other Dynamics CRM component. Navigate to Keys under and entity like shown below –
createKey

And add a new Key and select attributes you want to use for that key
createdKey

Finally, save and publish your changes.

How it Works

Let’s say you already have an existing record ABC 1 with email address abc@abc.com
abc1.png

And if you try to create/update a record with the same attribute’s same value, you’ll get and error as below –
abc2

And the error will be
errorThrown

Hope this quick tip helps!

Business Card Scan in D365 CE Wave 2 Updates

We are close to getting D365 Wave 2 Updates in Oct 2019 and with Early Opt-in to Wave 2 Updates, we are already able to access one of the most desired and requested features of this release – Business Card Scan!

If you are yet to enable Wave 2 Updates for your organization, follow me post on the same here – Early Opt-in for October 2019 Wave 2 Updates. Please do so only on your testing/sandbox environment and not on Production instance yet.

Note that this is only available in US and EU regions as of now and works only in the Unified Interface.

Phone App to scan business cards

Most obvious thing to do is to pull out a phone to scan a card.

  1. Open Dynamics 365 for phones app. And navigate to Quick Create Menu
    qcMenu.png
  2. Then, select Contact
    contactQC
  3. On the Quick Create of Contact form, you’ll see a Business Card control that opens the Camera
    businessCardButton
  4. It will open you Camera and you can simply take a picture of the business card itself like below
    picTaken
  5. It will upload and fill out all the captured information from the card to the Contact form.
    infoCaptured
  6. You can simply Save the record and you’re done. It will be uploaded to CRM.

 

Uploaded

And here it is, uploaded in CRM already.

enteredInCRM

And if you take a look at the record, the picture that was used is also stored in Dynamics
cardInfo

Custom Control Used

If you look at the form customization of the Contact’s Quick Create form, you can see what control was used. It’s AI Builder Business Card control
controlUsed

Hope this helps!

Set Work Hours Template to a Bookable Resource in D365 PSA v3

For all the newbies in D365 PSA, one of the most critical part of configuring PSA is setting up Bookable Resources with their respective Work Hours Template to define their Work Hours and Days they can be & should be booked.

By Default, if you create a Bookable Resource they have a 24-hour slot open to be booked.
Example, I created a new Resource Shailesh Wath. Specially, not the Timezone selected. This will define how the resource will appear on Schedule Board.
newResource.png

And if you open his Work Hours by clicking on Show Work Hours, you’ll see this (which isn’t defined).
calendarNotSet.png

And on the Schedule Board, Shailesh looks like this –

Available on All Days

allDays.png

And available on All Hours
allHours.png

Work Hours Template / Calendar Template

Simply put – Work Hours are defined Schedule based off a resource’s Work Hours that can be applied to other resources as well.
You can find the Work Hours under Settings > Calendar Templates
WHT.png

Firstly, any 1 users Work Hours need to be defined in order to be set as a Template to a Work Hours. In this case, the System User Priyesh Wagh‘s Work Hours will be applied to the India Work Hours in the Template created.
IndiaWHRecord.png

Assign Work Hours Template

Now, we are assigning Work Hours Template to Shailesh which have defined hours and defined days of the week.
So, under Bookable Resources, select the User and then click on Set calendar option.
setCalendar.png

In the window, I’ll select the Work Hours Template I wish to apply. India Work Hours in this case.
IndiaWH.png

And click Apply
clickApply.png

Work Hours Template will be applied with this message.
applied.png

Obviously, you can do this for multiple resources at one. 🙂

Applied Work Hours

Now, if you observe the Work Hours to the resource, you can see this (defined timings with holidays on weekends)
legitCalendar.png

And on the Schedule Board, you’ll see the Days are properly defined
holidays.png

And also the Hours (8am to 4pm work schedule)
definedHours.png

Hope this quick tip helps!