Salesforceの特徴のひとつとして「ノーコード開発/ローコード開発」があります。コーディングなしで、条件分岐やロジック、アクションを使って処理を実現する機能として、プロセスビルダーやワークフロールール、フロー等があります。
Winter'23のバージョンアップに伴い、ワークフロールールーの新規作成が廃止予定となっています。(Sandboxプレビューは2022年8月後半から、本番適用は2022年10月予定)※プロセスビルダーはもう少し先のSpring'23予定
Salesforceでは、すでに作成済みのワークフローを自動でフローに移行するためのツール(フローに移行:Migrate-to-Flow)が用意されています。
今回は、このツールを使ったワークフローの移行手順や制約などについてご説明したいと思います。
フローに移行ツールについて
Spring’22のバージョンアップの際に、フローに移行(Migration to Flow)機能がリリースされました。
このツールを利用すると、ワークフロールール・プロセスビルダーをフローに自動変換することが可能となります。
下図の通り、設定メニューに「フローに移行」機能が表示されることが確認できます。
基本的には、このフローに移行ツールを利用することで、簡単にフローに移行することができますが、対応できないワークフローや制約事項もあるため、完全に自動で移行ができるというわけではありません。
実際にツールを使いながら変換手順や制約事項について説明していきたいと思います。
制約事項について
まず、制約事項について公式サイトからの内容に基づいて説明します。(以下公式サイトより)
Salesforce 公式HELPサイト「[フローに移行] ツールに関する考慮事項」参照
現時点で、「フローに移行ツール」がサポートされるワークフロールールは、以下のようになっています。
- 項目ベースの条件
- 項目自動更新
- メールアラート
- 送信メッセージ
- 時間ベースのワークフローアクション
- true に設定されたルール条件の数式 (評価条件が [作成されたとき、およびその後基準を満たすように編集されたとき] に設定されていない場合)
Equal to
nullNot equal
to null- ルール条件の数式
以下を含むワークフロールールは、[フローに移行] ツールでは移行できません。
- ワークフローアクションが定義されていない条件
- グローバル変数項目
- 関連レコードの項目
- レコードタイプ
[次の文字列を含まない]
、[次の値を含む]
、[次の値を含まない]
、または[次の範囲内にある]
演算子- 選択リスト項目の
>
、>=
、<
、<=
演算子 Hour
、Minute
、Second
、TimeNow
、TimeValue
、IsClone
、または$RecordType
を使用する数式- ToDo
- 日付項目の相対日付値
- マルチ通貨
上記公式サイトに記載の通り、フローに移行ツールで移行できないものも以外と多いので注意が必要です。
この場合、利用している機能に合わせて、手動での変更が必要となります。簡単なもの(例えば項目自動更新だけの処理)などは、フローで直接作り直しをしたほうが早い場合もあります。
ロジックが複雑なものは一から作成するのも大変なので、移行できない部分だけを許可されている処理やコンポーネント(アクション)に置き換えなどをして移行ツールを利用後に、フローのロジックとして修正するほうがよいでしょう。
ワークフロールールをフローに移行する手順
今回は、新規ワークフロールールを作成後、フローに移行ツールを使って実際に移行作業を実施してみたいと思います。
フロー移行の簡単な流れ
- ワークフロー作成(今回のみ)
- フローに移行ツールを使って自動変換
- ワークフロールールの修正(移行ツールでエラーになった場合)
- フロー変換後にFlowBuilderでフロー検証のテストを作成
- フロー検証テストの実施(合格になるまで)
- フローの有効化(ワークフローの無効化)
では、さっそく手順通り進めていきたいと思います。まずは、ワークフローの作成からとなりますが、実際の移行作業では既に組織で作成済みのワークフローを使って作業することになります。
新規ワークフロールールの作成
手順①システム管理者にてSalesforce 組織にログインして、設定->ワークフロールールを実行します。
手順②ワークフロールール画面にて、新規ルールをクリックします。
手順③Flow Builderで試しますか?と確認されますが、ワークフロールールで続行します。
手順④オブジェクトの選択で、取引先責任者を指定して、次へをクリックします。
手順⑤新規ワークフロールールの設定では、以下のように設定して保存&次へをクリックします。
ルール名:役職未指定時のルール
評価条件:作成されたとき、および編集されるたび
ルール条件:取引先責任者:役職がNULL(ブランク)と一致する場合 ※役職が未指定の場合
手順⑥続いて、アクションを追加していきます。まずは、新規Todoをクリックします。
手順⑦新規Todoの画面では、以下の内容を設定し、保存&新規をクリックします。※設定内容はお好きな内容で構いません。
割り当て先:取引先責任者所有者
件名:役職の更新タスク
期日:ルール適用日
手順⑧続いてはメールアラートを追加します。
設定内容は、適当で構いません。
手順⑨最後に項目自動更新のアクションを以下の内容で追加します。
更新する項目:役職
項目値の指定:"なし"
手順⑩以下の通り、3つのワークフローアクションが追加できたら、ワークフロールールを有効化して完了となります。
有効化されたら動作検証しておきましょう。取引先責任者の作成または更新で、役職を未指定とした場合に、役職に”なし”が設定され、TODOの追加とメール通知がされることが確認できればよいです。
フローに移行ツールを実行
先ほど作成したワークフロールールをフローに移行してみます。
手順①設定->フローに移行を実行します。※先ほど作成したワークフロールールが表示されていると思います。
ここで、ワークフロールール名を指定して、フローに移行ボタンをクリックします。
手順②フローに移行ツールで変換できない機能を利用している場合、以下のようなエラーが表示されます。この場合Taskワークフローアクション(TODOの作成アクション)が制約に該当します。
この場合、手動でワークフローを修正する必要があります。
正常に処理される場合は以下のように処理が進められます。
ワークフロールールの修正
フローに移行ツールでエラーが発生する場合や事前に問題がわかっている場合は、ワークフロールールを修正しましょう。
今回は、TASKのアクションが問題となるため、ワークフロールールからアクション「TODOの作成」を削除します。
手順⑫以下のエラー画面から、ワークフロールールで開くをクリックします。
手順①ワークフロールールの画面で、アクションに表示されているTodoを削除します。
手順②削除されていることが確認できたら、ワークフロールールの画面を閉じて再度、フローに移行画面を表示します。
ワークフロールール修正後に再度フローに移行ツールを実行
手順①フローに移行画面で、修正後のワークフロールールを指定して、フローに移行を実行します。
手順②移行が成功したら以下の画面が表示されます。(まだ無効化されている状態)
このまま有効化を切替ボタンをクリックして有効化することもできますが、変換された処理が正しいかどうかテストすることをお勧めします。
Flow Builderでテストを実行
自動変換されたFlowをテストするための機能があるので、テストを作成して検証してみましょう。
手順①以下の画面で、Flow Builderでテストをクリックします。
手順②テストの作成画面で、作成ボタンをクリックします。
手順③新規テストの画面で、テストの詳細、トリガ、パスを設定から登録していきます。
表示ラベル、API参照名、説明を入力後、レコードが次の場合にテストを実行で作成済を指定します。※更新もテストしたい場合は、更新を指定しても構いません。テストのパスは即時実行
手順④続いて、最初のトリガレコードを設定を実行します。
テストデータとして利用する取引先責任者のレコードを指定します。
手順⑤既存のレコードを使う場合、検索した取引先責任者を選択すると自動的に項目の値がセットされます。
手順⑥既存の取引先責任者は、ワークフロールールを有効化してテストしている場合、役職には"なし"が設定されているため、手動でNULL(ブランク)に変更します。
手順⑦検証レコードが設定できたら、今度は実行結果の検証のためアサーションを指定します。(処理内容が正しいことの検証)
手順⑧フロー実行後の役職が"なし”に変更されていることを検証するため以下のように設定します。
リソース:$Record>役職
演算子:次の文字列と一致する
値:なし
テストの実行(ワークフロールールの検証)
テストを作成したら続いてテストを実行していきます。
手順①Flow Builder画面で、テストを表示(ベータ)をクリックします。
手順②テストの画面で、作成したテストのレコードの▼メニューからテストを実行して詳細を表示をクリックします。
手順③テストが実行され正常に処理されると以下のようにアサーションに合格が表示されます。
手順④すべての詳細をクリックすると、実行結果のデバッグログが表示されるため、各プロセスの実行結果が正しいかチェックすることができます。
フローの有効化
変換されたフローの検証が完了したら、フローの有効化を実行します。
手順①以下の画面から有効化を切替をクリックすると、フローが有効化され、変換元のワークフロールールは無効化されます。
以下のメッセージが表示されれば成功
もしくは、手動でフローを有効化して、ワークフロールールを無効化しても同じ結果となります。
最終検証
最後に設定内容の確認とフローの動作検証を実行します。
手順①ワークフロールールの画面を開いて、無効化されていることを確認
手順②自動変換して作成されたフローの画面を表示して無効化されていることを確認
手順③取引先責任者の編集画面を開いて、役職を”なし"からNULL(ブランク)にして更新します。
手順④役職がFLOWによって再度"なし"に更新されていることを確認します。
手順⑤最後にメールが受信されていることを確認して検証が完了となります。
まとめ
今回は、フローに移行ツールを使ってワークフロールールを自動変換する手順を説明しましたが、フローを使いこなすには、変数を使ったり、処理のアルゴリズムを考えたりする必要がでてくるため、少しプログラミングに近い知識が必要となってきます。
フローの使い方は、TrailheadにTrailがあるため学習したい方はこちらをお試しください。
Salesforce Trailhead公式トレイル「Flow Builder を使用したフローの作成」