Workflow:

Use this process to model and automate real world business processes. These processes can be configured to run in the background or in real time and can optionally require user input. Workflow processes can start automatically based on specified conditions or can be started manually by a user.

简单一句话总结, workflow可以实现自动化.

Action:

Use this process to create a new operation that is not available in a standard Microsoft Dynamics CRM installation or to combine multiple disparate operations into a single operation.

Action是workflow中的动作

什么时候使用Workflow来代替plugin

大部分时候使用workflow的骚操作也是可以用plugin来实现. 但是一下两个情况你可以用workflow来实现

- 在business logic当中的改变做更改的人是普通用户而不是开发者,或者换一句话来说是这些改动不应该是依赖开发者去做.

- 需要让用户去手动触发这些workflow 逻辑. 用户可以在form中或者grid中手动自己触发而不是设置好的触发程序.

Workflow的 life cycle

1. 当workflow创建的时候, workflow是在draft状态. 如果需要使用workflow,必须activate workflow才可以运行. 当workflow被activate之后, 这个workflow会被subscribe到一个特定的CRM events. 当这些events在CRM中被trigger之后, workflow的snapshot快照dependencies(附属)和input parameters 会被创建, 并且新的async operation 操作被添加到async service queue Manager当中. async operation 代表 workflow 执行的工作 并且在queue中等待执行, 一直保持ready 状态.

2. 当async operation 开始执行, windows workflow foundation run-time engine 会创建一个workflow instance, 并且关联到这个operation中, 并且state会从ready改变成locked.

3. async operation 和 workflow instance 在每一个transition一起update 当async operation blocked的时候, windows workflow foundation run-time engine 把workflow instance 放到 suspended 状态, 并且从memory移除. 当suspended 状态 satisfied, workflow instance 重新加载到memory中.

4. 当workflow instance 的状态改为 ready 的时候,  workflow 执行状态会改为locked. 在一般的案例中, workflow instance 移到 completed 状态 当所有的workflow activities completed.

Workflow 小tips

Dynamics CRM中有basic workflow logic 可以实现简单的功能

如果想要实现更高级的功能, 需要用代码来extend basic workflow.

Custom workflow Activities default设定是async. 手动可以调节为sync模式

custom workflow activities是在system main event 执行之后才开始执行

数据交互会稍微比较慢

最新文章

  1. 从零开始编写属于我的CMS:(一)前言
  2. jQuery点击图片弹出放大特效下载
  3. usb端口号绑定
  4. POJ2318TOYS(叉积判断点与直线位置)
  5. css新增选择器
  6. loadrunner个版本历程
  7. java学习系列(一)Java中的IO操作
  8. 安装Logstash
  9. linux脚本:ftp自动传输文件
  10. Eequal sum sets
  11. j2ee中的2是什么意思
  12. Vue源码后记-更多options参数(1)
  13. Eclipse的几个常用快捷键
  14. [最短路]P1828 香甜的黄油 Sweet Butter
  15. [C#]_[使用微软OpenXmlSDK (OpenXmlReader)读取xlsx表格] 读取大数据量100万条数据Excel文件解决方案
  16. PHP提交失败保留填写后的信息
  17. zookeeper安装使用及工作原理分析
  18. Python实战之logging模块使用详解
  19. CF444(Div. 1简单题解)
  20. Oracle使用Sql把XML解析成表(Table)的方法

热门文章

  1. 洛谷P1057 传球游戏【递归+搜索】
  2. [jzoj 5778]【NOIP提高A组模拟2018.8.8】没有硝烟的战争 (博弈论+dp)
  3. 使用tomcat搭建Jenkins环境(centos7.3)
  4. sublime text3环境与工具搭建
  5. AIX下sort命令简介及使用
  6. Online Object Tracking: A Benchmark 论文笔记
  7. 【C语言】编写函数,将一个数的指定位置置0或置1
  8. xcode Could not launch "" ; has denied the launch request
  9. bzoj2958: 序列染色(DP)
  10. 【POJ 3700】 Missile Defence System