レポートへの不要な変更を監視する

+ [How I Solved It: Monitor Unwanted Changes to Reports](https://admin.salesforce.com/blog/2022/how-i-solved-it-monitor-unwanted-changes-to-reports)

管理者として、ユーザーに必要なレポートを提供することと、ユーザーが自分自身とチームのレポートを作成および変更できるようにすることのバランスを見つけたいと考えています。しかし、他のチームが使用しているレポートを誰かが誤って編集した場合はどうなるでしょうか? 社内の他のユーザーに影響を与える可能性があるレポートへの予期しない変更や望ましくない変更を監視できる必要があります。 

# バックグラウンド 

組織として、私たちは会社全体の多くの共通のベンチマーク (BMK) と重要業績評価指標 (KPI) を持っています。このような場合、Salesforce 管理チームは、共通ベンチマーク ダッシュボードに保存する一連のレポートを作成します。このダッシュボードでは、地域のスタッフ メンバーがチーム ダッシュボードに追加したいレポートを「購入」できます。さらに、これらのレポートを複製して自分用にわずかな変更を加えたり、組織全体の BMK や KPI の範囲外のものについて独自のレポートを作成したりできます。これは、エンド ユーザーがレポートのベースライン セットを持っているだけでなく、チームのニーズを満たすために自分でデータやレポートを掘り下げる力を与えられていると感じているため、誰にとってもうまく機能します。ウィンウィン！

ただし、「壊れた」レポートについてのケースが時折見られるようになりました。もちろん、実際には何も壊れていませんでしたが、別の地域のユーザーが自分のチームのフィルターを使用して組織全体のレポートを変更したため、ある地域のスタッフ メンバーに空白のレポートが表示される可能性があります。これは通常、チーム固有のレポート フィルターを削除するだけで簡単に修正できます。しかし、それでもエンド ユーザーにとっては苛立たしいものであり、Salesforce 管理者チームが修正しなければならない余分なステップであり、常に緊急を感じていました。場合によっては、不注意による変更が数日前に発生したり、複数の変更があったため、変更がいつ誰によって行われたかを常に特定できるとは限りませんでした。

ユーザーが自分でレポートを編集および作成する能力を制限したり、レポートへのすべての変更にフラグを立てたりすることなく、レポートへの変更をプロアクティブに監視する方法が必要であることはわかっていました。そして、それが物事が少しメタになったところです。これを追跡するには、レポートのレポートよりも優れた方法があります。

**どうやって解決したか**

#  編集してはいけないレポートを理解する

解決策に飛びつく前に、レポートの変更についてプロアクティブにフラグを立てる必要があるものを正確に理解するために腰を下ろしました。私が最初に考えたのは、管理者が作成したものは変更すべきではないということでしたが、そうではないことに気付きました。チーム向けに特定のレポートを作成してから、「編集はあなた次第です!」と言うことがよくあります。そのため、他のスタッフメンバーによる編集があると予想されます。 

私がたどり着いたのは、私たちの管理チームによって作成されたレポートであり、私たちのチームが所有および管理している特定のダッシュボードにもあったレポートは、編集したくないレポートであるということでした. この明確化により、次のステップに進むためにカスタム レポート タイプに目を向けることができました。

# 2. カスタム レポート タイプを作成する

レポートには標準のレポート タイプがあることは知っていましたが、上で概説した基準を考えると、ダッシュボード情報にもアクセスする必要があったため、ダッシュボード コンポーネントから少なくとも 1 つの関連レコードを含むレポートのカスタム レポート タイプを使用しました。ここでの最後の部分は、レポートを取得するには、レポートをダッシュ​​ボードのコンポーネントで使用する必要があることを意味します。どのダッシュボード? すぐに説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/95cf7f70-dd4a-028b-b532-8a09bc93d5d7.png)


また、作成者や最終更新者などのフィールドがレポートのレポートで利用できることも知っていました。管理チームのメンバーの名前ごとにフィルターを追加することもできますが、私が本当に望んでいたのは、「ルックアップを介して関連するフィールドを追加する」を使用して、ユーザーに関する追加情報にアクセスできることでした。プロファイルやロールなどのフィールドで。見よ、彼らは利用可能だった！作成者と最終更新者の両方のユーザー ルックアップのプロファイルと、ダッシュボード コンポーネント オブジェクトからのダッシュボード名などをレポート レイアウトに追加し、レポートをセットアップする準備が整いました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/e4e24975-242a-6e44-8c36-ee12921da7a4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/b60e3c5a-fd2f-a127-76f9-05c813d99283.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/c6311bfd-c882-7187-ae27-a65a4da72099.png)


# 3. フィルターを使用してレポートを作成する
レポートを作成および変更したユーザーに関するフィールドを含むカスタム レポート タイプが作成されたので、レポートのレポートを作成する準備が整いました。名前に「一般的な BMK」または「組織全体」が含まれているという、先ほど説明した基準を満たすダッシュボードのみを表示するフィルターを追加しました。これらは、組織全体の主要なソースとして機能するダッシュボードであり、管理チームのみが変更する必要があります。 

次に、管理者以外のチーム メンバーによって編集されたレポートのみにフラグを付けたいと考えました。言い換えれば、レポートの私のレポートは、対処する必要がない限り空白にする必要があります。この要件のために、2 つのフィルターを追加しました。1. 作成者: プロファイル: 名前に「システム管理者」が含まれている (つまり、Salesforce 管理者) 2. 最終更新者: プロファイル: 名前に「システム管理者」が含まれていない (つまり、 、他のみんな！）。

どのレポートが編集されたかを確認するために使用できるレポートができたので、変更を監視して対処する方法を決定する必要がありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/010de5d9-a7b9-a914-cd5f-c5b8553931a6.png)


# 4. レポートを監視する

フラグが立てられたレポートをできるだけ早く確認したかったので、レポートを毎日チェックすることを忘れないようにする必要がなかったので、レポートを購読することにしました。レポートのレコード数が 0 件を超える場合に限り、毎日午前 7 時にメールを送信するようにサブスクリプションを設定しました。サブスクリプションの基準により、毎日レポートをチェックする必要はなく、基準を満たすレポートがあったときだけチェックする必要がなくなりました。念のため、私が持っていたデータ クリーニング ダッシュボードにもこれを追加しました。これにより、私がたまたま不在だった場合や、レポート メールを受け取る前に他の管理者がダッシュボードを閲覧した場合に、他の管理チーム メンバーがレポートを監視するのに役立ちました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/933b1cbd-3c32-ae52-6070-7be258ad5fae.png)