前言

我在 实施 MS Dynamics CRM 项目过程中,可以说是经常和 Action 打交道,但好像从未好好研究过,趁最近工作安排不多,着手搞搞它,顺便记录下来。

什么是 Action

Action 是 Dynamics CRM 中的一种扩展功能,允许我们定义自己的业务逻辑并将其与现有实体和流程关联。

通过自定义 Action,可以实现复杂的操作,如数据处理、计算、集成外部服务等。

为什么用 Action

Action 是 MS Dynamics CRM 2013 中的一项新功能。Action 为开发人员和构建业务逻辑的人提供了广泛的可能性。

因为在引入 Action 之前,开发人员实现业务流程的主要方式仅限于插件自定义工作流活动(CodeActivity)

Action 的调用方法

No.调用方法
1插件或工作流 调用
2JavaScript 调用
3From an integration with another system that uses the Microsoft Dynamics 365 web services
4From a custom client application that uses the Microsoft Dynamics 365 web services

Action 和 Plugin

不知道你是否和我一样,对该什么业务场景下使用 Action 或 Plugin 纠结,因为使用 Csharp 写自定义 Action 时,和 Plugin 一样,继承的也是 Microsoft.Xrm.Sdk 中的 IPlugin 接口,下面是我对这个问题的总结:

在 Dynamics CRM 中,Action 和 Plugin 都是扩展系统功能的重要工具,都有不同的用途和使用场景。

Action

  • 定义: Action 是一种自定义的业务逻辑,可以通过调用来执行。它通常与用户界面交互,允许用户在工作流或通过代码直接调用。
  • 用途:
    • 允许传递参数和返回结果
    • 适用于需要在用户界面或工作流中可调用的自定义功能
    • 可以被工作流、JavaScript、其他 Action 或插件调用
  • 场景:
    • 需要让用户通过按钮直接调用的功能
    • 当需要在工作流中使用自定义逻辑时
  • 特点:
    • 与工作流程或插件不同,Action 不必与特定实体相关联。可以定义可以自行调用的 “全局” 操作

Plugin

  • 定义: Plugin 是一种在特定事件发生时自动执行的代码(如创建、更新、删除记录等)。它们可以在数据操作的前后触发。
  • 用途:
    • 适用于需要在特定事件发生时自动处理的逻辑。
    • 可以用于数据验证、修改、日志记录等操作。
  • 场景:
    • 当需要在数据库操作之前或之后执行逻辑时。
    • 不需要用户交互,且希望在后台自动处理的场景。

总结

  • 使用 Action 当需要用户可直接调用的自定义功能,尤其是在工作流或界面交互时。
  • 使用 Plugin 当要在特定事件(如记录创建或更新)发生时自动执行逻辑,尤其是在不需要用户干预的情况下。