天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3494|回复: 15

[已解决] 通过 sql 视图展示的上一节点审批人偶尔会不正确,却无规律~【bugID:4252】

[复制链接]
上海怡蓝 发表于 2013-1-10 09:20:03 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2013-1-22 11:31 编辑

视图展示是采用 SQL 脚本,上一节点审批人这个字段用的是数据库中 lastModifier  这个字段 , 现在的问题是 :
如果一个流程的审批流程为 :  A 审批   ---> B 审批 ---> C 审批 ---> D 审批 ---->E 审批
正常情况是, A审批完后,到B打开视图的时候,上一节点审批人就是   A , 同理 C审批完后 , 到D看到的视图中上一节点审批人就是 C;
非正常情况 :  C审批完后,D审批时,看到的上一节点审批人为 B。

但是也并不是每一条都会如此, 偶尔会出现 ,很是郁闷 。。。
purple 发表于 2013-1-10 09:32:38 | 显示全部楼层
,您好,没有规律的问题,我们这边也不好给您提供解决方案。方便的话,请提供您的sql,我们这边本地测试一下,能否重现您反馈的问题。谢谢。
 楼主| 上海怡蓝 发表于 2013-1-10 10:05:39 | 显示全部楼层

  1. SELECT distinct formId,created,state,id,domainId,statelabel,applicationId,item_number,item_transactor,item_makeDate,item_approveDate,item_receiptUnit,item_payUnit,item_subjectName,item_invoiceType,item_lowerAmount,item_abstract,approverName as item_approver FROM (SELECT * FROM (SELECT d.*,u.name as approverName FROM TLK_UNITREIMBURSE d left join t_user u on u.id=d.lastModifier WHERE 1 = 1 AND (d.ID IN(SELECT DOC_ID FROM AUTH_UNITREIMBURSE AUTH WHERE AUTH.VALUE = '11e2-3b6e-b8600d95-b6e8-93541a28b46e')) OR  d.AUTHOR ='11e2-3b6e-b8600d95-b6e8-93541a28b46e') d WHERE 1=1 ) ordtb WHERE DOMAINID ='11e1-98df-fbfa9e0c-adca-15e6adc3fbc5'  and statelabel != '完成'  and (item_userId='11e2-3b6e-b8600d95-b6e8-93541a28b46e' or statelabel!='草稿')
复制代码
 楼主| 上海怡蓝 发表于 2013-1-10 10:06:47 | 显示全部楼层
approverName as item_approver   --------- 就是上一节点审批人字段
TLK_UNITREIMBURSE  --------------   自己的表单
spiral 发表于 2013-1-10 10:16:07 | 显示全部楼层
您好,lastModifier字段记录的是最后修改用户ID,现在进行本地测试确认,当不对数据进行操作的时候,该字段是否会改变,请稍后
spiral 发表于 2013-1-10 11:31:02 | 显示全部楼层
您好,经过本地测试,该字段确实文档的最后修改人,当用户没有修改过文档进行流程处理时,该字段不会发生改变该现象是正常的

如果您希望在视图中显示最后审批人,您可以在视图列中使用脚本getLastApproverName();来返回最后审批人名称
注意:请确保视图中的数据都处于流程中,存在非流程数据时,该方法会出错
 楼主| 上海怡蓝 发表于 2013-1-10 11:38:31 | 显示全部楼层
表单提交的时候,审批人有审批意见的填写,如果没有填写,我在提交后执行脚本中,将审批意见设置为“同意” , 这样应该也是属于最后修改人的, 为什么会出现我所表述的问题呢 ?
spiral 发表于 2013-1-10 11:51:33 | 显示全部楼层
本帖最后由 spiral 于 2013-1-10 13:41 编辑

您好,在流程中平台数据大致可以分为2部分,文档对象的数据和流程数据,而您所说的审批备注是属于流程数据的,因此填写了审批意见后,系统还是判断没有对文档对象进行修改

对应到您可以使用6楼的的解决方案,有问题我们再联系
 楼主| 上海怡蓝 发表于 2013-1-10 13:30:09 | 显示全部楼层
本帖最后由 spiral 于 2013-1-10 13:41 编辑

我填的不是 ”审批备注“ , 是表单上有三个字段, “审批人” , “审批时间” , “审批意见” 。 审批意见是可以不填的,如果直接点击提交了,我会在提交后执行脚本中赋予审批意见 “同意” 这个值。 这个应该算是对表单进行修改了。

   我先用你 6# 提供的方法试试 。。。
spiral 发表于 2013-1-10 13:47:04 | 显示全部楼层
明白你的意思,你的问题是流程处理的动作执行后脚本执行文档数据的操作,但是对应的最后修改人字段没有相应的变化,麻烦您提供您该部分的脚本,以便我们定位问题

另外麻烦您getLastApproverName();方法后告示结果,谢谢

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 21:13

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表