2019.12.25 「Salesforce ビジネスプロセス自動化ツールを活用しよう(6) - Lightning フロー入門(その3:簡単なフローを作成するハンズオン)」
2020.01.09 「新年のご挨拶 & 過去バックナンバーを Web 公開いたしました(+ 昨年の「フロー構築ハンズオン」の答え合わせ)」 ≫
お世話になっております。
ウフル カスタマーサポート Salesforce 担当の 後藤 でございます。
早いもので年内最終営業週となりました。
先週もお知らせしましたが、重要なお知らせですので、今週も引き続き年末年始弊社営業日のご案内をさせていただきます 。
=================================
2019年12月(年末)~2020年1月(年始) のスケジュールについて、以下の通りとさせていただきますので、ご了承の程、何卒宜しくお願いいたします。
■ 年内最終日(12月27日)の対応について
15:00 までにご連絡いただいたケースについては、 当日中に一次回答をいたします。
15:00 以降にご連絡いただいたケースについては、 1月6日の対応とさせていただきます。
■ 休業中の対応について
休業中は、電話、メール回答ともにお休みさせていただきます。
メールは休業中も受け付けております。 お休み中にいただきましたお問い合わせにつきましては、
翌営業日以降順次ご対応させていただきます。予めご了承下さい。
=================================
重要なお知らせを済ませたところで、 先週予告いたしましたとおり、皆様に「冬休みの宿題」を提供させていただきます。
「シンプルな Lightning フローを作成して、変数などがどのように使われているかを知る」
これについては、以下の Trailhead モジュールを通して解説を追加する形を取ろうと考えていたのですが・・・
簡単なフローの作成
こちらは「今までフローを扱ったことが無い」方が実施するには少々込み入ったところがあり、しかも二箇所ほど「記載のない設定」を行わないと実行時エラーが発生するため、 今回の題材とするのは少々難しいと判断しました。
当方で新しいハンズオンを作成しましたので、 こちらをお試しいただけますでしょうか。
◆ ハンズオン: 取引先画面に「取引先責任者追加フィールド(重複チェック付き) 」を追加する
簡単に作成できて、かつある程度の実用性を両立するものは何か・ ・・を考え、 今回は下のような画面コンポーネントを作る手順についてご案内をさせていただきます。
「取引先責任者の新規作成(重複チェック付き)」
取引先の関連セクション最上部に表示し、姓・名・ メールを入力し、3項目が一致する取引先責任者レコードが既に存在する場合はエラ ーを表示し、存在しない場合は新規で追加する、というものです。
↓ 一致する取引先責任者が存在しない場合
↓姓・名・メールが一致する取引先責任者が既に存在する場合
※ 今回作成するコンポーネントは Lightning Experience で使用することを前提としています。
それでは、早速作業を開始しましょう。
★ フローの完成形イメージ
今回はこのようなフローを作成していきます。
* 画面「取引先責任者の新規作成(重複チェックあり):姓・名・メールアドレスを入力して「次へ」を押す画面
* レコードを取得「一致レコードの検索」: 上記画面で入力された項目値に一致する取引先責任者を検索するプロセス
* 決定「対象レコードの有無」: 一致するレコードの有無によって分岐するプロセス
* 画面「重複レコードがみつかりました」: 一致する取引先責任者が存在した場合にエラーメッセージを表示し、フローを完了するボタンを押すよう促す画面
* レコードを作成「新規取引先責任者を作成」: 入力された項目値に基づいて、取引先責任者を作成するプロセス
* 画面「レコードが作成されました」: 作成された取引先責任者の情報を表示し、 フローを完了するボタンを押すよう促す画面
★ Flow Builder を起動する
設定メニューの「クイック検索」に「フロー」と入力します。
[プロセスの自動化] > [フロー] がすぐに見つかるので、開きます。
[新規フロー] を開きます。
フロー種別を訊かれます。 今回はページに組み込むコンポーネントを作成するので、 「 画面フロー」 を選択してください。
「開始」 ボタンのみ表示された新規フローキャンバスが表示されます。
★ フローを呼び出したレコード ID を保持する "recordId" テキスト変数を作成する
ツールボックスから「画面」要素をドラッグする前に、先週ご案内した「まずは変数 "recordId" を作成しましょう」をご記憶されていますでしょうか。
今回は「取引先画面から呼び出し、取引先に関連付けて取引先責任者を作成する」フローを作成するので、「送信された取引先 ID の受け皿となる項目」がまず必要になります。
[マネージャ] タブを開き、「新規リソース」を開きます。
リソース種別で「変数」を選択し、 各種項目値は次のように指定します。
- API 参照名: recordId
- データ型:テキスト
- 複数の値を許可(コレクション):チェックしない
- フロー外部での可用性:「入力で使用可能」のみチェックする
この手続きは今後フローを構築する際に結構な頻度で必要となりますので、是非覚えておいてください。
そしてもう一つ重要なことがあります。
作業を進めるたび、こまめに保存してください。
わたくしごとですが、このような作業を未保存のまま進めて、何かのトラブルで2時間分の作業が全て吹っ飛んだことがあります 。
フローの設定に限らず、これは全てにおいて非常に重要です!
★ キャンバスに要素をドラッグし、設定を進めていく
recordId 変数の設定が済んだら、完成イメージに沿う形で、キャンバスに要素をドラッグして値を設定していきます。
* 画面「取引先責任者の新規作成(重複チェックあり)の設定
- 表示ラベル:「取引先責任者の新規作成(重複チェック付き)」
- API 参照名: CreateNewConcact
画面コンポーネントを追加します。
追加するテキスト変数が、それぞれフォームから入力された値をフロー内で保持します。
<名前>
- API 参照名: NameInput
- 姓: テキスト型変数 "InputLastName" を新規追加
- 名:テキスト型変数 "InputFirstName" を新規追加
- 「手動割り当て変数(詳細)」をチェックした上で
- 姓: 変数 "InputLastName"
- 名: 変数 "InputFirstName"
<メール>
- API 参照名: InputEmailAddress
- 値: テキスト型変数 "InputEmail" を新規追加
- 「手動割り当て変数(詳細)」をチェックした上で
- 値: 変数 "InputEmail"
画面の設定を保存したら、「開始」と「画面」 の間をドラッグして接続します。
(この作業は今後要素を追加する度に必要になります)
* レコードを取得「一致レコードの検索」の設定
- 表示ラベル: 一致レコードの検索
- API 参照名: contact_search
- オブジェクト: 取引先責任者
- 条件の要件: 「条件を満たしている」
- 項目 "AccountId": 次の文字列と一致する = 変数 "recordId"
- 項目 "Email": 次の文字列と一致する = 変数 "InputEmail"
- 項目 "FirstName": 次の文字列と一致する = 変数 "InputFirstName"
- 項目 "LastName": 次の文字列と一致する = 変数 "InputLastName"
つまり、 画面から入力して変数に保存した値と一致する取引先責任者があるかを検索するわけです。
画面をスクロールし、引き続き設定を進めていきます。
- 保存するレコード数: すべてのレコード
- 変数に保存する取引先責任者項目: ID(デフォルト), LastName, FirstName, Email
「保存するレコード数」を「すべてのレコード」にするのは、一致する取引先責任者が複数存在することが想定されるからです。
この設定により、レコードを取得して保持する変数の種別が「レコードコレクション変数」になります。
* 分岐「対象レコードの有無」の設定
表示ラベル: 対象レコードの有無
API 参照名: ExistOrNot
結果セクションを見ると、「新しい結果」「デフォルトの結果」それぞれを設定するようになっています。
まずは「新しい結果」の方を設定していきます。
- 表示ラベル: 重複レコードが存在する
- API 参照名: Exist
- 条件: リソース(レコードコレクション変数 "contact_search") / 演算子(null) / 値(グローバル定数 "false")
先ほど説明しました「レコードコレクション変数」 がここで出てきました。
最後の「条件」について、「null が false」という少々回りくどい表現になっていますが、これはつまり、検索結果が「空白(null)ではない(false)」ということを意味しています。 この表現は今後フロー以外でも出てきますので、 覚えておくとよいと思われます。
「デフォルトの結果」については、特に条件は不要なので
- 表示ラベル: 重複レコードが存在しない
とだけ設定してください。
* 「重複レコードが存在する」から導かれる画面「重複レコードがみつかりました」の設定
- 表示ラベル: 重複レコードが見つかりました
- API 参照名: ExistTitle
<表示テキスト>
- API 参照名: DuplicatedContactList
文面については、まず「重複レコードが存在します」と入力し、「リソースを挿入」から、レコードコレクション変数 "contact_search" を指定して挿入すると、エラーメッセージの画面に対象レコードの ID を表示できるようになります。( 冒頭の動作イメージをご参照ください)
* 「重複レコードが存在しない」から導かれるレコードを作成「新規取引先責任者を作成」の設定
- 表示ラベル: 新規取引先責任者を作成
- API 参照名: CreateNewContact
- 作成するレコード数: 1
- レコード項目の設定方法: 個別の変数、リソース、およびリテラル値を使用
- このオブジェクトのレコードを作成: 取引先責任者
- 取引先責任者の項目値を設定:
- AccountId = テキスト変数 "recordId"
- Email = テキスト変数 "InputEmail"
- FirstName = テキスト変数 "InputFirstName"
- LastName = テキスト変数 "InputLastName"
最初のフォーム画面で入力した姓・名・メールアドレスを割り当てて取引先責任者を新規作成します。
取引先責任者の作成に必須の「取引先名」で、 一番最初に作成したテキスト変数 "recordId" がいよいよ登場します。
さて、最後の最後、「取引先責任者が作成されました」 メッセージ画面です。
* 画面「レコードが作成されました」の設定
- 表示ラベル: レコードが作成されました
- API 参照名: ContactCreatedTitle
<表示テキスト>
- API 参照名: CreatedContactBody
文面は、「重複が見つかった」ときと同様、まず「 新規取引先責任者が作成されました」と入力し、改行した上で「リソースを挿入」から、テキスト変数 "InputLastName"、半角スペースを空けて "InputFirstName"、改行して "InputEmail" を入力します。
============================== ==
要素の設定がすべて完了したら、 各要素をドラッグしてコネクトしてください。
イメージ図のようになりましたか?
きちんと保存したら、「有効」ボタンを忘れずに押しましょう。
★ フローを取引先レコードページに組み込む
今回作成したフローは「画面フロー」です、 レコードページに組み込んで初めて機能します。
画面フローは Lightning Experience レコードページに組み込んで使用します。Classic ページレイアウトには組み込むことができませんので、 予めご了承ください。
設定メニューから [オブジェクトマネージャ] > [取引先] を開き、[Lightning レコードページ] を開きます。
既に取引先レコードページを作成済みの場合は編集画面を開いてください。未作成の場合は、「新規」をクリックし、取引先 Lightning レコードページを新規作成してください。( テンプレートの選択は「Salesforce のデフォルトをコピー」で構いません)
画面左側の [Lightning コンポーネント] から、「フロー」をドラッグして任意の場所に配置します。
配置したフローコンポーネントをクリックして指定し、 画面右側のプロパティにて設定を確認します。
フローの種類は先ほど作成した「取引先責任者の新規作成(重複チェック付き)」が選ばれているはずですが、もし違うものが選択されている場合は変更します。
「レコード ID をこの変数に渡す」 は必ずチェックしたままにしておいてください。 このチェックを外すと、取引先の ID がフローの "recordId" に引き渡されなくなってしまいます。
レコードページを保存して、「有効化」 ボタンを押して組織のデフォルトに割り当てます。(もちろん特定のプロファイルに割り当てても構いません)
取引先レコードを何かひとつ開いてみてください。(もちろん画面を LEX に切り替えることをお忘れなく!)
フロー画面が表示されていることを確認し、 名前とメールアドレスを入力して「次へ」ボタンを押してみましょう。
きちんと動きましたか?
動いていない場合は・・・年明けに答え合わせをしますので、それまで設定を再確認してくださいませ!
===========================================================
早いもので、今年最後のカスタマーサポート通信となりました。
来年もユーザの皆様の「Salesforce をしっかり活用してビジネスで成功する」ためのお手伝いができればと存じます。
皆様のご要望あってのカスタマーサポートですので、 「取り上げてほしい題材」ありましたら遠慮なくお知らせくださいませ。
今後ともウフル カスタマーサポートを引き続きご愛顧いただきますよう、何卒よろしくお願い申し上げます。
コメント