总体说明

  • 概述

    • 一些总体上的说明
  • 示例

    Description

    ​ 大概原理:

    在项目业务中,如提交申请、流程审批等操作,都会将当前业务的一些信息按一定格式

    发送给对应的运行着的工作流引擎程序(通过SOCKET发送)。

    引擎接收到信息命令后,通过解析,判断是否启动新流程或是审批操作,这些过程中会生成或

    修改状态信息文件,这些文件是存放在引擎所处的文件夹里,下次再接收到信息命令时,引擎

    就会先读取对应的状态信息文件,处理过程中同时就会去修改这些文件的状态内容,当然了,

    一些信息也是会同时存放到工作流的几个相关表中,以供项目业务页面使用。

    其实最终都只是操作数据库表,生成一些信息数据,然后项目业务页面根据这些信息去显示而已,

    审批过程中,也是操作数据库表,只是同时会生成一些存放在文件夹的状态信息文件。

    项目业务---(通过socket)----->引擎

    引擎----(通过数据库表)----->项目业务


    工作流引擎设置(WorkFlowEngine)

  • 概述

    • 工作流引擎的相关设置说明,工作流要正常使用,需要先启动引擎程序
  • 示例

    工作流引擎是工作流的核心处理部分,工作流的正常使用需要引擎一直启动着。

    引擎是个相对独立的应用程序,可以跑在任何一台连网的有固定IP的电脑上,不一定要在发布项目的同一台电脑上,

    同一台电脑可以运行多个引擎程序,不过引擎的端口要设置为不一样的,另外建议将各引擎的文件名改成不一样的,

    这样从任务管理器中也可以看出运行了哪些引擎,否则看到的可能都叫 WorkflowEngine.exe ,不清楚是怎么对应的。

    引擎是相对独立的,那么项目中审批时怎么去找对应的引擎程序呢?这是通过项目中的 Web.Config 文件里的设置

    去对应查找的,主要是通过引擎所在电脑IP地址和引擎所用端口号来对应的,如下图:

     <!--工作流文件夹-->
        <add key="WorkFlowRootPath" value="WorkFlow"/>
        <!--工作流引擎:所在的服务器IP-->
        <add key="EngineServer" value="172.16.4.51"/>
        <!--工作流引擎:所用的端口号-->
    <add key="EnginePort" value="2000"/>
    
    1
    2
    3
    4
    5
    6

    引擎设置:

    这是引擎的主界面,可启动、停止引擎,可查询引擎日志、流程细目等。

    点击“配置”按钮,则弹出引擎的配置界面。

    engine-1

    这是引擎配置界面,

    本机地址:引擎运行所在电脑的固定IP地址,要与项目Web.Config文件中的一致

    端口:没什么限制,一般设置类似2000,注意不要和系统端口号或其他引擎端口号重复,

    ​ 如果是运行在现场的服务器上,还要注意服务器安全是否有开通该端口,很多服务器

    ​ 是限制了非系统的端口,所以没开通的话,工作流也不能正常使用

    接收超时:一般10秒,指引擎通信处理超时时间,超过这个时间,即提示审批失败

    工作目录:选择到 具体项目文件夹\WorkFlow\WorkFlowEngine\EngineFile

    ​ 要选择正确的路径,否则工作流就不能正常使用

    数据库设置:支持SQLServer和Oracle两种数据库

    engine-2


    工作流流程图定义

概述

定义流程图(画流程图)

步骤用矩形框表示,流向用带有箭头的线表示,线上可设置条件 从“系统管理”模块下的“工作流管理”-“业务流程定义”菜单进入定义主页面: img

按钮说明:

img:新建、打开、保存 工作流

img:查看XML文件内容(工作流保存后会生成两个XML文件,这里看的是引擎用的XML文件)

img:另存功能,一般是相似流程时用到

img:流程导入导出功能,更新时用到,已包括该流程全部信息(数据库记录、对应文件),直接导入导出即可

