Dynamics CRM 审批流引擎

  • 前言
  • 解决方案导入
  • 如何使用及配置
    • 配置界面
    • 节点
      • 1、开始、结束节点:
      • 2、审批人员配置节点:
      • 3、实体属性修改配置节点:
      • 4、联合节点(不太常用):
      • 5、条件配置节点:
      • 6、邮件配置节点:
    • 连接线
    • 组织划分框
    • 版本控制
    • 流程的流转
    • 按钮添加
    • 流程发起
  • 解决方案下载

前言

在以往项目中,或多或少的会做一些类似OA审批的模块,然而每次都会重复写一些类似审批流程的东西,但由于具体业务场景或需求的不同,所以可重复利用的东西也不多。

后来考虑一下,打算着手做一个比较轻量级,通用性相对较高,且支持稍复杂流程流转的一个东西。在网上找了找资源,发现一个相对不错的开源流程设计器GooFlow(注:jQuery版本是开源的,在github中可下载到,协议是MIT协议。但最新的应该是vue版本的,这个是收费版),后端的引擎用的是CRM的异步引擎,实现是通过插件来实现的。

最初的版本大概是在2013年年底完成的,后来通过一些项目上的场景又进一步完善和改进了一下。目前支持的版本从CRM2011到现在的Dynamics365,On-Premise或Online都可以,而且浏览器市面上大部分浏览器基本都兼容,使用只需导入解决方案即可。

当前配置页面可能有点丑,毕竟是几年前的技术了,最近也看了一些开源的基于H5的流程设计引擎,非常漂亮,但由于最近工作比较忙,没有足够的时间去具体深入的研究,有时间的朋友可以去了解一下。

我认为这个解决方案中应该还是有一点点值得推敲的东西,可供大家参考或学习,因为某些项目也确实已经到过了这个审批流解决方案,而且效果也还可以,所以在这里做一下分享。

下图为某个相对复杂真实场景的审批

解决方案导入


注:解决方案导入完成后,请检查解决方案内所包含的相关流程(操作或工作流)是否是启用的,如果是"草稿"状态,需手动激活。

如何使用及配置

其实配置流程的入口叫“配置-工作流配置表”这个表。定位到该表,创建一条记录即可开始配置流程。
为了方便配置,我放在了系统的设置里面。

配置界面

填写好该流程的名称,以及此流程对应的实体逻辑名称点击保存,然后点击进入如下图所示的‘流程配置’。

保存完成后,通过到导航进入流程的自定义配置界面,如图
配置页面如下图

在配置界面中,最左侧的功能区域可以选择相应的节点、连接线、以及区域划分等功能。

节点

先介绍一下几种节点的功能以及应用。

目前该配置界面包括7种类型的节点。
即:开始、结束、审批人员配置、实体属性修改配置、条件配置、邮件配置以及联合节点。

1、开始、结束节点:

每个流程都需要有且只有一个开始节点和一个结束节点。
开始节点标志着流程的开始、同样结束节点标志着整个流程的终止。

另外,每种类型的节点,都可以为它编辑名称,鼠标左键双击节点名称进行编辑。

2、审批人员配置节点:

可以进行配置相应的审批人员,当流程流转到当前节点,会给配置好的人员创建“流程任务”,配置该节点请鼠标右键单击节点左侧的图标。

1) 根据业务部门及用户选择
当流程流转到该节点时,会给选定的系统用户创建流程任务。

2) 根据业务部门及团队选择
当流程流转到该节点时,会给选定团队下所有系统用户创建流程任务。

3) 根据业务部门及角色选择
当流程流转到该节点时,会给选定拥有该角色的系统用户创建流程任务。
当业务部门选择所有部门,则角色不区分部门,只要有该角色任何部门人员都会收到流程任务。
当业务部门选择父节点上级部门,如果上一节点为审批节点,则按照上一节点上级部门的角色进行创建流程任务。
当务部门选择提交者上级部门则按照流程提交人上级部门的角色进行创建流程任务。
最后的WorkFlowCRM(该名称是根业务部门)则按照正常业务部门层级根据角色去给系统用户创建流程任务。

