//function jsonToJpdl(jsonString){ // this.obj=eval('('+jsonString+')'); // var aa=this.toJPDL(); // return aa; //} // //document.ready=function(){ // var message=jsonToJpdl(document.getElementById("jsonData").innerHTML); // console.log(message); // var xmp=document.getElementById("jpdl"); // xmp.innerHTML=message; //} var translate=function(){ this.bpm_type=null; this.bgmbid=null; this.obj=null; //JPDL: this.toJPDL=function(){ console.log(this) var xmlns=""; var process=document.createElement("process"); process.setAttribute("name",this.obj.bpm_name.split(".")[0]+"."+this.obj.bpm_desc+"."+this.obj.version); process.setAttribute("key",this.obj.bpm_name+"."+this.obj.version); //START var start_nodes=this.getStart(); for (var i=0;i // // // // // // // // // // // // var temp=document.createElement("temp") var on,event_listener,field,string; on=document.createElement("on"); on.setAttribute("event","start") event_listener=document.createElement("event-listener") event_listener.setAttribute("class","ss.bpm.BpmListener") //field:service field=document.createElement("field"); field.setAttribute("name","servName"); string=document.createElement("string"); string.setAttribute("value",data.service_name) field.appendChild(string); event_listener.appendChild(field); //field:type field=document.createElement("field"); field.setAttribute("name","chgType"); string=document.createElement("string"); string.setAttribute("value",this.bpm_type?this.bpm_type:this.obj.bpm_type); field.appendChild(string); event_listener.appendChild(field); //field:action field=document.createElement("field"); field.setAttribute("name","actnType"); string=document.createElement("string"); string.setAttribute("value","start") field.appendChild(string); event_listener.appendChild(field); //bgmbid:记录表格模板ID field=document.createElement("field"); field.setAttribute("name","nodeParm"); string=document.createElement("string"); string.setAttribute("value",this.generalDesc(data)); field.appendChild(string); event_listener.appendChild(field); //taskNumber field=document.createElement("field"); field.setAttribute("name","taskNum"); string=document.createElement("string"); //匿名函数,计算task 总数 string.setAttribute("value",function(THIS){ var nodes=THIS.obj["nodes"]; var count=0; for(var key in nodes){ if((nodes[key].type=="task"||nodes[key].type=="transmit")&&THIS.hasNextNode(nodes[key].id)){ count++; } } return count; }(this)) field.appendChild(string); event_listener.appendChild(field); on.appendChild(event_listener) temp.appendChild(on) //搜索 if(this.hasNextNode(data.id)){ // var relate_data=this.getNodeListById(data.id); // for(var i=0;i // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // this.getEnd=function(){ var end_nodes=this.getEndNode(); var temp,end,on,event_listener,field,string; temp=document.createElement("temp"); for(var i=0; i // // // // // // // // // // // // // // // // // // // // // // // // this.createTask=function(data,idname,agreeNode,rejectNode,options){ if(!options)options={}; var transmitTo=null; if(options.transmitTo){transmitTo=options.transmitTo}; var nodeid=data.id; if(idname){nodeid=idname} var result=[]; //声明所需要变量666666 var task,assignment_handler,field,string,on,event_listener,decision,handler,transition,agreeTo,rejectTo,relate_data; // var alllines=this.getNoRepeatNameObj()["lines"]; var allnodes=this.getNoRepeatNameObj()["nodes"]; var relatelines=this.getLineListById(data.id); // if(data.rejectnode&&nodeid.indexOf("rejectnode")==-1){ // // rejectTo=nodeid+"rejectnode"; // } //计算已经画好的线 for(var i=0 ;i"; service=this.translateURL(temp,tempAppName); } service=eval("("+service+")") //{service:{name:'bpm_wdzy_zzy_tj',dest:'jw.zy.wczy',width:697,height:445,title:'完成作业'}} result="{service:{name:'"+data.service_name+"',dest:'"+data.service_dest+"'" +(data.service_param?(",param:{"+data.service_param+"}" ):"") +(",width:"+service.width) +(",height:"+service.height) +(",title:'"+service.title+"'") +(data.maxHeight?(",maxHeight:{"+data.maxHeight+"}"):"") +(data.minHeight?(",minHeight:{"+data.minHeight+"}"):"") +"}}" return result }).apply(this) ) task.setAttribute("name",nodeid+"chaintask"); assignment_handler=document.createElement("assignment-handler"); assignment_handler.setAttribute("class","ss.bpm.asg.TaskAsg"); // service string=document.createElement("string"); string.setAttribute("value", (data.service_name.indexOf(".")==-1?data.service_name:data.service_name.split(".")[1])) field=document.createElement("field"); field.setAttribute("name","servName"); field.appendChild(string); assignment_handler.appendChild(field) // form string=this.createDomElement("string",{value:(function(){ var result=""; var service="",Iservice="",Cservice=""; if(data.service_name){ var tempAppName=null; /* 改 @service。Lin var temp=("@service{name:'"+data.service_name+"',dest:'"+data.service_dest+"'" +((data.service_param)?(",param:{"+data.service_param+"}"):("")) +"}@") */ var temp = ""; service=this.translateURL(temp,tempAppName); } if(data.Cservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=("@service{name:'"+data.Cservice_name +"',dest:'"+data.Cservice_dest+"'" +((data.Cservice_param)?(",param:{"+data.Cservice_param+"}"):("")) +"}@") */ var temp = ""; Cservice=this.translateURL(temp,tempAppName); } if(data.Iservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=(("@service{name:'"+data.Iservice_name+"',dest:'" +data.Iservice_dest+"'" +((data.Iservice_param)?(",param:{"+data.Iservice_param+"}"):("")) +"}@")) */ var temp = ""; Iservice=this.translateURL(temp,tempAppName); } result="{service:"+service +(!Cservice?"":(",Cservice:"+Cservice)) +(!Iservice?"":(",Iservice:"+Iservice)) +"}" // result=JSON.stringify(eval("("+result+")")) // result=result.replace(/&/,"&") return result }).apply(this)}) field=document.createElement("field"); field.setAttribute("name","handleUrl"); field.appendChild(string); assignment_handler.appendChild(field); // scope string=document.createElement("string"); var scope=this.makeScope( data.assignee); string.setAttribute("value",scope) field=document.createElement("field"); field.setAttribute("name","dictName"); field.appendChild(string); assignment_handler.appendChild(field) // scopeParam if(data.scopeParam&&data.scopeParam!=""){ string=document.createElement("string"); string.setAttribute("value",data.scopeParam) field=document.createElement("field"); field.setAttribute("name","scopeParm"); field.appendChild(string); assignment_handler.appendChild(field); } // title string=document.createElement("string"); string.setAttribute("value",data.message_title) field=document.createElement("field"); field.setAttribute("name","msgTitle"); field.appendChild(string); assignment_handler.appendChild(field) // content string=this.createDomElement("string",{value:data.message_content}) field=document.createElement("field"); field.setAttribute("name","msgCont"); field.appendChild(string); assignment_handler.appendChild(field); // desc var descMessage=this.generalDesc(data); string=this.createDomElement("string",{value:descMessage}) field=document.createElement("field"); field.setAttribute("name","nodeParm"); field.appendChild(string); assignment_handler.appendChild(field); //beforeservice if(data.Bservice_name&&data.Bservice_name.length>0){ var bservice=data.Bservice_name // bservice=((bservice.indexOf(".")==-1)?(getURLParam("thisAppName")+"."+bservice):(bservice)) string=this.createDomElement("string",{value:bservice}) field=document.createElement("field"); field.setAttribute("name","b4ServName"); field.appendChild(string); assignment_handler.appendChild(field); } // taskNo //部门审核,以后可作扩展。。。。 string=this.createDomElement("string",{value:"部门内审核"}); field=this.createDomElement("field",{name:'chain'}); field.appendChild(string); assignment_handler.appendChild(field); task.appendChild(assignment_handler); // // // // // // // on=document.createElement("on"); on.setAttribute("event","end"); event_listener=document.createElement("event-listener"); event_listener.setAttribute("class","ss.bpm.BpmListener") field=document.createElement("field"); field.setAttribute("name","actnType"); string=document.createElement("string"); string.setAttribute("value","completeTask") field.appendChild(string); event_listener.appendChild(field) //taskNo string=document.createElement("string"); string.setAttribute("value",data.step||0) field=document.createElement("field"); field.setAttribute("name","taskNo"); field.appendChild(string); event_listener.appendChild(field); //afterserice if(data.Aservice_name&&data.Aservice_name.length>0){ string=document.createElement("string"); var aservice=data.Aservice_name; // aservice=((aservice.indexOf(".")==-1)?(getURLParam("thisAppName")+"."+aservice):(aservice)) string.setAttribute("value",aservice) field=document.createElement("field"); field.setAttribute("name","servName"); field.appendChild(string); event_listener.appendChild(field); } on.appendChild(event_listener); task.appendChild(on); // //agree transition=this.createDomElement("transition",{name:"agree",to:(nodeid+"CirculationDecision")}) //退回同意 // if(data.duedatetype==2){ // var timer=this.createDomElement("timer",{duedate:this.calculateDueTime(data)}) // transition.appendChild(timer) // } task.appendChild(transition); //reject transition=this.createDomElement("transition",{name:"reject",to:rejectTo}) task.appendChild(transition); //退回定时 // if(data.duedatetype==1){ // var timer=this.createDomElement("timer",{duedate:this.calculateDueTime(data)}) // transition.appendChild(timer) // } // result.push(task.cloneNode(true)) decision=this.createDomElement("decision",{name:(nodeid+"CirculationDecision")}); handler =this.createDomElement("handler",{class:"wd.core.bpm.decisionHandler.CirculationDecision"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+""}) decision.appendChild(transition) transition=this.createDomElement("transition",{name:"finish",to:nodeid}) decision.appendChild(transition) result.push(decision.cloneNode(true)) //非部门内审核 }else{ var task,assignment_handler,field,string,on,event_listener; task=document.createElement("task"); // task.setAttribute("form","@service{name:'"+data.service_name+"',dest:'"+data.service_dest+"'}@"); if(this.isInForeachAndJoin(data.id)&&!options.noForeach){ task.setAttribute("candidate-groups","#{user}") } if(options.candidateGroups){ task.setAttribute("candidate-groups",options.candidateGroups) } task.setAttribute("form",(function(){ var result=""; var service="",Iservice="",Cservice=""; if(data.service_name){ var tempAppName=null; /* 改 @service。Lin var temp=("@service{name:'"+data.service_name+"',dest:'"+data.service_dest+"'" +((data.service_param)?(",param:{"+data.service_param+"}"):("")) +"}@") */ var temp = ""; service=this.translateURL(temp,tempAppName); // } // 再移到 return result 前,支持执行节点,"; service=this.translateURL(temp,tempAppName); } if(data.Cservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=("@service{name:'"+data.Cservice_name +"',dest:'"+data.Cservice_dest+"'" +((data.Cservice_param)?(",param:{"+data.Cservice_param+"}"):("")) +"}@") */ var temp = ""; Cservice=this.translateURL(temp,tempAppName); } if(data.Iservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=(("@service{name:'"+data.Iservice_name+"',dest:'" +data.Iservice_dest+"'" +((data.Iservice_param)?(",param:{"+data.Iservice_param+"}"):("")) +"}@")); */ var temp = ""; Iservice=this.translateURL(temp,tempAppName); } if(data.Fservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=(("@service{name:'"+data.Fservice_name+"',dest:'" +data.Fservice_dest+"'" +((data.Fservice_param)?(",param:{"+data.Fservice_param+"}"):("")) +"}@")) */ var temp =""; Fservice=this.translateURL(temp,tempAppName); } /* 再改,支持执行节点 -- 0){ var bservice=data.Bservice_name // bservice=((bservice.indexOf(".")==-1)?(getURLParam("thisAppName")+"."+bservice):(bservice)) string=this.createDomElement("string",{value:bservice}) field=document.createElement("field"); field.setAttribute("name","b4ServName"); field.appendChild(string); assignment_handler.appendChild(field); } if(data.taskChain&&data.taskChain==1&&!options.nochain){ //部门审核,以后可作扩展。。。。 string=this.createDomElement("string",{value:"部门内审核"}); field=this.createDomElement("field",{name:'chain'}); field.appendChild(string); assignment_handler.appendChild(field); } task.appendChild(assignment_handler); // // // // // // // on=document.createElement("on"); on.setAttribute("event","end"); event_listener=document.createElement("event-listener"); event_listener.setAttribute("class","ss.bpm.BpmListener") field=document.createElement("field"); field.setAttribute("name","actnType"); string=document.createElement("string"); string.setAttribute("value","completeTask") field.appendChild(string); event_listener.appendChild(field) //taskNo string=document.createElement("string"); string.setAttribute("value",data.step||0) field=document.createElement("field"); field.setAttribute("name","taskNo"); field.appendChild(string); event_listener.appendChild(field); //afterserice if(data.Aservice_name&&data.Aservice_name.length>0){ string=document.createElement("string"); var aservice=data.Aservice_name; // aservice=((aservice.indexOf(".")==-1)?(getURLParam("thisAppName")+"."+aservice):(aservice)) string.setAttribute("value",aservice) field=document.createElement("field"); field.setAttribute("name","servName"); field.appendChild(string); event_listener.appendChild(field); } on.appendChild(event_listener); task.appendChild(on); // if(this.hasNextNode(data.id)){ // //非部门内审核 // //task一条分支, // if(relate_data.length==1){ // agreeTo=this.makeTransitionToName(relate_data[0],1); // rejectTo=this.makeTransitionToName(relate_data[0],2) // } // //task两条分支,一条同意,一条退回 // if(relate_data.length==2){ // var line1,line2,node1,node2; // node1=relate_data[0];node2=relate_data[1]; // line2=this.getLine(data.id,relate_data[1].id) // line1=this.getLine(data.id,relate_data[0].id); // if(line1.id==line2.id){ // var lines=this.getLineListById(data.id); // line1=lines[0]; // line2=lines[1]; // } // // // if(line2.status=="reject"){ // // agree:node1 reject:node2 // agreeTo=this.makeTransitionToName(node1,1); // rejectTo=this.makeTransitionToName(node2,0) // }else if(line1.status=="reject"){ // //agree:node2 reject:node1 // agreeTo=this.makeTransitionToName(node2,1) // rejectTo=this.makeTransitionToName(node1,0) // }else{ // alert("出错了!2222"+data.name+" "+data.id) // } // } //并行task,同意和退后都是向前 if(this.isInForeachAndJoin(data.id)){ rejectTo=agreeTo; } // //agree if(false&&data.subprocess_key&&data.usesubprocess&&data.usesubprocess==1){ //动态子流程 transition=this.createDomElement("transition",{name:"agree",to:(nodeid+"subprocessdecision")}) var decision,handler,field,string; decision=document.createElement("decision"); decision.setAttribute("name",nodeid+"subprocessdecision"); handler=document.createElement("handler"); handler.setAttribute("class","ss.bpm.dec.impl.SubbpmDecHandle"); // ,"wd.core.bpm.decisionHandler.SubprocessDecision")。Lin // subprocesskey field=document.createElement("field"); field.setAttribute("name","subbpmName"); // ,"subprocesskey")。Lin string=document.createElement("string"); string.setAttribute("value",data.subprocess_key); field.appendChild(string); handler.appendChild(field); // startfunction if(data.subprocess_startfunction){ field=document.createElement("field"); field.setAttribute("name","subbpmServName"); // ,"startfunction")。Lin string=document.createElement("string"); string.setAttribute("value",data.subprocess_startfunction); field.appendChild(string); handler.appendChild(field); } handler.appendChild(field); decision.appendChild(handler); var translate2 // agree transition2=this.createDomElement("transition",{name:"agree",to:this.getEndNode()[0].agree_name}); decision.appendChild(transition2) // reject transition2=this.createDomElement("transition",{name:"reject",to:this.getEndNode()[0].reject_name}); decision.appendChild(transition2) // subprocess transition2=this.createDomElement("transition",{name:"subprocess",to:nodeid+"subprocess"}); decision.appendChild(transition2) // back transition2=this.createDomElement("transition",{name:"back",to:nodeid}); decision.appendChild(transition2) // default transition2=this.createDomElement("transition",{name:"default",to:agreeTo}); decision.appendChild(transition2) transition2=this.createDomElement("transition",{to:agreeTo}); decision.appendChild(transition2) result.push(decision) // // // // // // var subprocess=this.createDomElement("sub-process",{name:(nodeid+"subprocess"),"sub-process-key":"DynamicProcess",outcome:"#{subprocessresult}"}) var parameter_in,parameter_out; parameter_in=this.createDomElement("parameter-in",{"var":"subbpmName",subvar:data.subprocess_key}) // {"var":"subprocesskey",。Lin subprocess.appendChild(parameter_in) if(data.subprocess_startfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"subbpmServName",subvar:data.subprocess_startfunction}) // {"var":"startfunction",。Lin subprocess.appendChild(parameter_in) } if(data.subprocess_endfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"endfunction",subvar:data.subprocess_endfunction}) // {"var":"endfunction",。先不改,没用到。Lin subprocess.appendChild(parameter_in) } var transition2; transition2=this.createDomElement("transition",{to:agreeTo}); subprocess.appendChild(transition2); transition2=this.createDomElement("transition",{name:"agree",to:agreeTo}); subprocess.appendChild(transition2); result.push(subprocess) transition=this.createDomElement("transition",{name:"agree",to:(nodeid+"subprocessdecision")}) //定时同意 // if(data.duedatetype==2){ // var timer=this.createDomElement("timer",{duedate:this.calculateDueTime(data)}) // transition.appendChild(timer) // } task.appendChild(transition); }else{ transition=this.createDomElement("transition",{name:"agree",to:agreeTo}) // //定时同意 // if(data.duedatetype==2){ // var timer=this.createDomElement("timer",{duedate:this.calculateDueTime(data)}) // transition.appendChild(timer) // } task.appendChild(transition); } //reject transition=this.createDomElement("transition",{name:"reject",to:rejectTo}) task.appendChild(transition); if(transmitTo){ transition=this.createDomElement("transition",{name:"transmit",to:transmitTo}) task.appendChild(transition); } // //退回定时 // if(data.duedatetype==1){ // var timer=this.createDomElement("timer",{duedate:this.calculateDueTime(data)}) // transition.appendChild(timer) // } result.push(task.cloneNode(true)) // } } return result } this.createSecondTask=function(data){ var nodeid=data.id; var result=[]; //声明所需要变量666666 var task,assignment_handler,field,string,on,event_listener,decision,handler,transition,agreeTo,rejectTo,relate_data; var allnodes=this.getNoRepeatNameObj()["nodes"]; var relatelines=this.getLineListById(data.id); // if(data.rejectnode&&nodeid.indexOf("rejectnode")==-1){ // rejectTo=nodeid+"rejectnode"; // } //计算已经画好的线 for(var i=0 ;i * 。(错了。应该是 "node_16" * 。(多了 * 。(多了 * * * 。(多了 * * * * * * * 。(又回到了刚开始的 "node_13RejectDecision" /// 这里生成了 。(错了。应该是 "node_16"。Lin transition=this.createDomElement("transition",{to:rejectTo}) /// decision.appendChild(transition) if(data.rejectnode){ /// 这里生成了 。(多了。Lin transition=this.createDomElement("transition",{name:"rejectnode",to:nodeid+"RejectNode"}) /// decision.appendChild(transition); } result.push(decision.cloneNode(true)) if(data.rejectnode){ var taskData=this.getNoRepeatNameObj()["nodes"]; //rejectnodetask /// 这里生成了 。(多了。Lin result.push(this.createTask(taskData[data.rejectnode],nodeid+"RejectNode", nodeid+"RejectNodeDecision",nodeid+"RejectNodeDecision", {notTaskChain:true, noForeach:true})[0]); /// // //rejectnodedecision /// 这里生成了 。(多了。Lin decision=this.createDomElement("decision",{name:(nodeid+"RejectNodeDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.RejNodeDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"ChainFinishDecision"}) decision.appendChild(transition) /// result.push(decision.cloneNode(true)) } */ ///// Lin /// 改为 。Lin // rejectTo 值为 "退回" if (data.rejectnode) { transition = this.createDomElement("transition", {to:data.rejectnode}) } else { transition = this.createDomElement("transition", {to:rejectTo}) } /// decision.appendChild(transition) result.push(decision.cloneNode(true)) ///// //startdecision decision=this.makeStartDecision(data,nodeid+"ChainStartDecision"); result.push(decision.cloneNode(true)) //chainstartdecision decision=this.createDomElement("decision",{name:(nodeid+"ChainStartDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.ChainDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"SubprocessDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"agree",to:nodeid+"AgreeDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"reject",to:nodeid+"RejectDecision"}) decision.appendChild(transition) result.push(decision.cloneNode(true)) //subprocessdecision decision=this.createDomElement("decision",{name:(nodeid+"SubprocessDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.SubbpmDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"FirstTaskStartDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"subprocess",to:(nodeid+"Subprocess")}) decision.appendChild(transition); result.push(decision.cloneNode(true)) //subprocess var subprocess=this.createDomElement("sub-process",{name:(nodeid+"Subprocess"),"sub-process-key":"DynamicProcess",outcome:"#{subprocessresult}"}) var parameter_in,parameter_out; parameter_in=this.createDomElement("parameter-in",{"var":"subbpmName",subvar:data.subprocess_key}) // {"var":"subprocesskey",。Lin subprocess.appendChild(parameter_in) if(data.subprocess_startfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"subbpmServName",subvar:data.subprocess_startfunction}) // {"var":"startfunction",。Lin subprocess.appendChild(parameter_in) } if(data.subprocess_endfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"endfunction",subvar:data.subprocess_endfunction}) // {"var":"endfunction",。先不改,没用到。Lin subprocess.appendChild(parameter_in) } var transition2; transition2=this.createDomElement("transition",{to:(nodeid+"FirstTaskStartDecision")}); subprocess.appendChild(transition2); transition2=this.createDomElement("transition",{name:"agree",to:(nodeid+"FirstTaskStartDecision")}); subprocess.appendChild(transition2); result.push(subprocess.cloneNode(true)); //firsttaskstartdecision decision=this.createDomElement("decision",{name:(nodeid+"FirstTaskStartDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.FstTaskDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"FirstTask"}) decision.appendChild(transition) result.push(decision.cloneNode(true)) //firsttask result.push(this.createTask(data,nodeid+"FirstTask",nodeid+"SecondSubprocessDecision",nodeid+"SecondSubprocessDecision",{notTaskChain:true})[0]); //secondsubprocessdecision decision=this.createDomElement("decision",{name:(nodeid+"SecondSubprocessDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.SndSubbpmDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"FirstTaskFinishDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"subprocess",to:(nodeid+"SecondSubprocess")}) decision.appendChild(transition); result.push(decision.cloneNode(true)) //secondsubprocess var subprocess=this.createDomElement("sub-process",{name:(nodeid+"SecondSubprocess"),"sub-process-key":"DynamicProcess",outcome:"#{subprocessresult}"}) var parameter_in,parameter_out; parameter_in=this.createDomElement("parameter-in",{"var":"subbpmName",subvar:data.subprocess_key}) // {"var":"subprocesskey",。Lin subprocess.appendChild(parameter_in) if(data.subprocess_startfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"subbpmServName",subvar:data.subprocess_startfunction}) // {"var":"startfunction",。Lin subprocess.appendChild(parameter_in) } if(data.subprocess_endfunction){ parameter_in=this.createDomElement("parameter-in",{"var":"endfunction",subvar:data.subprocess_endfunction}) // {"var":"endfunction",。先不改,没用到。Lin subprocess.appendChild(parameter_in) } var transition2; transition2=this.createDomElement("transition",{to:(nodeid+"FirstTaskFinishDecision")}); subprocess.appendChild(transition2); transition2=this.createDomElement("transition",{name:"agree",to:(nodeid+"FirstTaskFinishDecision")}); subprocess.appendChild(transition2); transition2=this.createDomElement("transition",{name:"reject",to:(nodeid+"FirstTaskFinishDecision")}); subprocess.appendChild(transition2); result.push(subprocess); //firsttaskfinishdecision decision=this.createDomElement("decision",{name:(nodeid+"FirstTaskFinishDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.FstTaskEndDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"SecondTask"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"agree",to:nodeid+"AgreeDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"reject",to:nodeid+"RejectDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"chaincontinue",to:nodeid+"ChainFinishDecision"}) decision.appendChild(transition); result.push(decision.cloneNode(true)) //secondtask result.push(this.createTask(data,nodeid+"SecondTask",nodeid+"SecondTaskFinishDecision",nodeid+"SecondTaskFinishDecision", {notTaskChain:true, scope:"sqry", nochain:true})[0]); //secondtaskfinishdecision decision=this.createDomElement("decision",{name:(nodeid+"SecondTaskFinishDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.SndTaskEndDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{name:"chaincontinue",to:nodeid+"ChainFinishDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"agree",to:nodeid+"AgreeDecision"}) decision.appendChild(transition); transition=this.createDomElement("transition",{name:"reject",to:nodeid+"RejectDecision"}) decision.appendChild(transition); result.push(decision.cloneNode(true)); //chainfinishdecision decision=this.createDomElement("decision",{name:(nodeid+"ChainFinishDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.ChainEndDec"}) decision.appendChild(handler); transition=this.createDomElement("transition",{to:nodeid+"ChainStartDecision"}) decision.appendChild(transition); result.push(decision.cloneNode(true)); // console.log(result) return result } this.getTask=function(){ var temp=document.createElement("temp"); var taskData=this.getNoRepeatNameObj()["nodes"]; var startnode=this.getStartNode(); for(var key in taskData) { if(taskData[key].type=="task"){ var data=taskData[key]; if(!this.hasNextNode(data.id)){continue} if(true||startnode.secondpersion&&startnode.secondpersion==1){ var t=this.createSecondTask(data); // console.log(t) if(t&&t.length>0){ for(var i=0;i0){ if(data.rejectnode&&data.rejectnode!=""){ var t2=this.createTask(taskData[data.rejectnode],data.id+"rejectnode",data.id,true); t=t.concat(t2) } for(var i=0;i0){ rejectTo=this.makeTransitionToName(toNode,1); }else{ agreeTo=this.makeTransitionToName(toNode,1); } } } if(!rejectTo)rejectTo=agreeTo; aa.appendChild(join) //startDecision //startdesicion aa.appendChild(this.makeStartDecision(data,data.id+"JoinFinish",data.id+"StartDecision")); //JoinFinishDecision decision=this.createDomElement("decision",{name:(nodeid+"JoinFinish")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.JoinEndDec"}) decision.appendChild(handler); decision.appendChild(this.createDomElement("transition",{"to":(nodeid+"ConfirmDecision")})); aa.appendChild(decision.cloneNode(true)) //confirmDecision decision=this.createDomElement("decision",{name:(nodeid+"ConfirmDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.SureDec"}) decision.appendChild(handler); if(data.service_name) decision.appendChild(this.createDomElement("transition",{name:"confirm","to":(nodeid+"ConfirmTask")})); decision.appendChild(this.createDomElement("transition",{"to":(nodeid+"AgreeDecision")})); aa.appendChild(decision.cloneNode(true)); if(data.service_name){ //confirmtask var confirmTask=this.createTask(data,nodeid+"ConfirmTask",nodeid+"TaskFinishDecision",nodeid+"TaskFinishDecision",{})[0]; confirmTask.removeAttribute("candidate-groups") aa.appendChild(confirmTask); //taskFinishDecision decision=this.createDomElement("decision",{name:(nodeid+"TaskFinishDecision")}); handler =this.createDomElement("handler",{class:"wd.core.bpm.group.join.TaskFinishDecision"}) decision.appendChild(handler); decision.appendChild(this.createDomElement("transition",{name:"agree","to":(nodeid+"AgreeDecision")})); decision.appendChild(this.createDomElement("transition",{name:"reject","to":(nodeid+"RejectDecision")})); aa.appendChild(decision.cloneNode(true)); } //agreeDecision decision=this.createDomElement("decision",{name:(nodeid+"AgreeDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.JoinAgrDec"}) decision.appendChild(handler); decision.appendChild(this.createDomElement("transition",{"to":(agreeTo)})); aa.appendChild(decision.cloneNode(true)); //rejectDecision decision=this.createDomElement("decision",{name:(nodeid+"RejectDecision")}); handler =this.createDomElement("handler",{class:"ss.bpm.dec.impl.JoinRejDec"}) decision.appendChild(handler); decision.appendChild(this.createDomElement("transition",{"to":(rejectTo)})); aa.appendChild(decision.cloneNode(true)); // if(this.hasNextNode(data.id)){ // var relate_data=this.getNodeListById(data.id) // for(var i=0;i"; service=this.translateURL(temp,tempAppName); } if(data.Cservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=("@service{name:'"+data.Cservice_name +"',dest:'"+data.Cservice_dest+"'" +((data.Cservice_param)?(",param:{"+data.Cservice_param+"}"):("")) +"}@") */ var temp = ""; Cservice=this.translateURL(temp,tempAppName); } if(data.Iservice_name){ var tempAppName=null; /* 改 @service。Lin var temp=(("@service{name:'"+data.Iservice_name+"',dest:'" +data.Iservice_dest+"'" +((data.Iservice_param)?(",param:{"+data.Iservice_param+"}"):("")) +"}@")); */ var temp = ""; Iservice=this.translateURL(temp,tempAppName); } result="{wd:null" +(!service?"":(",p_service:"+service)) +(!Cservice?"":(",p_Cservice:"+Cservice)) +(!Iservice?"":(",p_Iservice:"+Iservice)) +"}" return result }).apply(this)}) field=document.createElement("field"); field.setAttribute("name","handleUrl"); field.appendChild(string); handler.appendChild(field); } if(data.subprocesskey){ string=this.createDomElement("string",{value:data.subprocesskey}) field=document.createElement("field"); field.setAttribute("name","subbpmName"); // ,"subprocesskey")。Lin field.appendChild(string); handler.appendChild(field); } //startfunction if(data.startfunction){ string=this.createDomElement("string",{value:data.startfunction}) field=document.createElement("field"); field.setAttribute("name","subbpmServName"); // ,"startfunction")。Lin field.appendChild(string); handler.appendChild(field); } //endfunction if(data.endfunction){ string=this.createDomElement("string",{value:data.endfunction}) field=document.createElement("field"); field.setAttribute("name","aftServName"); // ,"endfunction")。没有出现过