Managing Processes in Dynamics 365
The following are best practices to consider for managing processes with Microsoft Dynamics 365:
- Be sure to accurately set the Scope of your workflow before proceeding with the workflow logic. It is critical to understand how a workflow will run if it is a user-level process versus an organization-level process.
- Always try to cleanly end workflows. Use Stop Workflow steps wherever possible to ensure all workflow logic exits cleanly and no system resources are consumed unnecessarily. Stopping a workflow with Cancel or Success can help evaluate the status of workflows after they run.
- Refer to the previous section for information about Infinite Loops. Understand the limits on recursion and how to circumvent those restrictions. For example, consider building in a 10-minute wait in a recurring workflow to ensure there are no infinite loop-back issues.
- Be careful when triggering workflows on field changes. Ensure that the field change trigger is not also updated in your workflow, which may cause a looping process.
- Always use good naming conventions when creating processes. While a name may be clear to the person creating the workflow, it is not always clear to others – for example, “Account Workflow #1” or “Joe D365’s Opportunity Dialog” may mean nothing to others. As a best practice, name a process as close as possible to what the process does (e.g., “Set the Owner Based on Zip Code when Lead is Created” or “Assign New Cases to Bob Smith for Follow-Up”).
- Carefully consider use of Wait conditions. Each Waiting workflow in the system consumes a small amount of system resources. While this may not be a concern for most implementations, this situation can cause issues in large deployments with numerous waiting workflows on hundreds or thousands of records. Use Timeout whenever possible to avoid system resource allocation issues.
- Remember that workflows can be configured to run asynchronously. That means it may take a few moments before you ‘see’ the results of a workflow that ran against your CRM records. This is especially true when using workflow to Mass Edit records in your system.
- While workflows can be set to run real-time, ensure that this is only used where necessary. Real-time workflows require users to wait until the process is completed and may consume more system resources versus waiting in the background for resources to be available before processing.
- Having a generic “System” user as the owner of your workflows will prevent workflows from becoming disabled accidentally. When a user record is disabled their workflows will also become disabled. You can avoid this with a generic either default user used for all workflow ownership, or being sure to check for workflows owned by a user record that is about to be disabled and changing the ownership of those workflows to a new user.