こんにちはナガイです。
今回は、Salesforceのフロー機能についてその仕組みと主な設定方法をまとめてご紹介していきたいと思います。
本ページでは、フローの概要と実際に私が使ってみたメリデメについてお伝えできればと思います。
より詳細な手順を別ページで紹介しておりますので、フロー機能についてはわかってるよっという方、各詳細な設定について確認したい方は、そちらをご確認ください。

このページは、以前ご紹介したSalesforceとkintoneの連携を実現するために私が実施した内容の一部となります。全体像を掴みたい方は、以下のページをご確認ください。

フロー機能のご紹介
フロー機能とは
フロー機能とは、Salesforceの内部での処理をローコードで作成できるようにした機能です。
イメージは以下のようになります。

Salesforceから公開されているフローに関する情報は以下になります。
公式情報はこちらからご参照ください。
フローのメリットデメリット
この章では、私がフローを実際に使ってみた際のメリットデメリットをお話ししたいと思います。
いい面もありますが、そればかりではないのが、システムというものです。
フローのメリット
1.Apex言語を使わなくてよい。
Salesforceは、独自言語であるApexという言語を用いてプログラムすることができます。
Salesforceの画面上で設定できる箇所もありますが、より細かい処理を設定するには、Apexが欠かせません。また、それにかかわるクラス、トリガーなど、システムフローを構築するために必要な知識はかなりの量が必要です。
ですが、フローでは、Apex言語を知らなくてもシステムフローを構築できるので、Apex言語を理解できていない方でも利用開始することができます。※一般的なシステム理解(条件分岐や各要素に関する知識)は必要となるので、注意してください。
2.作成しているシステムフローを視覚的に把握できる
冒頭でお見せしました画像からわかるように、シンプルなアイコンと連結する線でフロー全体を可視化することが可能ですので、どういった処理を行いたいかを一目で把握することができます。
また、今のエンジニアから別のエンジニアに引き継ぐ際に、非常に簡単に説明することができます。
Apexクラスやトリガーを利用したものだと全体像をつかみずらく、また、言語を読める人でないとどのような処理を行っているかわからないというような現象が発生します。ですが、このフローでは全体の処理を1つの絵としてみることができますので、わかりやすいと思います。
3.エラー出力箇所が視覚的に把握できるのでデバッグしやすい
作成したフローは、作成画面上からテストすることが可能です。
また、エラーが出力される場合には、どの処理で出力されたか、どのようなエラーが出力されたかを視覚的に把握することが可能ですので、デバッグが非常に行いやすくなっています。
フローのデメリット
1.機能の制約がある
視覚的にわかりやすい反面、Apexクラスなどに比べるとその処理の自由度が下がります。
例えば、レコード間の情報のやり取りなど複雑な処理を行う場合は、対応できない場合が出てくる場合があります。
また、フローを利用するうえで制限が公開情報にありますので掲載しておきます。
私の案件対応中には、フローに組み込める要素数の上限がありましたが、いまは撤廃されているようです。(API バージョン 57.0以上で上限削除されました。)
2.参考文献が少ない
これについては、Apex言語についても同じですが、参考文献が非常に少ないです。
海外製品では、あるあるなのですが、基本公開情報が英語です。日本語のページも、英文を翻訳ソフトで変換してあるだけのように見えるので読みづらい部分が多々あります。
さらに、フローに関してはApex言語に比べて歴史が長いため、日本語解説ページがより少ないということになります。
フローを使ってAPI連携するうえで一番大変だったのは、参考にできるものがとても少なかったり、有っても古いバージョンだったりで、手探りで設定方法を探さなければならなかったところです。
3.大きなフローを作成すると画面処理スピードが落ちる
これは、実際に本番環境を構築して分かったことなのですが、要素数がおおよそ50以上になると動きが大変もっさりしてきます。
おそらく、要素を追加する度に画面上のすべての項目に更新処理がかかるせいだと思いますが、時には、数十秒待たされてしまうこともありました。
ということで、ここまでで、メリット&デメリットをお伝えしてきました。
私は、Apex言語に対して知識が少なかったこととAPI連携するうえでの参考ページがフロー版しかなかったということでフローを使うに至りました。要素数の多いものや複雑な処理を行いたい場合にはフローの利用は要注意です。
ですが、デバッグのやりやすさやsandbox環境での事前テストを行わないままにリリースできるので、フローの活用もアリかなと思います。
次回は具体的な設定方法に入っていきます!

コメント