通过工作流,您可以重写 ERPNext 中特定流程/工作流的审批方式。
您可以为 ERPNext 工作流设置多个审批级别。为了允许多人提交多个请求,并由多个用户进行审批,ERPNext 要求您填写工作流条件。ERPNext 会在提交前跟踪多个权限。
考虑一个场景,其中报价单需要多个级别的审批。销售人员(具有“销售用户”角色的用户)将创建报价单。然后由销售主管(具有“销售经理”角色的用户)批准或拒绝。如果销售主管批准,则进一步由区域经理(具有“区域经理”角色的用户)批准或拒绝。
要创建工作流和转换规则,请前往:
首页 > 设置 > 工作流
创建工作流后,您可以通过工作流操作对其执行操作。
- 前提条件
在创建工作流之前,建议先创建以下内容:
- 工作流操作
- 工作流状态,例如“已批准”、“已取消”等。
- 如何创建工作流
- 前往工作流列表,点击“新建”。
- 为工作流输入名称,并选择要应用到的文档类型。
- 输入工作流的不同状态。为其输入文档状态,从“更新字段”列中选择要更新的字段,在“更新值”下输入要更新成的值。
工作流状态可以根据状态显示不同的颜色。例如:绿色表示成功。文档状态:已保存 = 0,已提交 = 1,已取消 = 2。
4. 输入转换规则。
2.2 创建工作流时的注意事项
- 在 ERPNext 中创建工作流本质上会覆盖常规的保存和提交工作流。因此,文档将根据您的工作流运行,而不是基于预设的代码工作流。因此,如果您在创建的工作流中没有指定提交按钮/选项,则可能没有提交按钮/选项。
如果您没有对文档应用工作流,并且该文档是可提交的,那么它将具有默认工作流,状态为:草稿 – 已提交 – 已取消。如果您对可提交文档应用工作流,则这些默认状态应由用户处理。
- 文档只有在提交后才能取消。
- 如果您希望提供取消选项,则必须编写一个工作流转换步骤,说明从“已提交”状态可以取消。
- 如果“更新字段”列下的字段未更新,则会使用您在“工作流状态字段”字段中设置的名称创建一个新的自定义字段。
2.3 工作流的其他选项
-
是否启用:勾选此项后,所选文档类型的所有其他工作流将变为非活动状态。
-
不覆盖状态:此工作流的状态不会覆盖列表视图中文档(报价单)的状态。
-
发送邮件提醒:将向具有下一个可能工作流操作的用户发送电子邮件。
-
功能
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)
- 报价单审批流程示例
当销售用户保存报价单时,文档状态将更改为“草稿”,点击提交后,状态将更改为“待销售经理审批”:
当销售经理登录时,他可以批准或拒绝。如果批准,文档状态将更改为“待区域经理审批”。
当区域经理打开报价单时,他可以最终“批准”或“拒绝”它。
- 视频
6. 相关主题
- 工作流操作
- 分配规则