Resource Roles and adding Role Prices to Cost and Sales Price List in Project Operations

Now that in the previous blog posts of this series, the Organization Units, Cost Price and Sales Prices were setup – Setting Up Default Organizational Unit, Cost and Sales Price List in Project Operations Lite, let’s look at what Roles (or Resource Roles) are and how you can add them to the Price Lists

Resource Roles

Let’s see how we can add Resource Roles –

  1. Navigate to Resources Area and then select Resources sub-area in Project Operations App.

  2. Now, navigate to Roles on the Sitemap and you’ll see some existing Roles already available out-of-the-box

  3. If you open any existing roles, you’ll see that Billing Types the type/behavior of the Role which we’ll discuss in further sections.

    Now, let’s add the Resource in both Cost and Sales Price Lists in the next section.

Add Role in Cost Price List

Now, lets assume we want to assign a Cost Price to the Consulting Lead role (which is of type Chargeable). Let’s see below on how we can do this –

  1. Navigate to the Organizational Units in Settings area in Project Operations since it’s easy to go than to find the Cost Price as you might not remember the exact name every time.
    Open the Organization Unit record which is your default Organization Unit for the PO environment.

  2. Now, since we had already associated a Cost Price in the previous sections, you can open the Price List.

  3. Now, once you open the Cost Price List, go to Role prices tab and click on + New Role Price to add the existing Role to this price list and define the Cost of the Role to the organization.

  4. Now, make sure you select the Role and also select the Organization Unit even if you have selected the Cost Price List from the Organization Unit. That’s because you can add multiple prices for the same role across different Organization Units.

    I’m keeping a sample Cost Price of $150

  5. Once you Save and Close, the Role Price will be defined in this Cost Price for this Org Unit.


    Alternatively, let’s also add the same Role in the Sales Price List as well from this series.

Add Role in Sales Price List

Let’s also add the same Consulting Lead role to the Sales Price List as well –

  1. Navigate to the Sales area and then look for Price Lists. Look for the Sales Price List you created for your organization.

  2. In the Sales Price list, go to Role Prices and click on Add New Role Price

  3. Now, as Sales Prices are supposed to be higher than Cost Prices, I’m using a Price of $240 for the Consulting Lead which was $150 in the Cost Price

  4. And once you Save and Close, it’ll be added to the Sales Price list as shown below.

Hope this post was useful!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Enable Copilot for Project Operations

Recently, you must have observed Copilot being introduced in every other Microsoft Business and M365 applications. Dynamics 365 Project Operations too being no exception! Here’s how you can get the same

Enable Copilot in Project Operations

Here’s how you can enable Copilot in Project Operations –

  1. In Project Operations app, Navigate to Settings in the SiteMap area –


  2. Then, Navigate to Parameters. Then, open the Parameter record itself (Avoid click on the Default Organization Unit as it’ll take you to the Org Unit record and not the intended Parameter record).

  3. Then, you can drop down from the Feature control and see that the Copilot option is available to enable for you.

  4. Once you click on it, it’ll ask you for confirmation. Click OK if everything looks good to you.


    It takes a few moments for Copilot to be enabled for Project Operations environment.

Disable Copilot

Here’s how you can disable Copilot if not needed –

  1. In case you don’t want to use Copilot and want to disable it, you can open the Parameter record in Project Operations’ Settings area and drop down from the Feature Control ribbon button to find that you can now Disable Copilot if it is in enabled state.

Hope this post was useful!

Thank you!

Setting Up Default Organizational Unit, Cost and Sales Price List in Project Operations Lite

One of the first things to do when starting a new Project Operations Lite environment is to start setting up organizational data for your environment and in that, setting up Organizational Units, Price Lists and Roles is one of the first things to start setting up –

Let’s see on how you can start the same!

Organizational Unit

One of the first things is to find the Default Org unit for your Project Operations Lite environment –

  1. Ensure that in your Project Operations environment, you are in Project Operations app. On the SiteMap, switch to the Projects area and then, Settings sub-area.

  2. Now, locate Parameters and there should be 1 record in the Parameters which is mapped to the Default Organization Unit. Select the same (click on the clickable Default Organization Unit lookup itself to directly go to the Organizational Unit [or referred to as Contracting Unit in further blogs])

  3. Once in the Org Unit record, update the name to what should be relevant based on your use case.

  4. I’ve renamed this to a more readable name based on my example. Now, it should be easy for you to deal with this Org Unit while referencing further.