img:设置快捷权限用户列表(会弹出设置页面,将一些常用的数据设置好保存,

     以后设置每步骤的权限用户时,可直接右键选择这个快捷权限用户)



     设置各步骤JS事件(会弹出设置页面,在里面设置各个步骤的一些JS事件等)

img:画图的基本按钮,按顺序分别是:

移动对象:选中后,点击图上某个对象,然后按住左键拖动,即可移动该对象

画步骤矩形框:选中后,在图上空白处,按住左键拖动,即可画出步骤矩形框

画条件连线:选中后,点击相应的步骤矩形框,按住左键拖动到另外一个步骤矩形框上,即可画出这两个步骤间的条件连线

改变步骤大小:选中后,点击要调整大小的步骤矩形框,按住左键拖动,即可调整该矩形框大小

img:用于对齐、横纵向调整: 按住左键拖动,将要调整的对象框住(会生成一个虚框),

  然后在虚框上右键鼠标,会弹出一个调整操作的选择菜单,可进行纵向、模向对齐,宽高度设置一致等操作。

右键菜单:

新建、打开工作流

工作流信息设置:设置工作流的一些主信息,如流程描述、对应实体、提交对象等

数据集合管理:设置用来做条件判断的表字段

工作流信息设置

  • 概述

    • 置工作流的一些主信息,如流程描述、对应实体、提交对象等
  • 示例

    工作流信息设置页面:

    img

    如上图,按上到下顺序说明:

    工作流ID:自动生成,工作流保存后的两个XML文件,都是以这个ID为文件名

    实体名称:选择业务对应的实体表

    状态字段:默认为StateCode,没有很特殊的情况下,一般都是用这个字段

    流程描述:当前流程的描述说明

    审批记录:设置流程记录是否可进行撤销操作(反提交),或批量审批操作,正常情况下这两个都不推荐勾选

    ​ 可撤销:体现在“工作内容”中的可撤销事宜”,表示自己审批过的记录,下一步未审批时可撤销

    ​ 可批量审批:体现在“工作内容”中的“待办事宜”,勾选对应的多条记录,双击弹出批量审批页面

    同实体多流程区分标识:因为工作流是以实体表名来区分的,所以当同一个实体有多种流程图时,就要在这里用标识来

    ​ 区分,这个内容可任意填写,最好是用中文名称,这样才能比较直观看出这个流程是做什么用的。

    ​ 调用通用提交事件时,就将此内容当参数传递:WFSubmit(‘区分标识内容’)

    ​ 如果一个实体就只有一个流程,那此处就不用填写,调用提交事件,也只要直接用 WFSubmit()

    提交时附带备注信息:就是在“工作内容”页面,有个“备注”字段用来显示当前流程记录的一些较具体的信息,

    ​ 这个信息就是通过这里来设置的,因为备注信息没有统一性,所以这里通过填写SQL语句来实现,你可以

    ​ 根据需要将当前实体的几个字段拼凑起来当备注信息,如名称、月份等组合,这里可用伪变量{@RecordId}

    ​ 来表示当前的表记录ID,用来过滤出当前记录,如 select cpation from table where tableId='{@RecordId}'。

    设置提交对象(用户):如果是普通的流程,在提交时不用指定或手工选择特定的审批用户,这里就不用设置

    ​ 可从下图的字面描述来理解,当“是否选择提交对象”打勾时,这里就生效,有多种组合选择,

    ​ 1.提交时弹出用户选择窗口,“打开用户选择窗口”项打勾,

    ​ 此选择窗口里可显示所有用户或只显示流程图“提交”那个步骤中所设置的用户(有

    ​ 些业务要求选择时,只能让选择其中的几个特定用户,那么就在“提交”步骤矩形图中设置),

    ​ “用户选择(单选)”:控制提交用户选择是否只能选择一个

    ​ 2.不弹出用户选择窗口,“打开用户选择窗口”项不打勾,

    ​ 表示要自动根据当前记录去指定对应的用户,比如自动指定对应的部门经理,此时就无法用选择窗口,

    ​ 就要自己写代码来处理,这里是通过 __WFGetSumbitUserList 这个JS函数来实现,该函数需返回要提交

    ​ 的用户ID字符串,多个ID则以分号隔开,如“aaaid;bbbid;cccid;dddid”,该函数是写在对应的配置XML文件对应

    ​ UniqueNo里,一般写在 ToolBar节点下的Script里,如下例子:

     <ToolBar UniqueNo="0">
          <UserButtons>
            <Button Target="Grid" Name="cmd提交" Text="提交" ToolTip="提交" Type="Normal" Image="WebToolBar/16_Import.gif" DisplayMode="TextAndImage" Script="WFSubmit()"></Button>
          </UserButtons>
          <Scripts>
            <Script>
              <![CDATA[
                 function __WFGetSumbitUserList(){ //重载,返回提交用户ID集合,系统自动会调用执行此函数
                     //代码段,如调用Webservice
                     //....
                     return "aaaid;bbbid;cccid"; //返回
                 }
               ]]>
            </Script>
          </Scripts>
        </ToolBar>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    设置流程分类:设置当前工作流的类型,需在流程分类设置业务下维护基础数据

    设置当前工作流完成后启动指定流程:设置当前工作流正常结束后启动指定记录的流程,

    ​ “是否完成后启动流程”,如果选择“是”,那么当前工作流完成后引擎将自动启动指定流程;

    ​ “指定要显示业务的UniqueNo”,此处填写在工作流审批中所要展示的业务的UniqueNo标识(必须填写);

    ​ “指定流程对应的表名”,此处选择要启动记录对应的实体;

    ​ “指定流程记录ID”,此处填写要提交记录的SQL语句,语句中获取的记录Id的名称要与“指定流程对应的表面”中的实体名称一致,

    ​ 例如:选取的实体名称是“SysUser”,那么语句中获取记录的Id就填写“SysUserId”;这里支持伪变量{@RecordId},

    ​ “{@RecordId}”获取的是当前流程的实体Id;

    ​ “指定流程提交人ID”,此处填写SQL语句用于获取流程提交人的SysUserId,如果不填写流程提交人引擎就默认管理员作为记录的

    ​ 提交人;这里支持伪变量 “{@RecordId}”},“{@RecordId}”获取的是“结束”步骤的上一步的最后操作人的SysUserId。

    一般普通的流程图,只要选择好“实体名称”,填写“流程描述”就OK了,其他项除有特殊需要才去设置,

    不然就不用设置了,直接用页面进去后的默认值。


