Back in 2013, when Microsoft introduced the concept of “Custom Actions”, we had explained this feature in this blog. With the latest update released for CRM Online versioned 7.1, this feature has further been extended.
As a quick recap, Actions in processes are a way to create custom messages in CRM for an entity, for example escalate or approve. OOB for most entities you have Create, Update, Delete, Assign, SetState messages and you have the option of writing custom business logic in the form of Plugins or Workflows on these.
You could invoke these custom action messages through Script or through C# code.
Say to implement a business process in one of the implementation, there was a need to create a message called “Escalate” for incident. Prior to the introduction of “Actions”, these were handled by adding a custom attribute and writing plugin/workflow code that tracked the change in the attribute value to execute custom logic.
For a true XRM implementation, a need was felt to be able define custom actions instead of use workarounds like the one explained above.
Here is a custom action “Escalation” that has been created.
The actual operations that need to be performed when this action is invoked is defined through the options available similar as in workflow designer.
Until now, we needed to add a custom ribbon button and invoke this action through a script. i.e this could only be invoked through a manual process. Or if it required to be automated, then you need to write a custom workflow assembly that would programmatically invoke the action.
With this version, now instead of creating a custom workflow assembly to invoke the action, we now have a new step available “Perform Action“.
Using the Set Properties, you can now set the input parameters that was defined for the Custom Action.
Similar to the workflows explained above, we now also have the “Perform Action” step available in Dialogs, so Custom Actions can now be invoked through Dialogs too.
Note: An action that is designed to accept EntityCollection will not show up in the “Perform Action” since these parameter values cannot be provided through the workflow designer.
It is now possible to automate the execution of the custom actions through workflow.
Hope this Helps!