Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

レポートとグラフにデータなしレコードを表示する

公開日: Apr 3, 2026
説明
特定のグループ化のデータがない場合、Salesforce でグループ化されたレポートを実行しても、レポートには何も表示されません。日付でグループ化し、トレンドを分析しようとするときは特に、これが妨げになる場合があります。グラフに表示されるのは値のある日付のみであるため、データのない期間を特定するのは困難です。これにより、業績が突出して悪化した時期を見逃す可能性があります。

現在、この問題に関連する解決策があり、次のリンクで参照できます。
Allow zero-sum in reports (レポートでデータがない状態を許可する)
解決策
この例では、商談オブジェクトに基づいたレポートの生成を目的とし、所有者と完了予定日別のデータのグループ化を取り上げていますが、他のオブジェクトにも同じアプローチを適用できます。

商談オブジェクトに新しい数式項目を作成する
商談にスケジュール済みトリガーフローを作成する
レコードトリガーフローを作成する
2 つ目のレコードトリガーフローを作成する

_____________________________________________________________________________________

商談オブジェクトに新しい数式項目を作成する
ステップ 1.Lightning の任意のページで、右上の歯車アイコンをクリックします。[設定] を選択し、[オブジェクトマネージャー] タブに移動します。利用可能なオブジェクトのリストを下にスクロールして、[商談] を見つけます。表示されたら、クリックして選択します。
ステップ 2.サイドバーで、[項目とリレーション] をクリックします。
ステップ 3.[新規] をクリックしてカスタム項目を作成します。
ステップ 4.項目の [データタイプ] として [数式] を選択し、[次へ] ボタンをクリックします。
ステップ 5.[項目表示ラベル] セクションで数式名に「商談数」と入力します。[Field Name (項目名)] は自動的に入力されます。[数式の戻り値のデータ型] として [数値] を選択し、[小数部の桁数] を「0」に設定して、[次へ] ボタンをクリックします。
ステップ 6.以下の数式 (「サンプル数式」を参照してください) を数式キャンバスに入力し、[構文を確認] ボタンをクリックしてエラーがないことを確認します。任意で [説明][ヘルプテキスト] ボックスを入力します。
ステップ 7.[空白項目の処理] セクションで、[空白項目を空白として処理] を選択します。[次へ] ボタンをクリックします。
ステップ 8.[項目レベル] セキュリティを設定して、特定のプロファイルと権限セットで項目を表示するかどうかを決定し、[次へ] をクリックします。
ステップ 9.項目を表示するページレイアウトを選択し、[保存] ボタンを押します。
 
fomula.jpg
 
サンプル数式:
IF(Name="DUMMY OPP",0,1)

商談にスケジュール済みトリガーフローを作成する
ステップ 1.Lightning の任意のページで、右上の歯車アイコンをクリックします。 
ステップ 2.[設定] を選択し、[クイック検索] ボックスに「フロー」と入力してクリックします。
ステップ 3.[新規フロー] ボタンをクリックします。
ステップ 4.[Scheduled-Triggered Flow (スケジュール済みトリガーフロー)] を選択し、[作成] ボタンをクリックします。
 
image.png

ステップ 5.[+ スケジュールを設定] をクリックし、明日の日付を選択し、時刻を午前 0 時に設定します。[頻度][毎日] に設定されていることを確認し、[完了]をクリックします。
 
Set Scheduled.PNG
Daily.PNG

ステップ 6.開始要素で [+ オブジェクトを選択] (省略可能) リンクをクリックし、オブジェクトを [ユーザー] に設定します。
 
Set Scheduled - Copy.PNG

ステップ 7.必要な検索条件を適用します。たとえば、Experience Cloud のユーザーを除外する場合があります (ゲストユーザーが使用されている場合は、除外しないとエラーがスローされます)。無効なユーザーが除外されるようにします。[完了] をクリックします。
 
Filter Condition.png

ステップ 8.[レコードの作成] 要素をキャンバスに追加します。
a. Flow Designer で + アイコンをクリックし、[レコードの作成] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します。[API 参照名] は自動入力されます。
c. [レコード項目の設定方法] セクションで、[作成するレコード数][個別のリソースおよびリテラル値を使用] に対して [1] を選択します。
d. オブジェクトを [商談] に設定します。
e. 必要な項目値を追加し、必須項目に値が設定されていることを確認します。
 i. この要素は商談を作成するため、必ず [OwnerId] を「$Record.Id」に設定してください。
 ii.[完了予定日] には「{!$Flow.CurrentDate}」を設定します。
 iii.[名前] は一意で、先ほど作成した数式項目の値と完全に一致する必要もあります。この記事では、「DUMMY OPP」を例として説明します。
 iv.最後に、必須項目である [ステージ] を設定します。


