processmaker / docker-executor-lua
ProcessMaker 4 的 Lua 脚本执行器
This package is auto-updated.
Last update: 2024-09-15 23:59:24 UTC
README
带有 LUA 运行的脚本任务执行引擎
此 Docker 镜像提供了一个隔离的保护环境来运行 ProcessMaker 4 中编写的自定义 LUA 脚本。用户创建的脚本任务应该是隔离的,但应该提供一些工具来执行最常见的任务。此 LUA 环境提供了模块,脚本任务可以利用以下库:
- dkjson
- TODO : 确定现有脚本任务中最常用的库
如何使用
执行需要主机系统上存在 data.json、config.json 和 output.json 文件。data.json 表示请求实例数据。config.json 表示针对此脚本任务的特定配置。output.json 应该是一个空白文件,它将由脚本任务的成功输出填充。调用者负责在通过命令行(或 Docker API)执行引擎之前准备这些文件。脚本任务由 script.lua 文件表示。调用者负责在通过命令行(或 Docker API)执行引擎之前准备这些文件。
脚本任务设计
编写脚本任务时,有三个全局变量可用。它们是
- data - 一个记录,表示从 data.json 加载的数据
- config - 一个记录,表示从 config.json 加载的配置
- client - 预先配置的 ProcessMaker 4 LUA SDK 客户端,通过 OAuth 身份验证访问 API
您的脚本应快速执行。一旦脚本完成,您的返回语句将被使用并转换为 JSON,然后存储在 output.json 文件中。一旦 Docker 执行完成,您应该检查 Docker 执行的返回代码。如果代码为 0,则脚本任务执行成功,您可以从 output.json 读取有效的输出。如果它是非零的,那么您应该检查 STDERR 以查看执行期间显示的错误。
示例 data.json
{ "message": "Hello World" }
示例脚本任务
-- Sample function to see if we can call it function reverse (str) return str.reverse(str) end -- Convert our message inside our imported data and return it data.message = reverse(data.message) return data
示例 output.json
{"message":"dlroW olleH"}
使用 PM4 SDK
执行器已预配置 ProcessMaker 4 SDK,即可使用。
通过调用 client.make('name')
获取实例。
以下是一个获取所有 pm4 用户的示例
users_api = client.make('users_api') filter='' order_by='id' order_direction='asc' per_page='10' include='' local users, ret2, ret3 = users_api:get_users(filter, order_by, order_direction, per_page, include) return {users=users}
有关更多信息,请参阅 ProcessMaker 4 实例上的 /api/documentation 上的 ProcessMaker API 文档
命令行使用
$ docker run -v <path to local data.json>:/opt/executor/data.json \ -v <path to local config.json>:/opt/executor/config.json \ -v <path to local script.lua>:/opt/executor/script.lua \ -v <path to local output.json>:/opt/executor/output.json \ processmaker/executor:lua \ php /opt/executor/bootstrap.lua
许可证
根据AGPL 版本 3分发
ProcessMaker (C) 2002 - 2021 ProcessMaker Inc.
有关更多信息,请访问:http://www.processmaker.com/