4)根据子表及子表上用户类型的字段选择
该选项可以配置流程所关联的实体记录中,所有子表(1:N)的“系统用户”查找字段。
根据配置,流程流转时,可以动态取当前记录所有已启用的子表记录中,已配置好的用户字段,给这些所配置用户创建流程任务。

5)根据实体上的用户类型的字段选择
该选项可以配置流程所关联的实体记录中所有“系统用户”查找字段。根据配置,可以动态取当前记录的用户,给这些所配置用户创建流程任务。

6)是否包含提交者经理以及父级节点人员经理
当勾选是否包含提交者经理时,当流程流转到该审批节点,则给提交者系统用户的经理创建流程任务。
当勾选是否包含父级节点人员经理时,当流程流转到该审批节点,如果上一节点为审批节点,则给上一节点所有用户的经理创建流程任务。

7)审批意见回写配置
当该节点的每一个审批人进行通过或驳回的操作,那么将会把该人员的审批意见、审批时间、审批人员名称回写到已设置好的当前实体记录的字段中,该设置只支持单行文本和多行文本类型。

8)共享记录配置
当勾选‘是否共享记录给审批人’复选框时,会再次出现7个复选框,其中6个复选框是用来给该节点的审批人授予所配置记录共享的操作权限。而当勾选‘流程结束时是否取消共享’复选框时,待整个流程流转完成后,会取消该节点下所有审批人共享的操作权限。

9)审批任务标题设置
可以选择流程所关联的实体记录中的属性,动态为该节点审批任务配置标题。

生成任务标题如图

3、实体属性修改配置节点:

当流程流转到该节点,可以修改该节点预设好的实体记录上的属性,例如,当上一节点审批完成,则修改表单上的审批状态。

同审批人员配置节点一样,配置该节点鼠标右键单击节点左侧的图标。弹出配置页面如下图。如需将字段值设置为空,把值的配置列设置为空白即可。

4、联合节点(不太常用):

当需要多个节点并行流转到同一个节点,并且需要每个节点都运行完成后才继续往下流转,这里就需要用到联合节点了。

右键联合节点,可以设置条件,需要多少条线流转到当前联合节点,才继续往下运行。

如下图,经理、主管、总监同时进行审批,但是必须满足当三个审批节点全部审批通过,才能流转到结束节点。

5、条件配置节点:


右键单击进入配置页面。该页面分为上下两部分,上面部分进行配置“且”条件集合,下面部分为“或”条件集合。例如:(行业等于:电力、燃气的生产和供应业。并且年收入大于 等于:500000)或(行业等于:金融业。并且年收入大于等于:800000)
如需配置条件为不等于null,可选择条件符号为‘!=’并把值设置为空白即可。

6、邮件配置节点:

此邮件用来配置发送邮件。

右键进入配置页面,如下图。

该页面分有3个tab页,分别为收件人、抄送人、邮件内容。

其中收件人和抄送人两个tab与审批节点的选择人员类似,而邮件内容的配置如下图。

可以根据需要设置自己所需的邮件模板,模板上方有四个按钮,可以在邮件内的主题和内容中配置发件人、收件人、当前日期和增加记录字段的值。在内容的下方,复选框‘是否单独发送’,如勾选此复选框,则该邮件配置节点中所配置的所有收件人都会单独收 到邮件,如不勾选,则只发送一封邮件。

连接线

节点与节点间连接的桥梁,从起始节点到目标节点的连接线。
有一点需要注意的是,当起始节点的节点类型为“审批人员配置节点”时,在连接线上右键鼠标是可以进行配置的。如果不进行配置,那么就默认为该节点需要所有人同意才能流转到下一个节点。可以配置多少人,同意、拒绝或操作完成后,流转到指定的节点。(如选择操作,则在流程任务中审批,不管是同意还是拒绝,都算做操作)

组织划分框

用于划分区域,使流程变的更加清晰。

版本控制

流程配置完成后,点击配置页面上方的保存按钮进行保存。