作成したスケジュール済みトリガーフローは次のようになります。


ステップ 9.フローを保存して有効化します。

注: 別のスケジュール済みトリガーフローを実行して過去または未来の商談を作成することもできますが、このアプローチはより複雑で、多数のレコードが作成される可能性があります。この問題を避けるには、フローとストレージの制限に注意することが重要です。

レコードトリガーフローを作成する
ステップ 1.Flow Builder キャンバスの左上にある [戻る] 矢印をクリックし、[新規フロー] ボタンをクリックします。
ステップ 2.オブジェクトを [商談] に設定し、[フローをトリガーする条件] セクションで [レコードが作成または更新された] を選択します。
ステップ 3.[条件の要件] ドロップダウンを [数式の評価が true になる] に設定し、数式キャンバスに数式 (「サンプル数式」を参照してください) を入力し、[構文を確認] ボタンをクリックしてエラーがないことを確認します。
 
Record Triggered.PNG
Record Triggered 2.PNG

サンプル数式:
AND({!$Record.Name}<>"DUMMY OPP",OR(ISNEW(),ISCHANGED({!$Record.CloseDate})))
ステップ 4.[更新されたレコードでフローを実行するタイミング] セクションを [レコードを更新し、条件の要件に一致するたび] に設定します。
ステップ 5.[フローを最適化][アクションと関連レコード] を選択し、[完了] をクリックします。
ステップ 6.[レコードを取得] 要素を追加します。
a. フローデザイナーで +アイコンをクリックし、[レコードを取得] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します (例: 「ダミー商談を取得」)。[API 参照名] は自動入力されます。
c. [条件の要件] ドロップダウンを [すべての条件に一致 (AND)] に設定します。[検索条件] として、以下の内容を追加します。
 
1 つ目の検索条件
  • 項目: 名前
  • 演算子: 次の値と等しい
  • 値: DUMMY OPP
2 つ目の検索条件
  • 項目: OwnerId
  • 演算子: 次の値と等しい
  • 値: {!$Record.OwnerId}
検索条件を適用:
  • 項目: 完了予定日
  • 演算子: 次の値と等しい
  • 値: {!$Record.CloseDate}
d. [保存するレコード数][最初のレコードのみ] に、[レコードデータの保存方法][Automatically store all (すべてを自動的に保存)] に設定して、[完了] をクリックします。

Get Records.PNG
image.png

ステップ 7.[決定] 要素を追加します。
a. Flow Designer で + アイコンをクリックし、[決定] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します (例: 「レコードは見つかりましたか?」)。[API 参照名] は自動入力されます。
c. [新しい結果][名前][はい] に変更し、検索条件を次のように設定します。 
  • 変数: {!Retrieve_Dummy_Opportunity.Id}
  • 演算子: 値なし
  • 値: {!$GlobalConstant.False} 
d. [デフォルトの結果]名前[いいえ] に変更します (省略可能)。[完了] をクリックします。
 
image.png

ステップ 8.  決定要素の [いいえ] (デフォルト) ブランチでフローを終了します。
ステップ 9.[はい] ブランチで、[レコードの削除] 要素を追加します。 
a. Flow Designer で [はい] ノードの下にある + アイコンをクリックし、[レコードの削除] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します (例: 「ダミー商談を削除」)。[API 参照名] は自動入力されます。
c. [削除するレコードを検索する方法] セクションで、[レコード変数またはレコードコレクション変数に保存された ID を使用] を選択します。
d. [レコードまたはレコードコレクション] 項目に [レコードを取得] の変数 ({!Retrieve_Dummy_Opportunity}) を入力し、[完了] をクリックします。 

image.png
 
作成したレコードトリガーフローは次のようになります。 
 

ステップ 10.フローを保存して有効化します。

2 つ目のレコードトリガーフローを作成する
ステップ 1.Flow Builder キャンバスの左上にある [戻る] 矢印をクリックし、[新規フロー] ボタンをクリックします。
ステップ 2.オブジェクトを [商談] に設定し、[フローをトリガーする条件] セクションで [レコードが削除された] を選択します。
ステップ 3.[条件の要件] ドロップダウンを [すべての条件に一致 (AND)] に設定し、次の詳細をエントリ条件として追加します。
  • 項目: 名前
  • 演算子: 次の文字列と一致しない
  • 値: DUMMY OPP

Delete Element.PNG

ステップ 4.[完了] をクリックします。
ステップ 5.[レコードを取得] 要素をキャンバスに追加します。
a. Flow Designer で + アイコンをクリックし、[レコードを取得] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します (例: 「レコードは見つかりましたか?」)。[API 参照名] は自動入力されます。[検索条件] として、以下の内容を追加します。

