Dynamics 365-为什么CRM环境Workflow执行了多次?

Workflow执行了多次,这个现象如果排除业务逻辑冲突,人为失误等原因,可能有的人遇到的并不多,但是笔者时不时还能遇到这种情况,所以在这里做个记录,也给遇到相同问题的人一个解决的方法。

当一个Workflow被Activate的时候,正常情况下,会在SQL中查到两条关于这个Workflow的记录,比如:

Type=1的Workflow是你创建的Workflow,而ActiveWorkflowId指明了这个Workflow对应的执行记录是Type=2的那条。

但是在正常的开发阶段,这个Workflow可能被频繁的Deactivate,然后Activate,这个时候再去查看记录,得到的结果可能就是这样的:

Dynamics 365-为什么CRM环境Workflow执行了多次?

多条Type=2的记录,除了ActiveWorkflowId对应那条是你需要的,剩下的都被认为是Shadow Workflows。这些记录的存在,可能就会导致你的Workflow执行多次。

所以一个非合法操作的解决方案(毕竟直接操作了数据库表)就是,把Shadow Workflows删除掉。

这里需要提醒的是:首先,确保Workflows执行多次不是受你业务逻辑设计冲突导致;其次,仔细检查是否有duplicate Workflow导致执行多次的情况,毕竟这种现象并不一定是因为Shadow Workflows导致。如果确定要删除Shadow Workflows,一定要写好过滤条件,确保过滤出来的都是要删除的,时刻提醒自己,你正在操作数据库表!!!

相关推荐