Wednesday, December 13, 2023

Dual-Write | Update the Delivery Address in Sales Order from D365 Sales to F&O

We have Dual-Write enabled in one of our customer sites and we are syncing sales orders from D365 Sales to D365 F&O. The issue that we were facing is, when we update the delivery address in D365 Sales, i.e., on Order form (in CE), we have a field called "Choose Ship to Address", while the address is updated on the Order form (in CE), it doesn't update the delivery address in D365 F&O Sales Order form.

Note: for the Address integration to work via dual-write, you need to enable GAB (Global Address Book) app.

After some R&D, we cracked it.

We wrote a workflow to update the Delivery Address Location ID based on the address selected in the field "Choose Ship to Address".

Note: Delivery Address Location ID is also a field on the Order form in D365 Sales. By default you can see that under the Integration tab.

D365 CE Sales Order form

Below is the screenshot of the workflow that was created. Workflow to be created on the Order table and the trigger is when Choose Ship to Address is updated.

Steps:
Condition: if Choose Ship to Address contains data
Update: Delivery Address Location ID (Order) = Location ID (Address)


I am not mentioning the Dual-Write table maps here, but we were using OOB tables maps on the Order table. In case you have updated with custom table maps, you may want to check it (in case the address is still not updating).

Hope this helps!

Tuesday, October 17, 2023

Troubleshoot Dual-Write Issues in Dataverse and F&O Apps

I have written couple of articles on Dual-Write lately. Mostly on issues that we've been facing lately and how we have come to fix them. These post is where I bring them all together. You can think of this blog post as a summary of all the issues and fixes until now and will continue to update the same in the future.

Also certain topics don't need a separate post. Will write about them here directly. Starting below with the posts that I have written previously.

Previous Posts


Unable to create a Quote in Dynamics 365 Sales App

This was because we were receiving an error

"Write failed for entity CDS sales quotation header with unknown exception - BOX API can't be used from non-interactive sessions."

 Click here to read the post.


Privileges required for dual-write initial sync

There are certain security roles and privileges required to perform initial sync of tables via dual-write.

Click here to read the post.


Unable to delete postal addresses in Dynamics 365 Sales

This happened because there were related records, and I wasn't able to delete them too.

Click here to read the post.


Unable to create an order from a quote in Dynamics 365 Sales App

Here is the precise error that I was receiving.

"Write failed for entity CDS sales order lines V2 with unknown exception - Inventory dimension Site is mandatory and must consequently be specified.\nUpdate has been canceled."

Click here to read the post.


Other Issues


Unable to load the dual-write module in a Finance and Operations App

If you're unable to open Dual-write page by selecting the Dual Write tile in the Data management workspace, most likely data integration service is probably down.

For this you would need to create a MS support ticket and request a restart of the data integration service.

Wednesday, September 27, 2023

Unable to update Order Product using Workflows in D365 CE

Here is a note for y'all, something to keep in mind when working with workflows in Dynamics 365 Customer Engagement (D365 CE).

You can create a workflow (i.e., initiate a workflow) on the following tables:
  • Opportunity Product
  • Quote Product
  • Order Product
But when you add a step to Update record within the workflow, you'll notice that you cannot update the above mentioned tables (entities). You can however update any of the related tables linked with these tables.

Add Price List Items too into the above mix. Can create a workflow based on this table, but cannot update Price List Item record using a workflow step.

I believe the workaround would be to use Power Automate flows instead of Workflows. I haven't tried this as yet, but I believe it is possible.

Hope it helps!

Thursday, August 17, 2023

Dual-Write | Unable to create Order from Quote in D365 CE Sales

While converting a Quote into an Order in D365 CE Sales, I was receiving an error message that went like:

Dual Write core application error-Dual Write core application error-Unable to write to Finance and Operations apps due to following error(s): {"Write failed for entity CDS sales order lines V2 with unknown exception - Inventory dimension Site is mandatory and must consequently be specified.\nUpdate has been canceled."} Please rectify your data and try again. If issue persists after multiple retries, please contact your system administrator.

Since dual write is seamless integration and data synchronization across D365CE and D365FO and as the default shipping site and warehouse is required while creating the Order in F&O, we need to ensure that the value is populated prior to creating the Sakes Order. 

Solution

While encountering an error can be frustrating, the good news is that there is a solution.

In this case, the remedy involves performing relationship mapping between the Quote and Order entities. Relationship mapping essentially defines how data is transferred between related entities.