每保存一次,就会在“配置-工作流配置版本表”中生成一条记录,记录当前保存版本的信息,并且把最新版本的流程做为默认流程。生成新版本流程不会影响到正在运行中旧版本的流程,但是配置完成后再发起的流程就会按照最新版本进行运行。如果想使用历史版本中某一个版本,那么找到那个版本,把“是否默认版本”勾选为是即可。

请把需要关联流程的实体勾选‘活动’复选框,如果流程中涉及到发送电子邮件,则勾选上‘发送电子邮’件复选框。

流程的流转

流程的流转是根据上述所配置好的节点与连接线,在流程发起后,通过异步引擎自动流转的。

当一个节点完成后,通过连接线,进入到下一个节点,直到找到“结束节点”标志着整个流程流转的结束。

其中流转到类型为条件节点(符合配置条件的条件节点)、修改属性节点、邮件配置节点时,流程会根据所配置的连接线,自动流转到下一个或多个节点。

审批节点,需要达到连接线所设置的条件才会流转到下一节点。如:连接线上设置为所有人同意时,流转到下一节点。

可通过代码修改所生成的“流程任务”达到流转的目的。

修改审批状态字段(该字段类型为选项集)
同意:122,300,000
驳回:122,300,001

按钮添加

在工作流配置表里,也可以为该审批实体配置审批按钮。

在创建“配置-工作流配置表”记录时,如图,勾选为是,则在记录上可自动显示按钮。



如需加签或转签功能,还需要注意一点,要在用户实体记录上勾选如下图属性为,勾选后才可在加签或转签的人员选择列表中出现该用户。

为满足或补充额外的需求,在上述几种自动生成按钮中,也提供了一些回调方法,如下

回调方法的使用方法很简单,只需在所需的实体窗体上,添加自己的js类库,重写方法即可,如下。


如需自行定制审批按钮(如:同意、驳回、加签、转签),可将工作流配置表中,所有创建按钮字段设置为否,然后再通过ribbon工具自行添加即可。

流程发起

配置好流程后,发起流程,只需创建一条“工作流运行记录”即可。创建成功后,引擎会根据流程所配置的节点及连接线开始自动流转。

如用解决方案自带发起流程功能,可参考上文“按钮添加”操作即可,无需任何开发。

当然有特殊需求,也可以通过js、插件、action或自己封装api等途径进行创建调用。

具体创建记录需要的参数如下图。

字段类型都为文本类型,是否结束默认为否。
流程ID:即所需要发起流程的ID(配置-工作流配置表)
流程版本ID:流程关联的子表(配置-工作流配置版本表),查找是否默认版本为是的记录即可。
实体名称:即所需要发起流程关联实体的逻辑名称。
记录ID:即所需要发起流程关联记录的主键。
提交者ID:流程提交者系统用户的主键。

解决方案下载

导入即用,如无需特殊定制,不用写一行代码便可使用。

TCFlow_1_0_managed.zip

联系方式:tantu666@163.com
欢迎大家一起学习交流。