工作流数据集合管理

  • 概述

    • 设置用来做条件判断的数据集合(表字段)
  • 示例

    数据集合管理页面,点“添加字段”来选择当前实体表用来做条件的字段,添加后相应的“数据类型”要选择对应的类型:

    datelist

    注:

    一般情况下添加做条件的所有用到的字段后,维护下“数据类型后保存,即可。

    如果条件比较复杂,比如表中有“单价”和“数量”字段,没有“金额”字段,而条件又要用金额来判断,

    这时就要用到“自定义SQL”,这里就是填写SQL语句,返回这个金额,也要用到当前ID伪变量{@RecordId},

    如 select price * count as money from table where tableid='{@RecordId}'

    如果有用到其他关联表的关联字段时,一样可以用SQL语句关联出来,要注意只能返回一条记录一个字段值


任务步骤设置

  • 概述

    • 用来设置流程图中各任务步骤的一些信息、审批权限用户及角色、后台事件等,

      可右键对应的流程图中步骤矩形框,弹出该设置页面。

  • 示例

    • 步骤设置页面:

      step-1

      step-2

    “基础”,“子流程”页签:

    任务名称:步骤名称描述,步骤矩形图上显示

    任务类型:有“正常”和“会签”两种类型,大部分都是“正常”类型

    ​ “会签”指的是这一步骤要同时几个人都同意后,才能走到下一步,

    ​ 设置成会签时,一般“通过策略”对应选择“按照比例”,“比例值”填写“100”;

    ​ “通过策略”如果选择“所有人平等”,那么会签时,就需要参与会签的所有人同意

    ​ 才能走到下一步;“通过策略”如果选择“一个人持有特权”,那么会签时持有特权的人

    ​ 同意,就能走到下一步,如果会签时持有特权的人弃权,那么需要计算会签的通过率来与“比例值”

    ​ 进行比例,判断是否能走到下一步;“通过策略”如果选择“N个人持有特权”,那么需要在权限中设置

    ​ 判定分值,根据所设置的判定分值进行计算,然后与“比例值”进行比较,大于等于比例值即通过,小于比例值

    ​ 根据设置是否回退,终止流程。

    允许回退:表示允许下一步骤是否可回退到本步骤来,回退时引擎根据此设置来自动判断该回退到

    ​ 哪个步骤。比如:A—>B—>C—>D流程,B、C设置成不允许回退,则在D回退时,

    ​ 就直接回退到A。回退指是的审批时不同意。

    回退时选择步骤:设置成“是”时,表示审批过程中,点击“不同意”按钮进行回退时,

    ​ 会弹出一个选择回退步骤的窗口,来跨步选择回退到的步骤。一般不常用。

    同意时选择下步骤:设置成“是”时,表示在审批过程中,点击“同意”按钮,会弹出

    ​ 选择下步骤的窗口,该窗口中列出的是当前步骤直接的下几个步骤(普通步骤,不是并行、子流程)。

    动态指定执行人:表示当前步骤的权限用户由上步骤审批时动态指定的,

    ​ 比如:A—>B—>C—>D流程,D设置成动态执行人,那么在C审批时,审批页面就

    ​ 会出现“下步执行人”的选择控件,以供选择D步的审批用户,如下图:

    step-3

    动态生存期:如果设置成“是”,表示在生存期(小时)内如果不操作的话,流程就会被强制结束,一般设置成“否”。

    增加权限用户(JS):即在审批过程中,通过JS动态添加此步骤的审批用户或动态权限用户,当“动态指定执行人”为“否”时

    ​ 增加审批用户;为“是”时增加动态权限用户(用户选择窗口列表多出增加的用户)

    ​ 这里是填写JS函数名,如AddNextUser(),函数返回用户ID字符串,多个ID则以分号隔开,函数需写在

    ​ JavaScript/User/User_WFlow.js用户自定义的JS文件中。比较少用到此功能。

    子流程:表示主流程执行到此步骤时,自动提交运行相应子流程,

    ​ “子流程区分标识”相当于流程信息设置中的“同实体多流程区分标识”。

    ​ “子流程展示业务的Flag”用于在工作流的审批时,用来展示指定的业务,因为子流程是由工作流引擎进行提交,需要通过

    ​ 所填写的Flag来获取对应的SysMappingId值,请务必填写上Flag否则会找不到所要展示的业务实体。

    ​ “子流程记录ID”处填写SQL语句,用来获取子流程对应表的记录ID,即此SQL

    ​ 需返回子流程的对应记录ID值,以便自动提交该子流程的某条记录,当然了,该子流程需与当前流程有一定关系,

    ​ 可以通过当前流程的记录ID去查找出来,同样需用到当前流程记录ID的伪变量 {@RecordId}。此功能也很少用到。

    ​ “子流程提交人ID”处用于填写SQL语句,用来获取指定子流程的提交人;如果此处为空,那么将默认上一步骤的操作人

    ​ 作为子流程的提交人。

    “权限用户”、“权限角色”、“自定义权限用户”页签:

    用来设置该步骤的审批用户(并集,权限用户+权限角色+自定义权限用户所包含的用户,同时包含“增加权限用户”

    处所返回的用户),即这个步骤就是这些用户来审批的。

    当“基础”页签中的任务类型选择为“会签”模式,如果通过策略选择“一人持有特权”时,

    那么在“权限用户”或“权限角色”页签中的“用户权限”编辑栏中指定一名用户拥有“否决权限”;

    如果通过策略选择“N个人持有特权”时,那么在“权限用户”或“权限角色”页签中的请填写上

    判定分值,因为此时不以用户权限作为判定,而是以判断分值的计算后是否达到所设置的“比例值”

    进行判断是否通过。

    注:当“动态指定执行人”设置成“是”时,“权限用户”、“权限角色”的页签名会变成

    “用户(动态执行人)”、 “角色(动态执行人)”、“自定义(动态执行人)”,那么在上一步审批时下步执行人选择窗口

    中就会只过滤出这里所设置的用户列表,如果要显示全部用户(不过滤),那么就应该把这里设置的

    用户删除;当“基础”页签中的任务类型选择为“会签”模式时,请勿在“权限用户”、“权限角色”、“自定义权限用户”

    页签中添加“管理员”用户,或者含有“管理员”的角色。

    所以除了设置该步骤的审批用户外,还可能充当过滤下步执行人选择窗口的用户列表的功能。

    step-4

    “事件”页签:

    这里主要是设置后台事件,即在审批过程中需要操作到数据库相关记录时,在此处设置调用。

    此处一般是设置为“存储过程”类型(反射方法类型一般不用),表示通过执行存储过程来

    操作数据库记录:

    “执行类型”选择“执行后”,表示在该步骤审批完成后触发调用

    “方法类型”选择“存储过程”,表示是通过执行存储过程来实现操作数据库记录

    “方法名称”填写存储过程名+空格+各参数,如SP_MIS_PM_ItemDeveloping_New 'KFTJ','{@RecordId}'

    其中'{@RecordId}'为伪变量,固定写法,表示当前记录ID,一般存储过程也只要传此参数就足够了。

    其它的伪变量有:

    {@SysUserId} 当前用户ID

    {@AuditType} 审批操作类型(agree 同意,disagree 不同意, termination 终止)

    step-5

    备注:

    一般普通流程,主要是设置“任务类型”、“动态执行人”、选择权限用户、权限角色即可。

    无特殊要求,其他项均为默认值,不用设置。


