「予定あり」としか表示されない他人の予定を参照する方法
最終更新
最終更新
Salesforceの仕様上、他ユーザーが登録した関連先のない「行動」(予定)は参照できません(仕様についてはこちらをご覧ください)。Calsketでもこれらの「行動」は「予定あり」と表示され、詳細を参照することはできません。そこで、Salesforceで標準提供されている「Flow Builder」を利用し、関連先のない「行動」が作成された場合に自動的にカレンダー共有用のレコードを関連先に追加するレコードトリガーフローを作成することで、他人の予定も参照可能することができます。
行動を共有するために強制的に関連先を追加してしまう、半ば強引な手法ではありますが、関連付けるレコードの参照権限をコントロールすることで、Salesforceのアクセス権限管理の考え方から逸脱せずに対応できることから、現状最も有効な対応策です。
このTipsに記載されている内容を設定後、新規に登録された行動には自動的に関連先が追加されますが、既存の行動データに自動的に関連先が追加されることはありません。既存の行動データに一括で関連先を追加したい場合は別途ご相談ください。
全ユーザー共通で共有設定を行う場合は、「全ユーザーへの行動の共有を設定する」のご利用をご検討ください。
ロールやプロファイルごとに行動に対するアクセス権限をコントロールしたい場合は本手順を参考にプロセスやApexトリガー等を利用して設定、開発を行ってください。
❶ 設定画面にて 「オブジェクトマネージャー」タブをクリックします。
❷ 右上の「作成」から「カスタムオブジェクト」をクリックします。
❸ 「行動」共有用のオブジェクトを作成します。
ここでは例としてオブジェクト名を「共有カレンダー」とします(任意の名前で構いません)。この際、「追加の機能」の「活動を許可」にチェックを入れます。
❹ 設定画面の「ホーム」タブに戻り、クイック検索にて「タブ」を検索、「タブ」をクリックします。
一時的にタブを追加して、「共有カレンダー」にレコードを作成します。
❺ 「カスタムオブジェクトタブ」の「新規」ボタンをクリックします。
❻ 「オブジェクト」に先程作成した「共有カレンダー」を選択し、「次へ」を押し、ステップに沿ってタブを作成します。
❼ 「アプリケーションランチャー」を開き、「すべての項目」から「共有カレンダー」をクリックします。
例として「共有カレンダー」という名前でレコードを1件作成。
❽ 後ほどプロセスビルダーで使用するため、作成したオブジェクトのID(URL最後の文字列)を控えておきます。
❶ 設定画面の「ホーム」のクイック検索にて「プロファイル」を検索、「プロファイル」をクリックし、参照権限を与えたいプロファイルをクリックします。
作成したオブジェクトのレコードを関連付けることで行動の共有範囲を制御するためには、共有する対象ユーザにオブジェクトの参照権限を付与する必要があります。オブジェクトのアクセス権限についてはこちらを参照してください。
ここでは例として参照権限を与えたいプロファイルを「カスタム標準ユーザー」とします。編集できないプロファイルに関してはこちらをご覧ください。
❷ 「オブジェクト設定」をクリックします。
❸ 「設定の検索」にて「共有カレンダー」を入力して設定画面を表示させ、「編集」ボタンをクリックします。
❹ 「オブジェクト権限」セクションにおいて、必要に応じて権限の有効化にチェックを入れ、「保存」ボタンをクリックします。
Flow Builderを起動して、「関連先」がない「行動」が更新された場合に、作成したレコード「共有カレンダー」を「関連先」に追加するように設定します。
❶ 設定画面の「ホーム」のクイック検索にて「フロー」と検索し、「フロー」をクリックします。
❷ 新しいフローを作成するため、右上の「新規フロー」ボタンをクリックします。
❸ 「新規フロー」の画面に遷移するので、「レコードトリガーフロー」を選択し、「作成」ボタンをクリックします。
❹ 「開始を設定」の画面に遷移するので、以下のように内容を設定し、「完了」ボタンをクリックします。
オブジェクトを選択
オブジェクト:行動
トリガーを設定
フローをトリガーする条件:レコードが作成または更新された
エントリ条件を設定
条件の要件:すべての条件に一致(AND)
[条件を設定] 1つ目
項目: WhatId(関連先ID)
演算子: ヌル(null)
値: True
[条件]はすべての条件に一致(AND)
[条件を設定] 2つ目
項目: IsPrivate(非公開)
演算子: 次の文字列と一致する
値: False
[条件]はすべての条件に一致(AND)
[条件を設定] 3つ目
項目: WhoId(名前ID)
演算子: ヌル(null)
値: True
更新されたレコードでフローを実行するタイミング:条件の要件に一致するようにレコードを更新したときのみ。
フローを最適化:高速項目更新
❺ フローの画面に遷移するので、「+」をクリックして要素を追加します。
❻ 「トリガーレコードを更新」をクリックします。
❼ 「新規レコードの更新」の画面に遷移するので、以下のように内容を設定し、「完了」ボタンをクリックします。
表示レベル:任意の表示ラベル名(例:「共有カレンダーを追加」)
API参照名:任意のAPI参照名(例:「AddSharedCalender」)
更新するレコードを検索してその値を設定する方法:フローをトリガーした 行動 レコードを使用
検索条件を設定
レコードを更新する条件の要件:なし-常にレコードを更新
行動の項目値をレコードに設定
項目:WhatId(関連先ID)
値:<作成した共有カレンダーレコードのIDを指定>
❽ 右上の「保存」ボタンをクリックします。
❾ 「フローを保存」の画面に遷移するので、任意の「フローの表示ラベル」と「フローのAPI参照名」を入力し、「保存」ボタンをクリックします。
❿ 右上の「有効化」ボタンをクリックします。
⓫ 以上で設定は終了です。新規で「関連先」を設定せずに「行動」を作成し、自動的に「関連先」に「共有カレンダー」が追加されるのをご確認ください。Calsket上でも、「予定あり」と表示されていた他ユーザーの「行動」も参照可能になったことをご確認ください。
❶ 設定画面のクイック検索ボックスに「共有」と入力して表示された「共有設定」をクリックしてください。
❷ 「活動オブジェクト」の「デフォルトの内部アクセス権」を確認し、「非公開」になっている場合は「編集」ボタンをクリックします。
「親レコードに連動」になっている場合は設定不要です。
❸ 「活動」オブジェクトの「デフォルトの内部アクセス権」を「親レコードに連動」に変更し、「保存」ボタンをクリックしてください。
❹ 以上で設定終了です。