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

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

[已解决] 求doc对象的doApprove或doFlow的程序片段示例

[复制链接]
云南腾俊 发表于 2012-10-22 11:48:55 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2012-10-23 14:02 编辑

求doc对象的doApprove或doFlow的程序片段示例。
另外: doApprove 与 doFlow有何不同
bess 发表于 2012-10-22 13:47:50 | 显示全部楼层
您好,关于doflow方法的使用,我们这边没有具体的一个例子,您如果有不懂的地方,可以查看源码如下位置的代码:
1210171556c72a57161b6f962b.jpg
 楼主| 云南腾俊 发表于 2012-10-22 14:09:40 | 显示全部楼层
本帖最后由 云南腾俊 于 2012-10-22 14:19 编辑

麻烦提供一下:java.lang.String flowOption 参数枚举类型
spiral 发表于 2012-10-22 14:36:33 | 显示全部楼层
这个是提交和返回啊
请问您具体要实现什么业务呢?   使用脚本的方式来操作流程我们是并不建议的,而且也没有相关例子
 楼主| 云南腾俊 发表于 2012-10-22 14:39:55 | 显示全部楼层
这个flowtype或flowoption很明显是个枚举参数,可以提供哪些选项呢?
purple 发表于 2012-10-22 14:42:44 | 显示全部楼层
java.lang.String flowOption 参数枚举类型?不好意思,不太明白您什么意思,说的是doApprove方法的第五个参数 flowOption的类型吗?如果是,您自己都写出来了呀,如果不是,麻烦描述清楚,您的需求,谢谢。
 楼主| 云南腾俊 发表于 2012-10-22 14:44:40 | 显示全部楼层
我要调用doFlow函数啊,这个option参数能传递些什么数据呢
purple 发表于 2012-10-22 16:26:04 | 显示全部楼层
关于doApprove函数的参数说明详见下图:
1.jpg
关于其方法详细实现如下:
2.jpg

flowOption是流程操作,刚刚用源码定位跟踪试了一下,提交成功之后,这个参数的值是80,您可先尝试一下,有问题,我们再沟通。
 楼主| 云南腾俊 发表于 2012-10-23 13:56:43 | 显示全部楼层
本帖最后由 spiral 于 2012-10-25 13:36 编辑

//以下是成功示例
  1. //println("-------------------job start---------------------");
  2. var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();//申明表单业务处理类
  3. var form = formProcess.doViewByFormName("办理记录",getApplication());  //根据表单名查询出表单(fm_purchase_materials为对应的插入记录的表单名)
  4. var userProcess = createProcess("cn.myapps.core.user.ejb.UserProcess");
  5. var process = getDocumentProcess();//申明文档业务处理类
  6. var params =new Packages.cn.myapps.base.action.ParamsTable();
  7. var domainid="11e1-ae18-d04ada40-a3b2-4960a74ab202";
  8. var flowid="11e2-1a5c-529647f4-bb0e-2b0c8d6fb7d6";
  9. var user = null;
  10. var webuser=null;
  11. var doc=null;
  12. var loginno="";
  13. var gap="";
  14. var yes=false;
  15. var diff=0;
  16. var today=format(getToday(), "yyyy-MM-dd");
  17. var sql = "select item_间隔,item_提示日, '" +getDomainid()+"' domainid, author item_author,id item_id  from tlk_提示项 where (item_取消='' or item_取消 is null) ";
  18. var rs = queryBySQL(sql);  var rec=null;
  19. for (var iter1 = rs.iterator(); iter1.hasNext();) {               
  20.         rec = iter1.next(); loginno=rec.getItemValueAsString("author");
  21.         gap=rec.getItemValueAsString("间隔");
  22.         diff=$TOOLS.DATE_UTIL.getDistinceDay(rec.getItemValueAsString("提示日"), today);
  23.         //println("diff============"+diff+" mod="+ (diff % 7));
  24.         yes=false;
  25.         if (gap.equals("每周")){
  26.            if (diff%7==0) yes=true;
  27.         }else if(gap.equals("每月")){
  28.                  if (diff%30==0) yes=true;
  29.         }else if(gap.equals("每年")){
  30.                 if (diff%365==0) yes=true;
  31.         }
  32.         if (yes) {
  33.                 user=getUserById(loginno);//根据用户名查询表单的创建者(wgs为对应的作者用户名)
  34.                 //println(""+domainid+"loginname:"+user.getName());
  35.                 webuser = new Packages.cn.myapps.core.user.action.WebUser(user);
  36.                 doc = process.doNew(form,webuser,new Packages.cn.myapps.base.action.ParamsTable());//创建记录
  37.                 doc.findItem("parent").setValue(rec.getItemValueAsString("id"));
  38.                 //doc = process.doView(rec.getItemValueAsString("id"));
  39.                 doc.setFlowid(flowid);//flowid为对应的流程Id.
  40.                 params.setParameter("_flowid", flowid)//value为对应的流程Id.
  41.                 //println("xxxxx:path="+params.toString() );
  42.                 //println("-------user:"+webuser.getName()+",docid:"+doc.getId());
  43.                 process.doStartFlowOrUpdate(doc,params,webuser);//启动流程
  44.                 //doFlow(cn.myApps|OBPM.core.dynaform.document.ejb.Document doc, cn.myApps|OBPM.base.action.ParamsTable params, java.lang.String currNodeId,
  45.                 //java.lang.String[] nextNodeIds, java.lang.String flowType, java.lang.String comments, cn.myApps|OBPM.core.user.action.WebUser user)
  46.                 var arr = new Array(); arr[0]="1350699102375";
  47.                 process.doFlow(doc,params,"1350892857843",arr,"80","auto commit by sys",webuser);
  48.         }
  49. }
复制代码
purple 发表于 2012-10-23 13:58:53 | 显示全部楼层
不好意思,请问现在的问题是什么?

本版积分规则

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

GMT+8, 2026-8-12 19:16

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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