Thursday, 20 September 2018

How to configure Dynamics 365 workflow scope in Flow

07:20 Posted by Benitez Here , , , ,

#WTF 

In case you haven't watched my announcement video on my new WTF vlog series (What the Flow), here it is.


The purpose of my WTF vlog series is to help you extend your existing knowledge of configuring Dynamics 365 workflows and how to replicate this in Flow. Flow uses the odata APIs of Dynamics 365 and as a result of this, how you configure in Flow is somewhat different to Dynamics 365 workflows.

You may freak out. You may pull your hair out. You may think Flow is stupid.

Yes - I have mentally experienced this but once I overcame it I loved Flow. There's so much capability that Flow unlocks that we didn't have in Dynamics 365 workflows. I know, it is hard sometimes to let go of what you are already familiar with however you're not going to know unless you try.

Have I motivated you in learning Flow? Let's begin 😁💙

Episode 1 -  Scope in Flow

This is my first episode of my WTF vlog series. In this episode I talk about the difference between a Dynamics 365 connector and a Common Data Service [CDS] connector in the context of defining scope for Flow.

"Scope" is already a configuration we are familiar with in Dynamics 365 workflows. I thought it would be a good idea to kick-off my WTF vlog series with this since it is a configuration you normally set prior to configuring the Dynamics 365 workflow steps.

In case you are new to Dynamics 365

When configuring Dynamics 365 workflows one of the configurations is to set the scope of a workflow as this will determine which users will trigger the workflow. For more information on scope for Dynamics 365 workflows please check this out.

How do I replicate scope in Flow?

There are two types of connectors in Flow that is applicable to Dynamics 365:
  • Dynamics 365 connector
  • CDS connector

What's the difference?

In a Dynamics 365 connector, you cannot set the scope. The Flow will always be triggered organisation-wide.

Screenshot from Flow Dynamics 365 connector:

In a CDS connector, you can set the scope like how you currently can in a Dynamics 365 Flow.

Screenshot from Dynamics 365 workflow:


Screenshot from Flow CDS connector:


However as Andrew Ly pointed out in his blog, there are Flow premium connectors. Notice how some CDS connectors have a Premium label. 

I'm not a licensing expert but here are details of Flow plans. If you have questions on licensing I suggest you ask them in the Microsoft Flow community.

Steps

This will be familiar to you if you already know how to configure Dynamics 365 workflows in Flow. Set the desired scope in the CDS connector such as "Organization." 


That's it. You've learnt your first "how-to" in Flow. Congratulations!

Flow respects Dynamics 365 principles

Setting the scope in the CDS connector will replicate the existing functionality of Dynamics 365 workflows in scope. This means that the OWNER of the Flow defines which users will trigger the Flow.

What I demonstrated in the vlog is the following use case scenarios.


In terms of the security structure I have: 
  • The users Elaiza and CE Admin are in the same Business Unit
  • The user Aaron is in another Business Unit
In the use case where I set the CDS scope to Business Unit: 
  • when Aaron created the Case in Dynamics 365 the Flow would not trigger 
  • when CE Admin created the Case in Dynamics 365, the Flow triggered since CE Admin is in the same Business Unit as Elaiza, who is the owner of the Flow
The same Dynamics 365 workflow principles apply to Flow in regards to the defined scope.

Summary

Although the vlog was longer than this blog post, the vlog demonstrates that what you already know about configuring scope for a Dynamics 365 workflow and how it defines which users can trigger the workflow also apply to Flow.

In the next episodes I will begin to cover the configuration steps in Flow. I will start with how to do AND OR statements in a condition step. This is something you are already familiar with in Dynamics 365 workflows today but in Flow it's different which you'll learn in my next episode.

Stay tuned for more #wtf

#FlowFever

Sunday, 12 August 2018

Creating data-driven process mapping flowcharts using Microsoft Excel and Microsoft Visio

If you use flowcharts in your organisation this is the blog post for you.

The inspiration came from reading Ryan Maclean's blog post where he reflected on the importance of articulating a process logically through a flowchart. Ryan creates his flowchart using Microsoft Visio which is loved by many including myself. Go check it, it's tea-riffic.

In the Microsoft Office suite there are "siblings." Microsoft Excel was initially released in 1987 and then its adopted younger sibling came into the picture in 1992. These two siblings seem to have gotten closer over the years and have become more advanced.

