页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

参考Wiki相关文档。

3.2       流程定义

流程定义的入口有两个,一个是在定制管理的面板菜单中,另外一个是在电子表格的右键菜单中。

 

流程定义界面包括流程基本信息定义和流程节点定义两个步骤。

...

3.2.1    流程定义的入口一是在定制管理的面板菜单中,入口二是在电子表格的右键菜单中。

Image Added

Image Added

3.2.2      流程定义界面包括流程基本信息定义和流程节点定义两个步骤:

Image Added

说明如下:

  • 电子表格id:
    选择用来展示审核数据、回写数据的电子表格。
    电子表格可以多选,意思是这些电子表格使用相同的审核流程定义。

一个电子表格只能绑定一个流程,新的绑定设置会覆盖旧的绑定设置。   一个电子表格只能绑定一个流程,新的绑定设置会覆盖旧的绑定设置。

  • 汇总相关的机构参数:
    如果数据审核中需要从下而上汇总数据,则需要选择一个和机构参数,而且此参数的结构需要和用户管理中的用户组结构相同,否则无法正确汇总。一般情况下,机构参数的参数类型为下拉树,而且真实值为用户组的组编号,显示值为用户组的name。通常情况下,机构参数还需要与当前用户关联,只显示当前用户所属机构及下级机构。配置如下图:

...

Image Added

机构参数的可选范围,是已选电子表格中含有的参数。如果电子表格是多选,则是这些电子表格中的公有参数
机构相关参数和流程相关参数不能同时为空。

  • 流程的相关参数:
    用于唯一标识每一份审核的数据。常见的数据审核相关参数是时间,例如年份参数、年月参数、季度参数等。而对于报销单、请假单等OA应用,则需要选择单号参数。

  流程相关参数的可选范围,是已选电子表格中含有的参数。如果电子表格是多选,则是这些电子表格中的公有参数。

  流程相关参数和机构相关参数不能同时为空。

  • 校验规则所在的Sheet:
    输入校验规则所在的Sheet页名称。如果不填则校验功能无法生效。
  • 自启动配置

类似计划任务,用于自动启动流程。配置后,自动生成对应任务和计划。当计划任务运行时,对于机构参数,按第一个节点的用户迭代;对于其它参数,取默认值。   类似计划任务,用于自动启动流程。配置后,自动生成对应任务和计划。当计划任务运行时,对于机构参数,按第一个节点的用户迭代;对于其它参数,取默认值。

  • 每个sheet页一个流程

  通常情况下,每个电子表格的多个sheet页数据,在相同参数下视为同一份审核数据,在整个审核过程中只有一个审核状态。

  而勾选了“每个sheet页一个流程”选项后,每个sheet页的数据被视为一份独立的审核数据,有单独的审核状态和流转过程。

...

Image Added

  • 流程节点名称:用于标识每一步流程的节点名称
  • 操作者:当前流程允许的操作人。可以选择具体用户、用户组或者角色
  • 报表操作:当报表流转到这个节点的时候,报表上允许的操作,与电子表格展示界面上的功能按钮对应。
  • 流程操作:在每一个流程步骤中,【上报】、【审核】、【发布】这三个用于控制流程向下流转的功能按钮,必须选择一个,而且只能选择一个
  • 可见人设置(仅第一个填报节点有此设置):可见人设置,主要是针对操作者选择“用户组”和“角色”的情况下,其他人是否可以修改保存数据,比如我选择了“所有人可见”,操作者那里选择的是角色/用户组A,那角色/用户组A下面的一个用户a,可以填写报表保存,在没有上报的情况下,角色/用户组A下面的另外一个用户b仍然可以修改数据进行保存。若选择了“发起人可见”,那么用户a保存的数据,其他的用户不可以进行修改,只能a用户可以修改。“同机构可见”是针对我们操作者选择的是用户组 ,和上面说的逻辑一样

3.2.3     电子表格的右键菜单上,除了【新建流程】,还有【绑定流程】和【取消绑定】功能。

  • 绑定流程:为当前电子表格选择一个已有的流程定义。如果流程定义中已经选择参数,而且当前电子表格也有相同的参数,则绑定成功;如果流程定中的参数在当前电子表格中不存在,则提示用户参数不同,绑定失败。
  • 取消绑定:取消当前电子表格的绑定流程

3.3       流程启动

流程定义好以后,要启动流程开始流转,有三种操作方式。

  • 方式1:在主界面右上角,点击【待办】菜单,在显示的界面中,点击【待办流程】选项卡,双击要启动的流程,跳转打开流程对应的电子表格,选择相应参数后,点击工具栏上的【保存】按钮,保存回写内容的同时启动流程。
  • 方式2:和方式1类似,直接打开已经绑定流程的电子表格,选择相应参数后,点击工具栏上的【保存】按钮,保存回写内容的同时启动流程
  • 方式3:在流程定义中配置了自启动相关信息,则由定时任务触发启动。

对于同一个报表,在相同的参数情况下,只能有一份正在流转的审核流程。因此,当上面三种方式之一启动之后,其它方式无法启动相同参数对应的流程。

...

启动了流程之后,流程开始流转。在主界面右上角,点击【待办】菜单,在显示的界面中,点击【待办】选项卡,可以看到当前用户的待办任务。双击待办任务,打开对应的电子表格,并传递待办任务对应的参数到电子表格中。

...

Image Added

Image Added

 

切换到【已办任务】选项卡,可以查看当前用户已经处理过的流程。

...

流程的流转是通过电子表格展示时工具栏上的按钮来控制的。

