如何修改流程终止对话框中“流程即将终止”信息

终止对话框中的信息是在ProcessControl的,因此可以在终止查询后事件onAfterAbortQuery中修改ProcessControl中信息实现 process文件的onAfterAbortQuery事件中如下修改: public static void orderProcessAfterAbortQuery() { ProcessControl flowControl = (ProcessControl) ContextHelper.getActionContext().getActionResult(); flowControl.setMessage("确认是否终止流转"); } .w的process组件的onAfterAbortQuery事件中如下修改: Model.prototype.processAfterAbortQuery = function(event){ event.processControl.data.message = '确认是否终止流转'; };

如何使用流程定制功能

对于已经启动的流程,在某些特殊的情况下,如果修改流程图, 不建议直接修改process文件中的流程图,可以通过流程定制来解决 流程定制可以有管理员定制或者是每个用户自己定制两种 第一种:管理员定制 1.管理员登录x5系统,打开“协同办公——任务管理——流程模版管理”功能,在“流程模板”tab页中新建选择自己要修改的流程功能,然后编辑进行修改和相关的设置。 2.在“关联组织”tab页中把创建的模板分配给相关的组织 3.在process文件的“启动规则”中设置流程模版 第二种:每个用户自己定制 1.在需要定制的流程环节中添加流转规则,设置定制类型为流程图 2.在环节对应的.w中,给按钮添加process的“流程定制”操作,在页面操作的时候不能先点流转,需要先点“流程定制”进行流程图修改,然后再做流转

流转对话框点击确定按钮时如何弹出遮罩层

在后端流程事件中执行代码比较慢时如果需要流转对话框弹点击确定时弹出遮罩层提示可以参考下面的实现 遮罩层可以用popOver实现 参考http://docs.wex5.com/bex5-process-question-list-10008/扩展这个流程或者这个环节的流转对话 在流转对话框的.w中添加popOver,并在popOver设置弹出提示信息 在确定按钮的事件中调用popOver的显示,需要注意的是把确定按钮中原来的代码放到setTimeout中执行,如下: Model.prototype.okBtnClick = function(event){ var self = this; self.comp("popOver1_1").show(); setTimeout(function(){ self.updateControl(); if (self.checkControl()){ var receiver = self.comp("windowReceive"); receiver.windowEnsure({task: self.task, action: self.action, control: self.control, options: self.options}); }},1); }; [...]

流程中接收通知的人如何在运行时的流程图中显示

