【问题标题】:Custom WorkFlows vs Plug-ins in MS CRMMS CRM 中的自定义工作流与插件
【发布时间】:2016-06-23 06:21:56
【问题描述】:

我使用大量插件代码在 CRM 中实现业务逻辑,但现在我想出了这个称为自定义工作流活动的功能。 现在我想知道何时通过插件使用这些自定义工作流程?

【问题讨论】:

    标签: plugins workflow dynamics-crm


    【解决方案1】:

    代码活动是可以插入到一个或多个不同工作流中的自定义步骤。一种“插件”,但曾经插入到工作流程中。

    工作流程可以为您提供更多反馈,因为它们在 CRM 中以可视方式表示,因此非技术人员可以查看工作流程的状态以及从一开始就执行的步骤。工作流也在异步服务中执行,因此它们在应用程序池中异步运行,插件同步运行。

    因此,工作流程也更适合长时间运行的流程。

    话虽如此,插件在以下情况下仍然有用:

    • 您需要立即做出响应,因为它们是在 CRM 的应用程序池中触发和执行的,并且,
    • 您需要在事务中运行任何东西,以便他们可以通过引发异常来中止它。

    示例:您与第 3 方服务集成,除非在另一方验证某些内容,否则无法在 CRM 中创建记录。另一个例子是并发:自动编号插件是一个插件,因为它需要在事务中锁定数据库,否则多个并发线程可能会创建重复 ID。

    所以,答案一如既往:视情况而定。 :)

    【讨论】:

    • 自 CRM 2013 以来,可以选择工作流是同步运行还是异步运行。同样,插件也可以配置为同步或异步运行。
    • 确实,...我只是在同步工作流方面遇到了很多性能问题。而且,就个人而言,如果我需要异步运行某些东西,我更喜欢代码活动,因为它更“可视化”。但是,是的,这些仍然是可能的选择,取决于您的喜好。
    • 所以@Jordi 如您所见,它们都可以异步或同步运行,因此并发不是区分它们的好方法。您提到的唯一好处是非技术用户可以更好地查看代码活动。
    • 是的,它们是一种更加用户友好的表示形式。
    【解决方案2】:

    我自己深入研究了这个主题,发现了我想分享的有趣的东西, 所以这里是比较的完整列表:

    • 插件只会触发数据更改,例如更新或创建记录,但自定义工作流程会参与流程(工作流程、对话框......)

      因此,工作流不仅可以在数据更改时触发,还可以在其流程中的任何时间点随时按需触发。您可能已经了解,这是实现复杂业务逻辑所需的真正灵活性。

    • 插件不接受参数或传递的数据, 但是自定义工作流程可以通过使用如下 InArgument 属性来实现:

      [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
      
    • 业务用户可以简单地使用和操作工作流。

    • 自定义工作流绝对是可重用的。使用一个寄存器,您就有了一个可以在多种情况下使用的业务逻辑。 在某些情况下,您甚至可能碰巧编写了可用于许多不同实体的代码。

    • 到目前为止,您知道自定义工作流程比插件更可靠,但插件接管自定义工作流程的关键在于您验证数据更改并最终需要恢复这些更改。当然这在自定义工作流中是可能的,但添加插件比工作流容易得多。

    • 请记住,插件运行得更快! (我自己测试过)

    • 但是 CRM 中的分析工作流仍然存在问题!

    【讨论】:

      【解决方案3】:

      许多开发人员或 MS CRM 初学者在某些情况下会混淆是使用工作流还是使用插件,因为两者都可以使用并且能够在服务器端执行特定任务。

      插件和工作流有一些显着差异,例如事件消息的限制、触发点。

      您可以参考以下链接以完整了解差异-

      https://mscrm16tech.com/.../workflows-vs-plugins-in-ms-crm/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        • 2013-02-04
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 2023-03-28
        相关资源
        最近更新 更多