从链接文档类型更新字段

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 会获取该客户的区域,并将其填入“客户区域”字段中。

配置“从以下位置获取”的步骤

  1. 转到 自定义表单(Customize Form)。
  2. 选择要显示获取值的 DocType。
  3. 添加或选择应显示获取值的目标字段。
  4. 在字段设置中,使用以下格式输入 从以下位置获取(Fetch From) 的值:
link_fieldname.field_to_fetch
  1. 保存自定义设置。
  2. 重新加载表单,并通过选择链接文档进行测试。

另一个示例

如果你希望从所选供应商中获取 供应商组(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)