Dynamics 365 Project Operations public preview: Copying CE environments in the Full Deployment option

Tested on: ProjOps version (public preview)

As I’m writing this blog post, the Dynamics 365 Project Operations public preview has been running for 2.5 weeks. At the moment, the Product Team offers three different deployment options:

  • Full Deployment (CE+Project Management and Accounting in F&O).
  • Customer Engagement only.
  • Project Management and Accounting (F&O) only.

The ProjOps public preview installation guide states that a new tenant should be used when setting everything up. Considering that there is no upgrade from the public preview version to GA and that new tenants get USD 200 in Azure credits, this shouldn’t be a deal-breaker for anyone. Project Management and Account – or simply put F&O – is run on a cloud-hosted Azure Virtual Machine on a pay-as-you-go model. Maintenance is thus naturally managed by customers. The current deployment experience is CE in Power Platform Admin Center (PPAC) and F&O in Lifecycle Services (LCS).

There are lots of moving parts around deployment methods and options so be sure to regularly check for the latest news. Things are evolving very rapidly so it’s fairly safe to say a lot of what I’m writing at this moment will be outdated at GA.

Dynamics 365 Project Operations deployment options. Source:
Project Operations: Installation Guide (p.4). Microsoft Corporation, 2020.

Copying CE environments in the Full Deployment option

If you’ve worked with Dynamics 365 or vanilla CDS environments before, the article’s and this chapter’s topic might make you frown and ask “What’s the catch?”. Copying CE environments can be done from PPAC and all it takes is a few clicks. Why is ProjOps different? The short answer is that it’s not: Copying an environment is done the same way. There is, however, more to it. The Full Deployment option requires the installation of both the Dual-write application orchestration solution and the Dual-write core solution. These are needed as Dual Write mappings between CE and F&O are needed for the Full Deployment i.e. the hero story with integration to light up.

What’s the issue with the mappings then? The answer to that is that when a CE environment is integrated with F&O via Dual Write, records flow between CE and F&O according to the created mappings. If the F&O end suddenly disappears, creating or updating new records in CE will produce an error. The image below shows a repro of an error given when a VM running F&O is stopped.

A Business Process Error is given when a record is updated or created and a VM running F&O is stopped.

When a CE environment is copied and a full copy is made, the new environment naturally isn’t integrated with an F&O environment. A full copy copies all application data, customizations, and schemas. This means that Dual Write related data is also copied to the new environment. When data for maps exist in the Dual Write Runtime Configurations entity, creating or updating records in the new, copied CE environment results in an error.

A Business Process Error is given when a record is updated or created and data in the Dual Write Runtime Configurations entity exist after a full copy of a CE environment.

If a minimal copy for customization and schemas is made, application data isn’t copied. This is inconvenient because ProjOps has various settings and parameters that will then need to be reconfigured and recreated. For quick tests in a new environment, a minimal copy really isn’t an option. I thought I’d see how long it takes to set everything up after a minimal copy. After hitting a dead-end when trying to create a new Company, I decided to abandon my pursuit of making a minimal copy work. What about uninstalling some of the Dual Write solutions? I spent over three hours doing that and the results weren’t great. Based on all the testing I made, I’ll stick to full copies to get everything working.

Creating a new Company in CE produces the following error:
“The user 0b352fd1-9132-4c3c-a6db-f47ef307017d cannot write data to this entity, only the integration users may write data to this entity.”

The simplest solution is to delete all records in the new environment’s Dual Write Runtime Configurations table. It took a bit over a minute to delete the records on two different tries so give D365 some time if you feel like D365 is timing out on you. After deleting all records in the table, it’s possible to edit existing ProjOps records and create new ones. Let’s keep our fingers crossed that there’s an option requiring less manual work available at GA.

Delete data in the Dual Write Runtime Configurations table to get a copied ProjOps environment working.

Re-linking a copied CE environment with an F&O environment

Re-linking a copied CE environment with an F&O environment is simple. The ProjOps Public Preview Installation Guide has a section for creating a Dual Write connection between CE and F&O environments. Re-linking an environment is done exactly as indicated in the guide. The copied CE environment is selected when creating a link between F&O and CE. After that, it’s just a matter of turning on Dual Write maps in F&O. In this example, the copied CE environment is linked with a new F&O environment to avoid disruptions in the primary environments I use in the public preview.

Re-linking the copied CE environment with F&O.
Turning on Dual Write maps.

Huge thanks and kudos to members of the ProjOps and Dual Write Product Teams for all the advice!

Edited on 2020-07-21:
Added results of re-linking environments.
All my blog posts reflect my personal opinions and findings unless otherwise stated.