Salesforceの数式(formula)にて、値から改行を除去する関数は用意されていないのでちょっとトリッキーな方法を使う必要があります。
LineBreak(改行)を表現する変数を定義する
SalesforceにはLineBreak(改行)を表現するグローバル定数がありません(2016年11月11日現在)。1
そこで、カスタム表示ラベルを使ってLineBreakを表現する変数を定義します。
[設定] -> [ビルド] -> [作成] -> [カスタム表示ラベル] にアクセスして、新規のカスタム表示ラベルを次の内容で作成します。
- 簡単な説明: LineBreak
- 名前: LineBreak
- 値: (テキストエリア内にて)-(改行)-を入力
定義したカスタム表示ラベルは数式にて$Label.LineBreakで呼び出すことができます。
$Label.LineBreakを改行そのものとして使うには
$Label.LineBreakの値は「-(改行)-」ですので、改行そのものではありません。
実際に改行そのものとして使うにはSUBSTITUTE関数を使って-を除去します。
SUBSTITUTE関数は第一引数に与えた文字列から、第二引数の文字列を探し、第三引数の文字列に置換した結果を返します。
SUBSTITUTE($Label.LineBreak, "-", "")
ここで、改行は"\n"じゃダメなのか?と思った方。残念ながらSalesforceの数式では"\n"は改行を表現しないのです。。。。("\r"や"\r\n"もダメです)2
改行を除去する数式を組み立てる
改行を表現することができるようになりましたので、改行を除去する数式を組み立てます。
改行除去対象の項目のAPI参照名がtarget__cであるとして、SUBSTITUTE関数を用いて改行を除去します。
SUBSTITUTE(target__c, SUBSTITUTE($Label.LineBreak, "-", ""), "")
たかだか、改行を取るだけでこの手間。。。早く関数作って、Salesforceさん。