Steps:

  • Open the solution in D365 Sales App. Ensure you've added the following components:
    • Quote and Order tables
    • 1:N relationship between Quote and Order
  • Open the relationship and click on Relationship Mapping
  • Add a new Map and select Default Shipping Site and Default Shipping Warehouse.
  • Now try to convert the Quote into an Order.
It should be smooth sailing now.

Hope that helps!

Friday, August 11, 2023

Error when qualifying Lead into Opportunity | D365 Sales

There could be many reasons and most of it could be found when you perform an online search, but none of those suggestions fixed my issue. When I was qualifying the Lead into an Opportunity, it is showing the following error:

OrganizationServiceFault

And that is it. No other details about the error. No error log, not description of the error, no error code. Nothing!

Resolution

My user didn't have system administrator, but a custom role was assigned to the user. I took some help from my technical team who did a little bit of digging and came across this below message.

Entered Microsoft.Dynamics.SCMExtended.Plugins.Plugins.LeadPrimaryContactPostCreate.Execute(), Correlation Id: 021c0dc2-3e1e-46e5-81c0-b1524ae09ed2, Initiating User: e7925424-1da4-ed11-aad1-002248a13b63

Exception: System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: Principal user (Id=xxxx5424-xxxx-ed11-xxxx-002248a1xxxx, type=8, roleCount=4, privilegeCount=1064, accessMode=0, MetadataCachePrivilegesCount=9751, businessUnitId=0b2c4b59-0e31-ee11-bdf4-000d3aba3d29), is missing prvReadSolution privilege (Id=b64e92c8-5d2a-4052-a026-1b73eff9cebf) on OTC=7100 for entity 'solution' (LocalizedName='Solution').

I provided a Read privilege to Solution table under; relevant Security Role > Customization > Solution, and it worked.

Hope it helps!

Friday, August 4, 2023

Dual-Write | Unable to delete Postal Address Collections in D365 Sales

If you're unable to delete Postal Address Collection records in Dynamics 365 Customer Engagement Sales App, most likely the reason is there is related Postal Address records under that.

When I try to delete Postal Address records using Advanced find, I couldn't find the Delete button on it. If I open the record (for Postal Address), still couldn't see the delete button.

I used Bulk Record Deletion job to delete Postal Addresses and then I could go ahead and delete Postal Address Collections.

What are these tables you ask? These are added when you implement dual-write and install GAB solution in the dataverse. If the 2 environments are in sync, it is best to delete these records in F&O and let dual-write handle the deletion in D365 CE Sales.

We were in a situation where the F&O environment wasn't in sync with CE and we had to remove these records manually in CE only.

Hope it helps!

Dual-Write | Privileges required for Initial Sync and other considerations

Recently we were doing an initial sync for tables between Dynamics 365 Finance & Operations apps and Dataverse (Dynamics 365 Customer Engagement), and we received an error that read:

Reason: Bad Request, Header x-ms-client-request-id 8aef8aa3-2a01-493e-a0d7-347ce560e50d, Principal team (Id=b7e1929e-xxxx-xxxx-aad0-xxxx489fxxxx, type=9, teamType=0, privilegeCount=0, MetadataCachePrivilegesCount=9751, businessUnitId=b5e1929e-xxxx-xxxx-aad0-xxxx489fxxxx), is missing prvReadmsdyn_globalproduct privilege (Id=539cf392-xxxx-xxxx-b258-xxxx719b7d93) on OTC=10835 for entity 'msdyn_globalproduct' (LocalizedName='Global Product') in Business Unit: unqxxxx (Id=b5e1929e-xxxx-xxxx-aad0-xxxx489fxxxx). context.Caller=691e1af2-xxxx-xxxx-aad1-xxxx489axxxx

Sometimes when you're excited and hurrying into the action, you miss the fine details and here are the fine details.

Security role that is required

Every user in a customer engagement organization with dual-write must be given Dual-Write Runtime User role. Without this role, users will be unable to create any rows in tables in customer engagement organization.

Company and currency exchange tables are global in nature and all dual-write users require read access to these 2 tables. To provide access, all dual-write users must be given Dual-Write App User security role. If a user does not have this security role assigned to them, they will not be able to read tables that contain Company and Currency.

Also access is required to entities (tables in dataverse) that are in scope of dual-write. However which privilege is required is not very clear. What you can do is to create a custom role and provide the relevant privilege to the tables in scope of your dual-write integration. We had provided Create, Read and Write which worked for us.

PS: I do believe Read privilege should be enough. Comment down below if you have an experience regarding the exact privilege required.

Here is the link to other considerations before performing initial sync & setup dual-write security roles and permissions.

Hope this helps!

Friday, July 14, 2023

Dual-write | Unable to create a Quote in Dynamics 365 Sales