运行时查看流程图时会显示流程执行者等显示,波特图中也会显示,但是发通知时设置的通知接收者是不会显示的,如果需要显示如下实现 1.在process组件的onAfterAdvance事件中获取接收人并存储 public static void noticeFlowProcessAfterAdvance() { String sNoticeExecutors = ""; ProcessControl flowControl = (ProcessControl) ContextHelper.getActionContext().getParameter("control"); List<ProcessControlItem> listToItem = flowControl.getNotices();//获取当前环节流程时所有的通知 for(int j = 0;j<listToItem.size();j++){//遍历所有的通知获取对应的执行者拼接字符串 if(j != 0) sNoticeExecutors = sNoticeExecutors+","; ProcessControlItem to = listToItem.get(j); [...]

2018-5-16发布的3.8以及之前版本待办任务查询优化

优化代码位于/BIZ/SA/task/logic/code/dsrc/TaskUtils.java的getExecutorCondition 本次优化将like换成了=,充分利用SA_TASK_SEXECUTORFID索引提升待办任务的查询效率 后面如果使用过程中再次出现性能下降,只要检查一下SA_TASK_SEXECUTORFID的索引碎片,优化一下就会好了 5.2.7版本中修改如下: public static String getExecutorCondition(String alias, Collection<PersonMember> pms, boolean useAgentProcess){ /* String result = ""; List<String> items = new ArrayList<String>(); for (PersonMember pm : pms){ String item = "'" + pm.getFID() [...]

js中如何获取流程模版中修改的当前环节显示名称

js中平台默认提供了this.getContext().getActivityLabel()可以获取当前activity显示名称 但是这个获取到的是process文件中定义的名字,获取不到流程模板中修改的名字 要获取流程模板中修改的名字需要调用action的方式,把当前任务的ID传给action,做参数到SA_Task中查询数据 如下:action中定义一个task的参数,action对应的java代码的定义 public static String getModActivityName(String task){ String ksql = "select task.sActivityName from SA_Task task where task = '"+task+"'"; Table table = KSQL.select(ksql, null, "/system/data", null); String sActivityName = ""; if(table.size()>0){ Row [...]

js中调用流转不弹出流转对话框如何通过代码修改xor选中环节

js中调用process组件的advance获取advanceExt方法是不会弹出框就可以直接流转的,这样的对于xor就有走选中的环节 如果要修改选择环节就需要有ProcessControl,执行advanceQuery是可以生成processControl的 调用advanceQuery默认的是会弹出流转对话框的,那么既要获取processControl又要控制不弹出流转对话框就可以在process组件的onBeforeAdvanceQuery事件中处理,如下: 1.在model的构成函数中定义一个实例变量this.processControl用来存储processControl var Model = function() { this.callParent(); this.processControl = ""; }; 2.放一个按钮先调用advanceQuery,再调用advanceExt Model.prototype.button1_3Click = function(event) { var task = this.getContext().getTask();// 获取当前任务id this.comp("process").advanceQuery(task);// 执行advanceQuery为了获取processControl修改processControl this.comp("process").advanceExt(task, this.processControl);// 把修改后的processControl做参数传递 }; 3.在事件中修改processControl,阻止弹出流转对话框 [...]

流转对话框如何给任务的扩展字段赋值

SA_Task中提供了以sESField、sEDField、sETField、sEIField、sEBField、sENField开头,关系类型为String、DateTime、Text、Integer、Blob、Decimal的一组扩展字段 可以根据自己需要跟扩展字段赋值把一些业务数据等存到SA_Task中 流转对话框中要给扩展字段赋值,需要自己扩展流转对话框 某个具体流程功能的流转对话框可以参考http://docs.wex5.com/bex5-process-question-list-10008/ 所有的功能都需要可以通过扩展空间的方式修改/UI2/system/service/process/dialog下的processDialog相关的.w和js文件 本例是在PC端流转对话框中添加了一个input框,把input框中的输入信息存储到sESField7中,修改的是processDialog.w和processDialog.m.js 1.在model的添加一个data,添加两个列,并设置data为自动新增 <div autoLoad="false" autoNew="true" component="$UI/system/components/justep/data/data" idColumn="rowid" xid="data1_3" xui:parent="model" xui:update-mode="insert"> <column name="rowid" type="String" xid="xid1_3"/> <column name="sESField07" type="String" xid="xid2_3"/> <rule xid="rule1_3"> <col name="rowid" xid="ruleCol1_3"> <defaultValue xid="default1_3"> <expr xid="default2_3">justep.UUID.createUUID()</expr> </defaultValue> </col> [...]

流转后如何获取生成的下个环节任务ID

在process文件的流转后事件可以通过获取当前的活动的环节实例获取对应的task值,如下: public static void andProcessAfterAdvance() { //获取流程上下文中关联的流程实例的活动的环节实例 for (ActivityInstance ai : ProcessUtils.getAI().getPI().getActiveAIs()) { String activityName = ai.getActivityName();//获取环节名称 String activity = ai.getActivity().toString(); String task = ai.getTask().getId();//获取任务ID } }

回退后如何回退目标环节的获取执行者

回退后获取回退目标环节的获取执行者跟流转后获取下一个环节的执行者机制是一样的 可以在回退后事件(onAfterBack)中通过ProcessControl中的信息获取,如下: public static void backRuleProcessAfterBack() { ProcessControl control = (ProcessControl) ContextHelper.getActionContext().getParameter("control"); for (ProcessControlItem to : control.getFlowTos()) { for (OrgUnit ect : to.getExecutors()) { String fid = ect.getFID(); String fname = ect.getFName(); System.out.println("==========人员名称sName=========" + [...]