Odoo: 技術リファレンス
これは、主なOdooコネクタのドキュメントの技術的な補助資料です
目的
これは、主なOdooコネクタのドキュメントの技術的な補助資料です。認証の内部構造、完全なエンドポイントリファレンス、ページネーション、レート制限、出力形式、ドメインフィルタ言語、バージョン互換性、および制限についてカバーしています。コネクタをデータパイプラインに統合するために必要なすべての情報が含まれています。
認証
プロトコル
コネクタは、POST {url}/jsonrpcを介してJSON-RPC 2.0を使用します。すべてのリクエストは、異なるJSONボディを持つ単一のエンドポイントに送信されます。
資格情報
認証フロー
configure()は、JSON-RPCを介してauthenticate(db, login, api_key)を呼び出しますuid(整数のユーザーID)を返します- 以降のすべての呼び出しでは
(db, uid, api_key)を渡します:ステートレスで、セッションクッキーはありません
Odoo Onlineの要件
外部APIアクセスには、Odoo Onlineのカスタムプランが必要です。無料プランとスタンダードプランにはAPIアクセスが含まれていません。Odooの料金を参照してください。
アーキテクチャ
コネクタは、Odoo JSON-RPC APIからの生のJSONを返します。プラットフォームはそこで引き継ぎます。JSONペイロードからスキーマを自動検出し、入れ子になったオブジェクトを列にフラット化し、結果をLakehouseに保存します。Trinoを介してクエリ可能です。Odooインスタンスに新しいフィールドが現れると、次の抽出時に自動的に表示されます。
コネクタ自体は、認証(JSON-RPC authenticateを使用してuidを取得)、エンドポイントルーティング、データ抽出(すべてのモデルで共有される単一のsearch_read呼び出し)、スキーマイントラスペクション(fields_get)、オフセットベースのページネーション、およびレート制限リトライを担当します。
すべてのOdooモデルは、同じsearch_read JSON-RPC呼び出しを通じてアクセス可能であるため、コネクタは26の事前定義されたモデル、custom_modelエンドポイント、およびmodel_fieldsを通じて表示された任意のモデルのすべてに対して単一の抽出パスを使用します。新しいモデルを追加するには、その名前をドロップダウンに追加するだけです。モデルごとのコードは必要ありません。
エンドポイントリファレンス
models
26の事前定義されたOdooモデルのいずれかからレコードを抽出します。
API呼び出し: execute_kw(model, "search_read", [domain], {fields, limit, offset, order})
ページネーション: オフセットベース(limit=80、オフセットは80ずつ増加)
出力: 生のJSON、Odoo APIによって返されるdictのリスト。
事前定義されたモデル(26):
custom_model
事前定義されたリストにない任意のOdooモデルからレコードを抽出します。
API呼び出し: modelsと同じ: execute_kw(model_name, "search_read", ..)
出力: 生のJSON、modelsと同じ形式。
使用例: helpdesk.ticket, mrp.production, fleet.vehicle, event.event, または任意のカスタムモデル。
model_fields
任意のOdooモデルのフィールド定義を返します(スキーマイントラスペクション)。
API呼び出し: execute_kw(model_name, "fields_get", [], {attributes: [string, type, required, help, readonly, relation]})
出力: 生のJSON、dictのリスト、各dictにはfield_name, string(ラベル)、type, required, help, readonly, relation(関係フィールド用)が含まれています。
使用例: fields_filterを設定する前に利用可能なフィールドとそのタイプを発見するために、modelsまたはcustom_model抽出で使用します。
ページネーション
コネクタは、すべてのモデルに対して単一のページネーション戦略を使用します:
オフセットベース
- ページサイズ: 80(Odoo推奨)
- 順序: 一貫したページネーションのために常に
id asc - 停止条件: 返されるレコード数がページサイズより少ない
- max_items: 設定されている場合、ページネーションは十分なレコードが収集されるとすぐに停止し、結果は正確に
max_itemsに切り詰められます
レート制限
正確な制限については、Odooインスタンスのドキュメントを参照してください。
コネクタは429 Too Many Requestsを自動的に処理します: Retry-Afterヘッダーを読み取り、リトライする前に待機します。ヘッダーが欠落している場合は、10秒にフォールバックします。
出力形式
生のJSON(コネクタ出力)
コネクタは、Odoo APIからの生のJSONを返します。各レコードは、すべてのリクエストされたフィールドを持つdictです。
例(res.partner):
関係フィールド
Odooの関係フィールドは、次のように返されます:
- Many2one:
[id, display_name](例:"country_id": [75, "France"]) - One2many / Many2many: IDのリスト(例:
"category_id": [1, 3])
プラットフォームはこれらを自動的にフラット化します。
フラット化された出力(Lakehouse)
プラットフォームは、入れ子になったオブジェクトをアンダースコアで列にフラット化します:
ドメインフィルタリファレンス
Odooはポーランド記法(接頭辞記法)をドメインフィルタに使用します。コネクタはそれらをJSON文字列として受け入れます。
文法
各基準は[field, operator, value]です。複数の基準はデフォルトでANDされます。
演算子
論理演算子
例
バージョン互換性
Odoo 14から19(Odoo Online saas~19.2を含む)でテストおよびサポートされています。
すべての26の事前定義モデルはOdoo 14–19で安定しています。モデルがインスタンスに存在しない場合(インストールされたアプリに依存)は、model_fieldsを使用して利用可能かどうかを確認してください。
制限事項
- フィールドのハードコーディングはできません。 コネクタはAPIが提供するものを返します。フィールド名と型はOdooのバージョンとインストールされたモジュールに依存します。
- 制限されたフィールド。 一部のモデルには特定のユーザーグループに制限されたフィールドがあります(例:
project.project.stage_id)。それらを除外するにはfields_filterを使用するか、APIユーザーに必要なグループを付与してください。 - バイナリフィールド。
image_1920のようなフィールドはbase64エンコードされたデータを返し、非常に大きくなることがあります。必要ない場合はfields_filterを使用して画像フィールドを除外してください。 - Odoo Online APIアクセス。 カスタムプランが必要です。無料およびスタンダードプランは外部APIアクセスをブロックします。
- Webhook/プッシュ抽出はサポートされていません。 コネクタはプルベースの抽出のみを使用します(JSON-RPC search_read)。
- 認証方法が1つのみ。 APIキーのみ。OAuth2はサポートされていません。
さらに詳しく
トレーニングや技術的なアシスタンスが必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼し、見積もりを受け取ってください。
Data Platformを構築するチームと直接質問し、フィードバックを共有し、交流するには、専用のDiscordチャネルにアクセスしてください。
OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。
ユーザーコミュニティに参加してください。

