Work-Flow vs Plug-Ins
Work-Flow | Plug-in |
Can be created by Users in the web client | Always created by the developer |
Always run in the context of owner of workflow | Flexible can run in context of user, system or specific. |
Can run for long time | Can only run for 2 minutes |
Can run on demand | Only run as result of event |
User can track progress | User don’t know they exist unless they throw an error |
Security filters which record workflows run against | Plug-Ins run for all records for the registered events |
Can’t run offline | Can run offline |
Asynchronous Plug-Ins vs Synchronous Plug-Ins
Asynchronous Plug-In | Synchronous Plug-In |
Doesn’t block user from seeing the result of operation. | Block user until completed |
Modifications happened after operation so update call is required | Can modify data before Dynamics 365 persists |
Has extra overhead to track queued async operation | Ha minimal overhead to manage call |
Limited to 2 minutes in Sandbox | Limited to 2 minutes in Sandbox |
Can run only post operation | Can run post operation and pre operation |
Not Part of transaction | Included in transaction |
Background Work-Flow vs Real-Time Workflow
Back Ground Workflow | Real Time Workflow |
Results not need right away | Results needed right away |
Wait conditions are needed | Workflow is really simple |
Workflow contains long operations like wait | Need transaction support |
Need to see before values | |
No ability to wait | |
Execute as Workflow Owner | Execute as calling User or Workflow Owner |
Real-Time Workflow Before vs Plug-In Before
Real Time Workflow- Before | Plug-In Before |
Can’t run for before create | Can register before on most messages |
Values are as before change occurred | Can see before and updated records |
No ability see changed value | Can update request in memory |
No ability for pre create for images
Post create can have post image |
Asynchronous Plug-Ins vs Custom Workflow
The key difference is Images that you can use in Asynchronous Plugin, but not in workflow and also you cannot make an Asynchronous Plug-in on demand like the way we can do it in workflows.
A Synchronous Plugins are lighter weight than workflow process.