Skip to content

設定

Flexible Team Shareコンポーネント、オーナー同期、スケジュールジョブの設定。

コンポーネント設定

Object Team MemberコンポーネントはLightning App Builderで直接設定できます。以下のプロパティを使用できます:

プロパティタイプデフォルト説明
Card TitleStringTeam Membersコンポーネントカードに表示されるタイトル
Max Displayed MembersInteger5折りたたむ前に表示されるチームメンバーの最大数。すべて表示するには0に設定

チームメンバーの数が設定された制限を超えると、リストが折りたたまれ、**「Show all (X more)」ボタンが表示されます。これをクリックすると完全なリストが展開され、「Show less」**ボタンで再び折りたたむことができます。レコードオーナーは、表示制限に関係なく常にリストの最初に表示されます。

Collapsed team member list

Lightning App Builder — component properties

表示制限の動作

設定動作
Max Displayed Members = 5(デフォルト)最初の5人のメンバーを表示し、残りは「Show X more」で表示
Max Displayed Members = 0すべてのチームメンバーが表示され、折りたたみ/展開なし
Max Displayed Members = 3(カスタム)最初の3人のメンバーを表示し、残りは「Show X more」で表示

チームメンバーのロール

ユーザーをチームに追加する際、以下のいずれかのロールを割り当てます:

ロール説明機能
Ownerレコードオーナーレコード作成時に自動的に割り当てられます。手動で割り当てたり削除したりすることはできません。チームメンバーを管理する完全なアクセス権を持ちます。チーム内に他のユーザーがいない場合は自動的に削除されます。
Managerチーム管理者チームメンバーの追加、編集、削除が可能です。チーム構成を管理する必要があるユーザーにこのロールを使用します。
User標準チームメンバーチームメンバーのリストを表示できますが、変更はできません。レコードへのアクセスのみが必要なユーザーにこのロールを使用します。

Team Members component showing roles

オーナー変更の同期

レコードオーナーが変更されたとき(例:アカウントが別の営業担当者に再割り当てされた場合)、Ownerチームメンバーは自動的に更新されません。システムは最初のチームメンバーが追加されたときにOwnerレコードを作成しますが、親レコードの後続のオーナー変更は追跡しません。

チームOwnerをレコードオーナーと同期するには、Record-Triggered Flowを作成する必要があります。

Flowによるセットアップ(推奨)

  1. 設定 > Flowsに移動
  2. New Flow > Record-Triggered Flowをクリック
  3. オブジェクトを選択(例:Account)
  4. トリガーを設定:「A record is updated」
  5. Entry Conditionを追加:Formula > ISCHANGED({!$Record.OwnerId})trueと評価される
  6. **「When to Run the Flow」「After the record is saved」**に設定
  7. Action要素を追加
  8. **「Sync Team Member Owner」**を検索
  9. **「Record ID」**パラメータを{!$Record.Id}に設定
  10. **「Object API Name」**は空のままにする(Record IDから自動導出)
  11. 保存して有効化

Flow Builder - Owner Sync Flow Sync Team Member Owner action configuration

Apexトリガーによるセットアップ

trigger AccountOwnerSync on Account(after update) {
  List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest> requests =
    new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>();

  for (Account acc : Trigger.new) {
    Account oldAcc = Trigger.oldMap.get(acc.Id);
    if (acc.OwnerId != oldAcc.OwnerId) {
      tucariofts.SyncOwnerInvocable.SyncOwnerRequest req =
        new tucariofts.SyncOwnerInvocable.SyncOwnerRequest();
      req.recordId = acc.Id;
      requests.add(req);
    }
  }

  if (!requests.isEmpty()) {
    tucariofts.SyncOwnerInvocable.syncOwners(requests);
  }
}

Apexコードから呼び出す(単一レコード)

tucariofts.SyncOwnerInvocable.SyncOwnerRequest request =
    new tucariofts.SyncOwnerInvocable.SyncOwnerRequest();
request.recordId = accountId;

List<tucariofts.SyncOwnerInvocable.SyncOwnerResult> results =
    tucariofts.SyncOwnerInvocable.syncOwners(
        new List<tucariofts.SyncOwnerInvocable.SyncOwnerRequest>{ request }
    );

if (results[0].success) {
    System.debug('Owner synced: ' + results[0].oldOwnerId +
                 ' → ' + results[0].newOwnerId);
} else {
    System.debug('Sync failed: ' + results[0].message);
}

結果オブジェクト

フィールドタイプ説明
successBoolean同期が成功したかどうか
messageString結果メッセージまたはエラーの詳細
oldOwnerIdId以前のオーナーのUser ID
newOwnerIdId新しいオーナーのUser ID

エラーシナリオ

シナリオ結果
レコードにチームメンバーがいないsuccess = false、「No Owner team member found」
オーナーが変更されていないsuccess = true、「Owner unchanged, no update needed」
Record IDがnullsuccess = false、「Record ID is required」
無効なレコードIDsuccess = false、エラーメッセージ

重要な制限事項

キューオーナーはサポートされていません — Flexible Team Shareはキューをチームオーナーとしてサポートしていません。レコードがキューに所有されている場合:

  • システムは現在のユーザー(最初にチームメンバーを追加した人)をチームのOwnerとして使用します
  • 後でレコードオーナーをキューからユーザーに変更した場合は、Sync Ownerアクションを実行してチームを更新してください
  • オーナーをユーザーからキューに変更した場合、チームOwnerは以前のユーザーのままになります

