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

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

[已解决] 子流程

[复制链接]
西北有色 发表于 2014-3-27 09:42:13 | 显示全部楼层 |阅读模式
我现在有个主表单a1和子表单a2,还有一个新表b1
a2是a1的子表。
当a1父表单提交时  
a2子表单的数据映射到b1中
我在子流程流程参数哪里看到 b1的数据只能添加一条   
如果a1的数据有很多条
我怎么把这些数据全添加到b1中,然后让b1所有新加入的表单流程启动
punk 发表于 2014-3-27 11:07:46 | 显示全部楼层
本帖最后由 punk 于 2014-3-27 11:10 编辑

您好~可以在子流程节点处设置, 555.jpg 用代码的形式根据明细记录去生成实例数。参数传递用复制主流程表单或者用代码的形式。
 楼主| 西北有色 发表于 2014-3-27 11:57:02 | 显示全部楼层
本帖最后由 西北有色 于 2014-3-27 14:45 编辑

问题一.  你子流程表单的数据来自主流程表单
        可是我子流程表单的数据来自主流程表单的子表

二.  你的子流程表单获取的数据只用一条,
我的子流程表单是很都个的(因为主流程的子表可以是都个)
像你上面的那样传过去的都是主流程表单的数据   
主流程表单里面的子表单字段不在那里面显示?


如果这样实现不了,
可以在后台直接写插入语句,然后自动让这个表单流程提交吗?  这个自动提交的代码是什么?
punk 发表于 2014-3-27 14:55:10 | 显示全部楼层
本帖最后由 punk 于 2014-3-27 14:59 编辑

ok,自动提交流程的方法
var process = getDocProcess(applicationid);
var flowid = '11e3-2974-011957ad-aba0-fb2370a94674';//要启动流程的id
var params = new Packages.cn.myapps.base.action.ParamsTable();
params.setParameter("_flowid", flowid);
process.doStartFlowOrUpdate(doc, params, webuser);
可以参照这个帖子http://www.teemlink.com/bbs/view ... 1%BD%BB%C1%F7%B3%CC
 楼主| 西北有色 发表于 2014-3-27 17:07:35 | 显示全部楼层
那个连接的代码是人家项目的代码。太多了,看不懂。
你就把启动流程的方法是什么?需要什么参数?给我我看看。
你上面写的process.doStartFlowOrUpdate(doc, params, webuser);这里面的doc是哪里来的啊,能不能具体解释下。谢谢了
punk 发表于 2014-3-27 18:11:25 | 显示全部楼层
doc就是文档,例如var doc = getCurrentDocument();
var sql = "select * from tlk_xxx";
var doc = findBySQL(sql);
var datas = queryBySQL(sql);
for(var it = datas.iterator();it.hasNext();){
var doc = it.next();
}
这样明白了吧?
 楼主| 西北有色 发表于 2014-3-28 09:08:15 | 显示全部楼层
process.doStartFlowOrUpdate(doc, params, webuser);
process.doFlow(doc4,params,currnodeid,nextnodeid,flowoption,comment,webuser);
这两个那个是自动开启流程,它里面的参数个代表什么?
punk 发表于 2014-3-28 10:14:19 | 显示全部楼层
doStartFlowOrUpdate 这个是自动启动流程
doFlow 这个是提交流程
         * @param doc
         *            当前Document
         * @param params
         *            参数
         * @param currNodeId
         *            当前节点
         * @param nextNodeIds
         *            下一个节点
         * @param flowType
         *             提交动作类型 80               
         * @param comments
         *            备注
         * @param user 当前用户
 楼主| 西北有色 发表于 2014-3-28 10:37:56 | 显示全部楼层
本帖最后由 西北有色 于 2014-3-28 10:39 编辑

