...
- 流程节点名称:用于标识每一步流程的节点名称
- 操作者:当前流程允许的操作人。可以选择具体用户、用户组或者角色
- 报表操作:当报表流转到这个节点的时候,报表上允许的操作,与电子表格展示界面上的功能按钮对应。
- 流程操作:在每一个流程步骤中,【上报】、【审核】、【发布】这三个用于控制流程向下流转的功能按钮,必须选择一个,而且只能选择一个
- 可见人设置(仅第一个填报节点有此设置):可见人设置,主要是针对操作者选择“用户组”和“角色”的情况下,其他人是否可以修改保存数据,比如我选择了“所有人可见”,操作者那里选择的是角色/用户组A,那角色/用户组A下面的一个用户a,可以填写报表保存,在没有上报的情况下,角色/用户组A下面的另外一个用户b仍然可以修改数据进行保存。若选择了“发起人可见”,那么用户a保存的数据,其他的用户不可以进行修改,只能a用户可以修改。“同机构可见”是针对我们操作者选择的是用户组 ,和上面说的逻辑一样可见人设置(仅第一个填报节点有此设置):
发起人可见
(1)填报人使用填报角色,发起人可见,执行后在待办中只能看到发起人自己的流程
(2)填报人使用填报用户组,发起人可见,执行后在待办中只能看到发起人自己的流程
(3)填报人使用填报用户,发起人可见,执行后在待办中只能看到发起人自己的流程
所有人可见
(4)使用角色,所有人可见,执行后该角色的用户在待办可以看到全部的流程
(5)使用用户组,所有人可见,执行后该组的用户在待办可以看到全部的流程
(6)使用用户,所有人可见,执行后设置的用户在待办可以看到全部的流程
同机构可见
(7)使用角色,同机构可见,执行后该角色的用户在待办可以看到全部的流程
(8)使用用户组,同机构可见,执行后该组的用户在待办可以看到全部的流程
(9)使用用户,同机构可见,执行后和发起人同组的用户在待办可以看到全部的流程
注意:流程启动后修改可见人设置不生效,可见人必须在流程配置时设置才能保证有效。
3.2.3 电子表格的右键菜单上,除了【新建流程】,还有【绑定流程】和【取消绑定】功能。
...
启动了流程之后,流程开始流转。在主界面右上角,点击【待办】菜单,在显示的界面中,点击【待办】选项卡,可以看到当前用户的待办任务。双击待办任务,打开对应的电子表格,并传递待办任务对应的参数到电子表格中。
切换到【已办任务】选项卡,可以查看当前用户已经处理过的流程。
...
流程的流转是通过电子表格展示时工具栏上的按钮来控制的。
...
1) 导入Excel
要使用【导入Excel】功能,需要先制作一份Excel导入模版,并在Excel中将该模版与电子表格关联。
...
电子表格的工具类上,审核功能操作按钮后面,显示当前参数标识的审核数据对应的流程状态,点击流程状态,显示整个流程步骤,并用红色标识当前所处的步骤
...
3.6 流程监控
要使用流程监控功能,必须先拥有【流程监控】的操作权限,如下图。
...
特别的,在before类型的事件中,可以针对操作做一些条件判断,例如对业务库进行检查,当不满足条件的时候,可以通过抛出异常(throw “error”)的方法,阻止按钮操作的执行。
...
3.8 权限控制
要新建流程定义,需要【流程定义】操作权限,位于【定制管理】-》【新建分析】目录下。
另外,流程定义属于资源,本身受资源权限控制。
...
3.9 其它功能
流程定义支持资源导入、导出操作,支持在资源上复制、拖动换目录,支持影响性分析和血统分析。具体操作参考Wiki相关文档
4 特殊场景
4.1 业务库中查询已经发布的数据
...
遇到这种情况,可以由实施人员,在发布事件中编写宏代码,使用DataSourceService的executeUpdate方法,执行sql语句或者执行存储过程,将流程状态同步到业务库中。
var util = jsloader.resolve("freequery.common.util"); var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.数据源名称", "update XXXXX"]); |
4.2 发布时将数据写入另一个库
有些时候,用户要求审核前的数据和审核后的数据不能同库。这和4.1的处理类似,可以由实施人员,在发布事件中编写宏代码,使用DataSourceService的executeUpdate方法,执行sql语句或者执行存储过程,将审核后的数据同步到业务库中。
4.3 汇总时执行运算逻辑
系统中的【汇总】操作,只是做了一个状态标志的处理,并没真正的对业务数据做汇总处理。业务数据的汇总处理逻辑,往往逻辑复杂且不尽相同。
...
代码块 |
---|
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 "; var ret = util.remoteInvoke("DataSourceService", "executeUpdate", ["DS.回写", sql]); if (ret && ret.succeeded) { spreadsheetReport.doRefresh(); return true; } } |
...