Today, I'm excited to share with you the power of Microsoft Excel and Microsoft Visio to create data--driven process mapping flowcharts.

Wait, what?

Data-driven process mapping flowcharts. Yeah, exactly.

Watch my vlog and be prepared to be amazed by what you see.

Microsoft Excel and Microsoft Visio

Even though I am a Dynamics 365 consultant, I've always supported Microsoft products as I grew up with it in my household. My dad taught me Microsoft Excel when I was little and eventually I came across Microsoft Visio in highschool. I never thought I'd be using the two together years later.

Like Ryan, I use Microsoft Visio for what I do as a consultant. If it's available to you, try it out.

My first encounter with the two siblings playing together nicely was back in NZ where I learnt that I can define the shape data and the data graphic to create a Microsoft Visio template file that can link data to the shapes from an Excel spreadsheet.

Back then I used to work as a Sales Administrator for the General Manager of Sales and I created a Sales "pursuit" template that allowed the salesperson to colour code the existing platforms or the targeted to-be platforms of a client. The data was entered in an Excel spreadsheet by the salesperson and all they needed to do was link it to the Microsoft Visio template file. Microsoft Visio then associated the rows to the shapes and the shape formatting kicked in automatically. The sales team then had a visualization of each client they were pursuing.

Fast forward nine years and now you can create data-drive flowcharts from a Microsoft Excel spreadsheet. It's truly amazing and if you've read the Microsoft Business Applications release notes, soon you'll be able to create Microsoft Flows from Microsoft Visio.

And yes, I am a nerd when it comes to Microsoft Visio in case you hadn't worked that out already 😁

How can I use the export to Microsoft Visio feature from Microsoft Excel?

You need a Visio Online Plan 2 licence with an Office 365 subscription. Below is a screenshot of what the pricing looks like in Australian dollars.

Remember, to take advantage of creating Microsoft Flows from Microsoft Visio in the future you will need Visio Online Plan 2.

When you open Excel, search for "process" and there will be two templates you can choose from:
  1. Process Map for Basic Flowchart
  2. Process Map for Cross-Functional Flowchart

Select the template that suits you.

Once the template loads there will be tabs that are self-explanatory.

Visio data visualizer tab

This is an introduction to the template.

Understand the Process Map tab

This will outline what you need to know when entering your process into the table in the third tab.
Basically it tells you what the definitions are in the table. I'm not going to re-write the explanations here as it's straightforward to understand in the tab.

Process Map tab

In this tab this where you enter in your process steps. By default there will always be two rows so you need to remember that when you add your steps, the first start step needs to point to the next process step id otherwise it will continue to point to the default "Stop" step.

Ready to have a part-tea in Visio?
Once all your information is entered into the Process Map tab you can now hit the magic button in the Design tab. The magic button is "Export table to Visio Diagram."


Microsoft Visio will then load shortly followed by your flowchart based on the data entered in the Microsoft Excel source file.


You can then adjust
  • the positioning of any shapes that look out of line
  • the positioning of text
As seen in my vlog, if you insert a new shape into the flowchart in Microsoft Visio, you also have the ability to update the source Microsoft Excel file.


If you also update the source Microsoft Excel file with new process steps by adding new rows, you also have the ability to update the Microsoft Visio flowchart.

Truly amazing what the Microsoft Product Group team has created. Power of Microsoft Excel and Microsoft Visio!

Troubleshooting

I had some trouble installing Microsoft Visio from Office 365 as I had a conflicting version of Office products installed.


I uninstalled through programs and features.

What to do if you can't install after downloading from Office 365?

In my case, not all the files were uninstalled through program and features. I then had a phone call with Office 365 support to help me through it. Also, Office 365 support was awesome. The lady who helped me was great.

She pointed me to this link to run a program to take care of uninstalling all the files for you. I used "Option 2 - Completely uninstall Office 2016 with the easy fix tool."

The next thing I was advised to do is to use the diagnostics tool to install the Office suite first, followed by Microsoft Visio. The rest is magic and it works.


If you didn't know this existed, now you do. It helped me with my installation issues.
There also seems to be a tool available for Dynamics 365 which is interesting. I took a quick peek and looks like you can have assistance with the Dynamics 365 Outlook Client.

What if you can't see the Export table to Visio diagram button as seen in my vlog?

