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

[已解决] 求流程终止按钮的需修改数据库那些字段

[复制链接]
湖南米伦 发表于 2017-4-18 16:51:31 | 显示全部楼层 |阅读模式
本帖最后由 six 于 2017-4-21 10:09 编辑

求流程终止按钮的需修改数据库那些字段
six 发表于 2017-4-19 09:28:05 | 显示全部楼层
你在流程那里新加一个叫终止的节点。不用连线。然后直接用一个doflow的方法提交到那个节点就可以了
具体可以参考这个doflow的方法
直接提交,直接审批,不用系统自带提交按钮,提交流程,自己手动写脚本提交流程doflow
http://www.teemlink.com/bbs/foru ... 4&fromuid=45778
(出处: 天翎myApps)
回复

使用道具 举报

six 发表于 2017-4-19 18:39:19 | 显示全部楼层
six 发表于 2017-4-19 09:28
你在流程那里新加一个叫终止的节点。不用连线。然后直接用一个doflow的方法提交到那个节点就可以了
具体可 ...

(function(){
                                        var relation_id =getCurrentDocument().getItemValueAsString("relation_id");
                                        var doc=findDocument(relation_id);
                                        if(doc != null){
                                        //当前流程实例ID
                                        var instance = doc.getState();
                                        var flowStateId=doc.getStateid();//当前流程实例ID
                                        var currid=getCurrentDocument().getItemValueAsString("currid");
                                       
                                        var fd = instance.getFlowVO().toFlowDiagram();
                                       
                                        var update = false;
                                        var currNode = fd.getElementByID(currid);
                                       
                                        var endNode = new Packages.cn.myapps.core.workflow.element.EndNode(fd);
                                       
                                       
                                        var label = "终止";
                                        endNode.name = label;
                                        //
                                        endNode.id= "terminate_id";
                                        println("endNode0000000000="+endNode);
                                        var nodeRTProcess =  new Packages.cn.myapps.core.workflow.storage.runtime.ejb.NodeRTProcess(getApplication());
                                        //var nodeRTProcess = createProcess("cn.myapps.core.workflow.storage.runtime.ejb.NodeRTProcessBean");
                                        println("instance1111111111111111111111111="+instance.isComplete());
                                        println("instance2222222222222222222222222="+instance.isTerminated());
                                        if(!instance.isComplete() && !instance.isTerminated()){
                                                if(instance.getNoderts()!=null && instance.getNoderts().size()>0){
                                                        for (var iterator = instance.getNoderts().iterator(); iterator.hasNext();) {
                                                                var nodert = iterator.next();
                                                                nodeRTProcess.doRemove(nodert.getId());
                                                                //nodeRTProcess.doRemoveByFlowStateRT(flowStateId);
                                                                println("nodert1111111111111111111111="+nodert);
                                                        }
                                                        instance.getNoderts().clear();
                                                        update = true;
                                                }
                                        }
                                       
                                        if(update){
                                                var actionTime = new Packages.java.util.Date();
                                                var attitude = "";
                                                //更新流程实例
                                                var user=getWebUser();
                                                instance.setAuditdate(actionTime);
                                                instance.setAuditorList("");
                                                instance.setAuditorNames("");
                                                instance.setAudituser(user.getId());
                                                instance.setTerminated(true);
                                                instance.setLastFlowOperation("8");
                                                instance.setLastModified(actionTime);
                                                instance.setLastModifierId(user.getId());
                                                instance.setNoderts(new Packages.java.util.ArrayList());
                                                instance.setStateLabel(label);
                                                var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();
                                                st.getFlowStateRTProcess(doc.getApplicationid()).doUpdate(instance);
                                                //更新流程历史
                                                st.updatePreviousRelationHIS(instance, currNode, user, actionTime);
                                                st.createOrUpdateRelationHIS(instance, currNode, endNode, user, actionTime, attitude,"", "8");
                                                //更新文档
                                       
                                                var proxy = getDocumentProcess();
        
                                                doc.setAuditdate(actionTime);
                                                doc.setAuditorList("");
                                                doc.setAuditorNames("");
                                                doc.setAudituser(user.getId());
                                                doc.setLastFlowOperation("8");
                                                doc.setLastmodified(actionTime);
                                                doc.setLastmodifier(user.getId());
                                                doc.setStateLabel(label);
                                                proxy.doCreateOrUpdate(doc, user);
                                                //更新图片
                                                st.updateImage(instance);
                                                println("st2222222222222222222222222222="+st);
                                        }
                                }
                                return "";
                                })()
回复

使用道具 举报

 楼主| 湖南米伦 发表于 2017-4-21 10:07:43 | 显示全部楼层
结帖,谢谢,值班人员
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-13 21:20

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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