...

Image Added

 

1)      导入Excel

要使用【导入Excel】功能,需要先制作一份Excel导入模版,并在Excel中将该模版与电子表格关联。

...

Image Added

绑定了导入模版之后,打开电子表格,界面上才有相应的按钮。点击按钮后,跳转到Excel模版的执行界面,同时传递当前所有参数的值,赋给Excel模版上的绑定参数。

...

要使用【校验】按钮对数据进行校验,需要在制作电子表格的时候,用单独一个Sheet页的A列编写校验规则,并在流程定义的时候指定这个sheet页的名称。校验规则使用Excel的布尔表达式,例如“Sheet1!A2=Sheet1!B2+Sheet1!C2”,支持跨Sheet页取数,但不支持跨电子表格取数。

...

Image Added

使用【校验】按钮后,会将当前Sheet页相关的校验不通过的单元格,在界面上用红色标识,并弹出提示。

...

Image Added

4)      汇总

如果流程中含有【汇总】节点,且流转到该节点后,【汇总】按钮用。点击【汇总】,弹出窗口显示下级机构的上一个节点的审核情况。如果所有下级机构上个节点都已经完成,则可以点击【确定】按钮。确定之后,本节点的【提交】、【审核】、【发布】这几个流程相关按钮才可以使用。

...

点击【查看流程日志】按钮,显示每一步流程操作的操作步骤和备注信息

...

Image Added

12)    查看流程定义

电子表格的工具类上,审核功能操作按钮后面,显示当前参数标识的审核数据对应的流程状态,点击流程状态,显示整个流程步骤,并用红色标识当前所处的步骤

...

Image Added

 

3.6       流程监控

要使用流程监控功能,必须先拥有【流程监控】的操作权限,如下图。

...

Image Added

Image Added

拥有流程权限后,在主界面右上角的下拉菜单中,可以看见【流程监控】菜单。点击菜单,进入流程监控主界面。在流程监控界面中,通过查询选择要监控的流程,展示流程对应的参数。不选择参数,展示所有的和当前流程相关的流程实例;选择参数,则查询展示与参数值相关的流程实例。

...

Image Added

3.7       流程上的宏

宏事件往往用于帮助用户对数据进行处理。例如有些用户执行汇总的时候,需要执行复杂的存储过程进行数据汇总;或者在发布的时候,将数据从一个库表复制到另外一个库表;或者用户需要将当前流程的审核状态同步到业务库中,这些需求都可以通过宏来实现。

在流程定义上,右键编辑宏,可以进入到流程宏的编辑界面。流程只支持客户端宏,不支持服务器端宏。流程宏基本上与流程操作按钮对应,且按执行时间,分为执行按钮操作之前和执行操作按钮之后触发。流程支持的宏包括:

    • beforeCommit:执行提交之前
    • afterCommit:执行提交之后
    • beforeVerify:执行校验之前
    • afterVerify:执行校验之后
    • beforeSummary:执行汇总之前
    • afterSummary:执行汇总之后
    • beforeAudit:执行审核之前
    • afterAudit:执行审核之后
    • beforeBackToPre:执行回退上一步之前
    • afterBackToPre:执行回退上一步之后
    • beforeBackToStart:执行回退到开始之前
    • afterBackToStart:执行回到到开始之后
    • beforeRelease:执行发布之前
    • afterRelease:执行发布之后

特别的,在before类型的事件中,可以针对操作做一些条件判断,例如对业务库进行检查,当不满足条件的时候,可以通过抛出异常(throw “error”)的方法,阻止按钮操作的执行。

...

要新建流程定义,需要【流程定义】操作权限,位于【定制管理】-》【新建分析】目录下。

...

Image Added

另外,流程定义属于资源,本身受资源权限控制。

 

3.9       其它功能

...

var util = jsloader.resolve("freequery.common.util");

var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.数据源名称", "update XXXXX"]);

 

4.2       发布时将数据写入另一个库

有些时候,用户要求审核前的数据和审核后的数据不能同库。这和3有些时候,用户要求审核前的数据和审核后的数据不能同库。这和4.1的处理类似,可以由实施人员,在发布事件中编写宏代码,使用DataSourceService的executeUpdate方法,执行sql语句或者执行存储过程,将审核后的数据同步到业务库中。

...

因此,可以由实施人员,在流程的汇总事件中编写宏代码,使用DataSourceService的executeUpdate方法,执行sql语句或者执行存储过程,完成响应的汇总处理。示例代码如下:

代码块
var p1 = spreadsheetReport.paramPanelObj.findParamByName('DeptTree');

...


var p2 = spreadsheetReport.paramPanelObj.findParamByName('日期');

...


var util = jsloader.resolve("freequery.common.util");

...


//删除已有的汇总

...


var sql = "delete from factyear where dateid='" + p2.value + "' and deptid='" + p1.value + "'";

...


var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.回写", sql]);

...


if (ret && ret.succeeded)

...

 {
    //计算汇总

...


var sql = "insert into factyear (deptid,dateid,metricid,val) "

...

 +
        "select '" + p1.value + "','" + p2.value + "',metricid,sum(val) "

...

 +
        " from factyear where dateid='" + p2.value + "' and deptid<>'" + p1.value

...

        "'  group by metricid ";

 

...

 +
        "'  group by metricid ";


    var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.回写", sql]);

...


    if (ret && ret.succeeded)

...

 {
        spreadsheetReport.doRefresh();

...

        return true;

    }

...


        return true;
    }
}