フォローする

2019.12.20 「年末年始弊社営業日のお知らせ & Salesforce ビジネスプロセス自動化ツールを活用しよう(5) - Lightning フロー入門(その2:ハンズオンを始める前に)」

≪ 2019.12.12 「Salesforce ビジネスプロセス自動化ツールを活用しよう(4) - Lightning フロー入門(その1:フローの概念を理解する)」

2019.12.25 「Salesforce ビジネスプロセス自動化ツールを活用しよう(6) - Lightning フロー入門(その3:簡単なフローを作成するハンズオン)」

 

お世話になっております。

ウフル カスタマーサポート Salesforce 担当の 後藤 でございます。

 

 

令和初の師走も佳境を迎え、 今年も残りわずか10日あまりとなりました。
まずは重要なお知らせ、 年末年始弊社営業日のご案内をさせていただきます。

 

=================================

 

2019年12月(年末)~2020年1月(年始) のスケジュールについて、以下の通りとさせていただきますので、 ご了承の程、何卒宜しくお願いいたします。

 

 

■ 年内最終日(12月27日)の対応について
15:00 までにご連絡いただいたケースについては、 当日中に一次回答をいたします。
15:00 以降にご連絡いただいたケースについては、 1月6日の対応とさせていただきます。
 
■ 休業中の対応について
休業中は、電話、メール回答ともにお休みさせていただきます。
メールは休業中も受け付けております。 お休み中にいただきましたお問い合わせにつきましては、
翌営業日以降順次ご対応させていただきます。予めご了承下さい。

 

 

 

============================== ===

 

 

さて、連載企画としてお送りしております「Salesforce のプロセス自動化ツール を活用しよう」企画、先週より「 Lightning フロー編」に入っておりますが、先週の最後で「来週以降は Trailhead のハンズオンに沿ってご説明していきます、 関心のある方は是非予習をどうぞ」と お知らせしたそのハンズオン :

 

簡単なフローの作成
 
こちらをご覧になられた方の中で、「変数って何? コレクション変数って?手動割り当て変数って?」と思われた方、 決して少なくないと思います。

 

フローを構築するには、「コードを書けなくても構わないけれど、 最低限のプログラミングの概念を理解しておく必要がある」 と先週ご案内いたしましたが、その「 最低限のプログラミングの概念」さえも、 今までアプリケーション構築に触れてこなかった Salesforce 管理者の皆様には少々敷居が高いものかもしれません。( 実際私がそうでした!)

 

なので、次週からハンズオンを始める上で、先ず知っておきたい「 Lightning フローで用いられるプログラミング開発的概念」について、 簡単にご案内をさせていただきます。

 

なお、本記事は「プログラミングの知見が無く、 Salesforce でワークフロールールやプロセスビルダーを使って簡単な自動化の 設定を行える」ユーザの方を対象とします。 プログラミングの概念を既にご認識されている方は、 温かく見守っていただければ幸いでございます。

 

 

1.Lightning フローで用いられる「変数」って?

 

プログラミングの知見が無いユーザが、フローを初めて使う際、 まず最初に間違いなく「えっ?」と思う概念、それは「変数」 だと思われます。

 

 

============================== ==
プログラミングにおける変数(へんすう、英: variable)とは、 高水準言語のプログラムのソースコードにおいて、 扱うデータを読み書きする記憶域 (storage) のことであり、固有の名前(識別子)によって識別される。 変数を用いることで、 データを一定期間記憶し必要なときに利用することができる。
============================== ==

 

今まで解説してきた自動化ツール・・・ ワークフロールールや承認申請、 プロセスビルダーでは出てこなかった概念です。

 

ワークフロールールやプロセスビルダーは、「 レコードが作成または更新されたタイミング」 でのみ起動していたため、「対象となるレコード」 が常に存在していました。
例えば、「対象となるレコードの項目を特定の値で置き換える」「 対象となるレコードの親レコードのステータス項目を更新する」「 対象となるレコードに対し主従関係の従レコードを作成する」 など、 実行するアクションは常に対象レコードをキーとしたものになって いました。

 

フローでは「対象レコード」が存在しません。
正確に言えば「対象レコードを指定するための手続きが必要」 となります。
その「対象レコード」 を指定するために何よりもまず必要なものが、「変数」 になります。
もちろん変数を用いる場面はそれだけではないのですが、「 フローの開始方法」という点で、 まず変数の用い方を理解しておく必要があります。

 

 

2.フローの開始方法と変数の関係

 

フローの種別は、開始方法によって大きく二つに分けられます。
  • 画面フロー
  • 自動起動フロー
