1 项目设计阶段
1.1 自定义和扩展Dynamics CRM规范
1.1.1 自定义实体的使用
1. 优先考虑使用系统现有实体,为其添加自定义属性;
2. 重新命名现有实体以使实体更具有意义;
3. 在上述两种情况不能满足业务需求时,再考虑创建自定义实体
1.1.2 插件与工作流的使用
综合考虑插件或工作流解决方案的部署、性能和维护等方面,然后选择一种最符合业务目标的技术。
下表列出了插件和工作流的特性。
条件 |
插件 |
工作流 |
在核心平台操作(创建、更新、删除等)之前或之后执行 |
在核心操作之前或之后立即执行(同步)。可以排入队列以在核心操作之后执行(异步)。 |
排入队列以在核心操作之后执行(异步/同步)。 |
对服务器性能的影响 |
同步插件可能会增加平台响应时间,因为它们是主要平台处理过程的一部分。 异步插件对服务器响应时间的影响较小,因为代码在不同的进程中运行。 |
对服务器响应时间的影响较小,因为代码在不同的进程中运行。 |
安全限制 |
向平台注册插件需要系统管理员或系统定制员安全角色以及“部署管理员”组的成员资格。 |
用户可以在Web应用程序中以交互方式创建工作流。 但是,要注册自定义工作流活动,进行部署的用户必须具有与注册插件所需的相同安全角色。 |
CRM版本(SKU)支持 |
在沙盒中注册后则在CRM Online中受支持。可以在合作伙伴托管的安装中受支持,这由合作伙伴自行决定。 |
不含自定义工作流活动的工作流在所有产品版本中均支持。自定义的工作流活动在CRM Online上不受支持。 |
处理时间的长短 |
针对同步或非同步执行注册的插件要求在 2 分钟的时间限制内完成其执行。 |
既适用于短期进程也适用于长期进程。 |
在CRM for Outlook客户端脱机的情况下也工作 |
联机和脱机均支持。 |
脱机时工作流不执行。 |
进程和数据持久性 |
插件执行直至完成。必须将插件编写成无状态的情况,即不保留任何内存中数据。 |
可以通过SDK调用或由用户通过Web应用程序暂停、推迟、取消和恢复工作流。在暂停或推迟工作流之前,系统会自动保存工作流的状态。 |
模拟 |
插件可以代表其他系统用户执行数据操作。 |
工作流无法使用模拟。 |