For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/connectors-sources-odoo-technical-reference.md.
  • 🇯🇵 日本語
  • Odoo: 技術リファレンス

    これは、主なOdooコネクタのドキュメントの技術的な補助資料です

    目的

    これは、主なOdooコネクタのドキュメントの技術的な補助資料です。認証の内部構造、完全なエンドポイントリファレンス、ページネーション、レート制限、出力形式、ドメインフィルタ言語、バージョン互換性、および制限についてカバーしています。コネクタをデータパイプラインに統合するために必要なすべての情報が含まれています。

    認証

    プロトコル

    コネクタは、POST {url}/jsonrpcを介してJSON-RPC 2.0を使用します。すべてのリクエストは、異なるJSONボディを持つ単一のエンドポイントに送信されます。

    資格情報

    フィールド必須説明
    urlはいOdooインスタンスのURL(例:https://mycompany.odoo.com
    loginはいOdooユーザーのメールアドレス
    api_keyはいOdooプロフィールから生成されたAPIキー
    databaseいいえ*.odoo.comサブドメインから自動検出されます。セルフホストの場合は必須です。

    認証フロー

    1. configure()は、JSON-RPCを介してauthenticate(db, login, api_key)を呼び出します
    2. uid(整数のユーザーID)を返します
    3. 以降のすべての呼び出しでは(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モデルのいずれかからレコードを抽出します。

    パラメータタイプ必須説明
    object_type選択はいOdooモデル(26のオプション)
    fields_filterタグいいえ特定のフィールドを含める(空 = すべて)
    domain_filterテキストいいえOdooドメインフィルタをJSONとして(空 = すべてのレコード)
    max_items数値いいえ最大レコード数(空 = すべて)

    API呼び出し: execute_kw(model, "search_read", [domain], {fields, limit, offset, order})

    ページネーション: オフセットベース(limit=80、オフセットは80ずつ増加)

    出力: 生のJSON、Odoo APIによって返されるdictのリスト。

    事前定義されたモデル(26):

    ドメインモデル
    連絡先res.partner
    CRMcrm.lead, crm.stage, crm.team
    販売sale.order, sale.order.line
    購入purchase.order, purchase.order.line
    請求account.move, account.move.line, account.journal
    製品product.template, product.product, product.category
    在庫stock.picking, stock.move, stock.warehouse, stock.location
    人事hr.employee, hr.department
    プロジェクトproject.project, project.task
    システムres.users, res.company, res.country, res.currency

    custom_model

    事前定義されたリストにない任意のOdooモデルからレコードを抽出します。

    パラメータタイプ必須説明
    model_nameテキストはい完全な技術モデル名(例:helpdesk.ticket
    fields_filterタグいいえ特定のフィールド
    domain_filterテキストいいえドメインフィルタをJSONとして
    max_items数値いいえ最大レコード数

    API呼び出し: modelsと同じ: execute_kw(model_name, "search_read", ..)

    出力: 生のJSON、modelsと同じ形式。

    使用例: helpdesk.ticket, mrp.production, fleet.vehicle, event.event, または任意のカスタムモデル。

    model_fields

    任意のOdooモデルのフィールド定義を返します(スキーマイントラスペクション)。

    パラメータタイプ必須説明
    model_nameテキストはいインスペクトするモデル(例:res.partner

    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抽出で使用します。

    ページネーション

    コネクタは、すべてのモデルに対して単一のページネーション戦略を使用します:

    オフセットベース

    Call 1: search_read(domain, {limit: 80, offset: 0, order: "id asc"})
    Call 2: search_read(domain, {limit: 80, offset: 80, order: "id asc"})
    Call 3: search_read(domain, {limit: 80, offset: 160, order: "id asc"})
    ...until returned records < 80
    • ページサイズ: 80(Odoo推奨)
    • 順序: 一貫したページネーションのために常にid asc
    • 停止条件: 返されるレコード数がページサイズより少ない
    • max_items: 設定されている場合、ページネーションは十分なレコードが収集されるとすぐに停止し、結果は正確にmax_itemsに切り詰められます

    レート制限

    正確な制限については、Odooインスタンスのドキュメントを参照してください。

    環境近似制限
    Odoo Online (SaaS)プランによって異なります、Odooドキュメントを参照してください
    Odoo.shインスタンス設定によって異なります
    セルフホストサーバーのリソースによって異なります

    コネクタは429 Too Many Requestsを自動的に処理します: Retry-Afterヘッダーを読み取り、リトライする前に待機します。ヘッダーが欠落している場合は、10秒にフォールバックします。

    出力形式

    生のJSON(コネクタ出力)

    コネクタは、Odoo APIからの生のJSONを返します。各レコードは、すべてのリクエストされたフィールドを持つdictです。

    例(res.partner):

    {
      "id": 8,
      "name": "Acme Corp",
      "email": "contact@acme.com",
      "phone": "+33 1 23 45 67 89",
      "is_company": true,
      "country_id": [75, "France"],
      "category_id": [1, 3]
    }

    関係フィールド

    Odooの関係フィールドは、次のように返されます:

    • Many2one: [id, display_name](例:"country_id": [75, "France"]
    • One2many / Many2many: IDのリスト(例:"category_id": [1, 3]

    プラットフォームはこれらを自動的にフラット化します。

    フラット化された出力(Lakehouse)

    プラットフォームは、入れ子になったオブジェクトをアンダースコアで列にフラット化します:

    生のJSONLakehouse列
    idid
    namename
    country_idcountry_id(配列からフラット化)

    ドメインフィルタリファレンス

    Odooはポーランド記法(接頭辞記法)をドメインフィルタに使用します。コネクタはそれらをJSON文字列として受け入れます。

    文法

    各基準は[field, operator, value]です。複数の基準はデフォルトでANDされます。

    演算子

    演算子説明
    =, !=等しい / 等しくない
    >, >=, <, <=比較
    in, not in集合への属性
    like, ilikeパターンマッチ(ilike = 大文字小文字を区別しない)
    not like, not ilike否定されたパターンマッチ
    =like, =ilikeSQL LIKE(自動ラッピングなし)
    child_of, parent_of階層的な関係

    論理演算子

    演算子アリティ説明
    &二項AND(暗黙のデフォルト)
    |二項OR
    !一項NOT

    // Active companies
    [["is_company", "=", true], ["active", "=", true]]
    
    // Sales orders over 1000
    [["state", "=", "sale"], ["amount_total", ">", 1000]]
    
    // Leads OR opportunities
    ["|", ["type", "=", "lead"], ["type", "=", "opportunity"]]
    
    // Invoices from 2024
    [["invoice_date", ">=", "2024-01-01"], ["invoice_date", "<=", "2024-12-31"]]

    バージョン互換性

    Odoo 14から19(Odoo Online saas~19.2を含む)でテストおよびサポートされています。

    OdooバージョンステータスAPIキーのサポート
    14–18完全にサポートはい
    19完全にサポート(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サービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。

    ユーザーコミュニティに参加してください。