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

QQ登录

只需一步,快速开始

查看: 8892|回复: 19

[结贴] 定时检查没有处理的流程

[复制链接]

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
发表于 2016-11-3 14:42:03 | 显示全部楼层 |阅读模式
本帖最后由 奔跑的小蜗牛 于 2016-11-3 15:00 编辑

请问一下:假如每月5日为填报截止日期,不管登没登陆平台,定时每月5号检查没有处理的流程,没有填写的流转到下一步。tomcat是一直启动的,这个要怎么解决。
平台流转往下流转的action是怎么调用的?怎么样调用process的流转?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-11-3 15:34:42 | 显示全部楼层
可以做一个定时调用action
action中可以到SA_Task中查执行状态为未处理的任务就是待办任务的sql可以参考/BIZ/SA/task/logic/code/dsrc/TaskViewProcedure.java
然后再通过创建时间和当前时间对比获取具体的任务信息,然后自己调用流程相关的API进行处理
代码控制流转可以参考http://bbs.wex5.com/forum.php?mo ... 7&pid=164970940
http://bbs.wex5.com/forum.php?mod=viewthread&tid=40609

定时调用可以参考http://bbs.wex5.com/forum.php?mod=viewthread&tid=40485
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
 楼主| 发表于 2016-11-4 14:10:15 | 显示全部楼层
jishuang 发表于 2016-11-3 15:34
可以做一个定时调用action
action中可以到SA_Task中查执行状态为未处理的任务就是待办任务的sql可以参考/BI ...

请问一下,        定时器我放在tomcat下面的E:\SHuiW_OA(ing)\apache-tomcat\webapps\timer路径下,配置server这样写对吗?
<Context processTlds="false" docBase="E:\SHuiW_OA(ing)\apache-tomcat\webapps\timer" path="/timer" reloadable="false" workDir="work"/>  
另外这个报错com.justep.biz.client.ActionException: com.justep.biz.client.ActionException: Method failed: HTTP/1.1 404 Not Found 包导入了,也添加了。为什么还有这个错,是路径的问题吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-11-4 14:46:09 | 显示全部楼层
放到apache-tomcat\webapps下的不用配置直接用http://IP:端口/timer访问就可以

这个就是tombat部署标准的web应用
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
 楼主| 发表于 2016-11-4 14:53:39 | 显示全部楼层
jishuang 发表于 2016-11-4 14:46
放到apache-tomcat\webapps下的不用配置直接用http://IP:端口/timer访问就可以

这个就是tombat部署标准的w ...

老师  我把配置路径配置注释了 ,还是报错
当前的时间天数=4
http://127.0.0.1:8090/SHuiTJT
gwclzx
1
192.168.1.132
开始
log4j:WARN No appenders could be found for logger (org.apache.commons.httpclient.HttpClient).
log4j:WARN Please initialize the log4j system properly.
com.justep.biz.client.ActionException: com.justep.biz.client.ActionException: Method failed: HTTP/1.1 404 Not Found
        at com.justep.biz.client.ActionEngine.register(Unknown Source)
        at com.justep.biz.client.ActionEngine.login(Unknown Source)
        at com.justep.biz.client.ActionEngine.login(Unknown Source)
        at com.justep.biz.client.ActionEngine.login(Unknown Source)
        at X5Actions.login(X5Actions.java:31)
        at X5Actions.DingSZDLZ(X5Actions.java:39)
        at DemoTask.doSomething(DemoTask.java:60)
        at DemoTask.run(DemoTask.java:37)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
Caused by: com.justep.biz.client.ActionException: Method failed: HTTP/1.1 404 Not Found
        ... 10 more

回复 支持 反对

使用道具 举报

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
 楼主| 发表于 2016-11-4 16:40:25 | 显示全部楼层
jishuang 发表于 2016-11-4 14:46
放到apache-tomcat\webapps下的不用配置直接用http://IP:端口/timer访问就可以

这个就是tombat部署标准的w ...

        红色标注的怎么去传值
String task = "4024BD4D9C8A4EC693A0F7D1949966A7";
                //1、首先获取某个任务后续的流转数据结构
                ProcessControl control = ProcessUtils.advanceProcessQuery(task);
                 //2、获得后续可能流转的环节
                Iterator<ProcessControlItem> flowTos = control.getFlowTos().iterator();
                while(flowTos.hasNext()) {
                    ProcessControlItem flowTo = flowTos.next();
                    //3、获取环节ID做判断
                    String activity = flowTo.getUnit();
                    if (activity.equals("businessActivity4")) {
                        //4、留下要流转的环节,并自定义执行者
                        flowTo.clearExecutors();
                        List<OrgUnit> lists1 =  com.justep.system.opm.OrgUtils.findOrgUnitsByFID("5O9V7MMzp26Bau8l4Fl");
                        flowTo.addExecutor(lists1);//(list);//(ContextHelper.getPersonMember());

                    } else {
                        //5、移走后续不流转的环节
                        flowTos.remove();
                    }
                }
                //6、按定制的ProcessControl流转
                ProcessUtils.advanceProcess(task, control);   
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-11-4 18:04:44 | 显示全部楼层
1.报错具体做什么的什么报错的?
2.你可以自己新建List是orgUnit的,然后传参给flowTo.addExecutor就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
 楼主| 发表于 2016-11-7 11:42:50 | 显示全部楼层
jishuang 发表于 2016-11-4 18:04
1.报错具体做什么的什么报错的?
2.你可以自己新建List是orgUnit的,然后传参给flowTo.addExecutor就可以 ...

红色部分报这个错误,但是打印出来的四个参数都是正确的,包也导入了,
                String password = dom.selectSingleNode("/x5-config/password").getText();
                System.out.println(password);
                // 获得本地IP地址
                String localIP = java.net.InetAddress.getLocalHost().getHostAddress();
                System.out.println(localIP);
                // 初始化动作引擎
                ActionEngine.init(businessServer);
                // 登录
                System.out.println("开始");
                String bSessionID = ActionEngine.login(loginName, ActionUtils.md5(password), localIP, null);
                System.out.println("结束");

                // 返回bSessionID
                return bSessionID;
        }
       
        public String DingSZDLZ() throws UnknownHostException, DocumentException {
                // 登录
                String bSessionID = login();
                try {
                        Action action = new Action();
                        // 指定动作的process、activity和action,这里要注意登录的用户应该有执行这个功能中的这个动作的权限
                        action.setProcess("OA/ducdb/process/ducdb/ducdbProcess");
//                        action.setProcess("OA/ducdb/process/ducdb/ducdb4Process");
//                        action.setProcess("OA/ducdb/process/ducdb/ducdbdshProcess");
                        action.setActivity("businessActivity2");
                        action.setName("DingSZDLZ");
                        // 调用动作
                        ActionResult actionResult = ActionEngine.invokeAction(action, ActionUtils.JSON_CONTENT_TYPE, bSessionID, null, null);
                       
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-11-7 14:24:07 | 显示全部楼层
BusinessServer的地址写的正确吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

67

主题

280

帖子

536

积分

高级会员

Rank: 4

积分
536
QQ
 楼主| 发表于 2016-11-7 14:32:02 | 显示全部楼层
jishuang 发表于 2016-11-7 14:24
BusinessServer的地址写的正确吗?

恩恩 写的是访问的地址,这个没问题的,打印出来看了。还有什么地方的问题?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 21:08 , Processed in 0.063546 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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