You need to opt in for the monthly channel for the Office 365 suite to make use of the new features available. To do this, you can head over to this link and download the program to help you switch from Semi-Annual Channel to Monthly Channel for the Office 365 suite.

Summary

To create data driven flowcharts from a Microsoft Excel spreadsheet, you need Visio Online Plan 2 to be able to export to Microsoft Visio. You can have two sources of data and whether you update either source, it will always be reflected by its sibling. You may think why have both an Excel spreadsheet and a Microsoft Visio file? Why not only one? Well here's my final thoughts
  • the Excel spreadsheet can be handy as it can provide the information in a tabular format
  • you may have users who are not familiar with creating flowcharts. They can start with entering the logic into an Excel spreadsheet and then export to Microsoft Visio for the diagram
  • for beginners with Microsoft Visio, it's not a bad way to introduce them to it and understand the underlying concept of a flowchart
If you're happy with creating only the Microsoft Visio file, then you can continue to do so. However since I've tried this out, I love it and I know it's going to make my documentation easier.

Watch the original video by the Microsoft Product Group team.

Go on. try it out. Indulge in your curiosi-tea. Feel like royal-tea and live in a high socie-tea. 
Cool story, bro brew.
Microsoft Excel and Microsoft Visio get oolong well.

OK OK, I'll stop 😂

Toodles.

Sunday, 22 July 2018

Hiding the Contact preferences in the Profile web form of Dynamics 365 Portals

When you provision Dynamics 365 Portals, there's a lot of configuration that's already set up so that you can hit the ground running. One of the configuration that's available on the Profile web form is the Contact preferences displayed as check boxes.

Usually this is asked to be removed whenever I work with clients as they prefer to have an email only subscription method such as embedding a ClickDimensions Subscriptions page in Dynamics 365 Portals. There's no need to ask how to get in touch with Contact other than email.

When I first started on Adxstudio Portals I automatically assumed it would be in the Contact Profile entity form however it's not displayed in a section on the form. 


So how do you it? Well my grasshoppers, in this vlog and blog post I cover how to hide the Contact preferences using in the Profile web form configuration only. Checkout my vlog below.

Steps

What's behind the Contact preferences configuration is the following
  • Content Snippets 
  • Site Settings 
To hide the Contact preferences check boxes, simply update the Site Setting of  "Profile/ShowMarketingOptionsPanel" by updating the value from true to false.


Refresh the Profile web page in Dynamics 365 Portals and you're good to go. Hooray!

Summary

To hide the Contact preferences in the Profile web form of Dynamics 365 Portals, update the Site Setting Record and refresh the Profile web page. Ta-da! Simple and configuration only.

Till next time, toodles.

Monday, 2 July 2018

Terms and conditions for GDPR in Dynamics Portals

What is GDPR?

For a history of GDPR this article is a good starting point.

In 2016, the EU adopted the General Data Protection Regulation (GDPR), one of its greatest achievements in recent years. It replaces the 1995 Data Protection Directive which was adopted at a time when the internet was in its infancy.
The GDPR is now recognised as law across the EU. Member States have two years to ensure that it is fully implementable in their countries by May 2018.

GDPR is now in effect as of May 25, 2018.

What to do if using or considering Dynamics Portals as a platform with customers?

As a baby step towards GDPR in Dynamics Portals, there are new features that can be used to ensure customers as users of the portal to review terms and conditions.

Those that pay attention to the Microsoft Experience site will recognize this has most likely stemmed from this one.

