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ずつ増加)

    出力: Odoo APIから返される生のJSON、辞書のリスト。

    事前定義されたモデル(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、辞書のリスト、各辞書には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を返します。各レコードは、すべてのリクエストされたフィールドを持つ辞書です。

    例(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はサポートされていません。

    さらに詳しく

    トレーニングや技術的なアシスタンスを実装するために、営業担当者に連絡するか、Professional Servicesページを訪れて、専門家によるプロジェクト分析のために見積もりをリクエストしてください。

    質問をする、フィードバックを提供する、Data Platformを構築するチームと直接交流するには、専用のDiscordチャンネルをご利用ください。

    OVHcloudサービスについてサポートが必要な場合は、Help Centreでリクエストを作成してください。

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