Refresh Invoice Line Transactions for Actuals in Project Operations Invoices | Project Operations [Quick Tip]

Here’s how you can add Missed Time Entries in Time and Material types of Invoices to be Included in the Invoice after it has been created

Scenario

Let’s consider this common scenario –

  1. Assume there is 1 Time Entry that have been Billed on the Invoice. The current state of the Invoice is Draft.


  2. If I zoom and show, this Time Entry is worth $170 for 2 hours.


    Which is based on this “Unbilled Sales Actual record on the T&M Project associated with this Invoice’s Project Contract


  3. Now, let’s consider this scenario where you realize 1 hour worth of Time Entry more needs to be also added to the already created Invoice.
    Here’s the Actual for the same.
    And, the Ready to Invoice on this Actual was performed “after” the Invoice is created.


    So, the Invoice is supposed to be $170 + $85 = $255.
    But the Invoice is already created, right?
    Let’s see what we can do here!

Refresh Invoice Lines on Draft Invoices

You’ll see this on a Draft Proforma Invoice on the Invoice record in Project Operations

  1. On your Draft Invoice, look for Refresh Invoice Line Transactions.


  2. It takes a few moments and your Invoice Transaction Lines included will be refreshed to show the reconsidered values.

  3. Now, here’s when this works –
    1. When any Actuals have been marked as Ready To Invoice after the Draft Invoice is generated. The Actuals must fall within the Invoice Schedule set on the Project Contract to which the Project is tied.
    2. When the Invoice is still in Draft state.

Here are some more Project Operations / Project Service Automation posts you might want to check –

  1. Sign up for a Dynamics 365 Project Operations (Lite Deployment) environment and provision a new instance | Power Platform
  2. Create a Team, add Members in Microsoft Teams upon Project and Team Members creation in PSA / Project Operations | Power Automate
  3. Cancelled Bookings Imported in Time Entries in Dynamics 365 PSA issue | [Quick Tip]
  4. Change Booking Status colors on Schedule Board for Field Service/PSA [Quick Tip]
  5. Modify Project tab’s view in Schedule Board in PSA v3 | Quick Tip
  6. Update Price feature in D365 PSA v3
  7. A manager is required for non-project time entries, absence, and vacation error in D365 PSA v3
  8. Import Time Entries in PSA from your Bookings in D365 PSA v3
  9. Time/Expense Entry Rejection comments in D365 PSA v3
  10. Booking Resources more than their capacity in D365 PSA v3

Thank you!

Recommendation in Business Rules in Dynamics 365

Here’s a super-useful feature to describe a field in case the user is not sure if they should manipulate the field in any way or not.

In Dynamics 365 Business Rules, here’s how you can add Recommendations based on the condition selected in the Business Rules.

Scenario

Here’s the scenario we will use to demonstrate Recommendation –

  1. If my custom field called as “Context” on the Contact entity says – Customer, then, recommend the User to enter a US phone number in Business Phone field.
  2. Also, if the user choses to Apply the Recommendation, the Preferred Method of Contact will also be set to Phone.

Add Recommendation

Here’s how you can add a Recommendation post you condition in a Business Rule.

  1. In Business Rules, let’s say you will first set the condition.
    Here, I’m setting the value to check is Context = Customer


  2. If the Context field is set to Customer, then, show a recommendation. Here’s how you add a Recommendation


  3. Once you add a recommendation, you can set as to what it should point the recommendation to – In my case, I’m pointing to a Business Phone field.
    Now, the field I chose is Business Phone
    The Recommendation Title is the one that will be shown in bold when Recommendation bulb is clicked.
    The Recommendation Details will describe the Recommendation itself.
    Post this, expand the Details to add the Action to take under the Recommendation


  4. Once you apply the Recommendation Properties, it is also mandatory to add an Action – Else, the Business Rule won’t be enabled.
    In action, I want to set the value Email in the field Preferred Method of Contact.


    And the properties on the right hand side are –
    Preferred Method of Contact field to set to Phone


  5. Once all the changes are applied, you can simply Activate the Business Rule and test the same.

Working

Here’s an example –

  1. On Contact, notice the Business Phone field appears like a normal field.
    Notice the Context field says Marketing Only for now, I’ll update this in the next step.


  2. Now, I’ll select Customer

  3. When I do this, a Bulb appears next to Business Phone, click on it.


    When I click on it – The area will show the recommendation with the Title and the Recommendation I entered in the Business Rule step
    [Notice that the Preferred Method of Contact still says ‘Any’]. This will be changed when I click Apply.


  4. And when I click Apply, the Preferred Method of Contact will be set to Phone.


    Hope this was useful!

Here are some more posts on Dynamics 365 which you might want to check –

  1. Retrieve Metadata of Global OptionSets from Dynamics 365 in Power Automate | HTTP with Azure AD action
  2. Single record and multiple record auditing in Dynamics 365 to Audit record access | M365 Compliance
  3. Enable Plug-in Profiler in Settings area in SiteMap in Dynamics 365 | [Quick Tip]
  4. Disable Recent Records from Dynamics 365 Lookup Control | Model-Driven Apps [Quick Tip]
  5. Language format for Whole Number field in Dynamics 365 CE
  6. Custom Help Pages and Guided Tasks for Unified Interface in Dynamics 365
  7. Make Managed fields Required in Dynamics 365 – Managed Properties Error [Workaround] | D365 CE Quick Tip
  8. Sign up for a Dynamics 365 Project Operations (Lite Deployment) environment and provision a new instance | Power Platform
  9. Form Access Checker in new Power Apps Form Designer | Model-Driven Apps in Dynamics 365
  10. New App Designer for Model-Driven Apps | Power Platform

