Workflow does not show up on Dexterity Alternate Window

Patrick Roth - Click for blog homepageWe had a case where the workflow functionality for the Purchase Order Processing PO Entry window would show when the original window was used, but would not appear when the developer's Dexterity alternate version of the window was used.

The Dynamics.exe.config is what can control the .NET wrapper that goes around each GP window.  This wrapper is extended by the Workflow client assembly which is why we see the workflow visualization, approve/deny/etc buttons.

To determine which assembly is used for a window wrapper, an entry in the Dynamics.exe.config describing the product/form/window and which assembly is to be used.

So if we look at the Dynamics.exe.config, we see there are 2 entries for the PO Entry window (window ID = 1 and formid = 829).

The first for product 0 is the GP base window.  The 2nd is for the alternate Project Accounting version of the window.

Excerpt from Dynamics.exe Config File

     <add name="Workflow-POP_PO_Entry/POP_PO_Entry" productId="0" formId="829" windowId="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>

     <add name="Workflow-POA_PO_Entry/POA_PO_Entry" productId="258" formId="829" windowId="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>

In this case what was happening and why the wrapper doesn’t show was that the alternate version is opening and since an entry isn’t listed for that product, the default wrapper is used instead of the workflow client wrapper.

The resolution is therefore easy with no extra work on the developer's part – just add an identical entry below these with a different name and your product id.  The rest should be the same since we’re going to have it use the GP workflow functionality.

Added Line Example

     <add name="Workflow-POP_PO_Entry_XXXX/POP_PO_Entry_XXXX" productId="XXXX" formId="829" windowId="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>

Just replace the XXXX in the line above with your product ID. Problem solved.

Patrick Roth
Sr. Escalation Engineer