Advanced Workflows
描述
用于灵活配置和自动化业务流程的插件。 它允许配置和自动执行超出 Redmine 标准工作流程的复杂场景。灵活的"自定义规则"系统还可以设置特定的限制。
主要功能
- 新的自定义字段格式:"日期和时间"
- 自定义规则
- 自动操作
兼容性
Redmine:5.0 - 6.0
Web浏览器:Chrome, Firefox, Safari, Edge
数据库:MySQL 5.7, MySQL 8.0, PostgreSQL 14-16, SQLite
插件:redmine_kanban, redmine_advanced_checklists, advanced_charts, appearance_custom, module_manager, periodic_reminder, user_group_editor, queries_perfect, selectbox_autocompiler, cost_calculator。
安装和更新
-
如果存在,请从 Redmine 中删除旧版本的插件。
cd redmine/plugins rm -r advanced_workflows -
将新的插件文件夹
advanced_workflows复制到redmine/plugins/。 -
在 Redmine 根文件夹中运行迁移。
bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=advanced_workflows -
停止并启动 Redmine。(在某些 Redmine 安装中(例如 Docker),重要的是停止并启动服务器,而不仅仅是重新启动。)
卸载
- 在 Redmine 根文件夹中执行卸载命令。
bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=advanced_workflows VERSION=0
- 从
redmine/plugins/中删除插件文件夹advanced_workflows。
rm -r advanced_workflows
- 停止并启动 Redmine。
配置
- 在管理 -> 角色和权限中配置用户角色。
- 在每个项目的设置中为项目启用「Advanced Workflows」模块。
- 在管理 -> 插件 -> Advanced Workflows 中检查和修改其他插件设置。
管理
"角色和权限" 部分
- 管理项目级别的规则 - 在项目中编辑规则和操作的权限。
"自定义字段"部分
Advanced Workflows 插件添加了一种新的自定义字段格式:"日期和时间"


"日期和时间" 可以用作筛选器(条件)。

可用选项:
- 下一小时 - 筛选器将包含那些"日期和时间"字段值在当前 UTC 时间之后的一小时之内的问题。

"插件"部分
在 管理 → 插件 → Advanced Workflows 中,可以配置:
- 以用户身份运行 - 可以选择一个管理员,计划操作将以其名义执行。
- 执行计划操作时的最大问题数。

"自定义规则" 部分
自定义规则允许在定义的条件内,对向用户分配问题设置限制。
在 管理 → 自定义规则 中可以创建和配置规则:

创建规则
创建时,指定名称和在项目设置中的显示:

编辑规则
创建规则后,可以编辑条件和限制。

点击规则名称将打开编辑窗口。 此处可以指定在哪些项目中启用该规则。

可能的条件
- 项目
- 跟踪标签
- 版本
- 作者
- 当前用户
- 指派给的用户组
- 作者的用户组
- 指派给的角色
- 当前用户的角色
- 问题状态
- 父任务跟踪标签
- 父任务版本
- "问题"的自定义字段,类型为"列表"、"文本"、"浮点数"、"整数"、"日期"、"日期和时间"。
- "项目"的自定义字段,类型为"列表"、"文本"、"浮点数"、"整数"、"日期"。


可能的 限制
- 指派给
- 指派给的用户组
- 指派给的角色
- 到期日
- 跟踪标签
- 版本

"自动操作" 部分
自动操作允许在指定条件内,在保存问题或按计划执行选定的操作。
在 管理 → 自动操作 中可以创建和配置 操作:

创建操作
创建时,指定名称、执行方法和在项目设置中的显示。 操作可以通过两种不同的方式执行:
- 保存时 - 在创建或编辑问题时立即执行操作。
- 按计划(cron)- 规则将根据 cron 计划定期执行。

编辑操作
创建操作后,可以编辑规则、条件和操作。

点击规则名称将打开编辑窗口。 此处可以指定在哪些项目中启用该规则。

可能的条件
- 标准问题筛选器
- 自定义问题筛选器
- 来自其他插件的问题筛选器
可能的 操作
- 指派给
- 禁止保存
- 发送邮件
- 状态
- 跟踪标签
- 项目
- 版本
- 打开的子任务版本
- 关注者
- Webhook(GET)
- Mattermost Webhook
- Telegram Webhook
- 检查清单(如果安装了 redmine_advanced_checklists 插件)


对于"发送邮件"、"Webhook(GET)"、"Mattermost Webhook"和"Telegram Webhook"操作,可以使用操作变量。

使用
启用规则和操作
创建 规则 和 操作 后,需要在项目设置中单独启用它们。
为此,请转到:
项目 → 设置 → 自定义规则,启用此项目中需要的规则。

项目 → 设置 → 自动操作,启用此项目中需要的操作。

自定义规则
满足条件时将应用的可用限制:
指派给
问题只能分配给选定的用户。

指派给的用户组
问题只能分配给属于选定用户组的用户。

指派给的角色
问题只能分配给在项目中具有选定角色的用户。

到期日
问题的到期日只能在指定的日期范围内设置。

跟踪标签
问题只能具有选定的跟踪标签。

版本
问题只能具有选定的版本。

自动操作
执行方法 "按计划"
操作将根据 cron 计划定期执行。
为使自动操作正常工作,需要在服务器的 crontab 中添加一个新命令,该命令执行 bundle exec rake advanced_workflows:run_actions
示例命令:
*/5 * * * * cd /redmine/的/绝对路径 && bundle exec rake advanced_workflows:run_actions >> /redmine/的/绝对路径/logs/cron_advanced_workflows.log
以运行 Redmine 的用户身份将此命令添加到 cron 中,将 /redmine/的/绝对路径 替换为您的 Redmine 安装文件夹的绝对路径。
cron 命令将每 5 分钟运行一次 */5 * * * *
所有标准消息都将 追加 到文件 .../logs/cron_advanced_workflows.log 中。
满足条件时将执行的可用操作:
Webhook(GET)
向指定的 URL 发送 GET 请求。用于与外部系统集成,例如与 Jira 同步。
支持所有问题字段变量。

Mattermost Webhook
向 Mattermost 频道发送消息。
- URL:Mattermost 传入 Webhook 的 URL。
- POST 数据:要发送的消息。
支持所有问题字段变量。 
Telegram Webhook
使用机器人向 Telegram 群组聊天发送消息。
- 令牌:Telegram 机器人的令牌
- 聊天 ID:添加了此机器人的聊天 ID
- POST 数据:要发送的消息
支持所有问题字段变量。 
发送邮件
向指定的邮件地址发送电子邮件。地址可以用逗号 , 或分号 ; 分隔。
支持所有问题字段变量。

版本
自动更改问题的版本。
- 替换为当前问题版本 - 将问题的版本替换为项目的当前(有效)版本。

打开的子任务版本
- 更改为 - 将所有打开的子任务的版本更改为指定的版本。
- 设置为等于问题版本 - 将所有打开的子任务的版本更改为问题的版本。

禁止保存
禁止创建/编辑问题。 
关注者
将指定的关注者添加到问题。 
状态
将问题状态更改为指定状态。 
跟踪标签
将问题跟踪标签更改为指定的跟踪标签。 
检查清单
如果安装了 redmine_advanced_checklists 插件,则可用。
当满足条件时,从模板自动创建检查清单。
使用预先准备好的模板。 
项目
将问题的项目更改为指定的项目。

如果您有任何问题或疑问,请发送电子邮件至 [email protected]