データのインポートとエクスポート

Odooでは、レポートの実行やデータの修正のためにデータのエクスポートやインポートが必要になることがあります。このドキュメントではOdooへのデータのエクスポートとインポートについて説明します。

重要

ユーザが 'タイムアウト' エラーに遭遇したり、レコードのサイズが原因で処理されないことがあります。これは、サイズが大きいエクスポートや、インポートファイルが大きすぎる場合に発生します。レコードのサイズをめぐるこの制限を回避するには、エクスポートまたはインポートをより小さなロットで処理します。

Odooからデータをエクスポートする

When working with a database, it is sometimes necessary to export data in a distinct file. Doing so can aid in reporting on activities, although, Odoo provides a precise reporting tool with each available application.

With Odoo, the values can be exported from any field in any record. To do so, activate the list view (List) icon, on the items that need to be exported, and then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click the Action button, and select (Export).

データをエクスポートするために有効にする/クリックする様々なビュー。

When clicking on Export, a Export Data pop-over window appears, with several options for the data to export:

Odooでデータをエクスポートする際に考慮すべきオプションの概要
  1. With the I want to update data (import-compatable export) option ticked, the system only shows the fields that can be imported. This is helpful in the case where the existing records need to be updated. This works like a filter. Leaving the box unticked, gives many more field options because it shows all the fields, not only the ones that can be imported.

  2. エクスポートの際、2つのフォーマットでエクスポートするオプションがあります: .csv`.xls です。.csv`の場合、項目はカンマで区切られ、.xls`の場合、内容とフォーマットの両方を含むファイル内の全てのワークシートに関する情報が保持されます。

  3. These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. Use the Search bar to find specific fields. To use the Search option more efficiently, click on all the (Show sub-fields) icon to display all fields.

  4. The (Select field) icon button is present to add fields to the Fields to export list.

  5. The (Sort) icon to the left of the selected fields can be used to move the fields up and down, to change the order in which they are displayed in the exported file. Drag-and-drop using the (Sort) icon.

  6. The (Remove field) icon is used to remove fields. Click the (Remove field) icon to remove the field.

  7. For recurring reports, it is helpful to save export presets. Select all the needed fields, and click on the template drop-down menu. Once there, click on New template, and give a unique name to the export template. Click the (floppy drive) icon to save the configuration. The next time the same list needs to be exported, select the related template that was previously saved from the drop-down menu.

ちなみに

フィールドの外部識別子を知っておくと便利です。例えば、エクスポートユーザインターフェイスの 関連会社parent_id (外部識別子) と等しくなります。この場合、エクスポートされるデータは、修正されて再インポートされるべきものだけになるので便利です。

Odooにデータをインポートする

Odooへのデータのインポートは、実装中や、データを 一括して更新する 必要がある場合に非常に役立ちます。次のドキュメントでは、Odooデータベースへのデータのインポート方法について説明します。

警告

インポートは恒久的で、元に戻すことは できません。しかし、フィルタ (作成日 または 最終修正日) を使用することで、インポートによって変更または作成されたレコードを特定することができます。

ちなみに

開発者モード を有効にすると、左メニューに表示されるインポートの設定が変更されます。これにより 高度な メニューが表示されます。この詳細メニューには インポートの経過を追跡サブフィールドとのマッチングを許可する という2つのオプションがあります。

開発者モードが有効な場合の高度なインポートオプション。

モデルが openchatter を使用している場合、インポートの経過を追跡 オプションは、インポート中にサブスクリプションを設定し、通知を送信しますが、インポートが遅くなります。

サブフィールドとのマッチングを許可する オプションが選択されている場合、インポート時にフィールド内の全てのサブフィールドが Odooフィールド の下でマッチングに使用されます。

はじめに

データはExcel (.xlsx) または CSV (.csv) 形式でOdooのビジネスオブジェクトにインポートすることができます。これには連絡先、プロダクト、銀行明細、仕訳、オーダが含まれます。

Open the view of the object to which the data should be imported/populated, click on (Action) icon, and in the drop-down menu select (Import records).

レコードのインポートオプションがハイライトされたアクションメニューが表示されます。

レコードのインポート をクリックすると、Odooの別ページにテンプレートが表示されます。このようなテンプレートは、データマッピングが既に行われているため、ワンクリックでインポートすることができます。テンプレートをダウンロードするには、ページ中央の 顧客用にテンプレートをインポート をクリックして下さい。

重要

CSV ファイルをインポートする際、Odooは :guilabel:` フォーマッティング` オプションを提供します。これらのオプションは独自のExcelファイルタイプ(.xls, .xlsx)をインポートする際には表示され ません

OdooでCVSファイルをインポートする際に表示されるフォーマットオプション。

*フォーマッティング*オプションに必要な調整を行い、 Odooフィールドファイル列 の全ての列にエラーがないことを確認します。最後に インポート をクリックしてデータをインポートします。

テンプレートの適用

テンプレートのインポートは、インポートするごく一般的なデータ(連絡先、プロダクト、銀行明細など)のインポートツールに用意されています。(Microsoft Office, OpenOffice, Google Drive など)。

テンプレートをダウンロードしたら、以下の手順に従って下さい:

  • データ構成に最適な列の追加、削除、並べ替えを行います。

  • 外部ID (ID)列を削除 しない ことを強くお勧めします。(理由は次のセクションをご覧下さい)

  • 外部ID (ID)列のIDシーケンスをドラッグダウンすることで、全てのレコードに一意のIDを設定します。

ID列をマウスでドラッグするアニメーション。これにより、各レコードが一意のIDを有します。

注釈

新しい列が追加された場合、そのラベルがOdoo内のどのフィールドにも適合しない場合、Odooはその列を自動的にマッピングできないことがあります。しかし、インポートのテスト時に新しい列を手動でマッピングすることができます。ドロップダウンメニューから該当するフィールドを検索します。

Odooの初期インポート画面でドロップダウンメニューが拡張されました。

その後、インポートファイルでこのフィールドのラベルを使用し、今後のインポートが成功するようにします。

ちなみに

Another useful way to find out the proper column names to import is to export a sample file using the fields to be imported. This way, if there is not a sample import template, the names are accurate.

他のアプリケーションからインポートする

The External ID (ID) is a unique identifier for a line item. It is possible to use an External ID (ID) from previous software to facilitate the transition to Odoo.

IDの設定はインポート時に必須ではありませんが、多くの場合に役立ちます:

異なるレコード間の関係を再作成するには、元のアプリケーションの一意な識別子をOdooの 外部ID (ID) 列にマッピングする必要があります。

最初のレコードにリンクする別のレコードをインポートする場合、元の一意の識別子には XXX/ID (XXX/External ID) を使用します。このレコードは、名前を使用して検索することもできます。

警告

2つ(またはそれ以上) のレコードが同じ 外部ID を持つ場合、不整合が発生することに注意して下さい。

マップ列にフィールドがない

Odooはインポートされたファイルの最初の10行を基に、各列のフィールドタイプを発見すべく検索します。

例えば、数字だけを含む列がある場合、整数 型のフィールドだけがオプションとして表示されます。

ほとんどの場合、この動作は有益かもしれませんが、失敗する可能性もありますし、デフォルトで提案されていないフィールドに列がマッピングされる可能性もあります。

このような場合は 関連フィールドのフィールドを表示 (高度な)オプション をチェックして下さい。そうすると、各列用にフィールドの完全なリストが利用できます。

税金列に一致するフィールドを検索します。

データインポートフォーマットを変更する

注釈

Odooは列が日付かどうかを自動的に検出し、最も一般的に使用される日付フォーマットのセットから日付フォーマットを推測しようとします。このプロセスは多くの日付フォーマットで機能しますが、認識できない日付フォーマットもあります。これは日月が逆転しているために混乱を引き起こす可能性があります。01-03-2016 のような日付では、日付書式のどの部分が日で、どの部分が月かを推測するのは困難です。

CSV ファイルをインポートする際、Odooは フォーマティング オプションを提供します。

Odooがファイルから検出した日付フォーマットを確認するには、ファイルセレクタのオプションをクリックすると表示される 日付フォーマット をチェックして下さい。このフォーマットが正しくない場合は、ISO 8601 を使用してフォーマットを定義し、希望のフォーマットに変更して下さい。

重要

ISO 8601 is an international standard, covering the worldwide exchange, along with the communication of date and time-related data. For example, the date format should be YYYY-MM-DD. In the case of July 24th 1981, it should be written as 1981-07-24.

ちなみに

Excelファイル(.xls, .xlsx)をインポートする際は、日付セル を使用して日付を保存して下さい。これにより、Odooで日付がどのようにフォーマットされているかに関わらず、ローカルの日付フォーマットが維持されます。 CSV ファイルをインポートする場合、Odooの フォーマティング セクションでインポートする日付フォーマットの列を選択して下さい。

通貨記号付き番号をインポートする

Odooは負の符号を表す括弧付きの数値や、通貨記号付きの数値を完全にサポートしています。また、Odooはどの千進/十進区切り記号が使用されているかを自動的に検出します。Odooが知らない通貨記号が使用された場合、数値として認識されずインポートがクラッシュすることがあります。

注釈

CSV ファイルをインポートすると、左側の列に フォーマティング メニューが表示されます。これらのオプションで 千セパレータ を変更することができます。

サポートされる数字の例(数字として3万2千を使用):

  • 32.000,00

  • 32000,00

  • 32,000.00

  • -32000.00

  • (32000.00)

  • $ 32.000,00

  • (32000.00 €)

上手くいかない例:

  • ABC 32.000,00

  • $ (32.000,00)

重要

数字を囲む () (括弧) は、数字が負であることを示します。Odooが負の通貨値として認識するには、括弧の中に通貨記号を入れる**必要があります**。

インポートプレビューテーブルが正しく表示されない

デフォルトでは、インポートプレビューではフィールドの区切り文字としてカンマ、テキストの区切り文字として引用符が設定されています。もし CSV ファイルにこれらの設定がない場合は フォーマティング オプション ( CSV ファイルを選択した後 インポート CSV ファイルバーの下に表示されます )。

重要

CSV ファイルの区切り文字にタブがある場合、Odooは区切り文字を検出しません。スプレッドシートアプリケーションでファイルフォーマットのオプションを変更する必要があります。次の CSV ファイル形式の変更 セクションを参照して下さい。

表計算アプリケーションでCSVファイル形式を変更

スプレッドシートアプリケーションで CSV ファイルを編集・保存する場合、セパレータとデリミタにはコンピュータの地域設定が適用されます。Odooでは OpenOffice または LibreOffice を使用することをお勧めします。どちらのアプリケーションでも3つのオプション全てを変更することができます( LibreOffice アプリケーションから '名前を付けて保存' ダイアログボックス ‣ 'フィルタ設定を編集' ボックスにチェックを入れ ‣ 保存)。

Microsoft Excelは保存時にエンコーディングを変更することができます('名前を付けて保存'ダイアログボックス ‣ 'ツール'ドロップダウンメニュー ‣ エンコーディングタブ)。

データベースIDと外部IDの違い

いくつかのフィールドは別のオブジェクトとの関係を定義します。例えば、連絡先の国は'国'オブジェクトのレコードへのリンクです。このようなフィールドをインポートする場合、Odooは異なるレコード間のリンクを再作成する必要があります。このようなフィールドをインポートするために、Odooは3つのメカニズムを提供しています。

重要

インポートされるフィールドごとに、1つのみ メカニズムが使用されなければいけません。

例えば、連絡先の国を参照するために、Odooはインポートする3つの異なるフィールドを提案します:

  • : 国の名前またはコード。

  • 国/データベースID: PostgreSQLのID列で定義された、レコードに固有のOdoo IDです。

  • 国/外部ID: 他のアプリケーション(またはそれをインポートした .XML ファイル)で参照されているこのレコードの ID。

例えばベルギーの場合、以下の3つの方法のいずれかを使って輸入して下さい:

  • Country: Belgium

  • 国/データベースID: 21

  • 国/外部ID: base.be

会社のニーズに応じて、関係あるレコードを参照するために、これら3つの方法のいずれかを使用します。必要に応じて、どちらか一方を使用する場合の例を示します:

  • を使用します。 CSV ファイルを手動で作成した場合、この方法が最も簡単です。

  • 国/データベースID を使用する: ほとんど使用されない方法です。最大の利点は、競合を起こさないという点で、主に開発者が使用します(同じ名前のレコードが複数あっても、常に固有のデータベースIDが付与されます)。

  • 国/外部ID を使用: サードパーティのアプリケーションからデータをインポートする場合、外部ID を使用します。

外部ID を使用する場合は、インポートする各レコードの 外部ID を定義する 外部ID (ID)列を持つ CSV ファイルをインポートします。そして、フィールド/外部ID のような列でそのレコードを参照することができます。次の2つの CSV ファイルはプロダクトとそのカテゴリの例です。

関連フィールドをインポートする

Odooオブジェクトは常に他の多くのオブジェクトと関連しています(例えばプロダクトはプロダクトカテゴリ、属性、仕入先などとリンクしています)。これらの関係をインポートするには、まず関連オブジェクトのレコードをリストメニューからインポートする必要があります。

この作業は、状況に応じて関連するレコードの名前または該当するIDを使用して行うことができます。2つのレコードの名前が同じ場合は、IDを使用するようにします。このような場合、列タイトルの最後に / ID を追加します(例:プロダクト属性の場合:プロダクト属性 / 属性 / ID)。

フィールドでの複数一致のオプション

例えば、子カテゴリ名が 販売可能 のプロダクトカテゴリが2つある場合(例:その他.プロダクト/販売可能他プロダクト/販売可能)、検証は中断されますが、データをインポートすることはできます。しかし、データは全て プロダクトカテゴリ リストで最初に見つかった`販売可能`カテゴリ (その他プロダクト/販売可能) にリンクされるため、インポートしないことをお勧めします。Odooでは代わりに、重複する値の1つ、またはプロダクトカテゴリ階層を変更することを推奨しています。

しかし、プロダクトカテゴリの設定を変更したくない場合、Odooはこのフィールド、 'カテゴリ' に 外部ID を使用することをお勧めします。

多対多関係フィールドをインポートする

タグはコンマで区切り、スペースを空けてはいけません。例えば、ある顧客が 製造業小売業者 の両方のタグにリンクされる必要がある場合 例えば、顧客が 製造業小売業 の両方のタグにリンクする必要がある場合、'製造業.小売業' は CSV ファイルの同じ列にエンコードする必要があります。

1対多関係をインポートする

会社が複数のオーダ明細を持つ販売オーダをインポートしたい場合、各オーダ明細に対して特定の行を CSV ファイルに指定しておく 必要があります 。最初のオーダ明細は、オーダに関連する情報と同じ行にインポートされます。追加の明細は、オーダに関連するフィールドに情報を持たない追加行が必要です。

Example

A company imports quotations using a CSV file, based on demo data:

A company imports purchase orders with their respective purchase order lines using a CSV file:

A company imports customers and their respective contacts using a CSV file:

レコードを複数回インポートする

インポートされたファイルに 外部ID または データベースID という列が含まれている場合、既にインポートされたレコードは作成されずに変更されます。これは非常に便利で、ユーザは同じ CSV ファイルを何度もインポートすることができます。

Odooは、それが新規かそうでないかによって、各レコードの新規作成または変更を行います。

この機能により、企業はOdooの インポート/エクスポートツール を使用して、スプレッドシートアプリケーションのレコードを一括修正することができます。

特定のフィールドに提供されていない値

If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined field. However, if fields are set with empty values in the CSV file, Odoo sets the empty value in the field, instead of assigning the default value.

SQLアプリケーションからOdooへの異なるテーブルのエクスポート/インポート

異なるテーブルからデータをインポートする必要がある場合、異なるテーブルに属するレコード間の関係を再作成する必要があります。例えば、会社と人がインポートされた場合、各人と所属会社の間のリンクを再作成する必要があります。

テーブル間の関係を管理するには、Odooの 外部ID 機能を使用します。レコードの 外部ID は他のアプリケーションにおけるそのレコードの一意な識別子です。 外部ID は全てのオブジェクトの全てのレコードで一意でなければなりません。この 外部ID の前にアプリケーション名またはテーブル名を付けるとよいでしょう。('company_1', 'person_1' - '1' の代わりに)

例として、企業と人という2つのテーブルをインポートするSQLデータベースがあるとします。各人は1つの会社に所属しているため、人と所属会社の間のリンクを再作成する必要があります。

この例を、PostgreSQLデータベースのサンプル でテストして下さい。

まず、全ての会社とその 外部ID をエクスポートします。PSQL で次のコマンドを記述します:

> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;

このSQLコマンドは以下の CSV ファイルを作成します:

External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True

会社にリンクされている人物の CSV(Comma-separated Values ファイルを作成するには、PSQLで次の SQLコマンドを使用します:

> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV

これは次のような CSV ファイルを生成します:

External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3

このファイルでは、FabienとLaurenceはBigees社(company_1)で働いており、EricはOrgani社で働いています。人と会社の関係は、会社の*外部ID* を使って行われます。外部 ID は、テーブルの名前の前に付けて、人と会社の間のIDの不整合を回避します (person_1company_1 は、元のデータベースで同じ ID 1 を共有していました)。

作成された2つのファイルはそのままOdooにインポートすることができます。これら2つの CSV ファイルをインポートすると、4つの連絡先と3つの会社があります(最初の2つの連絡先は最初の会社にリンクされています)。まず会社をインポートし、次に人をインポートするようにして下さい。

Odoo内でデータを更新

外部 ID が一貫性を保っている限り、データインポートにより既存のデータを一括更新することができます。

データエキスポートを準備

To update data through an import, first navigate to the data to be updated, and select the (List) icon to activate list view. On the far-left side of the list, tick the checkbox for any record to be updated. Then, click Actions button, and select (Export) from the drop-down menu.

表示される データをえ示される :guilabel:`データをエクスポート ポップアップウィンドウで、データを更新したい (インポート可能な項目のエクスポート) とラベル付けされたチェックボックスにチェックを入れます。これにより、エクスポートに 外部ID が自動的に含まれます。さらに、エキスポートするフィールド リストには、インポート可能なフィールド のみ が含まれます。

注釈

手動で追加しない限り、外部ID フィールドは エクスポートするフィールド リストに表示され ません。しかし、エクスポートには含まれます。ただし、データを更新する(インポート可能な項目のエクスポート) チェックボックスが選択されている場合は、エクスポートに含まれます。

ポップアップウィンドウの オプション を使用してエクスポートに含めるフィールドを選択し、エクスポート をクリックします。

更新済データをインポート

エクスポート後、データファイルに必要な変更を加えます。ファイルが準備できたら、通常のデータインポートと同じ手順で、インポート することができます。

危険

データを更新する際には、外部ID が一貫性を保つことが極めて重要です。これがシステムがレコードを識別する方法であるためです。IDが変更されたり削除されたりすると、システムは既存のレコードを更新する代わりに、重複したレコードを追加してしまう可能性があります。