7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Salesforce:数式にて改行を除去する

Last updated at Posted at 2016-11-10

Salesforceの数式(formula)にて、値から改行を除去する関数は用意されていないのでちょっとトリッキーな方法を使う必要があります。

LineBreak(改行)を表現する変数を定義する

SalesforceにはLineBreak(改行)を表現するグローバル定数がありません(2016年11月11日現在)。1
そこで、カスタム表示ラベルを使ってLineBreakを表現する変数を定義します。

[設定] -> [ビルド] -> [作成] -> [カスタム表示ラベル] にアクセスして、新規のカスタム表示ラベルを次の内容で作成します。

  • 簡単な説明: LineBreak
  • 名前: LineBreak
  • 値: (テキストエリア内にて)-(改行)-を入力

スクリーンショット 2016-11-11 08.33.33.png

定義したカスタム表示ラベルは数式にて$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さん。

  1. こういうところがSalesforceのイケてないところですね。

  2. ほんとイケてない。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?