We have enabled Dual-write in one of our environment's and we have the Quote table in running status for dual-write sync however, when we try to create a Quote in D365 Sales, for some reason it was failing and the error message was like below.

"Write failed for entity CDS sales quotation header with unknown exception - BOX API can't be used from non-interactive sessions."

To approach this, we ensured that we have followed and setup the prerequisites mentioned in Microsoft's documentation about Quote-to-cash in dual-write

Also we were using Trade Agreements pricing engine and the setup for that is mentioned here: Sync on-demand with SCM pricing engine

Resolution

What we did was, we went to form "Sales and marketing parameters" in Finance and Operations to check if the field "Create opportunity for sales quotation" is set to Prompt.

If it is set to Prompt, you need change to another value based on your requirement. We changed this to No and tried creating the quote. It worked!


There could be many reason's for this failing and this is what has helped up. Let me know in the comments below if it was different for you and how did you resolve it.

Hope it helps!


Tuesday, March 28, 2023

How to register for ClickDimensions (D365 CE)

ClickDimenions is a marketing automation tool for Dynamics 365 Customer Engagement (CRM). Tool wouldn't be the right terminology as it is a very comprehensive application to address all your marketing needs.

While the online help and guides provided by ClickDimensions are very detailed, I thought to summarize this in below few steps to register and install the app in your environment.

Step 1

Select the data center region and deployment type. The data center region must be the same or closest to your D365 CE data center region.


Step 2

Select the authentication method. You can check out the various authentication methods in this article from ClickDimensions (Register for ClickDimensions).

The contact email that you enter here is the email where the installation files / solution will be sent to.


Step 3

You will be asked to login and authenticate the app to access in the environment.

Step 4

Once the app access is provided, a notification is sent to ClickDimensions and they will generate the solution file and share it with the person mentioned in the Contact Email of the registration.

Step 5

Download the solution and import into D365 using the Power Apps Maker at https://make.powerapps.com.

Tuesday, March 21, 2023

Microsoft Dynamics 365 Customer Engagement releases versions

Here is the list of all the release versions up until version 9.1 https://support.microsoft.com/en-us/kb/2925359

For the latest Microsoft Dynamics 365 release notes, visit Released Versions of Dynamics 365 for Customer Engagement here: https://learn.microsoft.com/en-us/dynamics365/released-versions/Microsoft-Dataverse#all-version-availability

Monday, March 13, 2023

D365 CE Preview Feature (Collaboration and Co-authoring)

One of the most common ask from our customers is, does the app block one user from accessing or making changes to a record if another user has opened the record on their screen?

While this is not quite like restraining a user from updating a record because of multiple users accessing it, this feature does allow you to see the other folks that are collaborating on the same record.

You’ll need to enable this in your environment to take advantage of this feature.

  • Open https://admin.powerplatform.microsoft.com
  • Select the environment where you want to enable the functionality.
  • Click on Settings on the command bar (located on the top of the screen).
  • Expand the Product section and select Features.



  • Scroll down to Collaboration section on the left side of the screen.
  • Turn on 'Show other people when they're using the same form'.
  • Now when 2 or more users access the same form, you'll see the co-presence indicator showing all the users. It is very similar to what we see on Microsoft 365 Apps (Word, Excel, etc.).
  • This is only enabled for Account, Contact, Opportunity and Case forms during preview.



Here I would also highlight 2 other features that you can enable.
  • You can also see you can initiate a Teams meeting directly from appointments. For that flip the switch 'End users can add and join Teams meetings from appointments in model-driven app' under the Collaboration section.
  • There is also co-authoring for model-driven apps where you can see the users making changes to forms, views or dashboards using the power apps maker portal. With coauthoring you can see who is working on the same app at the same time, and you can see their applied changes in real-time.
Interesting!

Friday, March 3, 2023

2 Lesser known facts about Dynamics 365 CE (CRM Sales)

 While exploring the default forms and views for Dynamics 365 Sales I understood few facts. It is strange how even after years of experience on the product there are still some things that you have never explored.

I guess the main reason is that these don't impact any implementation in a major way, hence you tend to ignore them, and only find out by accident, like I did. So here are the facts.


1. Discount List forms and views cannot be customized


That's right. When you try to add form and view components for the Discount List table, you'll see that there are no components to be found here. 😲




2. Cannot add some fields on Price List Item views 


When I was expanding the default price list item view to show certain columns like Created By, Created On, Price List (Lookup), Modified By, Modified On. These fields are not available to add on the view, or even on the form.

Did you know?

Comment down below if there is something you discovered that was strange to you.