Dynamics 365 version 9.0
I recently wrote about using a Bookable Resource specific Sales and Cost Price for Time Entries. This blog post is a continuation of that and walks you through the steps of enabling a pricing logic that is both Bookable Resource and Project specific. I recommend reading my previous article as it covers some requirements on customizing Project Approvals, Journal Lines and Bookable Resources. The approach in Part II is similar however there are some differences.
Stage 1 – Customizations on Bookable Resource
Bookable Resource acts as a placeholder for Projects, Sales Prices and Cost Prices. If your Bookable Resources can only be allocated on a couple of projects simultaneously, the need for multiple lookup and currency fields diminishes. The customizations done on Bookable Resource are simply the fields holding the relevant information.
Fields on Bookable Resource
Bookable Resource main form
Stage 2 – Customizations on Project Approval (optional)
Goals of stage 2:
– Create a field indicating if Bookable Resource specific pricing is used on Projects.
– Create a workflow that updates Sales Price from Bookable Resource, sets the value of the Two Option field Bookable Resource specific pricing on Project and sets Role based default Sales Price and Original Bookable Resource specific Sales Price with correct values.
– Create a Business Rule that recommends a price based on the value of Bookable Resource specific pricing used on Project.
As the majority of the fields on Project Approval were already created in Part I, the only field that is specific to Part II is a Two Option field specifying if Bookable Resource specific pricing is used on Projects or not. The workflow checks if a Bookable Resource is allocated on a Project with Project specific pricing. The Business Rule is simpler and more straightforward than the one in Part I but still provides a user with a recommendation on the correct price.
1. Create a Two Option field.
Two Option field Bookable Resource specific pricing used on Project
2. Create a workflow that sets Project specific pricing to Sales Price msdyn_salesprice. This is a real-time workflow just like the one updating records on Project Approval in Part I.
Workflow on Project Approval
Step 1 of workflow
Step 2 of workflow. Add steps for each Project and price field that you have added on Bookable Resource.
Step 3 of workflow
3. Create a Business Rule that checks the value of Bookable Resource specific pricing on Project. The Scope of the Business Rule is set to All Forms.
Business Rule on Project Approval
Business Rule’s conditions
Stage 3 – Customizations on Journal Lines
Goals of stage 3:
– Update Journal Lines of Unbilled Sales and Cost when a Journal Line record is created.
– Allow the user to override the workflow that updates Journal Lines when there is a need to manually create a Journal Line from a Journal’s context.
Creating Journal Lines in Part II is similar to what was covered in Part I. The conditions on the workflow are different as we are using Project specific pricing but the overall logic of creating Journal Lines is the same. Refer to Part I for additional details about updating Journal Lines.
1. Create a background workflow that updates Journal Line records when they are created. If a Project is selected on a lookup field on Bookable Resource, Sales and Cost Prices from the related fields are used on the Price and Amount fields on Journal Lines.
Workflow on Journal Lines
Conditions for updating an Unbilled Sales Journal Line.
Properties for updating an Unbilled Sales Journal Line. Add steps for each Project and price field that you have added on Bookable Resource.
Conditions for updating a Cost Journal Line
Properties for updating a Cost Journal Line. Add steps for each Project and price field that you have added on Bookable Resource.
Stage 4 – Testing the customizations
Out final step is to test all the customizations we have made.
I hope this blog post gives you additional ideas and possibilities to pricing in Dynamics 365 Project Service Automation. If you have ideas and different pricing scenarios around this subject, please leave a comment. Feel free to develop the ideas in Part I and Part II to take the possibilities even further.
All my blog posts reflect my personal opinions and findings unless otherwise stated.