跳转到主要内容

导入/导出模式

项目描述

Beta License: AGPL-3 shopinvader/pattern-import-export

概述

此模块扩展了Odoo的导入/导出功能。

模式只是ir.exports模型的一种类型,因此您可以使用本机Odoo小部件来定义导出列表。

此模块仅创建一个通用数据结构。其他模块将被用来添加特定文件类型支持,如Excel和CSV。

功能

  • 键匹配:不是总是使用ID,匹配键到唯一约束字段,例如通过指定产品代码而不是其数据库ID或外部ID来更新产品

  • 支持One2many和Many2many:以非常易读和易于更新的语法创建或更新发票行等

  • 只要您遵守适当的格式和字段名称,您可以自由地添加/删除/重命名列,即使它们不在用于导出的初始模式中

目录

配置

  • 安装支持特定文件类型的另一个模块

  • 使用模式菜单来配置您的导入/导出格式

使用

配置模式

首先您必须定义一个模式

  1. 转到导入/导出->模式菜单

  2. 创建您的模式,包括要导出的字段

您可以根据示例数据中的示例进行参考。

导出

  • 打开任何模型的树视图并勾选一些记录选择框。

  • 在侧边栏中,单击“使用模式导出”按钮

  • 选择您希望使用的模式,点击导出并下载生成的文件。

  • 创建了一个“模式文件”,与其相关的作业也会创建。根据作业的成功或失败,您将在窗口上收到红色/绿色通知。

导入

您有两种选择

  • 打开任何模型的树视图并勾选一些记录选择框(对于此步骤,这些并不重要,我们只想显示侧边栏)。

  • 在侧边栏中,单击“使用模式导入”按钮

  • 选择一个模式,上传您的文件并单击导入。

  • 创建了一个“模式文件”,与其相关的作业也会创建。根据作业的成功或失败,您将在窗口上收到红色/绿色通知。您可以在相应的导入/导出菜单中查看详细信息。

或者

  • 通过导入/导出菜单访问导入向导

  • 选择一个模式

  • 单击“导入”按钮

导入语法

pattern_import_export模块的一个优点是能够通过自然键(业务键)而不是技术键(xmlid或数据库id)来引用记录。

一个或多个列可以是记录的自然键,用于查找和更新或创建新记录。自然键中的每个列都必须以“#key”后缀。

一个或多个列可以用作外键,可以使用“|”语法访问。(例如,在合作伙伴中:country_id|code)

示例

以下是一个对product.product的简单更新的示例:现有记录

  • id: 10

  • name: “产品1”

  • default_code: “PRD1”

生成的导出将看起来像这样

id

name

default_code

10

Product 1

PRD1

更新后的文件

id

name

default_code

10

Product 1-bis

PRD1B

导入后,我们的记录将被更新

  • xml id: “__export__.product1”

  • name: “Product 1-bis”

  • default_code: “PRD1B”

现在,让我们更新一些关联字段。以下是我们的一些初始数据

  • seller_ids

  • id(seller_id的id,它是res.partner):22

  • name(卖家):合作伙伴1

  • 价格:10

生成的导出应该如下所示

id

name

default_code

seller_ids|1|id

seller_ids|1|price

10

Product 1

PRD1

22

10

假设“ref”是一个唯一约束的Char字段。对于卖家,我们不想使用它的id,而是使用它的ref。

id

name

default_code

seller_ids|1|ref#key

seller_ids|1|price

10

Product 1

PRD1

partner1-ref

10

因此,这个#key意味着Odoo应该搜索一个res.partner,其ref与单元格值匹配。

让我们再举一个例子,我们不想使用id,而想使用产品的default_code作为键。

id

name

default_code#key

seller_ids|1|ref#key

seller_ids|1|price

Product 1

PRD1

partner1-ref

10

Odoo将搜索匹配的default_code的产品并更新它。

技术上

添加新的导出格式

  1. 继承ir.exports模型。

  2. export_format选择字段中添加您的新文件格式;

  3. 实现函数_export_with_record_<format>_read_import_data_<format>

请小心处理迭代器(yield),以避免将整个文件加载到系统内存中。

已知问题/路线图

  • 取消勾选“使用制表符”布尔值应该清除之前选中的tab_filter_id

  • 更改行的字段应该清除之前选中的tab_filter_id

错误追踪器

错误在GitHub Issues上跟踪。如果遇到问题,请检查是否已报告您的问题。如果是您首先发现的,请通过提供详细且受欢迎的反馈来帮助我们解决它。

请勿直接联系贡献者以获取支持或帮助解决技术问题。

鸣谢

作者

  • Akretion

贡献者

维护者

本模块是GitHub上 shopinvader/pattern-import-export 项目的组成部分。

欢迎您贡献力量。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程。

构建分发

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面