工作流

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

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

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

要创建工作流和转换规则,请前往:

首页 > 设置 > 工作流

创建工作流后,您可以通过工作流操作对其执行操作。

  1. 前提条件

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

  • 工作流操作
  • 工作流状态,例如“已批准”、“已取消”等。
  1. 如何创建工作流

  1. 前往工作流列表,点击“新建”。
  2. 工作流输入名称,并选择要应用到的文档类型。
  3. 输入工作流的不同状态。为其输入文档状态,从“更新字段”列中选择要更新的字段,在“更新值”下输入要更新成的值。

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

4. 输入转换规则。

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

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

如果您没有对文档应用工作流,并且该文档是可提交的,那么它将具有默认工作流,状态为:草稿 – 已提交 – 已取消。如果您对可提交文档应用工作流,则这些默认状态应由用户处理。

  • 文档只有在提交后才能取消。
  • 如果您希望提供取消选项,则必须编写一个工作流转换步骤,说明从“已提交”状态可以取消。
  • 如果“更新字段”列下的字段未更新,则会使用您在“工作流状态字段”字段中设置的名称创建一个新的自定义字段。

2.3 工作流的其他选项

  1. 是否启用:勾选此项后,所选文档类型的所有其他工作流将变为非活动状态。

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

  3. 发送邮件提醒:将向具有下一个可能工作流操作的用户发送电子邮件。

  4. 功能


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

在版本 12 中引入

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

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

注意: 不会为可选状态创建工作流操作。

3.2 条件

您还可以为转换添加适用条件。例如,在这种情况下,如果销售主管创建的报价单总额为 100,000 美元或以上,则必须由特定角色批准。为了实现这一点,在特定转换中,您可以为条件设置一个属性:

doc.grand_total <= 100000

这里,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. 报价单审批流程示例

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

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

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

  1. 视频

  1. 工作流操作
  2. 分配规则