# 工作流

通过工作流,您可以在ERPNext中重新定义特定流程/工作流的审批方式。

您可以为ERPNext工作流设置多个审批级别。为了允许多个人提交多个请求,由多个用户进行审批,ERPNext需要您填写工作流条件。ERPNext会在提交前跟踪多个权限。

考虑这样一个场景,对报价单需要多个级别的审批。销售人员(具有“销售用户”角色的用户)将创建一个报价单。然后由销售主管(具有“销售经理”角色的用户)批准或拒绝。如果被销售主管批准,再由区域经理(具有“区域经理”角色的用户)进一步批准或拒绝。

要创建工作流和过渡规则,请转到:

首页 > 设置 > 工作流

一旦创建了工作流,您可以通过工作流操作对其进行操作。

# 1. 先决条件

在创建工作流之前,建议先创建以下内容:

  • 工作流操作

  • 工作流状态,如已批准、已取消等

# 2. 如何创建工作流

  1. 转到工作流列表,点击新建。

  2. 输入工作流的名称,并选择要应用的DocType。

  3. 输入工作流的不同状态。为它们输入文档状态,选择要更新的字段,输入在“更新字段”列中,输入在“更新值”下列出的状态。

工作流状态可以根据状态有不同的颜色。例如:成功用绿色表示。文档状态:已保存 = 0,已提交 = 1,已取消 = 2。

img

  1. 输入转换规则。

img

# 2.2 创建工作流时要注意的事项

  • 在ERPNext中创建工作流本质上会覆盖常规的保存和提交工作流。因此,文档将基于您的工作流而不是预设的代码工作流进行操作。因此,如果您在创建的工作流中没有指定,可能就没有提交按钮/选项。

如果您不为文档应用工作流,并且该文档可以提交,那么它就有默认工作流,状态为:草稿 - 已提交 - 已取消。如果您正在为可提交的文档应用工作流,那么这些默认状态应由用户处理。

  • 除非文档已提交,否则无法取消。

  • 如果您希望提供取消选项,您必须编写一个工作流转换步骤,说明从已提交状态可以取消。

  • 如果“更新字段”列下的字段未更新,将使用您在“工作流状态字段”字段中设置的名称创建一个新的自定义字段。

# 2.3 工作流的其他选项

  1. 激活:勾选此选项后,所选DocType的所有其他工作流变为非激活状态。

  2. 不覆盖状态:此工作流的状态不会覆盖文档(报价单)在列表视图中的状态。

  3. 发送邮件提醒:将向用户发送电子邮件,列出接下来可能的工作流操作。

# 3. 功能

# 3.1 启用/禁用可选工作流状态

引入自版本12

在状态中,可选的工作流状态意味着该状态可能不是最终审批的一部分。

例如,已取消或已拒绝等状态可以是可选的。img

**注意:**对于可选状态,不会创建工作流操作。

# 3.2 条件

您还可以为转换适用的条件添加条件。例如,在这种情况下,如果销售代表创建的报价单总计为10万美元或更多,则需要特定角色的批准。要实现特定的转换,您可以为条件属性设置一个属性:

doc.grand_total <= 100000

1
2

这里,grand_total是报价单中“总计”字段的字段名。要查看字段的字段名,请转到菜单 > 自定义。

这可以扩展到文档的任何属性。

引入自版本13

在版本13中,您可以在条件表达式中使用日期/时间、会话、get value和get list函数。

允许的函数:

  • frappe.db.get_value

  • frappe.db.get_list

  • frappe.session

  • frappe.utils.now_datetime

  • frappe.utils.get_datetime

  • frappe.utils.add_to_date

  • frappe.utils.now

示例:

doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True)

1
2

# 4. 报价审批流程示例

当销售用户保存报价单时,文档的状态会更改为“草稿”,当点击提交时,状态会更改为“等待销售经理审批”:

img

当销售经理登录时,他可以选择批准或拒绝。如果批准,文档的状态会更改为“等待区域经理审批”。

img

当区域经理打开报价单时,他最终可以“批准”或“拒绝”。

img

# 5. 视频

# 6. 相关主题

  1. 工作流操作

  2. 分配规则

最后更新时间: 10/6/2024, 1:46:24 PM