[SFDC]パートナーコミュニティユーザが自社の取引先レコードを編集できるようにしたい

Salesforceのデフォルト仕様:パートナーユーザは自社の取引先を参照のみ可能

SalesforceのPartnerCommunityユーザを有効化すると、そのユーザが所属する取引先に対して「ポータルロール」という種別で「取引先名+ ”パートナー ユーザ”」という名前の共有設定が自動的に追加される。これのアクセスレベルは「参照のみ」となっている。この仕組によって、パートナーコミュニティユーザは自社の情報を参照することができるようになる。

手動設定で編集権限を追加する2つの方法

手動の設定でパートナーユーザに自社取引先への編集権限を与える方法は2つある。

1.共有設定を追加

取引先の共有ボタンから共有設定を追加する。上述の通りデフォルトで追加されている「参照のみ」の共有設定を参考に、その取引先用のポータルロールに対して「参照・更新」を指定した共有設定を作成する。

2.共有ルールを追加する

共有ルールでも同様にポータルロールに対して編集権限を設定できる。

※いずれも取引先ごとに設定する必要がある。

ポータルロールは取引先ごとに作成されるため、上記2つの方法ではパートナー取引先が増えるたびに設定する必要がある。

自動で編集権限を追加したい場合はApexSharingを使う

コミュニティのセルフ登録機能を利用することになった。その上で、パートナーユーザは自社の情報(住所など)を登録後にも自分で編集できる必要があった。
セルフ登録用のコントローラ内で Site.createExternalUser(User u, Id accountId) メソッドを実行することで指定した取引先に所属するパートナーユーザを有効化することができる。
デフォルトでは、パートナーユーザを有効化すると取引先用のポータルロールが自動的にユーザに付与され、上で説明したように参照のみできる状態になる。

今回は Site.createExternalUser 実行後に取引先に対して更新可能な権限のApexSharingを追加してやることで、自動的な編集権限の付与を実現した。

・セルフ登録用コントローラ.cls


コメントを残す