平台提供的获取流程模版的函数,但同一个流程有多个流程模版都有权限时是随机取的其中一个,如果需要根据业务数据选择不同的模版,可以自己定义一个函数实现
本例是根据流程模版名称获取不同的流程模版的,到SA_ProcessTemplate获取sName为需要的值时主键值并返回
函数的java代码定义如:

	public static String flowTemp(String temp) {

		String ksql = "select t from SA_ProcessTemplate t join SA_ResourceControl rc on t=rc.sResourceID where " + "rc.sTypeID='PROCESS_TEMPLATE2' and t.sValidState=1 "
				+ "and t.sName=:temp and t.sKindID='template' and t.sTypeID='PROCESS_TEMPLATE' ";
		HashMap<String, Object> params = new HashMap<String, Object>();
		params.put("temp", temp);
		Table table = KSQL.select(ksql, params, "/appdemo/test/data", null);
		Iterator it = table.iterator();
		while (it.hasNext()) {
			Row localRow = (Row) it.next();
			String template = localRow.getString("t");
			if (Utils.isNotEmptyString(template))
				return template;
		}
		return null;
	}

函数的定义如下:

	<fn name="flowTempFn" category="自定义" code-model="/appdemo/test/logic/code" code="TestFn.flowTemp" type="String">
		<label language="zh_CN">选择流程模版</label>
		<parameter type="String" name="temp"></parameter>
	</fn>

在process文件的启动规则中设置流程模版时就可以用flowTempFn函数
process

其中用relationValue 取到业务数据中填写的数据,做为flowTempFn的参数