1 つ目の検索条件
  • 項目: 名前
  • 演算子: 次の文字列と一致しない
  • 値: DUMMY OPP
2 つ目の検索条件
  • 項目: 完了予定日
  • 演算子: 次の値と等しい
  • 値: {!$Record.CloseDate}
検索条件を適用:
  • 項目: OwnerId
  • 演算子: 次の値と等しい
  • 値: {!$Record.OwnerId}
4 つ目の検索条件
  • 項目: ID
  • 演算子: 次の文字列と一致しない
  • 値: {!$Record.Id}
5 つ目の検索条件
  • 項目: 完了予定日
  • 演算子: 次の値以下
  • 値: {!$Flow.CurrentDate}
c. [保存するレコード数][最初のレコードのみ] に、[レコードデータの保存方法][Automatically store all (すべてを自動的に保存)] に設定します。次に、[完了] ボタンをクリックします。

注: 将来の DUMMY OPP レコードも作成している場合は、最後の検索条件を削除してください。
 
Edit Get Records.png

ステップ 6.[決定] 要素を追加します。
a. Flow Designer で + アイコンをクリックし、[決定] 要素を選択します。
b. [表示ラベル] 項目に要素の名前を入力します (例: 「レコードは見つかりましたか?」)。[API 参照名] は自動入力されます。
c. [新しい結果] の [名前][はい] に変更し、検索条件を次のように設定します。
  • 項目: {!Retrieve_opportunities.Id}
  • 演算子: 値なし
  • 値: {!$GlobalConstant.False}
d. [デフォルトの結果] の名前を [いいえ] に変更します (省略可能)。[完了] をクリックします。
 
Record Found.PNG

ステップ 7.[はい] ブランチでフローを終了します。
ステップ 8.決定の [いいえ] ブランチで、最初のスケジュール済みトリガーフローと同様に、[レコードの作成] 要素を追加してダミー商談を作成します。ただし、今回は [完了予定日] を「{!$Record.CloseDate}」に設定します。[完了] をクリックします。
 
Edit Create Records.png

2 つ目のレコードトリガーフローは次のようになります。
 

ステップ 9.フローを保存して有効化します。
 
これで、完了予定日が今日までの商談に関するレポートを作成できるようになります。  将来の日付のダミー商談を作成した場合、レポートの日付範囲を将来に設定できます。レポートのレコード件数を使用する代わりに、最初に作成した数式項目の合計を使用する必要があります。また、[行数] の切り替えを必ずオフにしてください。



[金額] 項目のレポートを生成することもできます。これはフローで設定されていないため、グラフでは 0 と表示されます。



注: このソリューションはかなりのストレージを消費する可能性があります。不要なダミーレコードは頻繁に削除するようにしてください。

_____________________________________________________


作成者: Eric Praud | Salesforce MVP
Eric は Epam PolSource 社のシニアコンサルタントであり、12 年間にわたって Salesforce エコシステムに携わってきました。Eric 氏は Salesforce サポートエージェントとして Salesforce のキャリアをスタートさせました。多くの人がそうであるように、偶然このプラットフォームに巡り合い、それ以来熱心に取り組んでいます。アンサーコミュニティで非常に活発に活動しており、2021 年 3 月より Salesforce MVP を務めています。


これらの回答は回答を提供したユーザーの意見のみを反映したものであり、ユーザーが Salesforce と提携しているか否かにかかわらず Salesforce の意見ではありません。第三者によって、または第三者に代わって提供された製品、サービス、情報、データ、コンテンツ、その他の資料 (以下「第三者資料」) が含まれる場合があります。Salesforce は第三者資料の正確性、有効性、適時性、網羅性、信頼性、完全性、品質、適法性、有用性、安全性、該当する知的財産権について、管理も支持もしておらず、それに関する責任を負いません。投稿された質問に対してメッセージボードやフォーラムで提供された回答、Salesforce やプログラムに関する質問などに答えることを意図した回答は、一般的な知識としてのみ利用でき、特定の質問に対する回答として捉えないでください (最良な回答または同様の評価がされた回答としてマークされている場合でも同様です)。特定の質問に対する回答は、必ず Salesforce サポートにお問い合わせください。Salesforce は回答を管理しておらず、回答の第三者による使用または誤用 (共有を含む) について一切責任を負いません。

ご質問がある場合は、こちら (https://trailhead.salesforce.com/trailblazer- community/feed) から Trailblazer Community 全体の英知を活用してください。

ナレッジ記事番号

000395398

 
読み込み中
Salesforce Help | Article