I want to build a plug-in for a Dynamics CRM 2011 installation.
My problem is that I don't find information related to the order in which the plug-in instances are executed. Microsoft says that the synchronous plug-ins are executed in the 'expected' order; but they say nothing about the asynchronous ones.
Is there a way to figure out the order in which the user actions where executed based on the plug-in execution order?
http://social.microsoft.com/Forums/en-US/crmdevelopment/thread/124c9126-ef56-4be0-a712-cf71d088295f
Related
Since there exist plugin for Skype for Business that do much more than that.
How hard would that be to create similar plug-in for MS Team with only functionality would be taking the status from the Genesys and setting it up to the corresponding status in Ms Teams, so if someone is on the call everyone can see it on MS TEAMS and know he's not available.
Would someone with little experience in writing plug-ins could do it and where he could start? Maybe they already working on it? Any ideas?
Microsoft will always focus on customer’s feedback and experience, some new features would be added to the services based on customers' feedback in the future, we also recommend you to raise your UserVoice here:
I used a lot of Plug-in code to implement business logic in CRM but now I've came up with this feature called Custom Workflow Activity.
now i wonder When to use these custom workflows over Plug-ins ?
Code Activities are custom steps which can be inserted into one or many different workflows. Kind of "plugins" but used to be inserted in workflows.
Workflows give you more feedback because they are represented visually in CRM, so non technical people can see the status of a workflow, and the steps which were executed since the start. Workflows are also executed in the Asynchronous service so they run asynchronously, plugins run synchronously, inside the application pool.
So workflows are also better for long running processes.
With that being said, plugins are still helpful when:
You need to have an immediate response, because they are triggered and executed inside CRM's application pool and,
You need to run anything inside the transaction, so they can abort it by raising an exception.
Example: you have an integration with a 3rd party service, where a record can't be created in CRM unless something is validated on the other side. Another example is concurrency: the auto-number plugin is a plugin because it needs to lock the database in the transaction, otherwise multiple concurrent threads could create duplicate IDs.
So, the answer, like always is: It depends. :)
I went deep into the subject myself and found interesting things i want to share,
So here is the complete list of compare :
Plug-in's only fire on data change like updating or creating records but custom workflows take part inside a process ( workflow, dialog, ... )
As a result , workflows not only can be triggered on data change, but on demand at anytime at any point inside their process. As you might have already understood, It is the real flexibility needed for implementing complicated business logic.
Plug-ins won't accept arguments or passed-data,
But custom workflows make it possible by using InArgument properties like below :
[Input("Case")] //label of the field shown in workflow
[ReferenceTarget("incident")] //if using EntityReference, must point the type
public InArgument<EntityReference> yourArg { get; set; } //almost every data type is supported
Workflows can be simply used and manipulated by business users.
Custom Workflows are absolutely reusable. with one register you have a piece of business logic that can be used in several situations.
in some cases you might even happen to write a code which can be used upon many different entities.
So far you know that custom workflow is more reliable than plug-in , but the point that makes a plugin's take over custom workflow is when you are validating data changes and eventually need to revert those changes . of course this is possible in Custom Workflows but it's much more easier to add a plugin than workflow.
and bare in mind that plugins run faster! (as i tested it myself)
However profiling workflows in CRM is still bugged out !
Many of the developers or MS CRM beginners get confused in some scenarios whether to go with Workflows or to go with Plugins, as both can be used and has ability to perform specific task at server side.
Plugins and workflows have some significant differences like limitations in event messages, Triggering points.
You can refer the below link for complete understanding of differences-
https://mscrm16tech.com/.../workflows-vs-plugins-in-ms-crm/
My workflows are hosted within a windows service. I like to know how to visually track the execution of these workflows. The Visual UI should update when the workflow has moved from one state to another, I have looked at the sample provided by msdn which visualize the workflow that it is actually executing which is not what I am looking for. Any help would be much appreciated.
Unfortunately you have to roll your own. I've had some success reading from the AppFabric tracking database and producing a display using Graphviz (http://graphviz.org).
There's some information here on trying to use the WF designer to visualise a remote workflow - basically trying to rehydrate the Activity objects. http://blogs.msdn.com/b/tilovell/archive/2011/06/08/wf4-visual-workflow-tracking-and-workflowinspectionservices.aspx
I need to build a workflow based solution and need some advice.
First of all, there should be a canvas style editor where a user can create workflows. Then, they will be used in a form based workflow process, where the user answers questions and the system will guide them through the steps based on the workflow. There can also be actions, such as sending emails.
The question is: can WF be used for this? I need to use the MS stack.
Any idea would be appreciated.
Yes, you can use workflow to do this.
For the execution part it seems a very good fit.
For the end user designing workflows it depends. The workflow designer used in VS2010 can be rehosted in your own applications without to much work. It is a WPF control though so the client application needs to be able to load and display WPF controls. This rules ASP.NET and Silverlight out but will work fine with WinForms and obviously a WFP app.
Another thing with the designer is that you have to enter VB expressions and in the rehosted designer there is no IntelliSense making this a lot harder. Well there is a workaround for that but it requires VS2010 DLL's. And the expressions can be anything you can do in .NET so that includes potential nasty things like Process.Start().
The rehosted designer is actually very to use, and since all the artifacts for constructing your workflow are provided.
We manage a multi-locale, multi-language Pivotal CRM System with developers spread across UK and India. We do not have any Source Control System to manage the development work. Is there any source control system that we can integrate with Pivotal CRM.
Note: "Please check with the providers CDC Software" is not a valid answer :-)
I worked on Pivotal CRM for 6 years, and stopped asking CDC for source control. Their last response was that source control was a highly requested feature, but that they have no intent in making Pivotal CRM development work with any source control system.
I don't want to sound too jaded, but if you treat Pivotal CRM as a vertical solution that needs only the minimum of changes you will do well. If you are treating it as a framework to house lots of customizations/programming to implement unique business requirements, you will run into nothing but roadblocks and un-necessary challenges. Use SugarCRM, Microsoft Dynamics, or Salesforce.com instead.