Dynamics CRM 审批流引擎相关推荐

  1. c# 审批流引擎_小熊OA:流程引擎才能真正起到管理价值!

    首先说说什么是流程管理.流程作为企业运作的基础,不同部门.不同客户和供应商都需要流程来进行协同运作,以流程带动信息.物资和资金在企业内部无障碍地流转.流程管理是一种以业务流程为中心,以提高组织业务绩效 ...

  2. c# 审批流引擎_C#教程之Slickflow.NET 开源工作流引擎高级开发(二|C#教程

    本站最新发布   C#从入门到精通 试听地址https://www.xin3721.com/eschool/CSharpxin3721/ 前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到 ...

  3. Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理...

    上次介绍过节点的基本配置<Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置>,这次介绍下规则节点,因为有时流程里会有一些分支.合并,这时就要用到规则节点 ...

  4. 状态机/流程引擎/审批流的流程引擎/结合低代码开发的流程引擎 区别 业务系统中使用流程引擎

    理念 - 反对用模板,用流程引擎实现业务 先强调一点. 业务系统, 要学习 ,反对用模板,用流程引擎实现业务. 除非有人参与,必须用流程引擎,不然不要用状态机or流程引擎, 不要用. 但是要学习流程引 ...

  5. java 审批流_一文读懂工作流

    网上关于工作流引擎有比较多的简介,也有很多工作流的实际应用场景.本文结合笔者多年对工作流的经验来阐述一下对工作流的理解. 一.什么是工作流? 先贴上wiki百科对于工作流的定义 工作流(Workflo ...

  6. Microsoft Dynamics CRM 2013升级2015(二)正式安装升级 2015及 Reporting Extensions安装

    Microsoft Dynamics CRM 2015 系统要求和所需技术 Microsoft Dynamics CRM(本地) 版本需要以下软件: ·Microsoft Windows Server ...

  7. activiti 工作流设置并行审批_activity、jbpm5、snakerflow常用工作流审批流对比

    # 审批流调研 背景 由于目前产品研发组支持的产品项目越来越多, 同时几乎每个项目都会有导出审批,流程流转等需求,本着提高开发效率和组件化的目的,调研和开发通用的工作流组件,为后面的项目和新的需求提供 ...

  8. 只能是做的HTML5审批流项目

    这其实不叫工作流系统,更不能算是工作流产品了,只能是做的HTML5审批流项目.一个工作流软件产品,是能适用到各个行业,并且流程引擎的模型设计很健壮,利用流程引擎的模型能设计出各式各样的业务流程.飞鸽传 ...

  9. python 审批流_Odoo 基于企业微信实现的通用审批流功能的自助配置及使用说明 - Oejia 技术栈,企业方案分享、Odoo顾问...

    ### 概述 以下为基于企业微信自建应用审批流程引擎实现的Odoo通用审批功能,基于企业微信官方审批应用实现的Odoo通用审批功能请移步到 http://oejia.net/blog/2020/05/ ...

  10. Microsoft Dynamics CRM 常用JS语法(已转成vs2017语法提示)

    背景 最近接触到Microsoft Dynamics CRM的开发.前端js是必不可少的部分,奈何没有一个语法提示,点不出来后续的语句. 在vscode上面搜索插件的时候发现,有一个大神写的插件htt ...

最新文章

  1. 计算机雕刻教学设计,教学设计季花的雕刻方法.doc
  2. 熬夜都要看完的 Spring 干货!
  3. lru算法c语言实现单链表,基于单链表实现LRU算法
  4. 6、Cocos2dx 3.0游戏开发找小三之游戏的基本概念
  5. php 网页解析错误,php-解析错误:语法错误,文件意外结束
  6. 麦迪逊大学计算机科学咋样,威斯康星大学麦迪逊分校计算机专业排名
  7. 室内声场计算机模拟的声线跟踪法和虚声源法,计算机声场模拟软件ODEON及其应用lowbar;彭庆 - 范文中心...
  8. java中抽象工厂模式_抽象工厂模式(详解版)
  9. ifconfig命令和ip命令配置网络
  10. XGBoost 与 信用卡诈骗数据集 三
  11. Java知识结构图谱
  12. Reliability, Availability, Serviceability (RAS) 介绍
  13. 纯苹果汁的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. java erc 2.0_如何使用Web3j库管理Java中的ERC20令牌
  15. 2019-07-09 函数的基本使用和参数
  16. 中职学校计算机应用基础学什么,浅谈中职学校《计算机应用基础》课程改革的一点建议...
  17. php获取手机号码归属地
  18. 正则表达式验证正整数
  19. 4.4 CSS层叠样式表介绍
  20. Html5 JS 拨打电话功能

热门文章

  1. (由Active Desktop保存在桌面引起)桌面图标蓝底
  2. Java学习路线-20:正则表达式
  3. 深信服ACssh登录
  4. DIV网页排版入门指南
  5. Word在试图打开文件时错误,如何解决
  6. android 闪屏页 动画,Android实现闪屏页效果
  7. 事件的三个阶段:捕获阶段 目标阶段 冒泡阶段
  8. 【Linux】计算机组成与进程
  9. mac 苹果电脑恢复 Recovery HD;进不去恢复模式;
  10. Windows Server 2008 R2 WSUS服务器的详细配置和部署