gpt4 book ai didi

python - 在没有新模块的情况下向 OpenERP 中的合作伙伴添加外部 ID

转载 作者:太空狗 更新时间:2023-10-29 22:27:12 25 4
gpt4 key购买 nike

我的问题有点复杂,我是 OpenERP 的新手。

我有一个外部数据库和一个 OpenERP。外部的不是 PostgreSQL。我的工作是我需要同步两个数据库中的伙伴。外在的更重要。这意味着如果外部数据发生变化,OpenERp 的数据也会发生变化,但如果 OpenERP 的数据发生变化,则外部数据不会发生任何变化。

  • 我可以访问外部数据库,使用 XML RCP 我可以访问对 OpenERP 也是如此。

  • 我可以简单地使用 XML RCP 从外部数据库导入数据,但是问题是同步。

  • 我不能只插入修改过的搭档并删除旧的搭档
    因为我无法识别旧的。

  • 我需要更新它。但是然后我需要一个 id 来说明哪个是哪个。和外部 ID。

  • 据我所知,OpenERP 可以处理外部 ID。

这是如何运作的?以及如何使用它向我的 res.partner 添加外部 ID?

有人告诉我,我不能单独为此创建一个新模块,我需要使用内部 ID 作品。

最佳答案

简短回答:查看 CSV 导入和导出向导的工作方式 - 导出记录会自动创建一个外部标识符,因此您可以重新导入相同的标识符CSV 和记录将被更新而不是重新创建。

长答案:
OpenERP 将外部 ID 存储在 ir.model.data 表中,您可以通过设置菜单在用户界面中访问该表 1 。这个简单的表将 module_name.record_identifier 形式的“外部标识符”映射到指向实际表和行的一对 (model,res_id)

这些外部 ID 用于查找与某些外部源创建的记录相对应的数据库本地行:模块(因此是基于 module 的命名空间)或导入的 CSV 文件,通常.

例如,外部标识符 base.EUR 映射到数据库中保存欧元货币的数据库记录,并由 base 模块拥有。

从 6.1 版开始,OpenERP 自动为所有使用边栏导出向导导出的 OpenERP 记录创建新的外部标识符:它们被导出到名为 CSV 列中id.

如果这样的 id 列存在于通过导入向导导入的 CSV 文件中,OpenERP 还将创建一个外部标识符来记住它。当外部标识符已经存在时,将更新而不是创建记录。

理论上,您所要做的就是生成一个带有额外 id 列的正确 CSV 文件 2 来自您的主数据库(您甚至可以使用实际的数据库 ID),并将其导入 OpenERP。然后,您应该可以随时重新导入此 CSV 文件的更新版本。

引用资料:

  • 导入导出 向导基本上调用 API 方法 export_dataimport_data ,因此您可以根据需要通过 XML-RPC 编写脚本。
  • ir.model.data模型存储外部标识符(过去称为 XML ID,因为它对应于模块数据文件中 XML 记录的 id 字段)。

1 在 OpenERP 6.1 中,它位于设置>配置>序列和标识符>外部标识符下,而在 OpenERP 版本 7 中,它位于设置>技术>序列和标识符>外部标识符.

2 可以是任何不带点“.”字符的字符串:它将存储在一个特殊的 __export__ 模块命名空间中)

关于python - 在没有新模块的情况下向 OpenERP 中的合作伙伴添加外部 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com