イントロダクション
Odooのマルチカンパニーアクセスエラーは、ユーザーが現在の会社コンテキスト外のレコードにアクセスしようとしたときに発生します。
同一データベース内で複数の法人を運用する組織で頻出する問題です。機能的な権限が正しく設定されていても、会社別の可視性ルールが原因でアクセスが遮断されることがあります。
本ガイドでは、なぜこのエラーが起きるのかを解説し、安全に解決するための手順を示します。
Odooで発生する「マルチカンパニーのアクセスエラー」とは?
Odooは一つのデータベースで複数会社を扱え、各レコードには通常 company_id フィールドで所属会社が紐づきます。
マルチカンパニーモードが有効な場合の基本挙動:
- ユーザーはアクティブな会社の所属レコードのみ操作できます。
- レコードルールによって会社単位で自動的にフィルタがかかります。
- 一部のモデルでは会社ごとの完全な分離が強制されます。
そのためユーザーがアクティブ会社外のレコードを開く・編集しようとするとOdooが処理を拒否します。
エラーは主にUIで表示され、次のような形になります:
You are not allowed to access this document.
Odooのマルチカンパニーでよくあるアクセスエラーの原因
1. アクティブ会社の選択ミス
画面右上の会社セレクターでユーザーはアクティブ会社を切替えます。
誤った会社が選ばれていると、その会社外のレコードは参照不可になります。
2. レコードが別会社に属している
レコードの状態例:
company_id = 会社B
ユーザーは会社Aのコンテキストで操作している。
Odooはデフォルトで会社を跨ぐアクセスを許しません。
3. ユーザーに必要な会社が割り当てられていない
ユーザーはアクセスを許可する各会社に個別に割り当てられている必要があります。
割り当てがないと、会社セレクターが表示されていてもアクセスは拒否されます。
4. 会社分離を強制するレコードルール
多くのモデルには自動で適用されるレコードルールがあります。
例: [('company_id', 'in', user.company_ids.ids)]
レコードの会社がユーザーの所属会社リストに含まれていなければアクセスは遮断されます。
5. 会社依存のフィールドを含む共有レコード
一見共有されているように見えても、会社依存のフィールドが原因でアクセス制限が働くケースがあります。
特に会計関連のモジュールでよく見られます。
Odooのマルチカンパニーアクセスエラーを解消する手順
ステップ1 – アクティブ会社を確認する
画面右上の会社切替メニューでアクティブ会社を変更し、再度レコードにアクセスしてみてください。
ステップ2 – レコードの所属会社を確認する
開発者モードを有効にしてレコードの company_id を確認します。
その値がユーザーのアクティブ会社と一致しているか確かめます。
ステップ3 – ユーザーに正しい会社を割り当てる
操作手順:
設定 → ユーザーと会社 → ユーザー を開きます。
該当ユーザーが必要な全ての会社に割り当てられているか確認してください。
ステップ4 – レコードルールを点検する
操作手順:
設定 → 技術 → セキュリティ → レコードルール を開きます。
company_id でフィルタしているルールを確認します。
会社関連のルールを変更する際は運用影響に十分注意してください。
ステップ5 – モジュールごとのマルチカンパニー設定を確認する
モジュールによっては厳密な会社分離を前提に設計されています。
モジュール設定が実務フローと整合しているかを必ず確認してください。
マルチカンパニーのアクセス問題を未然に防ぐ方法
- 導入前に会社構成を明確に定義すること
- ユーザーの会社割当を慎重に行うこと
- 本番環境で company_id を手動で変更するのは避けること
- 各会社コンテキストでワークフローを必ずテストすること
- 会社を跨ぐ業務プロセスは文書化しておくこと
マルチカンパニー運用は設定の厳密さが求められます。会社割当やアクセス設計が曖昧だと、権限トラブルが頻発します。
Dasoloによるマルチカンパニー環境の設計方針
多くのアクセスエラーは、レコードルール、会社依存フィールド、ユーザーの会社割当が一致していないことが原因です。Odooは複雑な多法人構成をサポートしますが、小さな設定のずれが正当な操作を阻害します。
Dasoloではマルチカンパニー環境を診断する際、次の点に着目しています:
- 会社ごとの可視性設定(company visibility)
- レコードルールのドメインフィルター内容
- 共有レコードと会社固有レコードの区別
- システム連携用ユーザーが複数法人を横断する場合の管理
会社境界を明確にし、一貫したアクセスロジックを設計することで、会社を跨いだトラブルを未然に防ぎます。
まとめ
Odooの「マルチカンパニーアクセスエラー」は、ユーザーが許可されていない会社範囲のデータにアクセスしようとしたときに発生します。制限自体は仕様ですが、設定のずれが不必要な業務停止を招きます。
会社割当、レコードルール、共有リソースの設定を慎重に見直すことで、繰り返すアクセスエラーを解消できます。正しく設計されたマルチカンパニー構成は、データの分離を保ちつつ業務の柔軟性も確保します。