🍧Python脚本引擎
# 依赖
使用python脚本语言,你需要额外依赖LiteFlow提供的脚本插件:
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-script-python</artifactId>
<version>2.11.4.2</version>
</dependency>
提示
python解析执行依赖Jython环境,不安装部署启动会报错(IDEA里不会报错),环境安装说明如下
一、下载安装Jython Installer
https://www.jython.org/download (opens new window)
二、Springboot启动类添加代码
Properties props = new Properties();
Properties preprops = System.getProperties();
props.put("python.home", jython安装目录);
PythonInterpreter.initialize (preprops, props, new String[]{});
# 使用
你需要在你的xml中去定义node节点,以下是一个示例:
<node id="s1" name="普通脚本1" type="script" language="python">
<![CDATA[
import json
x='{"name": "杰克", "age": 25, "nationality": "China"}'
jsonData=json.loads(x)
name=jsonData['name']
defaultContext.setData("name", name.decode('utf-8'))
a=6
b=10
if a>5:
b=5
print 'hello'
else:
print 'hi'
defaultContext.setData("s1",a*b)
]]>
</node>
上面的例子为python语法,你甚至可以引入一些python的原有的包来做逻辑。对于复杂的逻辑,推荐直接调用java类,关于如何和java互动请看下面。
提示
如果遇到中文乱码的现象,请使用decode
函数,比如:
print '你好'.decode('UTF-8')
# 脚本类型
要注意的是,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