These new features were made available in release 8.4 (as it says on the What's New docs.microsoft site) however if you dig into the release notes, you can't exactly pin which release it became available but I'm not complaining. I'm glad that there's functionality to provide terms and conditions 😃

Now keep in mind that there's still more ground work for your organisation to be GDPR compliant. It doesn't stop with enabling these features in Dynamics Portals. This is simply supporting the law.

Even though these features at first glance seem to appear to be applicable for brand new user of Dynamics Portals, the product team has designed it in a way where it can still be presented to existing users.

Check out my vlog for a brief overview.

Steps

Displaying your terms and conditions content

There is a Content Snippet record which will be blank by default. This Content Snippet record is Account/Signin/TermsAndConditionsCopy

Once you have your terms and conditions confirmed (and hopefully legally reviewed!) you can enter in the Content Snippet. There's HTML capability so you can include hyperlinks to additional web pages if needed to provide further information to the user.

Side note

There is four Content Snippets which can be updated in regards to what can be presented to the user upon reviewing and accepting the terms and conditions. The additional three Content Snippets is the following

Account/Signin/TermsAndConditionsAgreementText
This allows you to change the acceptance statement.

Account/Signin/TermsAndConditionsButtonText
This allows you to change the label displayed for the button that allows the user to continue to the site.

Account/Signin/Terms And Conditions Heading
If you want a different heading, this is your friend

Update a Site Setting

After entering your terms and conditions in the Content Snippet, you'll want to enable the functionality. As usual, my favourite gem in Dynamics Portals is Site Settings. The Site Setting to update is Authentication/Registration/TermsAgreementEnabled.

By default the value will be false. Update the value to true for the terms and conditions functionality to now display in your Dynamics Portals instance.

Hammer time - let's test

Refresh your Dynamics Portals and create a new account. After submitting your account registration details, voila! The terms and conditions will be displayed and you won't be able to continue unless accepted.

But wait! There's more

Enter Site Setting No. 2.

There is another Site Setting (surprised?) that can be updated. This Site Setting is Authentication/Registration/TermsPublicationDate. If you leave this blank then the user will continuously have to agree to the terms and conditions before signing in.

If you don't want the user to agree to the terms and conditions every time they sign in, you can enter a GMT value in this Site Setting.

Remember earlier how I said the product team designed it in a way where it can be presented to existing users? Users who have not not accepted the terms and conditions by the date and time, will be presented with the terms and conditions before proceeding.

I researched online what exactly is the string required for GMT values and came across this handy guideline. Sweet!

The next step was turning to Google and checking what time would it be in Melbourne if it was 8am GMT. This converts to 6pm here in Melbourne, Australia. At the time I was doing my vlog, it was past 6pm so this was perfect.

The value I entered in this Site Setting was Sun, 01 Jul 2018 08:00:00.


When I then logged back into Dynamics Portals using the same user account from earlier, the terms and conditions was no longer displayed. 


What is stored back in the Contact record?

This one I didn't cover in my vlog. In the Contact record there is a field called "Portal Terms Agreement Date" which will capture the date and time the Contact accepted the terms and conditions.

Summary

Terms and conditions can be displayed to users in Dynamics Portals to support the GDPR law. This was made available in preparation for the GDPR. This can all be done using configuration only. Steps are quite simple too.

Check out the other features available from the release.

Till next time, toodles.

Monday, 18 June 2018

Preventing users from seeing the profile form after signing into Dynamics Portals

Like Dynamics 365, when you provision Dynamics Portals there's features that already exist so you can hit the ground running. One of these features which I often get asked about when working on a project with clients is "Can you change the sign experience where users don't see the profile form after they sign in?"

The current behaviour is after a user successfully signs into Dynamics Portals they are presented with the profile form. This is valid when the registration is "open" where any member of the public can create a log in account for themselves.

When creating an account with Dynamics Portals the only details asked are
  • Email
  • Username
  • Password
  • Confirm Password
Therefore it make sense for user to see the Profile form immediately after signing in to provide further details on their First Name and Last Name etc.

However in the scenario where registration for Dynamics Portals is invite only which is valid for some clients, then they shouldn't be directed to the profile form. Why? When sending an invitation to an individual to Dynamics Portals it's usually against a Contact where you already have details such as the First Name and Last Name in Dynamics 365.

To find out how to prevent users in seeing the profile form after singing into Dynamics Portals checkout my vlog.

Steps

The site setting to update in Dynamics 365 for Dynamics Portals is "Authentication/Registration/ProfileRedirectEnabled"


By default this is set to true. 

Update this to false. 

When you next sign into Dynamics Portals, the user experience is that they will be directed to the Home page. Ta da!

Summary

You can prevent users in seeing the profile form after signing into Dynamics Portals by simply updating a Site Setting. Zero code needed.

Till next time.

Toodles.

Thursday, 7 June 2018

Grant application management Part 2: the external reviewer and applicant experience

In Part 1 I demonstrated how Dynamics 365 Universal Resource Scheduling can be used to book external reviewers for a submitted granted application.

In Part 2 I'm demonstrating the review life cycle of a grant application where
  • the external reviewer receives an email that they need to review a grant application
  • the external reviewer can comment on the grant application to request for information
  • the applicant can respond to the comment
  • when the external reviewer is ready to make a decision, they update the status of the grant application
  • the grant application is not deemed as approved until both the external reviewer and internal reviewer have approved the grant application
The above was what I recognized as the business process to be implemented and along the way I faced challenges but overcame them.

I used the following technologies and methods
  • Actions, workflows, custom workflow activity using fellow MVP Aiden Kaskela's Workflow Elements solution
  • Dynamics Portals - in particular the Notes feature
Reminder that I'm using configuration and not using additional development for the grant application management business solution.

For an in-depth walk through, watch my vlog.

Sending an email to the external reviewer

Continuing from Part 1, after the Bookable Resource is created another workflow is triggered which will send an email with a hyperlink to the external reviewer.

Usually a hyperlink is provided where it directs them to the view that displays the list of records. Given that the external reviewers have other responsibilities in their lives, I wanted to make the end user experience smooth where the external reviewer clicks on a hyperlink and it will automatically redirect them to the application in Dynamics Portals. This is where I came across the first challenge.

Challenge 1 - How to allow the external reviewer open the application record directly in Dynamics Portals

When you open/view a record in Dynamics Portal, you will see the web page URL and the GUID of the Dynamics 365 record.

I knew how to create the hyperlink by using the url path of the web page that loads the entity form but my problem was how to retrieve the GUID.

Enter MVP Aiden Kaskela (round of applause) #whoishe
He created Workflow Elements solution which had a number of cool custom workflow activities that can be used. I recommend you do a test drive yourself as you might find that there's a use case for one or multiple custom workflow activities.

The custom workflow activity step that I used is "Workflow - Get Metadata."


Using they hyperlink wizard in the workflow step that sends the email, I inserted the web page url that displays the entity form.

The next step I did was using the form assistant, I inserted the slug for the Get Metadata and referenced "Record ID" which grabs the GUID for the Application.


The external reviewer experience is that when they click on the hyperlink when they receive the email is that they will automatically be directed to the application record in Dynamics Portals.

If they are not signed in, the outcome will be the following


This is because there is a web role required to access the web page and since they are not signed in they see this. The message displayed can be updated using a Content Snippet to prompt the external reviewer to sign in.

If they are signed in, the outcome will be the following


Pretty nice.

Decision

I did find a way for the external reviewer to see the Sign In web page if they weren't signed in by inserting the Sign In URL path in the hyperlink. This wasn't a great solution as if the external reviewer was signed in they'd be directed to the Sign In page.

I weighed the pros and cons, decided the option to direct them to the review application web page was better.

Unless someone can suggest something better? (Hey Colin if you're reading this feel free to let me know).

Allowing the external reviewer and applicant to communicate to each other

The external reviewer can comment on the grant application to request for information. In turn the applicant can respond back to the external reviewer.

I wanted to reduce the two parties emailing each other. Why? For these reasons
  • Prevent the email addresses to be shared in case either become disgruntled. They really should get in touch with Sir Grants A Lot to raise an issue.
  • Emails get lost and if someone else from Sir Grants A Lot needs to step in, it's easily visible in the Grant Application under Notes.
  • Driving more foot traffic to the portal is another way of getting more interaction of your content with your users. As humans we have the tendency to look at other information available so if Sir Grants A Lot had other meaningful content for their external reviewers or applicants, they'd find it on the portal. Less likely to get a hit rate if emails were sent.
My weapon of choice was enabling the Notes feature for Dynamics Portals. I could have used Timeline Control (upcoming vlog on this) but decided to stick with Notes as no other type of activity is going to be exchanged.

Once I enabled it and tested it out, it worked fine.

I then had to configure a workflow that will notify the external reviewer or the applicant when a new note was created so that either party can respond. Sounds simple right?

OK so when a Note is created from the portal, the only way to know the author of the note is to take a look at the Title field. In the Title field the Contact fullname and GUID of the Contact is stored in the Title.


I thought I could do this type of conditional step in a workflow:


However I couldn't as when you go to the regarding entity which is Application in my case, it will only display string/single line of text fields as this is the field type of the Title field in the Note entity. External reviewer and applicant is lookup fields therefore it's not displayed.

I came across this obstacle. However ain't no mountain high enough for this sista! #word #youfeelme

Challenge 2 - How to do a conditional workflow that will check who was the author of the Note

Now I don't want to take full credit for this as I happened to be talking about it with my technical consultant and suggested to use Actions. Sweet, gave it a go and it worked like a charm.

I used an output argument for a string field that will assign the value of the regarding application external reviewer or applicant field.



I then used this action in my conditional workflow that will now call the action to check if the Title contains the assigned value of external reviewer or applicant.


Yes. Almost there.

Challenge 3 - How to allow the external reviewer or applicant open the application record directly in Dynamics Portals

Next obstacle to overcome was providing the same experience from step one where the hyperlink provided directly takes the external reviewer and applicant to the application. A nice consistent experience. Or you could call it OCD.

I wasn't able to use Aiden's custom workflow activity step (cue the violins) as it will retrieve the GUID of the Note. 

What I did do was create a custom field in the application that would store the GUID on create of an application. I have another workflow that will perform this and it does use Aiden's "Workflow - Get Metadata" custom workflow activity step.


I then used this custom field in my hyperlink to insert the GUID. This is the end result:

Decision time

When the external reviewer is ready to make a decision they update the status of the grant application by clicking on two "buttons."

Behind the scenes these are two on demand workflows configured as actions against the Dynamics Portals Entity Form.

I have one on demand workflow that will update the external reviewer status to "Approved" and another that will update the external reviewer status to "Declined."

When an external reviewer is ready to approve or decline, they simply click on the button and the external reviewer status reason will be updated immediately.

Grand finale - two approvals equals Approved

The grant application is not deemed as approved until both the external reviewer and internal reviewer have approved the grant application.

This was fairly simple to achieve by having another workflow update the Status Reason if both the internal reviewer and external reviewer status reason equals Approved.

Summary

You can create a business solution for grants application management using Dynamics Portals and Dynamics 365 Universal Resource Scheduling. This was the challenge I set myself and it turned out great. Even though I had faced obstacles along the way, I overcame them by using different methods.

Some people don't like Dynamics Portals but I honestly really like it. Once you learn Dynamics Portals it's not difficult to create something cool. And then when you team up with another complimenting service like Universal Resource Scheduling, it makes the business solution even more cooler. I'm still learning Universal Resource Scheduling and am so keen to see what else can be done with it for custom entities.

What I would like to experiment further is create a model driven app for the internal reviewer experience.

Till next time.

Toodles.

Wednesday, 30 May 2018

Grant Application Management Part 1: Universal Resource Scheduling

20:56 Posted by Benitez Here , , ,
A few months ago I was wondering what could I present at Melbourne's Dynamics 365 Saturday which took place in May. I knew I wanted to present something on Dynamics Portals as I'm quite fond of it.

One evening after the Melbourne Dynamics 365 User Group, Yawer Iqbal who is known in our Dynamics community here, suggested I present a solution around application management.

I did some research into grants application across five different organisations.
  • Three of the five provided an application form that could be downloaded from their public facing website and emailed to an email address. 
  • Two of the five appeared to have a portal for the grant application.
I decided to go ahead with grant application management and gave myself two challenges
  1. Can I use Universal Resource Scheduling for assigning grants to be reviewed by external reviewers? I wanted to see if it can be used as the term "Universal" suggests the feature can be used for anything.
  2. Can I do this with configuration, try without development?
Away I went and this is what I came up with as a proof of concept in terms of yes, you can use Dynamics 365 Universal Resource Scheduling and Dynamics Portals for a grant application management solution.

I presented this at Melbourne's Dynamics 365 Saturday. Thanks Dan for the pic!


The solution and interaction is as follows:
  • Application submits their grant application through Dynamics Portals.
  • End user from the organisation schedules an external reviewer. External reviewers is required in some organisations as there needs to be a review conducted by an expert in that area. External reviewers would receive an email regarding the application to be reviewed which is to be done through Dynamics Portals.
  • The external reviewer can ask for more information or for the applicant to verify information. In return, the applicant can respond back to the external reviewer. 
  • When the external reviewer makes a decision, they can approve or decline the application.
  • Until two approvals are made (one by the external reviewer and the other by the internal reviewer), the application will be updated to approved.
Since this is a bit to get through, this is Part 1 of grant application management where I briefly talk about the applicant process using Dynamics Portals and the main focus is on Universal Resource Scheduling in Dynamics 365.

Watch my vlog for a detailed explanation. This blog covers it lightly compared to the vlog.

Applicant process

For the applicant process, Dynamics Portals is what applicants use to submit and comment on their application using a combination of Web Page, Entity List, Web Form, Web Form Steps, Web Metadata, Web Roles, Entity Permissions, Web Page Access controls... the usual suspects. I have previous blogs and vlogs configuration methods for setting up an application-like process.

Scheduling an External Reviewer using Universal Resource Scheduling

The cool bit that comes into play is the Universal Resource Scheduling. From this point onwards, I will refer to Universal Resource Scheduling as "URS."

I did follow these two learning materials:
I chose URS because typically an organisation who provides grants will require a reviewer. Some require external reviewers who are experts in the space of what the grant application relates to.

Base records

To use URS there's some base data you need which are
  • Resources - I used Contacts to represent the external reviewers.
  • Work Hours of the resource - this defines the availability of the resource. In my case, the resources are humans where I entered the work hours of the external reviewers. Make sure you set the correct time zone too cause this tripped me up.
  • Resource role - do you want to differentiate your resources? I did by creating one that represented "External reviewers."
  • Resource characteristic - do you want to find resources based on skills? I did so I created characteristics that can be linked to the Industry of the submitted grant application.

Enable URS for custom entity

The next step I had to go through was enabling URS for my custom entity, applications. This is configured through the resource settings where you

1. Select the custom entity.


2. Select a relationship or create a new relationship.


3. Then set the metadata to be used by URS.


In my case, I opted for creating new relationships. This wasn't the best approach as what I found out later was that the relationship was created in the default solution. Live and learn! Next time I will create the relationship in a solution and so should you.

By enabling the custom entity for URS, there will now be a book button displayed on the Application entity form in the command bar. If you're old school, you call this ribbon 😉


After setting up the base data and configuring URS to be used for the custom entity, you can start using the schedule board to book your resources. It will look like this:


Booking resource requirement

To go one step further where you only want to see suggested resources for the application based on some criteria, this is where you can use a booking resource requirement.

What I did was create a workflow that is triggered when the status reason gets updated to Submitted, and the next workflow steps was configured to create a booking resource requirement and associate a resource characteristic to the booking resource requirement. I set up the From and To date fields in the booking resource requirement by using the date of when the application was submitted and adding 6 days to the submitted date to work out the To date value.

This way when the "book" button is clicked on and the schedule board is launched, suggested resources will be displayed rather than displaying all resources. This makes the Dynamics 365 end user experience better when fulfilling the need of finding an external reviewer.


As you can see from the schedule board, there are resources displayed and it will tell you which resources are valid. You can also see the availability of the resources in the form of hours which is driven by the Work Hours that are defined for the resource. This is why you can see Bruce Sanchez being available Monday - Friday for 8 hours whereas Holden Caulfield is available through out the week 24/7.

The other cool thing that I had found was that the default work hour template also kicks in as during the time of me creating the above booking requirement, Dynamics 365 recognized it was a Sunday and made the first day be the Monday.

Once a resource is booked, the bookable resource bookings will be created and associated to the application. You will also see that the start time and end time respects the work hours of the resource.


I also have another workflow that sets the External Reviewer lookup on the application when the Bookable Resource Bookings is created. I forgot to show this in my vlog.


What you need for URS

Currently to use URS, you must have a licence for Field Services or Project Service Automation. You're out of luck if you think you can get away with using Teams licencing.

Additional thoughts

Wonky hours

I did have some trouble if I was submitting the application during my working hours (eg 10am or 4pm) as it would throw my schedule board out of whack. Below is an example screenshot.
As I'm still learning URS, I couldn't figure it out so if you know why or something I need to try then please comment in my YouTube video.


Only considers one external reviewer

For the workflows that I set up for the booking resource requirement and to update the external reviewer lookup field, this worked as there was only one external reviewer required.
If there are multiple external reviewers required there would need to be custom fields or additional logic to handle creating more than one booking resource requirement to represent the multiple external reviewers and updating the external reviewer lookup fields back in the application.

Summary

Pretty cool right? Or am I nerd burger in thinking that it is cool that you can use URS for finding external reviewers available to review grant applications?

I put URS to the test by using it for scheduling external reviewers to review the grant application and it turned out great.

What's next

Part 2 is covering the external reviewer process including notifying the external reviewers and applicants when further information is required.

In part 2 I will show you a cool solution that has been built by a fellow MVP Aiden Kaskela.
Stay tuned and make sure you subscribe to my blog, my YouTube channel or Twitter to find out about Part 2.