当前位置: 首页 > 工具软件 > FixFlow > 使用案例 >

Fixflow表达式编辑器原理及使用说明

班凌
2023-12-01

Fixflow,做中国最好的开源流程引擎!项目地址https://github.com/fixteam/fixflow

 

        Fifxflow表达式编辑器使用说明

        Fixflow使用groovy或beanShell作为动态表达式语言,编辑器只是为了方便用户编辑这些动态语言,真正处理的还是groovy的解释器。groovy是一种类java的动态语言,java的语法基本都支持,并且有自己的简易语法,如果不了解它,那就把它当成java,按照java语法来写代码。

 

        打一个比喻,流程信息界面的任务主题,我可以理解为,可以把文本框看成private String getSubject(){ return null;}打开表达式编辑器后就相当于在编辑{}里面的方法体,你方法体里面有什么内容,fixflow并不管,你可以在方法体里面执行数据库语句,可以执行任何java代码。fixflow只关心最后一行的return "任务主题",只要返回我需要的类型String即可。

注:groovy的语法,会将最后一行作为返回值,所以你写“任务主题” ,groovy就会解释成return "任务主题"。

 

        再如跳过策略,private boolean getSkip(){return false;},我不管你里面是调用java代码也好,查询数据库也好,我只关心最后return true还是return false;

 

        至于为什么processInfo.getInitiator()这种为什么会认识,是因为为了方便,fixflow默认将ExecutionContext类的实现放到了解释器里面,详细参考GroovyScriptLanguageMgmtImpl.java  128行

// 绑定变量
if (executionContext != null) {
    groovyShell.setVariable("processInfo", executionContext);
}

 

 

所以也就是说ExecutionContext接口里面的任何方法均可以用processInfo.get***()来取。了解原理后,自己也可以扩展变量。

总结:不要把它看那么神秘,就是一个简单的文本编辑器,用来编辑java代码而已,最多会智能提示,真正解释的是groovy的解释器。了解它的原理,以后就可以简单的使用它了。

 

 类似资料: