流程回退的时候如果要回退到首环节可以在process中添加回退规则,设置回退范围

平台默认的有一个回退规则,如果不想每个环节设置修改默认的回退规则可以通过下面的方案实现:

在process文件的onBeforeBackQuery事件中设置回退范围,如下:

	public static void backFlowProcessBeforeBackQuery() {
		RequestContext rt = ContextHelper.getRequestContext();
		rt.put(BackRule.BACK_RANGE, BackRangType.ROOT_BACK_RANGE);//设置回退范围是首环节
	}

某个环节需要设置,就在环节的onBeforeAdvance事件中处理;如果是整个流程都需要设置,就在流程的onBeforeAdvance事件中处理

所有的流程都需要设置,可以通过监听onBeforeAdvance事件设置

如果要自己放一个“回退到首环节”的按钮直接回退,可以通过下面的方案实现

定义一个action(本例是backStartAction),action定一个参数task,把要回退的任务传给action的task参数去操作
action的java代码实现如下:

	public static void backStart(String task){
		RequestContext rt = ContextHelper.getRequestContext();
		rt.put(BackRule.BACK_RANGE, BackRangType.ROOT_BACK_RANGE);//回退到首环节
		ProcessUtils.backProcess(task,null);	
	}

js中调用action代码实现如下:

	Model.prototype.button1Click = function(event){
		var task = this.getContext().getTask();
		var actiomParam = new biz.Request.ActionParam();
		actiomParam.setString("task", task);
		biz.Request.sendBizRequest({
			"context" : this.getContext(),
			"action" : "backStartAction",
			"parameters" : actiomParam,
			"callback" : function(callbackData) {
				if (callbackData.state) {
					justep.Shell.closePage();//回退成功后关闭页面
				} else
					alert("回退失败");
			}
		});
	};