🥐Aviator脚本引擎
# 依赖
使用aviator脚本语言,你需要额外依赖LiteFlow提供的脚本插件:
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-aviator</artifactId>
<version>2.11.4.2</version>
</dependency>
# 使用
你需要在你的xml中去定义node节点,以下是一个示例:
<node id="s1" name="普通脚本1" type="script" language="aviator">
<![CDATA[
use java.util.Date;
use cn.hutool.core.date.DateUtil;
let d = DateUtil.formatDateTime(new Date());
println(d);
a = 2;
b = 3;
setData(defaultContext, "s1", a*b);
]]>
</node>
在aviator中,你同样可以导入java的包名,直接调用java的方法。
在aviator中,调用java方式和其他不一样,比如我们上下文是UserContext
,在其他脚本语言中调用是用userContext.setName("jack")
,而在aviator脚本中,调用方式是setName(userContext, "jack")
,也就是method(bean, args)
这种形式,有点类似java反射的invoke形式。这点要注意下。
# 脚本类型
要注意的是,type
分为6种:
script
:普通脚本节点,脚本里无需返回。
switch_script
:选择脚本节点,脚本里需要返回选择的节点Id。
if_script
:条件脚本节点,脚本里需要返回true/false。
for_script
:数量循环节点,脚本里需要返回数值类型,表示循环次数。
while_script
:条件循环节点,脚本里需要返回true/false,表示什么条件才继续循环。
break_script
:退出循环节点,脚本里需要返回true/false,表示什么时候退出循环。
# 如何取到上下文以及和Java类进行交互
关于这部分,请详细参考脚本与Java进行交互这一章节。
帮助我们改善此文档 (opens new window)
上次更新: 2024/04/09, 18:39:17