简单的设置就是在BIZ层的process文件或者.w的process组件的流转查询后(AfterAdvanceQuery)事件中获取到processControl去设置
如下:process文件中的事件java代码
public static void flowProcessAfterAdvanceQuery() { ProcessControl control = ProcessUtils.getProcessContext().getProcessControl(); control.setPostscript("同意"); }
process组件中的事件js代码
Model.prototype.processAfterAdvanceQuery = function(event) { //设置附言默认值 event.processControl.setPostscript("同意"); };
如果要整个模块都设置的一样在每个流程中设置会比较麻烦,可以通过配置文件设置
在模块的根目录下创建一个config.m文件,如(my.config.m)内容如下:
<?xml version="1.0" encoding="UTF-8"?> <model xmlns="http://www.justep.com/model"> <config name="system.task.sContent.expr" value="'同意'" /> </model>
这样配置在整个模块的流程附件值都是”同意”,但是这个配置目前在流程对话框的附言区域中不会把配置的值显示出来,后续的V3.7版本中会处理这个问题
V3.7之前的版本中使用这个配置如果要设置在流转对话框的附言区域显示配置的值,可以给模块在加一个AfterAdvanceQuery的监听事件,在事件中获取值通过processControl赋值
具体监听事件的代码如下:
public static void flowProcessAfterAdvanceQuery() { Model model = ModelUtils.getModel("/appdemo");//获取config.m文件所在的目录的Model String relation = "sContent"; String name = "system.task." + relation + ".expr"; Config config = (Config) model.getObject(name, Config.TYPE);//通过config文件配置的name的值获取元素 String value = ""; if (config != null) { String expr = config.getValue();//根据获取到的元素获取配置的默认值 if (Utils.isNotEmptyString(expr)) { value = (String) ExpressEngine.calculate(expr, null, model);//执行表达式获取值 } } ProcessControl control = ProcessUtils.getProcessContext().getProcessControl(); control.setPostscript(value);//给ProcessControl中的附言赋值 }
当然配置文件也可以对每个流程进行设置,把配置文件放到流程process文件同级就可以
评一波