Wednesday, 30 May 2018

Grant Application Management Part 1: Universal Resource Scheduling

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.