找回密码
 注册成为天翎用户
楼主: kakakevin

[已解决] 定时 启动流程的问题?

[复制链接]
 楼主| kakakevin 发表于 2013-9-12 17:01:50 | 显示全部楼层
用户信息可以获得了!
var domainidid    = "11e1-7f98-53d7e5e8-a04d-05b43c063ac2";
var applicationid = "11e2-cdef-dc442f91-abf7-f9efb6edd388";
var sql = "select * from tlk_hospitalapply where STATELABEL='已建设完成'";
var docProcess=getDocProcess(applicationid);
if(docProcess==null)
{
         println("---------docProcess is null ");
}
else
{
         println("---------docProcess is not null ---------------------- ");
}
var  applyDocs=docProcess.queryByDQL(sql,domainidid);
println("---------get data start ---------------------- ");
println("---------applyDocs:size="+applyDocs.size());
上面获取数据的代码。执行过程中println输出的内容都没有输出~
后台日志如下:是哪里出问题了?
QQ图片20130912165837.jpg
 楼主| kakakevin 发表于 2013-9-12 17:21:57 | 显示全部楼层
var sql = "select * from tlk_hospitalapply where STATELABEL='已建设完成'";
var docProcess=getDocProcess(applicationid);

var  applyDocs=docProcess.queryByDQL(dql,domainidid);
println("---------get data start ---------------------- ");
if(applyDocs!=null)
{
println("---------applyDocs:size="+applyDocs.size());
}
把代码改了一下
返回applyDocs为null
还是查不到数据
 楼主| kakakevin 发表于 2013-9-12 17:28:13 | 显示全部楼层
完整代码如下:
var domainidid    = "11e1-7f98-53d7e5e8-a04d-05b43c063ac2";
var applicationid = "11e2-cdef-dc442f91-abf7-f9efb6edd388";

var flowid="11e2-d503-e762dc08-bd91-1186cda229cd";   //流程Id
var comment = "系统自动流转";          //备注
var flowoption = "80";           //流程操作参数   
  
var userProcess = createProcess("cn.myapps.core.user.ejb.UserProcess");
var user = userProcess.getUserByLoginno("test3",domainidid);
if(user ==null)
{
        println("---------user is null");
}
else
{
     println("---------nextFlowControlUser:="+user.getName());
}
var nextnodeid = new Array();      
nextnodeid[0]="1371222124550";         //下一流程节点ID
var process = getDocumentProcess();//申明文档业务处理类
var dql = "$formname='HospitalApply' and $STATELABEL='已建设完成'";


var sql = "select * from tlk_hospitalapply where STATELABEL='已建设完成'";
var docProcess=getDocProcess(applicationid);

var  applyDocs=docProcess.queryByDQL(dql,domainidid);
println("---------get data start ---------------------- ");
if(applyDocs!=null)
{
println("---------applyDocs:size="+applyDocs.size());
}
if( applyDocs  != null &&  applyDocs.size() > 0) {

   for (var iter1 = applyDocs.iterator(); iter1.hasNext();) {

    var doc = iter1.next();
    var params = createParamsTable();                        
    params.setParameter("_flowid", flowid);      
          println("---------flow  deal start ---------------------- ");
    var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();
    //getCurrUserNodeRT的第二个参数必须是第一个参数的审批人
    var nodert = st.getCurrUserNodeRT(doc,user);
    var currnodeid = nodert.getNodeid();//获取流程当前流程节点ID
    process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);        //流程处理  

   }
}
kimi 发表于 2013-9-12 17:34:56 | 显示全部楼层
您好:麻烦您把sql语句 select * from tlk_hospitalapply where STATELABEL='已建设完成' and applicationid='11e2-cdef-dc442f91-abf7-f9efb6edd388' and domainid='11e1-7f98-53d7e5e8-a04d-05b43c063ac2'  放在数据库执行能否查询到数据,如果能查询到,麻烦您加下我Q:972284703,我远程帮您看下。
 楼主| kakakevin 发表于 2013-9-12 18:01:00 | 显示全部楼层
再次调整代码:
var domainidid    = "11e1-7f98-53d7e5e8-a04d-05b43c063ac2";
var applicationid = "11e2-cdef-dc442f91-abf7-f9efb6edd388";

var flowid="11e2-d503-e762dc08-bd91-1186cda229cd";   //流程Id
var comment = "系统自动流转";          //备注
var flowoption = "80";           //流程操作参数   
  
var userProcess = createProcess("cn.myapps.core.user.ejb.UserProcess");
var user = userProcess.getUserByLoginno("test3",domainidid);

var nextnodeid = new Array();      
nextnodeid[0]="1371222124550";         //下一流程节点ID
var process = getDocumentProcess();//申明文档业务处理类


var sql = "select * from tlk_hospitalapply where STATELABEL='已建设完成'";
var applyDocs = queryByDSName("yxzx",sql);

if( applyDocs  != null &&  applyDocs.size() > 0) {

   for (var iter1 = applyDocs.iterator(); iter1.hasNext();) {

    var map1 = iter1.next();
    var docid=map1.get("id");
    var doc=findDocument(docid);
    println("-----docid="+doc.getId());
    var params = createParamsTable();                        
    params.setParameter("_flowid", flowid);      
          println("---------flow  deal start ---------------------- ");
    //var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();
    //getCurrUserNodeRT的第二个参数必须是第一个参数的审批人
    //var nodert = st.getCurrUserNodeRT(doc,user);
    //var currnodeid = nodert.getNodeid();//获取流程当前流程节点ID
    var currnodeid = "1378910145264";
    process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);        //流程处理  
    println("---------flow  deal end ---------------------- ");
   }
}
在执行代码  process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);       时报错
errorlog.jpg
 楼主| kakakevin 发表于 2013-9-12 18:04:45 | 显示全部楼层
令:流程的下一节点是 完成节点了。这个要特别的配置么?
sophie 发表于 2013-9-12 18:21:39 | 显示全部楼层
您好,这个没有特别限制,可以的话找我一下,远程看一下吧
 楼主| kakakevin 发表于 2013-9-12 18:26:07 | 显示全部楼层
看了日志。
process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);   
传入的user要求是WebUser对象
而代码前面
var userProcess = createProcess("cn.myapps.core.user.ejb.UserProcess");
var user = userProcess.getUserByLoginno("test3",domainidid);
获取的是UserVO对象。这里不匹配造成错误!
请问怎么在定时任务中根据 用户ID获取WebUser对象?
 楼主| kakakevin 发表于 2013-9-12 18:33:49 | 显示全部楼层
把用户转换一下就OK了
var webUser = Packages.cn.myapps.core.user.action.WebUser(user);
 楼主| kakakevin 发表于 2013-9-12 19:52:02 | 显示全部楼层
结贴吧。搞定了

本版积分规则

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

GMT+8, 2026-9-27 02:26

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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