sharingはApex開発を行っている方々なら、常に念頭において開発されていることと思います。多くのBlogなどの記事でも紹介されておりますが、Salesforceの開発においてセキュリティに関する大変重要なキーワードです。sharing実行ユーザ権限でレコードを取得する。sharingシステム管理者権限でレコードを取得する。sharingを宣言して開発していることと思います。sharingを宣言しない場合は、そのクラスを呼び出したクラスの権限に依存します。sharingモードで動作するのはもっとも注意が必要なところですね。継承したクラスApexクラスでももちろんをクラスを継承して実装することができます。sharingの挙動について改めて確認してみましょう。以下のサンプルコードでは、Visualforceページに2つのPageBlockTableを配置して、それぞれAccountレコードのリストを表示しています。上のテーブルは、Superクラスのメソッドを直接呼出しており、下のテーブルはSubクラス経由でSuperクラスのメソッドを呼び出しています。取引先(Account)オブジェクトの共有設定は非公開になっています。sharingで動作します。sharingで動くことになります。内部クラスまた、Apexクラス実装時に内部クラスを定義しその中でクエリを発行するケースもありますね。sharingで動作します。キーワードでは、次の点に留意してください。メソッドがコールされるクラスの共有設定ではなく、メソッドが定義されているクラスの共有設定が適用されます。宣言されたクラスでコールされる場合、そのメソッドの実行では共有ルールが適用されます。クラスで宣言されていない場合、現在の共有ルールが有効となります。クラスが別のクラスから共有ルールを取得する場合を除き、共有ルールは強制実行されません。共有が強制実行されている別のクラスからクラスがコールされた場合、コールされたクラスにも共有が強制実行されます。共有設定は、初期化コード、コンストラクタ、メソッドなどクラスに含まれているすべてのコードに適用されます。内部クラスはそのコンテナクラスから共有設定を継承しません。クラスが別のクラスを拡張または実装している場合、親クラスからこの設定が継承されます。最後の2点は見落としがちなところですが、一歩間違えると致命傷になりかねないので要注意ですね。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。