0
votes

A bit of background before I begin.

Background:

I am working on migrating an existing .NET based system to Dynamics CRM and one of its key feature is its 'Request Approval Process'. I have implemented some simpler versions of such approval processes in past but this one is a bit complex since it involves multi-level approvals, multiple approvers at one level, amendment logic, delegation functionality, etc.

Analysis Till Now:

Before pushing this question at SO, I did a fair analysis of the requirements from my end and have come up with few possible approaches:

  1. Workflow based approach (something on lines of this)

  2. Complete custom logic using Plugins/Web Resources (something on lines of this)

I am not explaining the details of these approaches as of now but the core issue is that none of these two approaches are fitting correctly to my requirements.

Queries:

While analyzing these approaches I came across some newer functionalities added to CRM (listed below) but did not get any additional resources to explore them further. I just want to confirm that I am not trying to achieve something which is already present out-of-the-box or going in the incorrect direction.

1. Internal Process Automation:

  • Reference: Here
  • Any leads/thoughts on this approach? I am not able to find any good documentation/articles around this.

2. Graphical Approval Workflow:

  • Reference: Here
  • This feature seems to be useful but it is mentioned to be a part of Dynamics Marketing. With the new structuring of Dynamics 365, will this feature be a part of Dynamics CRM by default?
  • Also, the Prerequisites section of this link mentions certain Item Types for which you can configure this functionality. So can't we use this functionality for any entity records?

Any kind of help/inputs would be appreciated.

1
@Filburt Thanks for the correction. I have updated the correct URL.Ashish

1 Answers

0
votes

I'd suggest the best of both worlds: using out-of-box Workflows along with custom Workflow activities that you can write with C#. Use as much out-of-box functionality as you can, but when you need to query records or run custom logic, create a custom workflow activity that can be used in your out-of-box Workflow. Custom workflow activities are similar to plugins in that they are written using C#. You can have custom inputs and custom outputs for your activity.

For example, maybe your approval process needs to look up the appropriate approving user for this record. You could write a custom workflow activity that takes an input (the record being approved) and an output (the user that has the ability to approve). Then in your Workflow, you'd add your custom activity as a step. After that step, you could send an email to the approver by using the output of that custom step.

More information about custom workflow activities: https://msdn.microsoft.com/en-us/library/gg309745.aspx