Cost Price List in Organizational Unit

Now that the Org Unit is found and renamed correctly, let’s add a Cost Price List first –

  1. In your Org Unit record, click on Add Existing Price List.

  2. Then, click on New Record button upon clicking the Look for records lookup field.

  3. Select Price Lists as the record type and it should be the only option there.

  4. Then, it’ll open the Price List record creation form on the window and you can start filling in the details. Make sure the Context selected is of type Cost.
    Also, the Effective Start Date and Effective End Date should be relevant as all calculations will be successful only if the dates to be processed for transactions fall inside the intended Price List dates.

    Save and Close the record once completed.

  5. Then the saved record will be shows as selected on the lookup field and you can then click on Add button at the bottom.

  6. Once added, the sub-grid on the Org Unit will take a while to refresh and then show you the tagged Cost Price List correctly.

Now, you have tagged a Cost Price List successfully. Let’s quickly add a Sales Price List.

Sales Price List

Now that you have created and tagged a Cost Price List in the previous section, let’s quickly create a Sales Price List shell so that you have a corresponding Sales Price List to look at as well –

  1. Navigate to the Sales area and then select, Sales sub-area in the Sitemap.

  2. Here, click on the Price Lists table and then click to add a new Price List record.

  3. Note that the Context of the record should be Sales this time since we want to create a Sales Price List. Save & Close once the record looks satisfactory based on your relevant information to fill in.

  4. Now, you can see that the Sales and Cost Price Lists are ready in your environment.

Next Section here will cover adding Resource Roles, and then adding Role Prices to the Sales and Cost Price Lists.

In later parts of this series, we’ll continue to add more to the Price Lists, Roles etc.

Hope this post was useful!

Thank you!

Starting a Project Operations Lite Trial Environment

One of the first things you want to get done is to spin up a Project Operations Trial environment. Here’s how you do it!
Note that no Credit Card is required for a Project Operations trial environment.

Project Operations Trial Environment

Here’s how you start a Project Operations trial environment –

  1. Navigate to https://trials.dynamics.com/ which will be redirected to https://dynamics.microsoft.com/en-us/dynamics-365-free-trial/ and the page you’ll see will be something like this –

  2. Scroll down on the page till you see the option for Project Operations. Click on Try for free.

  3. Once you click on Try for free, you can enter a new email on which you want to start a trial. I’ve come up with a sample email which I haven’t used before. I prefer not to enter an email/username which I already use.

  4. Click Next and then you can select Setup my account.

  5. Then, you can validate/enter the details which would be something like this and click Next.

  6. Then, choose if you want to receive an OTP via Text or a Call. Text is my preferred way so I selected that and clicked on Send verification code.

  7. I received an OTP which I entered as asked on the next pane and clicked Verify.

  8. Further, I’ll be shown the login details of the trial environment I want to create. Once this is done and I save the information, I click on Next.

  9. Then, you’ll be shown the details of the environment you’ll be provisioning. Save this info before proceeding.
    Next, click on Start using Dynamics 365 Project Operations (CE) – Preview Trial. It’ll redirect you to the questionnaire page on a new tab where you’ll need to answer the questions before choosing the Deployment Type.

Deployment Type Questionnaire

As we left off from the Step #9 in the above section, you’ll be taken to a questionnaire Wizard in order to provision a Project Operations trial –

  1. Yes to managing Opportunities as they move through the process.

  2. Yes to requiring advance or extensible resource management.

  3. Yes to requirement of workflow for approval of Time and Expense.

  4. No to advanced Expense management.

  5. No to Non-Stocked Materials

  6. No to Stocked materials as well.

  7. Select the version here. Even if you would have answered the questions randomly, you would have still gotten to choose a different version than recommended. Hence, the answers above point to a recommendation of Project Operations Lite type of Deployment.
    Click Begin Setup once Lite Deployment is selected.

  8. Setup will start provisioning once you click on Start.

  9. And it’ll take a while and it’ll say that it will redirect you to the Power Platform Admin Center.

  10. And once you are redirected to Power Platform Admin Center and you’ll see that the environment is provisioning. This will take a few minutes before completion.

Set Name and URL for your environment

