Skip to content

比較

コード不要の Apex 管理共有

Apex 管理共有を使うと、開発者はコードで共有レコードを作成し、レコード単位の正確なアクセスを付与できます。ただし、Apex、共有理由、そして保守のためのテストカバレッジが必要です。Flexible Team Share は無料のアプリで、チームメンバーを追加するだけで同じ基盤となる管理共有を自動的に作成します。Apex を記述する必要はなく、期限が来ると自動的に失効する一時的なアクセスにも対応します。

最終更新 2026年6月18日

共有ルールでは範囲が広すぎ、手動共有では手間がかかりすぎる場合、Salesforce の開発者は Apex 管理共有に頼ります。これは、カスタムの RowCause(共有理由)を付与した Share レコードをコードで挿入し、レコードに必要なアクセスを正確に付与する手法です。Salesforce が提供する中で最も正確な共有モデルであると同時に、構築と保守に最もコストがかかる手法でもあります。下記の表では、Apex 管理共有と、コードの代わりに設定によって同じレコード単位の管理共有を生成する Flexible Team Share を比較しています。

レコード単位の正確な共有:コード vs 設定
機能 Flexible Team Share Apex 管理共有(カスタムコード) ネイティブの共有ルール 手動共有
レコード単位の正確なアクセス —(広範囲、条件/所有者ベース)
基盤となる共有レコードを自動的に作成 ✓(コードを自分で記述) —(完全に手作業)
Apex 不要、開発者不要 —(Apex とテストが必要)
標準オブジェクト・カスタムオブジェクトで動作
人の追加・削除でアクセスが自動的に更新される —(ロジックを自分で構築) —(完全に手作業)
自動的に失効する一時的なアクセス —(スケジュールジョブを構築)
エンドユーザー向けのレコード上の Team Members UI —(独自の UI を構築)
継続的な保守負担 低(管理アプリ) 高(カスタムコード+テスト) 高(手作業)
料金 無料・無制限 開発者の工数 標準機能に含まれる 標準機能に含まれる

Apex 管理共有に実際に必要となるもの

Apex 管理共有とは、共有レコード、すなわち AccountShareOpportunityShare、カスタムオブジェクトの場合は MyObject__Share を作成するコードを記述することを意味します。各レコードには Apex 共有理由RowCause)を付与し、そのアクセスが自分のものとして認識され、所有者の変更後も維持されるようにします。これを本番運用するには、共有を最新に保つトリガ、アクセスを失効させる場合はスケジュールジョブ、Apex テストカバレッジ、そして要件の変化に応じてそれらすべてを保守する開発者も必要になります。強力で正確ですが、これは設定ではなくソフトウェアプロジェクトです。

「Apex でやる」がコスト高になる理由

コードそのものは始まりにすぎません。誰かが共有理由を設計し、人の出入りに応じた挿入と削除を処理し、単体テストでカバーし、ビジネスルールが変わるたびに見直さなければなりません。エンドユーザーにはインターフェースが用意されず、誰がアクセス権を持っているかを確認したり変更したりできないため、管理者は開発者がリリースへと翻訳しなければならない要望をさばくことになります。単一のオブジェクトであれば問題ないかもしれませんが、組織全体となると恒常的な保守コストになります。

Flexible Team Share がコードなしで同じ結果を実現する仕組み

Flexible Team Share は Apex 管理共有を代わりに作成します。管理者はクリック操作のウィザードを通じてオブジェクトごとにチーム機能を有効化し、エンドユーザーはレコード上で直接チームメンバーを追加します。その裏側で FTS は独自の共有理由を付けた正しい共有を挿入し、メンバーが変わると更新し、削除されると取り消します。これはまさに Apex で構築するものと同じでありながら、記述も保守も一切不要です。さらに自動的に失効する一時的なアクセス、Flow または Apex トリガによる所有者の同期、そしてレコード上の Team Members UI も利用できます。AppExchange 上で 100% 無料であり、オブジェクト、チーム、メンバーの数に制限はありません。

よくある質問

Apex を記述せずに Apex 管理共有を行えますか?

はい。Flexible Team Share は、Apex で構築するのと同じ管理共有レコードを共有理由まで含めて作成しますが、設定はクリック操作で行い、チームメンバーはレコード上で追加します。記述したり保守したりするコード、トリガ、テストカバレッジは一切ありません。

Flexible Team Share は内部で Apex 管理共有を使用していますか?

特定のレコードへのアクセスをユーザーに付与する基盤となる共有レコードを作成し、共有理由とそのライフサイクルはアプリが管理します。コードを自分で抱えることなく、プログラムによる共有の正確さが得られます。

カスタムオブジェクトの Apex 共有でも動作しますか?

はい。Flexible Team Share は、共有に対応するあらゆる標準オブジェクトおよびカスタムオブジェクトで動作します。管理者はウィザードを通じてオブジェクトごとにチーム機能を有効化するため、カスタムオブジェクトでも標準オブジェクトと同じレコード単位の管理共有が得られます。

共有したアクセスを自動的に失効させられますか?

はい。有効期限を設定してチームメンバーを追加すると、期限が過ぎた時点でアクセスが自動的に取り消されます。構築すべきスケジュール Apex ジョブはありません。手作りの Apex 管理共有には組み込みの失効機能がないため、自分でコーディングして保守する必要があります。

本当に無料ですか?

はい。Flexible Team Share は Salesforce AppExchange 上で 100% 無料であり、オブジェクト、チーム、メンバーは無制限です。プレミアムプランも、期間限定のトライアルも、隠れた料金もありません。

1 行もコードを書かずに Apex 管理共有の正確さを手に入れましょう。Flexible Team Share を無料でインストールできます。

AppExchange で入手する

Flexible Team Share とは?

6 分間の解説。FTS を開発した理由、インストール方法、コード不要でどの Salesforce オブジェクトにもチームメンバーを追加する方法を紹介します。