データのインポートとエクスポート¶
Odooでは、レポートの実行やデータの修正のためにデータのエクスポートやインポートが必要になることがあります。このドキュメントではOdooへのデータのエクスポートとインポートについて説明します。
重要
ユーザが 'タイムアウト' エラーに遭遇したり、レコードのサイズが原因で処理されないことがあります。これは、サイズが大きいエクスポートや、インポートファイルが大きすぎる場合に発生します。レコードのサイズをめぐるこの制限を回避するには、エクスポートまたはインポートをより小さなロットで処理します。
Odooからデータをエクスポートする¶
データベースを操作する際、データを別ファイルへエクスポートする必要が生じることがあります。これは活動報告に役立ちますが、Odooには各アプリケーションに詳細なレポート機能が標準で備わっています。
With Odoo, the values can be exported from any field in any record. To do so, activate the list view with the (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 Actions button, and select Export.
ちなみに
Records can also be exported from the (Kanban) view. To select
a first record, hold Alt and click its card; while the key is held, a Click to select
tooltip is displayed on the cards. Once a record is selected, click another card to add it to the
selection, or hold Shift while clicking to select a whole range. Then, click the
Actions button, and select Export.
When clicking on Export, an Export Data pop-up window appears. The left side lists the Available fields of the records, and the right side the Fields to export, i.e., the columns of the generated file.
With the Updatable fields only switch enabled, only the fields that can be imported back into Odoo are listed. This is helpful in the case where the existing records need to be updated. This works like a filter on the Available fields list only; the Fields to export list is left untouched. Leaving the switch disabled gives many more field options because it shows all the fields, not only the ones that can be imported.
Use the Search... bar to find specific fields. Matching sub-fields are displayed as well, with their parent field expanded automatically.
These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. To add a field to the Fields to export list, click the (Select field) icon at the right of the field, or double-click a field that has no sub-fields.
Select the Format of the generated file: Excel Workbook (.xlsx), which holds information about all the worksheets in a file, including both content and formatting, or Plain Text (.csv), where items are separated by a comma.
The Fields to export list holds the columns of the exported file, in order. Use the (Sort) icon at the left of a field to drag and drop it up or down, changing the order in which the columns are displayed in the exported file. Click the (Remove field) icon to remove a field from the list.
For recurring reports, save the current selection as an export template and select it from the drop-down menu the next time the same list needs to be exported.
If the database has several languages installed and at least one selected field is translatable, a Languages field is displayed to export translations.
Once everything is set, click Export to download the file.
ちなみに
フィールドの外部識別子を知っておくと便利です。例えば、エクスポートユーザインターフェイスの 関連会社 は parent_id (外部識別子) と等しくなります。この場合、エクスポートされるデータは、修正されて再インポートされるべきものだけになるので便利です。
Export templates¶
Export templates save a set of fields, their order, and the languages to export, so that the same file structure can be reused later. They are saved per model, and are shared with the other users of the database.
To create a template, select the needed fields, click the (Save as export template) icon next to the template drop-down menu, type a unique name, and click the (Apply changes) icon. Press Enter to save, or Escape to discard.
To edit an existing template, select it from the drop-down menu, then click the (Edit template name and/or fields) icon. Its name, fields, field order, and languages can then all be changed, and are saved with the (Apply changes) icon. Click the (Discard changes) icon to leave the template as it was.
To delete a template, select it from the drop-down menu, click the (Delete the template) icon, and confirm.
注釈
Changing the fields, their order, or the languages while a template is selected, but not being edited, clears the template selection and keeps the current selection as an unsaved working set. This makes it possible to build a new template on top of an existing one without altering it.
Export translations¶
When more than one language is installed on the database, and at least one field of the Fields to export list is translatable, a Languages field is displayed below that list. By default, no language is selected and translatable fields are exported in the user's own language.
Click the Languages field and select one or several languages to export the translations of every translatable field in those languages. Each selected language is displayed as a tag, and can be removed by clicking the (Remove) icon on it.
In the generated file, every translatable field is then replaced by one column per selected
language, named after the field and the language code, e.g., Name@fr_FR. This is the same
convention as the one used by the import, so an
export made with the Updatable fields only switch enabled can be re-imported with its
translations directly.
Odooにデータをインポートする¶
Odooへのデータのインポートは、実装中や、データを 一括して更新する 必要がある場合に非常に役立ちます。次のドキュメントでは、Odooデータベースへのデータのインポート方法について説明します。
警告
インポートは恒久的で、元に戻すことは**できません**。しかし、フィルタ (作成日`または`最終修正日) を使用することで、インポートによって変更または作成されたレコードを特定することができます。
ちなみに
開発者モード を有効にすると、左メニューに表示されるインポートの設定が変更されます。これにより メニューが表示されます。この詳細メニューには インポートの経過を追跡 と サブフィールドとのマッチングを許可する という2つのオプションがあります。
モデルが openchatter を使用している場合、インポートの経過を追跡 オプションは、インポート中にサブスクリプションを設定し、通知を送信しますが、インポートが遅くなります。
サブフィールドとのマッチングを許可する オプションが選択されている場合、インポート時にフィールド内の全てのサブフィールドが Odooフィールド の下でマッチングに使用されます。
はじめましょう¶
データはExcel (.xlsx) または CSV (.csv) 形式でOdooのビジネスオブジェクトにインポートすることができます。これには連絡先、プロダクト、銀行明細、仕訳、オーダが含まれます。
データをインポート/入力するオブジェクトのビューを開き、(アクション)`アイコンをクリックして、ドロップダウンメニューで :icon:`fa-upload:guilabel:`(レコードをインポート)`を選択します。
ページの中央にある 顧客用テンプレートをインポート をクリックして テンプレート をダウンロードし、会社独自のデータを入力します。このようなテンプレートは、データマッピングがすでに設定されているため、ワンクリックでインポートできます。
ダウンロードしたテンプレートまたは既存のファイルをアップロードするには、次の手順に従います:
データファイルをアップロード をクリックし、希望するファイルを選択します。
必要に応じて、フォーマティング オプションを調整します(CSVファイルのみ)。
ファイル列 内の全てのデータが、適切な Odooフィールド に正しくマッピングされ、エラーがないことを確認して下さい。
(オプション) データファイルをロード をクリックして、同じファイルを再読み込みするか、別のファイルをアップロードします。
テスト をクリックして、データが検証済であることを確認します。
インポート をクリックします。
注釈
独自形式のExcelファイル (.xlsまたは.xlsx) をインポートする際には、フォーマッティング オプションは表示されません。
テンプレートの適用¶
テンプレートのインポートは、インポートするごく一般的なデータ(連絡先、プロダクト、銀行明細など)のインポートツールに用意されています。(Microsoft Office, OpenOffice, Google Drive など)。
テンプレートをダウンロードしたら、以下の手順に従って下さい:
データ構成に最適な列の追加、削除、並べ替えを行います。
外部ID (ID)列を削除 しない ことを強くお勧めします。(理由は次のセクションをご覧下さい)
外部ID (ID)列のIDシーケンスをドラッグダウンすることで、全てのレコードに一意のIDを設定します。
注釈
新しい列が追加された場合、そのラベルがOdoo内のどのフィールドにも適合しない場合、Odooはその列を自動的にマッピングできないことがあります。しかし、インポートのテスト時に新しい列を手動でマッピングすることができます。ドロップダウンメニューから該当するフィールドを検索します。
その後、インポートファイルでこのフィールドのラベルを使用し、今後のインポートが成功するようにします。
ちなみに
サンプルインポートテンプレートが存在しない場合、インポートする適切な列名を見つけるもう一つの便利な方法は、インポートするフィールドを使用してサンプルファイルをエクスポートすることです。この方法により、列名を正確に取得できます。
他のアプリケーションからインポートする¶
外部ID (ID) は、明細項目の一意の識別子です。以前のソフトウェアの 外部ID (ID) を使用して、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 は、日付と時刻に関連するデータの世界的な交換および連絡を対象とする国際規格です。たとえば、日付形式は YYYY-MM-DD とする必要があります。1981年7月24日の場合、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 ファイルを手動で作成した場合、この方法が最も簡単です。
:guilabel:`国/データベースID`を使用する:これはほとんど使用すべきではありません。主な利点は不整合が発生しないことです(同じ名前のレコードが複数あるかもしれませんが、それらは常にユニークなデータベースIDを持っています)。
Use 国/外部ID: サードパーティのアプリケーションからデータをインポートする場合、外部ID を使用します。
外部ID を使用する場合は、インポートする各レコードの 外部ID を定義する 外部ID (ID)列を持つ CSV ファイルをインポートします。そして、フィールド/外部ID`のような列でそのレコードを参照することができます。次の2つの :abbr:`CSV (Comma-separated Values) ファイルはプロダクトとそのカテゴリの例です。
関連フィールドをインポートする¶
Odooオブジェクトは常に他の多くのオブジェクトと関連しています(例えばプロダクトはプロダクトカテゴリ、属性、仕入先などとリンクしています)。これらの関係をインポートするには、まず関連オブジェクトのレコードをリストメニューからインポートする必要があります。
この作業は、状況に応じて関連するレコードの名前または該当するIDを使用して行うことができます。2つのレコードの名前が同じ場合は、IDを使用するようにします。このような場合、列タイトルの最後に / ID を追加します(例:プロダクト属性の場合:プロダクト属性 / 属性 / ID)。
フィールドでの複数一致のオプション¶
例えば、子カテゴリ名が`販売可能`のプロダクトカテゴリが2つある場合(例:その他.プロダクト/販売可能`と`他プロダクト/販売可能)、検証は中断されますが、データをインポートすることはできます。しかし、データは全て プロダクトカテゴリ リストで最初に見つかった`販売可能`カテゴリ(その他プロダクト/販売可能)にリンクされるため、インポートしないことをお勧めします。Odooでは代わりに、重複する値の1つ、またはプロダクトカテゴリ階層を変更することを推奨しています。
しかし、プロダクトカテゴリの設定を変更したくない場合、Odooはこのフィールド、 'カテゴリ' に 外部ID を使用することをお勧めします。
多対多関係フィールドをインポートする¶
タグはコンマで区切り、スペースを空けてはいけません。例えば、ある顧客が 製造業 と 小売業者 の両方のタグにリンクされる必要がある場合 例えば、顧客が 製造業` と 小売業 の両方のタグにリンクする必要がある場合、'製造業.小売業' は CSV ファイルの同じ列にエンコードする必要があります。
1対多関係をインポートする¶
会社が複数のオーダ明細を持つ販売オーダをインポートしたい場合、各オーダ明細に対して特定の行を CSV ファイルに指定しておく 必要があります 。最初のオーダ明細は、オーダに関連する情報と同じ行にインポートされます。追加の明細は、オーダに関連するフィールドに情報を持たない追加行が必要です。
Example
会社は、デモデータに基づき、:abbr:`CSV (カンマ区切り値)`ファイルを使用して見積をインポートします:
会社は CSV ファイルを使用して購買オーダ(購買オーダ明細行を含む)をインポートします:
会社は CSV ファイルを使用して顧客とその連絡先をインポートします:
画像ファイルをインポート¶
アップロード済 CSV または Excel ファイルとともに画像ファイルをインポートするには、次の手順に従います。
データファイル内の該当する 画像 列に画像ファイル名を追加します。
データファイルをアップロード または、データファイルをロード をクリックして再読み込みします。
インポートするファイル セクションの下にある ファイルをアップロード をクリックします。
該当する画像ファイルを選択します。選択したファイルの数がボタンの隣に表示されます。
テスト をクリックして、全てのデータが検証済であることを確認します。
インポート をクリックします。インポート処理中、Odooはアップロードされた画像をインポートされたデータファイルに自動的にリンクするためにファイルチェックを実行します。一致しない場合は、データファイルは画像なしでインポートされます。
注釈
インポートするファイル`セクションは、プロダクトテンプレートにすべてのフィールドが入力された :guilabel:`画像 列がある場合に有効になります。
データファイル内の画像ファイル名は、アップロードされた画像ファイルに対応している必要があります。
大量の画像をインポートする場合は、システムに過負荷がかからないように、バッチあたりの最大サイズ(MB)を指定し、バッチごとの待機時間を設定します。これを行うには、開発者モードを有効化 し、:guilabel:インポートするファイル セクションの バッチあたりの最大サイズ および 各バッチ後の遅延 フィールド( インポートするファイル 内)を入力します。既定では、待機時間はOdooクラウド - 利用規定(AUP) <https://www.odoo.com/acceptable-use>`_.で定義されている RPC/API 呼び出し上限を満たすように設定されています。
レコードを複数回インポートする¶
インポートされたファイルに 外部ID または データベースID という列が含まれている場合、既にインポートされたレコードは作成されずに変更されます。これは非常に便利で、ユーザは同じ CSV ファイルを何度もインポートすることができます。
Odooは、それが新規かそうでないかによって、各レコードの新規作成または変更を行います。
この機能により、企業はOdooの インポート/エクスポートツール を使用して、スプレッドシートアプリケーションのレコードを一括修正することができます。
特定のフィールドに提供されていない値¶
CSVファイルでフィールドが指定されていない場合、Odooはその定義されていないすべてのフィールドにデフォルト値を割り当てます。しかし、CSVファイル内 でフィールドに『空の値』が設定されている場合、Odooはデフォルト値を割り当てるのではなく、そのフィールドに空の値を設定します。
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_1 と company_1 は、元のデータベースで同じ ID 1 を共有していました)。
作成された2つのファイルはそのままOdooにインポートすることができます。これら2つの CSV ファイルをインポートすると、4つの連絡先と3つの会社があります(最初の2つの連絡先は最初の会社にリンクされています)。まず会社をインポートし、次に人をインポートするようにして下さい。
Odoo内でデータを更新¶
外部 ID が一貫性を保っている限り、データインポートにより既存のデータを一括更新することができます。
データエクスポートを準備¶
インポート機能を使用してデータを更新するには、まず更新対象のデータ画面へ移動し、 (リスト) アイコンを選択してリストビューを表示します。リストの左端にあるチェックボックスで、更新対象の各レコードにチェックを入れます。次に アクション ボタンをクリックし、ドロップダウンメニューから エクスポート を選択します。
On the resulting Export Data pop-up window, enable the Updatable fields only switch. This automatically includes the External ID in the export. Additionally, it limits the Available fields list to only include fields that are able to be imported.
注釈
The External ID field does not appear in the Fields to export list unless it is manually added. However, if the Updatable fields only switch is enabled, it is included in the export.
ポップアップウィンドウの オプション を使用してエクスポートに含めるフィールドを選択し、エクスポート をクリックします。
更新済データをインポート¶
エクスポート後、データファイルに必要な変更を加えます。ファイルが準備できたら、通常のデータインポートと同じ手順で、インポート することができます。
危険
データを更新する際には、外部ID が一貫性を保つことが極めて重要です。これがシステムがレコードを識別する方法であるためです。IDが変更されたり削除されたりすると、システムは既存のレコードを更新する代わりに、重複したレコードを追加してしまう可能性があります。