Provisioning a Project Operations trial will get set a predefined URL and name which you should update to be readable –

  1. Open the environment once the link is clickable and the State is set to Ready.
  2. Then, click on the Edit button

  3. Once you click Edit, you’ll get to update the Name and the URL. Set to something that is relevant to the purpose of the environment.

  4. Once you click on Save, you’ll see this loading page which will take a while to complete and finally, your Project Operations Lite environment setup will be ready!

Here’s Microsoft’s Documentation detailing which all Deployment Types have different Project Operations features available – https://learn.microsoft.com/en-us/dynamics365/project-operations/environment/determine-deployment-type?WT.mc_id=DX-MVP-5003911

Hope this post was useful!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Difference between Project Operations Deployment Types

Now, as you know that there are the following 3 types of Project Operations Deployments –

  1. Project Operations Lite (Deal to Proforma Invoicing).
  2. Project Operations for resource/non-stocked scenarios.
  3. Project Operations for production/stocked scenarios.

To keep the comparison understandable and simple, let’s review the below in a short summary.

Comparison

Project Operations LiteProject Operations for Resource/Non-stockedProject Operations for Production/Stocked
Finance & Operations module is not setupFinance & Operations setup is requiredFinance & Operations Setup is required
No Dual Write IntegrationDual Write Integration is required.Dual Write Integration is required.
Up to Pro-forma Invoicing is availablePro-forma Invoicing in PO and Customer-facing Invoicing in F&OFull Invoicing in F&O
Basic ExpenseBasic and Full Expense with Receipt OCRFull Expense with Receipt OCR

Hope this quick summary was useful. I’ll continue adding more to this article over time.

Here’s official Microsoft Documentation for full deployment guidance with questionnaire –

Thank you!

Getting Started with Microsoft Graph API

Microsoft Graph API is a superb way to leverage Microsoft 365 services as a developer. Before you start to wonder where all to get started from, this post is for you!

Microsoft Graph Explorer

Here’s how you can start using the Microsoft Graph API –

  1. Navigate to the Microsoft Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer), you’ll see the below –

  2. By default, if you run on Run Query, it’ll retrieve Sample Data already present.

  3. You can click on the Person icon in order to Authenticate to the environment you are already logged in.

  4. In case you are already logged in, select the environment or login from the start.


  5. You’ll also need to provide consent in order to proceed.

  6. Now that you are logged in, you can see the Tenant information being displayed and you can then also try to test run the same query and you’ll see your actual data being retrieved.

Important Notes

  1. In order to access a Users’ data, they have to consent this data for access.
  2. OData Queries are used to further query the data in order to access them.

Here’s the official link to the Microsoft Graph documentation and other resources: https://learn.microsoft.com/en-us/graph/?WT.mc_id=DX-MVP-5003911

Hope this was useful!

Thank you!

Permanently Delete users from Power Platform

Often times, as organizations have users enabled and disabled, over the course of time we see a lot of Disabled Users pile up in the system. Power Platform now lets you delete these Users permanently from the system.

Warning: Please note that this process will not get back the User you delete as you are going to permanently delete the User from Entra ID as well as Power Platform.

Enable Delete Users feature from Admin Center

First, you’ll need to enable this in the Power Platform Admin Center

  1. Select the environment you wish to enable this feature in and then click on Settings.

  2. Then, look for Features section.

  3. you’ll find the option for Delete Disabled Users which would be OFF by default. Switch it to ON.


    Zooming in a little bit, this is how the turned on feature should look –

  4. Once you turn this ON, be sure to scroll to the bottom of the page and click on Save to save the changes you just made.

Now that you have turned this on. You can now Delete the Disabled Users.

Pre-Requisite: Permanently Delete User

Now, let’s see how this process is to be carried out –

  1. Assuming the license of the User is now removed and if you Refresh the User in Power Platform Admin Center, you’ll see that the User will appear in the Disabled Users filtered list.

  2. Even if you delete the User in M365, you can refresh the Power Platform and see the User Name still present

  3. Now, if you open the User which you see with a different username in Power Platform Admin Center and click on it to open it in classic UI and see the Delete button to Delete the User

  4. Here’s the delete button.

  5. When you click on Delete and confirm it’ll throw the error message that this cannot be deleted.

Now, the next step is to permanently delete the User from Entra ID. Here’s a blog post to permanently delete the User from Entra ID: Permanently Delete a User in Entra ID

Delete in Power Platform

