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.
- 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.
- Can I do this with configuration, try without development?
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.
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.- Part 1 of Dynamics Portals Web Forms - Save and Close, and Submit
- Part 2 of Dynamics Portals Web Forms - Edit and Read-Only mode from a single Web Form
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:
- Schedule anything with Universal Resource Scheduling
- How To Use Universal Resource Scheduling to Schedule Anything - I took on board the suggestions around using workflows which I'll explain.
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 you1. 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.