はじめに
Twitterを見ていたときに、この投稿を見つけました。
誰か知ってたら教えてください!調べても全然分からない😭
— koara🐨 (@m00koara) 2022年6月7日
画面フローで選択肢リソースのテキスト入力を表示した場合、入力されたテキストはどうやって取得できるの〜??
これ、「その他」をつくるためにあるんだ!と思ったのに…使い方違うのかしら… pic.twitter.com/PWpUJaZ2d0
疑問に思って調べたところ、結構面倒な動作だったのでここにまとめます。
フロー設定と動作
まず、画面フローにて画面コンポーネントに選択リストを配置します。
この時、「OTHER」選択肢は「その他」を表示し、さらに「テキスト入力を表示」を有効にしてテキスト入力可能にします。
最後に、選択リスト画面で「完了」を押すと入力値が表示されるようにします。
実際にデバッグで動かしてみます。
すると、{!OTHER}
では選択肢の「その他」が表示され、入力テキストは取得できませんでした。
また、その他に入力テキストが取得できそうなリソースも見当たりませんでした。
入力テキストを取り出す方法
参考資料によれば、「選択肢リソースをテキスト変数のデフォルト値に設定すると入力テキストが取得できる」とのことなので、{!OTHER}
をデフォルト値とするテキスト変数var_inputText
を設定します。
そして、最後の入力値表示画面に{!var_inputText}
を追加します。
すると、{!OTHER}
では選択肢の「その他」が、{!var_inputText}
では入力値の「テスト入力」が取得できました。
ここで、試しにテキスト変数var_inputText
からデフォルト値を外し、選択リスト画面と入力値表示画面の間にvar_inputText
へ{OTHER}
の値を割り当てる要素を追加します。
この方法でも{!var_inputText}
で入力値の「テスト入力」が取得できました。
おわりに
できるにはできたのですが、確認した範囲ではヘルプにも記載がなく、トライアンドエラーでしか方法を特定できないと思います。
選択肢リソースで選択肢と入力テキストの両方を取得できないのであれば、個人的には選択肢リソースにて「テキスト入力を表示」を有効にした場合にそのテキストを保存するための変数を指定する項目を追加するのがベターだったのではないかと思いました。
参考資料
Trailblazer Community: How to get the value for screen flow 'Choice' option 'Display text input'?
Visual Flow Choices and Using “Show Input on Selection” | Explorations Into Salesforce