Now that the User is permanently deleted in Entra ID, you can re-attempt the delete the user in Power Platform.

  1. Now, retry the step from the User page in classic UI as you’ll see the button there.

  2. Now, you can click on the User in the Power Platform Admin Center and see that the user is showing that it has been deleted in the Environment

  3. And you can see the button to now Delete Permanently in the environment as well.

  4. And it’ll ask you if you want to really delete the User.

Hope this helps!

Thank you!

Manually Add Licensed Users in Dataverse Environment in Power Platform Admin Center

In case you want to reflect a recently licensed user in a Dataverse environment but you don’t see it reflect immediately, here’s how you can manually add users to the Dataverse environment yourself.

Check that the User has an appropriate license

From Microsoft 365 Admin Portal, ensure that the user has been successfully been given a license –

  1. In Users, click on the User and ensure the user has correct License required to be added to the environment.

  2. And even if you refresh the Enabled Users (in classic CRM UI), you don’t see the User.


    Here’s how you can quickly add a User instead of trying to sync all users (It’s possible to do that but slightly lengthy process). I’ll cover it in a separate post and link it here.
    First, let’s see in the below section on how to quickly add a User –

Add Users from Power Platform Admin Center

Given that you have the correct Dynamics 365 Administrator privileges, here’s how you can add Users manually –

  1. Go to the Environment in Power Platform Admin Center

  2. Go to the Users section once you expand on Users Permissions tab

  3. You’ll see that User is still not part of the environment. Here’s how you can add the User. Click on the + Add User button.

  4. Then, search for the User with their Email Address and you’ll see it populate once the user qualifies the criteria mentioned on the pane under User access requirements.

  5. Then, click on Add.

  6. In the next step, you’ll be asked to provide a Security Role to the User. For example, I’m assigning a Salesperson security role from the default Business Unit. And then clicking Save.

  7. This User will be added with the Security Roles. If you don’t see the name immediately, click on Refresh.

  8. You’ll see the User appear in the environment list.
    Also, you’ll see the User in the classic UI if you click on Manage users in Dynamics 365.

  9. Here’s how it’ll appear in the Classic UI.

Hope this was useful!

Thank you!

Enable Modern Controls for Canvas Apps in Power Platform

Now, Modern Controls have been recently announced, here’s how you can check them out.

Enable Modern Controls in Canvas Studio

By default, they are turned off, you need to explicitly enable them for your Canvas App.

  1. Modern Controls are not enabled by default as they are still in Preview as of the time of writing this post.
    Hence, you can see the Classic Insert menu as below.

  2. Open Settings in your Canvas App Studio editor

  3. Now, look for Experimental Features and look in the Preview section (You can also search ‘modern controls’ using the Search in this window to find the option quickly)

  4. Now, you can Save the app and do a full-page refresh if required. You’ll now see Modern Controls alongside the Classic ones in your Power Apps Editor.

Now, you can play along with these and test them out!

Microsoft Documentation on Modern Controls: Overview of modern controls in canvas apps (preview)

Thank you!

Enable Early Access Wave 1 2023 | Power Platform

Like every 6 months, enabling Early Access is one of the best things to look forward to as Microsoft announces Release Plans! So, here’s how you can enable Early Access for Wave 1 2023 if you are new to managing Power Platform environments!

It is recommended to enable Early Access features only for Sandbox environments as it is not GA [General Availability] yet.

Power Platform Admin Center

Given that you are a Power Platform Administrator / Dynamics 365 Administrator, here’s how you can enable Wave 1 2023 access for your Sandbox environment –

  1. Select the Sandbox environment



  2. Then, see the Updates section where you’ll now see 2021 Wave 1 updates available in Off mode.


  3. On the right hand side, you can select the U

  4. Then, enter the Display Name of the environment correctly in order to ensure you are enabling this on the correct environment.

  5. Once you confirm, you’ll see that the Updates have started applying in the background.

  6. And when you click or refresh, you’ll see what’s being Activated in the background based on how your environment is set up.

  7. It takes a few hours based on the environment for the Wave 1 2023 Updates to be applied.

And you’re set! Here’s Microsoft Learn Documentation for Wave 1 2023 for Power Platform / Dynamics 365: https://learn.microsoft.com/en-us/dynamics365/release-plans/?WT.mc_id=DX-MVP-5003911

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!