Flow Builder「自動レイアウト」機能を使用時に起きた不具合と解消法


はじめに

私がSalesforceを触り始めた頃は、ちょうど Classic から Lightning に切り替わっていくタイミングでもあったため、そこから様々なアップデートがあったり新しい機能が登場したりなど市場は現在も賑わっています。

Lightning の「Flow Builder」は、コーディング無しで複雑な自動処理を実装できることで推奨されていて、今でも使い勝手が良くなるような機能アップデートが適時行われています。

以前、そんなFlow Builderで実装中に、ある不具合によって実装内容がすべて水の泡になりかけたことがあったので、その事象について解消法と共にお伝えしようと思います。

自動レイアウト(ベータ)

まず不具合の原因となる「自動レイアウト」について軽く説明します。
Flow Builderで新たにフローを作成したことがある人は知っていると思いますが、去年ごろからフローの作成方法として「自動レイアウト」が選択できるようになっています。

通常はキャンパス内の要素やコネクタは自分で配置する必要があるため、要素の間隔がズレたり、コネクタが曲がったりで見た目が悪くなってしまいがちです。

一方、自動レイアウトによるフローの作成では、要素の配置・コネクタ接続がすべて自動的に行われるため、位置揃えなどを気にせずに実装できます。さらにはコネクタ中に要素を直接追加できるボタンなど、実装する上で非常に使いやすい仕様になっています。

但し!!
注意点として、この機能は表記の通りベータ版ということで、利用に関してまだ推奨されてはいないようです。Winter'21リリースノートにも、"自動レイアウトはベータ機能としてのプレビュー版であり、Salesforce とのマスターサブスクリプション契約における「サービス」には含まれません。" と記載があります。

しかし、この非常に便利な機能を使っている人は多いと思います。利用する/しないもスイッチひとつで容易に変更できるため、私も実際にSandboxでのフロー作成時にこの機能を使っていました。

フローが開けない不具合発生

「自動レイアウト」を使ってフロー作成していたある日、作成中(完成間近)の最新バージョンを開こうとすると、画面がこんな状態でフリーズしました。

薄っすら見えるポップアップを確認したところ、どうやら読み込みエラーが発生したようです。

Sorry to interrupt
This page has an error. You might just need to refresh it.
[Error]
Failing descriptor: {markup://builder_platform_interaction:flcConversionUtils}

リフレッシュが必要とのことですが、過去のバージョンを開こうとしても同じエラーのため開けず・・・。
別環境へ移管してみてもエラーでリリースもできず・・・。
他のフローに異常はなかったが、作成中のこのフローだけがどうしても開けず操作できなくなってしまいました・・・。
原因不明。

解消法

当時この不具合について調べても何も手掛かりが無かったため、Salesforceサポートに問い合わせてみると、
「ベータ機能である自動レイアウトの機能が影響し、発生している事象であることが確認できました。その為、対象の機能をOffにすることで対応頂けたらと考えております。」と回答をいただきました。
しかし!そもそもFlow Builderで対象のフローを開くことができないので画面上でoffにすることはできません。

そこで、Visual Studio Code を使用してメタデータを直接変更することにしました。
思いのほか簡単に対処できたので、実施した作業内容を記載していきます。

まず、メタデータを取得するために「package.xml」でtypes内に対象フローを指定します。

package.xml
~略~
    <types>
        <members>*</members> <!-- 対象フローのAPI参照名 -->
        <name>Flow</name>
    </types>

「SFDX:マニフェストファイルのソースを組織から取得」を実行すると「flows」ディレクトリにメタデータのソースファイルが格納されるので、対象フローのソースファイルを開いて以下の部分に変更を加えます。

変更前:

変更後:

CanvasModeをFREE_FORM_CANVASにするというのが、自動レイアウトの機能をOffにするのと同じことになります。
その後「SFDX:組織へソースをデプロイ」を実行してメタデータの変更をSalesforceへ反映すると・・・
無事にFlow Builderで対象のフローを開くことができました!!! 
数日かけて作成してきたフローが水の泡にならずによかったです。

おわりに

自動レイアウトは、あくまでベータ機能として提供されているものですが、既にSalesforce組織上では公開されており誰でも利用できる状態であるため、使っていて同じ境遇にあった人もいるのではと思い記事にしてみました。
この事象後は自動レイアウトを使うのは怖くなりましたが、素晴らしい機能であることは間違いないため、早く正式リリースしてほしいところです。

参考リンク

SALESFORCE WINTER '21 リリースノート
自動レイアウトでフロー要素を自動的に配置 (ベータ)