Java中启动流程

需要引入
import com.justep.system.process.ProcessControl;
import com.justep.system.process.ProcessUtils;

方法一介绍

List<Map<String, String>> startProcess (String processFullName, String name, String sData1, String executor)
返回的是待办任务的信息,每个待办任务是列表中的一项,每项是一个Map,包括process, activity和task信息。

参数说明:
String processFullName 被启的流程的全路径
String name 流程实例的标题
String sData1 关联的业务数据
String executor 流程实例以及第一个待办任务的执行者FID,当这个值为空时,优先取当前用户有权限的人员成员,否则随机获取当前用户的一个人员成员

如下:

	public static void startAction1(String sData1){
		String process = ContextHelper.getActionContext().getProcess().getFullName2();
		 List<Map<String, String>> list = ProcessUtils.startProcess(process, "代码控制启动流程", sData1, "/ORG01.ogn/PSN01@ORG01.psm");
         for (Map<String, String> m : list) {
                 String task = m.get("task");
         }
	}

方法二介绍

List<Map<String, String>> startProcess (String processFullName, Map<String, Object> relations, com.justep.system.process.ProcessControl control, List<String> tokens, String executor)
返回的是待办任务的信息,每个待办任务是列表中的一项,每项是一个Map,包括process, activity和task信息。

参数说明:
String processFullName 被启的流程的全路径
Map<String, Object> relations 流程实例的属性值列表
com.justep.system.process.ProcessControl control 流程控制信息
List<String> tokens
String executor 流程实例以及第一个待办任务的执行者FID,当这个值为空时,优先取当前用户有权限的人员成员,否则随机获取当前用户的一个人员成员

如下:

	public static void startAction2(String sData1) {
		String process = ContextHelper.getActionContext().getProcess().getFullName2();
		Map<String, Object> varMap = new HashMap<String, Object>();
		varMap.put("sData1", sData1);
		varMap.put("sData2", "aa");
		List<String> ls = new ArrayList<String>();
		List<Map<String, String>> list = ProcessUtils.startProcess(process, varMap, null, ls, "/ORG01.ogn/PSN01@ORG01.psm");
		for (Map<String, String> m : list) {
			String task = m.get("task");
		}
	}
说明:startProcess 方法中的executor参数
如果是当前人,可以使用
ContextHelper.getPersonMember().getFID();
如果不是当前人,且知道人的id的话,可以使用
OrgUtils.findOrgUnitsByID(sPersonID).get(0).getFID();

js中启动流程

可以通过process组件的提供的API实现

start( process, name, data, options)启动流程
参数说明:
process 流程标识的全称, 值可以为null
name 流程实例名称, 值可以为null
data 流程关联的业务数据, 必须有值
options 可选参数
		是一个json格式, 有以下三个参数executor,onSuccess和onError,
		executor: 表示首环节的执行者,可以不指定, 这时默认就是当前人员成员;
		onSuccess: 表示启动流程成功后的回调函数, 回调函数的参数event结构如下:{"source":组件的js对象};
		onError: 表示启动流程失败后的回调函数 回调函数的参数event结构如下:{"source":组件的js对象};
		格式如下:
			{
				"executor": {String}, 
				"onSuccess": {Function}, 
				"onError": {Function}
			}

如下:

		var process = this.comp("process");
		var data = this.comp("mainData");
		var id = data.getCurrentRowID();
		process.start(this.getContext().getProcess(), null, id);