工作流自定义SQL数据源设置说明,实现用户查询调用
当前位置:点晴教程→点晴OA办公管理信息系统
→『 工作流使用交流 』
先看一个工作流自定义数据源在采购申请单的应用范例:
注意:视频中的物料代码、物料名称、物料规格三列数据都是自动填充的,这个就是自定义SQL数据源的典型应用场景。
点晴OA中工作流申请表单模板中的字段支持自定义数据源,数据源可以是由网管一次性手工输入的,也可以是自定义SQL语句查询而来的。具体使用方法如下:
一、定义数据源类别: 点击“模板管理”或“流程管理”,找到“数据源维护”,增加数据源类别:
二、对数据源类别增加数据有两种方法,可以是由网管一次性手工输入的、也可以是自定义SQL语句查询而来的:
方法1、数据源由网管一次性手工输入后供用户调用:
说明:手工创建数据时,最多支持5个辅助属性,并且需要将属性绑定到申请模板中对应字段。
方法2、自定义SQL语句查询后供用户调用:
点晴MIS系统工作流模块支持添加的字段自定义数据来源,数据可以来源于手工新增加的批量数据,也可以来源于点晴MIS系统现有数据库数据,为了确保正确调用到需要的数据,自定义的SQL语句输出时必须严格按照以下格式生成:
select *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5, *** as order_sort1, *** as order_sort2 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合计$ and **** 上面红色部分是必须有的,并且主字段必须重命名为:main_info; 后面的 remark1, remark2, remark3, remark4, remark5, remark6, remark7, remark8, remark9, remark10, remark11, remark12, remark13, remark14, remark15, remark16, remark17, remark18, remark19, remark20 (最多支持导出20个)是辅助输出字段,如果在后续调用时无需使用或需要部分使用的话,就可以留空全部或者保留需要的字段,注意,如果使用了嵌套查询/子查询,嵌套中出现的remark1~20字段也要加在最外层的select中;
后面的 order_sort1, order_sort2 用于排序,默认是asc(升序),如果需要降序输出,可以直接在上面的SQL中追加该字段的降序排序:order by *** desc(降序),这两个不是必须要有的,可以保留一个或都不提供。
上面这个SQL是被当成视图在点晴OA中进行处理的,具体后台处理方法为:select main_info, remark1, remark2, remark3, remark4, remark5 from (select *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5, *** as order_sort1, *** as order_sort2 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合计$ and ****) derive where main_info like '%***%' order by order_sort1, order_sort2
如果判断上面自定义SQL中有order by,就不会追加后面这个“order by order_sort1, order_sort2”了,而是采用自定义SQL中的排序输出:select main_info, remark1, remark2, remark3, remark4, remark5 from (select top (100) percent *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合计$ and **** order by *** desc, *** desc) derive where main_info like '%***%'
如果自定义SQL中需要采用order by自定义排序,注意一定要在select后面加上约束 top (100) percent ,否则一定会报错,详情请参考以下教程:
请问工作流和万能魔表两个管理模块的自定义SQL如何实现排序效果?现在总是报错80040e14,除非另外还指定了TOP或FOR XML,否则ORDER BY子句在视图、内联函数、派生表、子查询和公用表表达式中无效。[5] http://13585.oa22.cn 另外,为了方便更精确的控制查询结果,SQL语句中也支持以下几个宏变量:
$oabusyname$ :当前用户中文姓名;
$oabusyusername$ :当前用户英文登录名(Email前缀);
$oabusyuserid$ :当前用户内部ID;
$oabusyuserdept$ :当前用户所在部门;
$oabusydept_inner_id$ :当前用户所在部门内码;
$oabusyuserlevel$ :当前用户所在职级;
$oabusypost_name$ :当前用户岗位名称;
$oabusypost_inner_id$ :当前用户岗位内码;
$oabusymenber_id$ :当前用户工号;
也支持直接将申请表中表单字段作为SQL中变量:
主表字段:
$CS1$、$CS2$、......、$CS9$、$CS10$、$CS11$、......、$CS98$、$CS99$ 明细表字段:
不支持作为SQL查询条件 明细表合计字段: $SON01合计$、$SON02合计$、$SON03合计$、......、$SON19合计$、$SON20合计$ 注意: 1、以上主表和明细表合计字段都必须大写,不允许用小写; 2、主表字段小于10时前面无0、明细表字段小于10时前面有0; 3、主表字段和明细表合计字段才支持作为自定义SQL中的变量,明细表字段不支持作为自定义SQL中的变量; 以示例说明:$CS1$是正确的,$CS01$、$cs1$是错误的;$SON01合计$是正确的,$son01合计$、$SON1合计$、$SON01$、$SON1$是错误的。 4、以上主表和明细表字段只支持在申请时的自定义SQL中调用,不支持在审核和归档时的自定义SQL调用。
测试无误后,还需要在下面 属性1、属性2、属性3、属性4、属性5......、属性19、属性20 中勾选工作流设计表单中对应的字段ID,以后申请新的工作流时,就可以实现自动取数效果了,如果启用了上述属性信息,那么还可以实现辅助字段的自动录入效果。
三、设置只有一个查询结果时是否自动填充并绑定表单模板字段
采用以上两种方法添加数据源时,需要注意如果查询结果只有一个的话,系统默认会自动完成填充反写到申请表对应的字段,无须用户再次点击。如果觉得不方便,管理员也可以不勾选该项目:
另外,务必对数据源带出的信息绑定到表单模板中的对应字段上,绑定方法如下:
上面的SON02、SON03就对应着自定义表单中的SON02、SON03:
四、做好以上设定后,在新增工作流时,就可以自动将相关辅助信息带过来了,不但提高了填表效率,而且避免了填表人填错数据:
参考资料:
该文章在 2023/7/10 9:11:41 编辑过
|
关键字查询
相关文章
正在查询... |