条件设置

  • 概述

    • 流向线条件的设置,用“数据集合管理”里所添加的表字段来做条件
  • 示例

    condition

    如上图:红色圈起来的连线,相对较粗,表示这里有设置条件,条件的意思就是满足了所设置的表达式后

    流程就会往对应的这条线走下去,如上图红色圈起来的,“开发提交”步骤的条件设置为 FlowGoOn="1",

    “缺陷评估”步骤的条件设置为FlowGoOn="0",那么当前记录的FlowGoOn如果为1时,流程就会往“开发提交”

    那步走,反之则往“缺陷评估”那步走。条件设置要包含所有情况,即每个分叉连线上的条件要包含所有的可能

    性表达式,如果条件设置有问题,那么可能导致流程审批过程中出现“条件不满足”,流程会直接终止。

    条件设置:

    右击对应的步骤之间的连接线条,打开条件设置页面,用来作条件的字段,请先在“数据集合管理”

    里面添加。“条件内容”可直接填写,也可通过上面的下拉框选择后添加,要注意格式,如果字段

    类型为字符串,则表达式要加双引号,如下图FlowGoOn="1"。

    condition-2


任务步骤按钮JS设置

  • 概述

    • 用来设置当前流程中各步骤上各个按钮的一些信息、JS事件等,

      从工具栏(带齿轮)按钮点击弹出该设置页面

  • 示例

    task-1

    如上图,一个步骤对应一行数据,这里主要是设置JS事件,应用在从“工作内容”打开的审批页面里。

    “页面加载事件”:审批页面加载时调用(页面onload),如设置每步骤审批页面显示不同的业务展现页面,

    ​ 就可以在这里设置,调用WFSetFormUniqueNo('标识UniqueNo值')

    “按钮描述”:审批页面对应的按钮上的文字描述

    “可视”:审批页面对应的按钮是否显示,如有些审批页面不要终止按钮,则设置为×

    “可用”:审批页面对应的按钮是否禁用

    “点击前事件”:审批页面对应的按钮点击前调用,如点击前判断某些字段不能为空

    “点击后事件”:审批页面对应的按钮点击后调用,如点“同意”后要去修改某个字段的值

    注:

    这些JS方法是写在用户自定义JS文件中,即JavaScript/User/User_WFlow.js里,不是写在具体的配置文件中。


    工作流接口说明

  • 概述

    • 共有短信,移动终端,邮件3种独立的接口。工作流系统存在两个线程,一个线程定时向“接口配置”表单中短信,移动终端,邮件栏填写的Web服务发送数据,此过程首先是审批完成时向WFSmsOut表插入数据,然后定时从该表取状态为未读的数据发送,并将这些数据的状态改为已读。一个线程定时接收“接口配置”表单中短信,移动终端,邮件栏填写的Web服务返回的数据,并将这些数据存入WFSmsIn表。
  • 参数

    • 接口之间传递的参数必须严格按照规定的格式来写,此规定特指承载发送数据的

      参数(给Web服务发送的数据,另一个参数的值为Send-发送或者Receive-接收)

      或者承载接收数据的参数(访问的Web服务那返回的数据)。

  • 示例

    • 工作流引擎界面

    interface-1

    • 点击“接口配置”按钮,页面呈现:

      interface-2

    • 表单说明 1. 每种接口共需填写Web服务地址和方法名两项信息,Web服务地址填写的是 当前需访问的Web服务的地址,方法名是该Web服务中的方法,该方法需有两个参数,一个用来接收工作流传递的数据,一个用来区别是“发送”还是“接收”(注意:由于接收和发送调用同一方法,也就是方法名填写的方法,对方在该方法中判断接收还是发送再调用不同的方法)。如上图“短信”栏填写的信息说明访问地址是 http://172.16.4.51/web/Service1.asmx 的Web服务中方法名称为WriteLog的方法。需注意的是如果没有填写Web服务地址或者方法名,那么就不会访问该接口,如上图的移动终端栏和邮件栏。

      2.当前系统验证,该栏填写的是当前系统(如 Mes)中设立的账户和密码(如账号admin 密码1),当工作流启动时,工作流会将填写的账号和密码进行验证,只有验证通过才会正常的访问。

      3.定时访问填写的web服务,顾名思义,该栏中填写的是每隔一段时间访问填写的Web服务,单位是秒,默认为10秒。需注意的是必须填写整形数据,如果填写空值或者其他类型的数据,确定后将不会产生改变,系统默认为最近一次的整形数据。

      4.访问系统Other文件夹下WebService的地址,填写的是在当前项目(如Mes)目录下的other文件夹中某个WebService的地址(该WebService已经存在),由于工作流系统中将该WebService里的方法固定了,所以不要需要填写方法名称。这个WebService起到中转的作用,工作流启动时将先访问这个WebService,然后通过它再去访问短信,移动终端,邮件等栏中填写的WebService,所以必须填写这一栏。 业务流程定义中的接口配置 工作流处理类型有 不处理,只发送,发送及审批3种类型,其中选择不处理类型时,将不会向工作流引擎“接口配置”表单中填写的Web服务发送数据,选择只发送类型时,只是发送数据不做审批,选择发送及审批类型时,发送数据后进行审批,返回的结果见(**:数据参数格式**),这些类型会做为数据的一部分发送,Web服务方根据其进行相应的处理,具体的设置在系统管理-工作流管理-业务流程设定中设定,如下图:

      interface-3

    发送内容SQL语句,有填写的时,系统会执行其语句,
    生成结果会作为数据的一部分发送给“接口配置”表单中填写的Web服务。
    
    数据参数格式
              接口之间传递的参数必须严格按照规定的格式来写,此规定特指承载发送数据的
              参数(给Web服务发送的数据,另一个参数的值为Send-发送或者Receive-接收)
         或者承载接收数据的参数(访问的Web服务那返回的数据)。
    1.       参数为XML格式。
    2.       规定格式如下:
           给Web服务发送的数据: 
    <Data>
             <Row>
               <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
               <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
            </Row>
            <Row>
              <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
              <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
       </Row>  
        </Data>
        Web服务那返回的数据,处理类型为“发送及审批”时:其中Row标签中的Type属性,值类型有 Y 表示审批同意,N表示审批不同意 S 表示审批中止。
     <Data>
            <Row Type="Y">
               <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
               <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
            </Row>
            <Row Type="N">
              <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
              <Column Name="字段名" DataType="类型"><![CDATA[具体值内容]]></Column>
       </Row>  
       </Data>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31

    工作流前端应用(WorkFlowApply)

  • 概述

    • 工作流在项目网页中的前端使用说明,即“工作内容”审批页面或“待办事宜导航”页面
  • 示例

    • 一:工作流的审批页面是从“我的工作台”下的“工作内容”进入的,页面如下图:

      WorkFlowApply

    • 二:也可以从“待办事宜导航”页面进入;相当于把“待办事宜”归类显示,如图:

      “待办事宜”(未审核):列出需要当前用户进行审批的所有记录,双击可进入审批页面

      “已办事宜”(已审核):列出当前用户已经审批过的所有记录,双击可进入审批情况查看页面

      “我的申请”:列出当前用户所提交的所有记录,双击可进入审批情况查看页面

      “可撤销事宜”:(反提交)列出当前用户所能撤销的所有记录,双击可进入页面进行撤销操作,

      ​ 前提:对应流程图上的“可撤销”选项要打勾(不推荐反提交操作)

      “受委托事宜”:列出当前用户被其他人进行委托的所有记录,双击可进入页面进行操作,

      ​ 前提:在“流程委托设置”页面先设置好

    • 审批页面:

      WorkFlowApply-2

    • “业务展现”:显示当前记录的信息FORM页面(是直接调用业务对应的FORM页面)

      “当前操作”:填写审批意见后,点击对应的审批按钮进行审批操作,一般是

      ​ 显示同意、不同意、终止三个按钮。

      WorkFlowApply-3

    • 流程展现”:显示当前流程图的审批情况,绿色标注的,表示已审批过的步骤

      “历史记录”:列出审批历史记录

      WorkFlowApply-4

    • “委派操作”:将当前自己要审批的流程委派给别人,让别人去代替审批(无特殊情况,一般不委派)

      ​ 选择要委派给的人后,点“委派”按钮进行委派。

  • 审批查看页面:

    WorkFlowApply-5

    和“审批页面”类似,只是这里只能查看,不能修改。

    注:

    这里的“业务展现”是当前用户对这条流程审批的最后一个步骤对应的FORM页面,因为有些业务

    的各步骤设置了不同的FORM页面,所以不同用户查看该流程的审批历史时,可能看到不同的FORM

    页面,因为他们最后审批的步骤是不一样的。当然了,如果没设置各步骤为不同的FORM页面,那

    么大家查看审批历史时,看到的FORM页面就都一样了。


流程记录管理

  • 概述

    • 用于特殊用户(如管理员)对流程记录的中止、清空操作
  • 示例

    比如该流程已在审批当中,由于某种原因需中止,可进入此业务,勾选相应记录进行中止操作。

    又如,开发时测试工作流,可只建一条记录来进行流程测试,测试完后,清空流程审批记录后再次测试,

    这样就无需新建多条测试记录,提高开发测试效率。

    recording