ERPNext 允许你通过使用 从以下位置获取(Fetch From) 属性,将链接文档中的值提取到另一个字段中。当一个字段应自动显示所选链接记录中的信息时,此功能非常有用。
例如,当用户选择一个 客户(Customer) 时,你可能希望自动显示该客户的区域、税号、客户组或客户主数据中的其他字段。无需编写客户端脚本,你可以通过字段设置中的 从以下位置获取(Fetch From) 来配置此功能。
https://www.youtube.com/watch?v=78Yp_OdXnBI
“从以下位置获取”的工作原理
“从以下位置获取”功能与 链接(Link) 字段配合使用。
其格式为:
link_fieldname.field_to_fetch
其中:
link_fieldname是当前 DocType 中链接字段的字段名。field_to_fetch是链接的 DocType 中的字段名。
当用户在链接字段中选择一个值时,ERPNext 会读取所选的链接文档,并将指定的字段值复制到当前字段中。
示例
假设你在 销售订单(Sales Order) 上有一个名为 客户区域(Customer Territory) 的自定义字段,并且你希望它自动从所选客户中获取区域信息。
在这种情况下:
- 销售订单上的链接字段是
customer。 - 要从客户中获取的字段是
territory。 - “从以下位置获取”的值应为:
customer.territory
当用户在销售订单中选择一个客户时,ERPNext 会获取该客户的区域,并将其填入“客户区域”字段中。
配置“从以下位置获取”的步骤
- 转到 自定义表单(Customize Form)。
- 选择要显示获取值的 DocType。
- 添加或选择应显示获取值的目标字段。
- 在字段设置中,使用以下格式输入 从以下位置获取(Fetch From) 的值:
link_fieldname.field_to_fetch
- 保存自定义设置。
- 重新加载表单,并通过选择链接文档进行测试。
另一个示例
如果你希望从所选供应商中获取 供应商组(Supplier Group) 到采购订单上的自定义字段中:
- 链接字段:
supplier - 要获取的字段:
supplier_group - “从以下位置获取”的值:
supplier.supplier_group
当选择供应商时,ERPNext 会将供应商组获取到目标字段中。
重要说明
- 仅当源字段在链接的 DocType 上可用时,“从以下位置获取”功能才有效。
- 请使用 字段名(fieldname),而不是字段标签。例如,使用
customer_group,而不是Customer Group。 - 目标字段应具有兼容的字段类型。例如,将文本获取到数据(Data)字段,将日期获取到日期(Date)字段,并在适当时将链接记录获取到链接(Link)字段。
- “从以下位置获取”最适合简单的单向获取。如果该值需要复杂的条件、计算或多个依赖更新,请改用客户端脚本。
- 如果链接文档中的值稍后发生更改,现有文档可能不会自动更新,除非链接字段被更改,或者根据表单行为刷新并保存文档。
常见错误
- 使用标签而不是字段名:
customer.Customer Group将不起作用。请使用customer.customer_group。 - 使用了错误的链接字段: 第一部分必须是当前表单上链接字段的字段名。
- 从不存在的字段获取: 请检查链接的 DocType 以确认确切的字段名。
- 期望复杂的逻辑: “从以下位置获取”只是复制一个值。它不能替代业务逻辑或验证。
何时使用“从以下位置获取”
在以下情况下使用“从以下位置获取”:
- 一个字段应显示来自所选客户、供应商、物料、员工、项目或其他链接记录的值。
- 该值是信息性的,并跟随所选的链接文档。
- 你希望进行无代码配置,而不是编写客户端脚本。
- 获取规则很简单,不需要条件或计算。
相关主题
- 自定义表单(Customize Form)
- 自定义字段(Custom Field)
- 客户端脚本(Client Script)
- DocType
- 链接字段(Link Field)