フロー種別

 

 

画面フローは、文字通り「画面を介するフロー」です。
入力項目や「はい/いいえ」の選択、「次へ」や「完了」 ボタンな どを伴い、ユーザに操作をさせるタイプのフローになります。

 

一方、自動起動フローは、 今までご説明してきたワークフロールールやプロセスビルダーと同 じく、何からの条件で自動起動し、 バックグラウンドで実行されるタイプのフローになります。

 

自動起動フローがワークフロールールやプロセスビルダーと違う点 、それは「フロー自身はトリガを持たない」という点です。
ワークフロールールとプロセスビルダーは「 レコードが作成および更新された際に」それ自身で起動しますが、 自動起動フローは、 外側から何らかのアクションで呼び出す必要があります。
Apex クラスなどの開発メソッドを使用しない限り、 一般的には「 プロセスビルダーから呼び出す」方法を取ります。

 

プロセスビルダーからフローを呼び出す際に、 どのレコードに対してアクションを行うかを指定するため、 プロセスビルダーから送信されたレコード ID を フローで受け入れるための項目を用意してあげる必要があります 。

 

その際にフロー側で定義するものが「変数」になります。

 

一般的には、"recordId" という名前でテキスト入力型の変数を作成し、 プロセスビルダー側でフローを呼び出す際に「対象レコードの ID はフローの "recordId" 変数に代入する」よう設定をします。
そして、フロー側の「レコードを取得」にて、レコードの ID 値が変数 "recordId" と一致するレコードを取得するように設定すれば、 どのレコードに対してフローアクションを実行するかを特定するこ とができます。

 

 

一方、画面フローを呼び出すには、 プロセスビルダーが使用できない代わりに、一般的には「 Lightning ページに埋め込む」か「 フローアクションまたはカスタムボタンを設定する」 方法を取ります。あの憧れの「 ボタンを押したらウィザード画面がポップアップする」仕掛けは、 画面フローで設定するわけです。

 

その際、 ボタンまたはアクションをレコード画面のページレイアウトに埋め 込むことで、フローを呼び出した際に "recordId" という名前のテキスト入力変数を探し、 見つかった場合に当該レコードの ID を変数に渡します。
これにより、当該レコード自身、 もしくは関連するレコードに対してフローを実行することができる ようになります。

 

フローアクションの考慮事項
 
================================
入力変数
フローアクションでは、レコードの ID 項目の値をフローに渡すことができますが、それだけです。 フローに recordId というテキスト入力変数があれば、 アクションの実行時にレコードの ID がその変数に渡されます。ない場合は、レコード ID は渡されず、フローはそのまま実行されます。
================================

 

重要なのは、変数の名前が必ず "recordId" でなければいけないという点です。
プロセスビルダーで呼び出す自動起動フローの場合は変数名は任意 で構いませんでしたが、 レコード画面に埋め込んだボタンから起動する画面フローの場合は 、変数名が "recordId" でないとフロー側で認識されないというわけです。

 

今後のために、特定レコードに依存するフローの場合は、 まず最初 にテキスト入力型変数 "recordId" を作る 、と覚えておくと間違いないと思われます。

 

対象レコードを指定するための変数は、レコード ID に依存したものでなければいけないというわけではありません。
ホーム画面に「取引先責任者の検索」というボタンを設置し、 画面フローを呼び出し、メールアドレスを入力して、 フローのテキスト変数 "ContactEmail" に代入し、一致するレコードが見つかった場合は一覧を表示する、 といった方法もあります。
とはいえ、フローを作成する最初の段階では、「 プロセスビルダーでは出来ないことをフローで拡張する」 といった意図がほとんどだと思われますので、まずは "recordId" にレコード ID 値を送り込む、 という設定を習得していただければよろしいかと存じます。

 

次週、いよいよハンズオンを開始いたします。
皆様の「冬休みの宿題」としてお役立ちできれば幸いです。

 

 

===========================================================

 

ビジネスプロセスの自動化ツールに関するシリーズの5回目、 いかがでしたでしょうか。
年末のご多忙な時期に大変恐縮ではありますが、 皆様の活用度向上のお役立ちができるよう、 来年も引き続きニュースメールで「気づきの共有」 をさせていただければと存じます。
年末年始の営業日についても、 恐れ入りますがご確認いただけますでしょうか。

 

 

今後ともウフル カスタマーサポートを引き続きご愛顧いただきますよう、 何卒よろしくお願い申し上げます。

 


Salesforce・Googleの運用・サポートでお困りなら

 カスタマーサポートへお問合せください。


コメント

 
 
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています