起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1066|回复: 1

[结贴] 如何设置流程的状态

[复制链接]

123

主题

245

帖子

888

积分

高级会员

Rank: 4

积分
888
发表于 2014-11-4 16:18:34 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 其它 浏览器: Chrome
需求:流程流转一步,更新主数据的状态:处理人、当前环节和状态
我的做法:
1.添加流程启动与流转事件
<model xmlns="http://www.justep.com/model">
        <listener action="startProcessAction" event="after"
                handler="orderProcessAfterStartProcedure" />
        <procedure name="orderProcessAfterStartProcedure" code="OrderProcess.orderProcessAfterStart" />
        <listener action="advanceProcessAction" event="after"
                handler="orderProcessAfterAdvanceProcedure" />
        <procedure name="orderProcessAfterAdvanceProcedure" code="OrderProcess.orderProcessAfterAdvance" />
</model>

2.添加代码
   public static void updateBizRecord()
    {
        String sExecutorNames = "", sActivityNames = "", sStatus;

        if (!ProcessUtils.isFlowToEnd())
        {
            ProcessControl flowControl = (ProcessControl) ContextHelper.getActionContext().getParameter("control");
            for (ProcessControlItem to : flowControl.getFlowTos())
            {
                for (OrgUnit ect : to.getExecutors())
                {
                    sExecutorNames = sExecutorNames + CommonUtils.getNameOfFile(ect.getFName()) + " ";
                }
                sActivityNames = to.getTask().getActivityName();
            }
            sStatus = "审批中";
        }
        else
        {

            sStatus = "已完成";
        }
        String key = ProcessUtils.getProcessData1();
        String sConceptName = ProcessUtils.getProcessData2();
        String sDataModel = ProcessUtils.getProcessData3();

        String ksql = "update " + sConceptName + " a set a.fCLR='" + sExecutorNames + "',a.fCLHJ='" + sActivityNames
                + "',a.fDQZT='" + sStatus + "' where a='" + key + "'";
        KSQL.executeUpdate(ksql, null, sDataModel, null);
    }
}

3.问题
  在流程结束的前一个环节,我将任务按照顺勋的模式流转到两个人,在sa_task 表中,我看到一个任务是 尚未处理,另一个任务是暂缓处理,此时,我以尚未处理 的用户登录进行流转,刘红钻后会执行代码:ProcessUtils.isFlowToEnd()  结果是流转结束!事实上是该用户的流程结束,而另一个用户的任务由暂缓状态变为  尚未处理,整个流程确实还没结束!
     我如何来改这段代码,来记录流程的状态!请高人指点,谢谢

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-11-4 17:21:12 | 显示全部楼层
获取到当前的task的id,找出sparentid的值,然后查询sparentid的值一样的有几条数据,获取到对应记录的状态的值,如果有未处理就不设置状态的值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 07:52 , Processed in 0.060562 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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