注意:将在版本 16 中添加
简介
工作流转换任务是在工作流的状态转换期间可以执行的操作。每个工作流转换可以链接到一组转换任务。
每个工作流转换任务可以包含以下类型的任务:
- 应用定义的操作(由每个 Frappe 应用通过 hooks.py 指定)
- 服务器脚本
- Webhooks
除此之外,每个转换任务可以是以下两种模式之一:
- 同步:这是转换任务的默认模式。当状态转换启动时,所有转换任务会逐个运行。即使其中一个任务失败,转换也会被撤销。
- 异步:可以通过勾选“异步”复选框来启用此模式。每个异步转换任务在状态转换完成后运行,这意味着它对状态完成没有影响,并且会在单独的后台作业中独立运行。
应用定义的操作
每个 Frappe 应用通过 ‘workflow_methods’ 钩子来定义它们。
通过 workflow_methods 钩子定义的任何点分路径方法必须接受 doc: Document 作为参数,该参数是正在应用转换的文档。
应用定义的任务示例如下:
# hooks.py
workflow_methods = [{"name": "Create a customer", "method":
"myapp.shop.doctype.kirana.create_customer"}]
# myapp/shop/doctype/kirana.py
def create_customer(doc):
customer = frappe.new_doc("Customer")
customer.customer_name = "Customer " + doc.name
customer.customer_type = "Individual"
customer.save()
如果任何应用提供了这些任务,它们将出现在“任务”下拉菜单中。
如果您是最终用户,您无法自行创建应用定义的操作,必须使用下面提到的服务器脚本。
服务器脚本
这些脚本也接受 doc: Document 参数,并且可以使用“工作流任务”脚本类型进行设置。
然后,这些脚本必须在转换任务中进行链接:
Webhooks
可以通过将 Webhook 的“文档事件”字段设置为 ‘workflow_transition’ 来创建它们:
然后,这些 Webhook 必须在转换任务中进行链接:
相关主题
- 工作流状态
- 工作流操作
- 工作流