首页 > 解决方案 > 订单行导入不识别产品外部 ID?

问题描述

我正在尝试将采购订单导入 odoo 并在很大程度上解决了我的问题,但是我无法使用外部 ID 更新产品列表。我可以使用数据库 ID 或产品名称,但是如果我尝试使用外部 ID,我会收到此错误:

在表“purchase_order_line”上插入或更新违反了外键约束“purchase_order_line_product_id_fkey”详细信息:表“product_product”中不存在键(product_id)=(644)。第 2 行和第 4 行之间

有人可以向我解释为什么会发生这种情况以及我必须做些什么来解决它?

标签: databasepostgresqlimportodooodoo-11

解决方案


我猜问题是您使用的是记录的外部 XML IDproduct.template而不是记录product.product

如果是这种情况,您的product.product记录可能不会有外部 XML ID,因为它们是在数据库中手动创建的,或者通过导入它们各自的产品模板,或者向这些模板添加属性和属性值。

如果您有这个问题,您只能通过先导出产品来为您的产品生成外部 XML ID。如果您在没有外部 XML ID的情况下导出任何记录,则会自动生成该记录以在您的导出文件中的id列下。因此,一种解决方法是选择所有产品(或者最好只选择您要使用的产品),导出它们,从导出的文件中获取它们的外部 XML ID,然后使用它们来导入您的purchase.order.line记录。

此解决方案的问题

  • 您从一个数据库中获取的External XML ID 不能与您从其他不同数据库中获取的相同,尽管它们具有相似的产品,因此该方法为特定数据库生成的导入文件不能用于其他数据库。

  • 外部 XML ID 存储在数据库中,因此如果您生成数千个,数据库将根据您导出的产品数量而增长。


推荐阅读