Thank you!

Wave 2 2021 Early Access is now available | Opt-in

As per MS Docs, the Key Dates for the Wave 2 Features are as below –

Reference Link: https://docs.microsoft.com/en-us/dynamics365-release-plan/2021wave2/?WT.mc_id=DX-MVP-5003911

Note: Since these are Early Access Features, not all features would necessarily make it to the final Wave 2 2021 release. Kindly try these features in a Sandbox environment only and test the same.

Microsoft Docs for details on Opt-in Features

Dynamics 365 Release Plan 2021 Wave 2 Early Access –
https://docs.microsoft.com/en-gb/dynamics365-release-plan/2021wave2/features-ready-early-access?WT.mc_id=DX-MVP-5003911

Power Platform Release Plan 2021 Wave 2 Early Access –
https://docs.microsoft.com/en-gb/power-platform-release-plan/2021wave2/features-ready-early-access?WT.mc_id=DX-MVP-5003911

Here’s how you can Opt-in

  1. Navigate to https://admin.powerplatform.microsoft.com/ in your tenant and go in one of the Sandbox environments you want to enable the Wave 2 2021 Features on.


  2. Click Update now as seen and enter the name of the Org in the prompt


  3. Once you confirm, the update will start applying. It’ll take about 20 mins to an hour based on how large your environment is.


Check updates

Once completed, you’ll see that the status is now On for Wave 2 2021 Updates Early Access.



Navigate to About in your App selection screen –



And you’ll see that the Updates have been applied



Here are some more Dynamics 365 Power Platform / Administrator related posts you might want to check out-

  1. Recover deleted D365 PowerApp environment using PowerShell
  2. Enable/Disable the need to Approve Email for Mailboxes in Dynamics 365 CRM CE
  3. Create a support Queue in Dynamics 365 CRM
  4. Create new Sandbox and copy Production over to it in PowerPlatform Admin Center
  5. Office 365 Admin: Quickly Enable Multi-factor authentication for users
  6. Turn Teams On / Off at Org Level, provisioning users | M365 Admin Center Tip
  7. Convert environments between Production and Sandbox | Power Platform Admin Center [Quick Tip]
  8. Make On-Demand Flow to show up in Dynamics 365 | Power Automate

Retrieve Metadata of Global OptionSets from Dynamics 365 in Power Automate | HTTP with Azure AD action

Not sure if you’ll ever need to retrieve the Metadata of Global OptionSets ever or if you’re just curious that this could be retrieved or not, probably this post might be able to help. 😊

Let’s look at how you can retrieve Global Option Set metadata from your Dynamics 365 instance in Power Automate using Invoke and HTTP Request using Azure AD connector.
I’ve mentioned some considerations along the way as well!

Flow

Let’s see how we can retrieve the Global Option Sets from your D365 instance –

  1. For simplicity, my Flow will run on-demand. Hence, the next step is to have HTTP with Azure AD connector to be used.
    Consideration: The reason we are not using Dataverse connector is because it doesn’t let you Retrieve / Retrieve Multiple on GlobalOptionSetDefinitions which is required in this case.
    And you’ll be using HTTP Request to retrieve resources from your current D365 environment and hence, will use Connection Reference based on who can access the APIs.



  2. Now, in the Invoke HTTP Request with Azure AD, use the below to query the GlobalOptionSetDefinitions


  3. Further, once this is executed, the Output of the request will be a JSON response which is tremendously huge and detailed.
    So, when I format it in an online formatter, it looks something like this –


  4. Consideration: $filter= is not supported in this type Request. Hence, it won’t work and you’ll get the below error. Below is an example when I tried –




  5. So, after referring to #3 above
    Now, once you have retrieved this data, we’ll use Filter array action in Power Automate to filter the OptionSet Metadata based on the the Name of the OptionSet and select that piece of JSON which contains the details of 1 single Option Set

  6. Now, in Select, we’ll select the Value part of the Body of the HTTP Request we’ve used above.
    body(‘Invoke_an_HTTP_request’)?[‘value’]
    And the reason we select value is because from the Body of the step above, we are selecting the Value array which is an Option Set record itself.
    Further, we’ll use a criteria to Filter the same.


    And if you Peek Code this and see


  7. Next, the criteria we’ll use to filter is based on the name of the Option Set itself which you can easily see in Dynamics 365.
    We’ll pick item()[‘Name’] to select the JSON attribute whose value we want to compare on the right hand side


    And if you Peek Code here

  8. Now, the reason we chose this is in #3 above, if you expand, you’ll see the Name JSON attribute that contains your Unique Name of the OptionSet.


  9. And now, when you Run the Flow and see the Result of the last Filter Array Step


    And if you take these Outputs and Beautify to see the structure, you’ll see that this is 1 Option Set’s Metadata. You can then see these values if you ever need to retrieve the Global Option Sets at any point.

Here are some more Power Automate / Flow posts you might want to check –

  1. Primary Key of Activity type entity in a Dataverse connector in Power Automate | Quick Tip
  2. Split On in Power Automate in SharePoint trigger for Item updates
  3. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  4. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  5. Invalid XML issue in Dataverse connector for List Rows action | Fetch XML Query | Power Automate
  6. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  7. Invalid type. Expected Integer but got Number error in Parse JSON – Error at runtime after generating Schema | Power Automate
  8. Asynchronous HTTP Response from a Flow | Power Automate
  9. Converting JSON to XML and XML to JSON in a Flow | Power Automate
  10. FormatDateTime function in a Flow | Power Automate

Thank you!