今回、フローで行動の自動作成をしたいという要望がありまして、数式(テキスト)で整形し説明(Description)に設定することを普通にやっても上手にできませんでした。メールを送る時にも使える技です。
フロー内でテキストテンプレート(プレーンテキスト)を使うか、カスタム表示ラベルを使います。ここではテキストテンプレート(プレーンテキスト)を使うやり方を紹介します。
一般的な改行のやり方→失敗
BR()では「<br>」と表示され、\r\nでは「\r\n」と表示され、CHR(10)では「\r」と表示されます。
Apexでは\r\nで問題なく改行されるのですが、困ったものです。
フローの数式テキストで改行を使う方法
プレーンテキストで改行のあるテキストを使います。ただし、改行のみでは空文字と扱われエラーになるため、何かの文字とセットにして後でその文字を置換するといった荒技をします。
テキストテンプレート作成手順
①ツールボックスから「新規リソース」を押下して「テキストテンプレート」を作成する
②本文を「プレーンテキストとして表示」を選ぶ。必須項目も埋める。
③本文を以下のように設定し保存する※「-」は後で消します。改行のみでは空文字と扱われエラーになるため仕方がなくこのようにしています。
-
-
数式作成の手順
①ツールボックスから「新規リソース」を押下して「テキストテンプレート」を作成する。
②必須項目を埋める。データ型は「テキスト」を選ぶ。
③数式を以下のようにする。
重要なのはこの部分「SUBSTITUTE({!テキストテンプレートのAPI参照名}, “-“, “”)」
"項目A:" & TEXT({!$Record.A__c}) & SUBSTITUTE({!HyphenAndLineBreak}, "-", "") &
"項目B:" & TEXT({!$Record.B__c})
まとめ
1つのフロー内で完結するようにしたかったので、テキストテンプレートを使いましたが、カスタム表示ラベルでもやり方は全く同じです。どこに定義するかだけです。
数式で挿入予定の項目をそれぞれ文字列に変換して、大人しくテキストテンプレートに挿入していく方が良いのか謎ですが、この場合は項目数が多いとやる気がなくなっていくのですよね。
荒技の紹介でした。