Flowはオブジェクトごとに作成する必要があります — オーナー同期が必要な各オブジェクトタイプに対して、個別のFlowを作成する必要があります。Invocable Actionはどのオブジェクトでも機能しますが、SalesforceではオブジェクトごとにRecord-Triggered Flowを個別に作成する必要があります。

終了日による一時的なアクセス

チームメンバーを追加する際、オプションで終了日を設定して、レコードへの一時的なアクセスを付与できます。これは以下の場合に便利です:

  • 期限が定められたプロジェクトベースのコラボレーション
  • 一時的なコンサルタントまたは請負業者
  • 休暇カバーまたは委任された責任
  • 監査またはレビュー期間

動作の仕組み

  1. チームメンバーを追加または編集する際、終了日フィールドをアクセス権を持つ最後の日に設定
  2. チームメンバーはその日の終わりまで完全なアクセス権を保持
  3. 終了日が経過した後、スケジュールされたクリーンアップジョブが自動的にチームメンバーを削除し、アクセス権を取り消す

Team member with End Date

自動クリーンアッププロセス

  • スケジュールされたバッチジョブが毎日実行され(デフォルトでは午前2:00)、期限切れのチームメンバーを削除します
  • チームメンバーが削除されると、共有レコードも削除され、レコードへのアクセス権が取り消されます
  • クリーンアップジョブはConfiguration Wizardから管理できます

Scheduled job management

Scheduled Job

Flexible Team Shareには、期限切れのチームメンバーを削除する自動クリーンアップジョブが含まれています。このジョブはパッケージのインストール時に自動的にスケジュールされます。

ジョブの確認

  1. 設定 > Scheduled Jobsに移動
  2. Flexible Team Share - Expired Member Cleanupを探す
  3. ジョブが毎日実行されるようにスケジュールされていることを確認

Scheduled Jobs in Setup

手動ジョブ管理

管理者はConfiguration Wizardからクリーンアップジョブを管理できます:

  • Schedule Job — 実行されていない場合に手動でスケジュール
  • Unschedule Job — 自動クリーンアップを停止
  • Run Now — 即座にクリーンアップを実行

トラブルシューティング

「設定が見つかりません」警告

症状: このオブジェクトの設定が存在しないという警告モーダルが表示されます。

原因: Configuration Wizardでオブジェクトを設定する前に、チームメンバーコンポーネントがレコードページに追加されました。

解決策:

  1. Configuration Wizard(Flexible Team Shareアプリ > Configuration)に移動
  2. このオブジェクトの設定を追加してデプロイ
  3. レコードページに戻る — コンポーネントが正しく機能するはずです

Configuration Not Found warning

「アクセスなし」エラー

症状: コンポーネントにチームメンバーの代わりに「アクセスなし」メッセージとロックアイコンが表示されます。

原因: 現在のユーザーに必要なPermission Set Groupが割り当てられていません。

解決策:

  1. 設定 > Permission Set Groupsに移動
  2. 影響を受けるユーザーにAdminまたはUser Permission Set Groupを割り当て
  3. ユーザーは変更を有効にするためにログアウトして再ログインする必要がある場合があります

No Access error

「This operation requires the FTS Admin permission set」エラーが解消されない

症状: Configuration Wizardで設定をデプロイする際(オブジェクトを選択し、Deploy Settingsをクリックする際)に、Flexible Team Share - Admin権限セットがすでにユーザーに割り当てられているにもかかわらず、**「This operation requires the FTS Admin permission set」**というエラーが表示されます。

原因: これはSalesforceの権限キャッシュに起因する現象です。権限セットが割り当てられた後も、Salesforceがアクティブなセッションに対して以前の権限状態に基づいて評価を続けることがあり、新たに付与されたアクセス権がすぐには認識されません。

解決策:

  1. 設定 > Permission Set Groups / Permission Setsで、Flexible Team Share - Admin権限セット(またはAdmin権限セットグループ)がユーザーに割り当てられていることを確認
  2. ブラウザでハードリフレッシュを実行し、Salesforceに権限を再評価させる:
    • Windows: Ctrl + Shift + R
    • Mac: Cmd + Shift + R
  3. エラーが解消されない場合は、ログアウトして再ログインし、新しいセッションを開始
  4. Deploy Settings操作を再試行 — これで操作が成功するはずです

「制限に到達しました」警告

症状: 「Add Team Member」ボタンが無効になり、制限に到達したことを示すメッセージが表示されます。

原因: 許可されているチームメンバーの最大数に到達しました。

解決策: 非アクティブまたは不要なチームメンバーを削除してスロットを空けます。

制限内のチームメンバー制限を超えたチームメンバー
Within limitBeyond limit

Limit reached warning detail

共有が機能しない

症状: チームメンバーが正常に追加されたが、レコードにアクセスできません。

原因: オブジェクトの組織の共有設定(OWD)がPublic Read/Writeに設定されています。

解決策:

  1. 設定 > 共有設定に移動
  2. オブジェクトのOWDをPrivateまたはPublic Read Onlyに変更
  3. 注意:OWD設定の変更は他のユーザーのアクセスに影響を与える可能性があります — Salesforce管理者に相談してください

サポート

質問や問題については、[email protected]までお問い合わせください。