The Curious Case of the Missing “Create Invoice” Button in Dynamics 365

Overview

  • The out of the box process for Dynamics 365 Customer Engagement Sales Process is that an Quote can be converted to an Order, and an Order can be converted to an Invoice.
  • There is a little known feature called “Is Sales Order Integration Enabled” that can change the behavior of this process such that an Order can instead be “Submitted” (to an ERP system) instead of being directly converted to an Invoice.
  • The feature “Is Sales Order Integration Enabled” cannot be enabled or disabled via the User Interface or during Setup.

“Is Sales Order Integration Enabled” Feature

I was working with a customer the other day who has been using Dynamics 365 CE Online since the beginning (CRM Live in 2009-ish).  They have been using the Quote functionality for years but only recently have begun to investigate working with Orders and Invoices as part of their business process.

While working through some proof of concept scenarios, we discovered that the Order record appeared strange as there was no “Create Invoice” button but rather a “Submit Order” button in Dynamics 365.

submitorder
Submit Order

Note that out of the box, there is a specific flow or operations for Quote to Invoice.  While I was familiar with the “out of the box” quote to invoice, I had totally forgotten about the long lost “integration mode” (more below)

quotetoorder
Quote to Invoice Processes

Usually when I see strange buttons on forms I suspect that a developer or an ISV has created their own custom process.

I launched the Ribbon Workbench and investigated the Order form and found that there were not customized buttons or functions.

ribbonworkbench

I did some investigation and found a couple of useful links that talked about an SOP Integration Mode in CRM.  Note that these articles covered older versions of CRM but still held the answer.  Sometimes you need to act like Indiana Jones to find the answers.

https://crmuk.wordpress.com/2012/11/21/crm-2011-sop-integration-mode/

https://tuscaroratechnology.com/dynamics-crm-and-issopintegrationenabled/

You can check out the articles yourself.  There is no reference (that I could find anyway) to the SOP Integration Mode on the current Microsoft Docs sites.  I recall this being a “thing” in early versions of CRM (1.2 and 3.0).

Essentially, the SOP Integration Mode is a way to allow Orders created in Dynamics 365/CRM to be flagged to be integrated to an accounting system, using an integration tools (Scribe, SmartConnect, etc).  The idea is the process will then create the invoice from the ERP system back in Dynamics 365.

The mystery is how to turn on or off this feature as there is nothing in the current system settings user interface.

The setting itself is stored as a boolean on the Organization table in the Dynamics 365 database.  For on-premise systems, changing this is as simple as SQL Update statement (which, of course is technically unsupported).  For Dynamics 365 Online, we cannot update the database directly.

A way to view the setting is via a FetchXML query in a tool like the FetchXML Builder:

organization
Is SOP Integration Enabled set to 1

There is no user interface for this setting.  Sonoma Partners used to have a tool that you could download to turn this feature on or off, but the tool is no longer available.  The other option is to write some custom code, and one of the articles listed above has a C# class that you could run to set the value.

What I ended up doing was using Kingswaysoft SSIS Integration Toolkit and created an integration using the Dynamics 365 system as both the source and destination and used a Derived Column Transformation Step to convert the issopintegrationenabled value to FALSE.

kingswaysoft1
SSIS Job to Update the Organization Table
source
Source (choose organizationid and issopintegrationenabled fields)
derivedcolumnstep
Derived Column to set to FALSE

Note that you could use this method to turn the mode on if you wanted.

destination
Update Organization Table

The result?

The Is SOP Integration Enabled setting was now off, so the “Create Invoice” button returned.

fixedorder

In further investigation, we found that an earlier attempt had been made to setup an integration to QuickBooks years ago, and the tool used likely set the integration mode on.  Mystery solved.

The Powershell Rabbit Hole

While I was looking to fix this, I also considered using Powershell.  With Powershell you can perform some basic CRUD options from Powershell Commandlets as well set System Settings.

The tools and documentation are here:

https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell

I would recommend that knowing how to use this be in every Dynamics 365 Admin’s Toolkit.

What I found is the following;

The “issopintegrationenabled” setting cannot be set with the “Set-CrmSystemSettings” command.

You can turn on the setting via these commands:

$org = Get-CrmRecord -conn $conn -EntityLogicalName organization -Id <<org guid>> -Fields issopintegrationenabled

$org.issopintegrationenabled = $true

Set-CrmRecord -conn $conn -CrmRecord $org

But for some reason, the following did NOT work for me:

$org = Get-CrmRecord -conn $conn -EntityLogicalName organization -Id <<org guid>> -Fields issopintegrationenabled

$org.issopintegrationenabled = $false

Set-CrmRecord -conn $conn -CrmRecord $org

So that is why I went to the SSIS method.

Summary

Seeing Weird buttons doesn’t always mean a weird customization or ISV.  It could very well be a forgotten or unknown feature of Dynamics 365.

There are a plethora of community tools that can help you diagnose and fix these types of issues.  For something simple as this particular issue, here are the following tools used:

XrmToolBox

Ribbon Workbench

FetchXML Builder

Kingswaysoft 

Dynamics 365 Powershell Commands

The other thing to note is that there are some blog articles that refer to CRM 2011 (or older) but the answer may still be hidden.  Don’t always discount the old stuff!

jones
CRM 2011?

Nick Doelman is a Microsoft Business Applications MVP who has worked with CRM since version 1.0 and still learns new things every day.  

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s