下面是我的代码  麻烦看看
var process = getDocProcess(getApplication());
var flowid="6688C51C-7C8A-4204-AC50-F1EED30C2A4E";
var sql = " select * from TLK_PEIHUOCLASS where STATE is  null";
println(sql);
var datas = queryBySQL(sql);
println(datas);
for(var it = datas.iterator();it.hasNext();){
var doc = it.next();
doc.setFlowid(flowid);
println("doc++++++++++"+doc);
var params =new Packages.cn.myapps.base.action.ParamsTable();
params.setParameter("_flowid",flowid);

println("params++++++++++"+params);
          var user = doc.getAuthor();
          var webuser = new Packages.cn.myapps.core.user.action.WebUser(user);
println("webuser++++++++++++"+webuser);
process.doStartFlowOrUpdate(doc,params,webuser);
}



你看看我的代码错在哪了?  点击会报错的
报错如下
JsUtil: select * from TLK_PEIHUOCLASS where STATE is null
JsUtil:[Document:GoldMarketSystem/test子流程/peihuoclass
product123
number456.0
]
JsUtil:doc++++++++++Document:GoldMarketSystem/test子流程/peihuoclass
product123
number456.0

JsUtil:params++++++++++{_flowid=6688C51C-7C8A-4204-AC50-F1EED30C2A4E}
JsUtil:webuser++++++++++++cn.myapps.core.user.action.WebUser@2708ee1b
org.mozilla.javascript.WrappedException: Wrapped java.lang.NullPointerException (11e3-b098-b117a093-876c-b3d3e668405e-1203565260292-1203565260293)..Action#24)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(Unknown Source)
at org.mozilla.javascript.NativeJavaMethod.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.callN(Unknown Source)
at org.mozilla.javascript.gen.c43._c0(RELATION(11e3-b098-b117a093-876c-b3d3e668405e-1203565260292-1203565260293)..Action:24)
at org.mozilla.javascript.gen.c43.call(RELATION(11e3-b098-b117a093-876c-b3d3e668405e-1203565260292-1203565260293)..Action)
at org.mozilla.javascript.ContextFactory.doTopCall(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.doTopCall(Unknown Source)
at org.mozilla.javascript.gen.c43.call(RELATION(11e3-b098-b117a093-876c-b3d3e668405e-1203565260292-1203565260293)..Action)
at org.mozilla.javascript.gen.c43.exec(RELATION(11e3-b098-b117a093-876c-b3d3e668405e-1203565260292-1203565260293)..Action)
at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:135)
at cn.myapps.core.workflow.element.FlowDiagram.runAction(FlowDiagram.java:1324)
at cn.myapps.core.workflow.engine.StateMachine.flowTo(StateMachine.java:487)
at cn.myapps.core.workflow.engine.StateMachine.toNext(StateMachine.java:374)
at cn.myapps.core.workflow.engine.StateMachine.manual2Next(StateMachine.java:317)
at cn.myapps.core.workflow.engine.StateMachine.doFlow(StateMachine.java:139)
at cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean.doApprove(FlowStateRTProcessBean.java:283)
at cn.myapps.core.workflow.storage.runtime.ejb.FlowStateRTProcessBean.doApprove(FlowStateRTProcessBean.java:210)
at cn.myapps.core.dynaform.document.ejb.DocumentProcessBean.doFlow(DocumentProcessBean.java:255)
at cn.myapps.core.dynaform.activity.ejb.type.FlowProcessing.doExecute4FlowProcessing(FlowProcessing.java:136)
at cn.myapps.core.dynaform.activity.ejb.type.FlowProcessing.doExecute(FlowProcessing.java:68)
at cn.myapps.core.dynaform.activity.ejb.Activity.execute(Activity.java:1442)
at cn.myapps.core.dynaform.activity.action.ActivityRunTimeAction.doAction(ActivityRunTimeAction.java:281)
at sun.reflect.GeneratedMethodAccessor600.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept

谢谢你的解答。
punk 发表于 2014-3-28 11:17:08 | 显示全部楼层
您好~确认一下flowid是否正确,再去掉doc.setFlowid(flowid);有问题再沟通。

本版积分规则

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

GMT+8, 2026-8-13 13:41

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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