ビジネスロジックを追加する
アクセシビリティ
この単元ではスクリーンリーダーのユーザー向けに指示が追加されている部分があります。この単元の詳細なスクリーンリーダー版を表示するには、以下のリンクをクリックしてください。
これで基本のアプリケーションができ、ユーザーがデータを保持してプロジェクトを管理することができるようになりました。ただし、この種のプロジェクトには、設定可能なビジネスルールもあります。
宇宙ステーションの建設は一筋縄でいくものではありません。抜かりなくやり遂げることが求められる大変な作業です。かつての排気口の問題について考えてみましょう。排気口の数が多すぎて、格好の標的になりやすかったようです。
そのため、しつこい厄介者に再び問題を起こされることがないように、プロジェクトに十分な数の排気口検査官を動員して、安全上の問題となる排気口を見つけ出します。排気口検査官はどのプロジェクトにも十分な時間を費やす必要があります。時間外作業が発生しても仕方ありません。
排気口検査官の稼働状況が 150% 未満の場合は、ユーザーがその検査官のレコードを保存できないようにする入力規則を作成する必要があります。
稼働状況入力規則を追加する
-
をクリックして [Setup (設定)] を選択し、[Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
[Resource (人員)] をクリックします。
- 左側のナビゲーションにある [Validation Rules (入力規則)] を選択します。
-
[New (新規)] をクリックします。
-
[Rule Name (ルール名)] に
Inspectors_Must_Work_Overtime
と入力します。 - [Error Condition Formula (エラー条件数式)] で、排気口検査官の稼働状況が 150% 未満の場合はユーザーがそのレコードを保存できないようにします。数式を
AND(Name = "Exhaust Port Inspector", Utilization__c < 1.5)
と入力します
-
[Check Syntax (構文を確認)] をクリックして数式の構文が正しいことを確認します。
- [Error Message (エラーメッセージ)] に、
Exhaust Port Inspectors must work at least 150%.No coffee breaks!
(排気口検査官は 150% 以上稼働する必要があります。休憩なし!) と入力します。 - [Error Location (エラー表示場所)] で [Fields (項目)] ラジオボタンをオンにして、[Utilization (稼働状況)] 項目を選択します。
-
[Save (保存)] をクリックします。
では、Space Station レコードに戻り、稼働状況が150
未満の Exhaust Port Inspector
(排気口検査官) という新しい人員種別を入力してみましょう。これで、ユーザーが不適切なデータを入力するとエラーメッセージが表示されるようになりました。
Flow Builder を使用して自動化する
Flow Builder とは、ビジネスプロセスを簡単に自動化できるツールで、プロセスの作成中にそのプロセスを効果的かつわかりやすく視覚表示できます。簡単なポイント & クリック操作でフローを作成できます。フローは Salesforce で何かが起きたときにバックグラウンドでビジネスプロセスを実行するものです。
次に、シールドの状況が [Fully Operational (完全稼働状態)] に変更された時点でプロジェクトを [Complete (完了)] に更新するフローを作成します。
-
をクリックして [Setup (設定)] を選択し、[Quick Find (クイック検索)] ボックスに
Flows
(フロー) と入力して、[Flows (フロー)] を選択します。
-
[New Flow (新規フロー)] をクリックします。
-
[Start from Scratch (最初から開始)] が選択されていることを確認して [Next (次へ)] をクリックします。
-
[Record-Triggered Flow (レコードトリガーフロー)] を選択し、[Create (作成)] をクリックします。
- [Object (オブジェクト)] 項目で [Space Station (宇宙ステーション)] を選択します。
- [Configure Trigger (トリガーを設定)] で [A record is created or updated (レコードが作成または更新された)] を選択します。[Object (オブジェクト)] 項目とこの設定の組み合わせにより、誰かが Space Station レコードを作成または更新するたびにフローが実行されるようになります。
- [Condition Requirements (条件の要件)] を [All Conditions Are Met (AND) (すべての条件に一致 (AND))] に設定します。この項目でトリガーレコードの条件を設定できます。フローはそのレコードの条件が true の場合のみ実行されます。
- 条件行で、[Field (項目)] を Shield_Status__c に、[Operator (演算子)] を [Equals (次の文字列と一致する)] に、[Value (値)] を [Fully Operational (完全稼働状態)] に設定します。
- [When to Run the Flow for Updated Records (更新されたレコードでフローを実行するタイミング)] 項目で [Only when a record is updated to meet the condition requirements (条件の要件に一致するようにレコードを更新したときのみ)] を選択します。この設定によって、フローをトリガーしたレコードの変更に [Shield Status (シールドの状況)] の [Fully Operational (完全稼働状態)] への変更が含まれていた場合のみフローが実行されます。フローがトリガーされる前に [Shield Status (シールドの状況)] がすでに [Fully Operational (完全稼働状態)] であった場合にはフローは実行されません。
- 他の設定はデフォルトのままにします。
レコードのアクションを更新する
条件が true と評価された場合 ([Shield Status (シールドの状況)] が [Fully Operational (完全稼働状態)] に変更された場合) は [Project Status (プロジェクトの状況)] が [Complete (完了)] に変更されるようにします。これは、プロジェクトが終了し、宇宙ステーションが戦闘態勢であることを意味します。
- フローキャンバスの [Start (開始)] 要素の後のパスで をクリックします。[Update Triggering Record (トリガーレコードを更新)] を選択します。
- [Label (表示ラベル)] に
Update Status
と入力します。[API Name (API 参照名)] がUpdate_Status
になっていることを確認します。
-
[Use the space station record that triggered the flow (フローをトリガーした宇宙ステーションレコードを使用)] が選択されていることを確認します。
- 検索条件が [None-Always Update Record (なし - 常にレコードを更新)] に設定されていることを確認します。
- [Field (項目)] を
Project_Status__c
に設定します。
- [Value (値)] を
Complete
(完了) に設定します。
- 他の項目設定はデフォルトのままにします。
Chatter に投稿する
フローを有効にする前にもう 1 つ、最後の操作を行います。プロジェクトが完了し、シールドが戦闘態勢になったら、Chatter 投稿でこの偉業を発表します。この知らせに上司も喜んでくれるはずです。
- [Update Status (状況の更新)] 要素の後で をクリックします。[Action (アクション)] を選択します。
- [Search Action (アクションを検索)] 項目で [Post to Chatter (Chatter に投稿)] を検索して選択します。
- [Label (表示ラベル)] 項目に
Post to Chatter
と入力します。
- [API Name (API 参照名)] が
Post_to_Chatter
になっていることを確認します。
- [Message (メッセージ)] 項目に次のテキストを入力します。
{!$Record.Name} is complete! Now witness the comfort of being protected by the best shield in the galaxy!
{!$Record.Name}
テキストは、項目の値をメッセージテキストにマージする特殊な書式です。$Record
値は「フローをトリガーしたレコード」を表し、{!
および}
は「この括弧内のものすべてを、この項目にマージする項目として処理する」ことを表します。そのため、{!$Record.Name}
は、フローをトリガーしたレコードの名前に自動的に置き換えられます。
- [Target Name or ID (対象名または ID)] 項目で、Triggering Space_Station__c、Record ID の順に選択します。
-
[Save (保存)] をクリックします。
- Flow Label (フローの表示ラベル):
Fully Operational Space Station
(完全稼働状態の宇宙ステーション) - Flow API Name (フローの API 参照名):
Fully_Operational_Space_Station
- Flow Label (フローの表示ラベル):
-
[Save (保存)] をクリックします。
-
[Activate (有効化)] をクリックしてフローを有効にします。
フローをテストする
ではここで、フローが動作する様子を確認してみましょう。Flow Builder を離れるには、左上にある [Back (戻る)] 矢印をクリックします。Space Station レコードを編集して、[Shield Status (シールドの状況)] を [Fully Operational (完全稼働状態)] に設定し、[Save (保存)] をクリックするだけです。ページを更新すると、[Project Status (プロジェクトの状況)] が [Complete (完了)] になり、ページのフィードに偉業を知らせる Chatter 投稿が表示されます。
リソース