Memos About SalesForce

Salesforceにハマってたこと!

Salesforce 数式 MID関数

こんにちは、管理人の@Salesforce.Zです。

数式関数は項目定義でも、APEXクラスでも、メールテンプレートでも使用可能です。

今回、発見したことを共有します。

読んだら得ること

★ MID関数
★ オブジェクト作成するツール(公式)

目次

数式

数式は便利ですね。

中には論理関数、算術関数、テキスト関数があります。 分かったら、かなり使いやすい

今回、テキスト関数について発見したものがあります。

テキスト関数 - MID()

説明:テキスト文字列中の途中で指定した開始位置から、指定した数の文字を返します。

使用方法:MID(text, start_num, num_chars)。text に、文字列を返すときに使用する項目または式を指定します。start_num に、開始位置として使用する文字の、左から数えた文字数を指定します。num_chars に、返す合計文字数を指定します。

使用例:MID(Division, 3, 4) で、Division 項目の左から 3 番目の文字から 4 文字が返されます。ユーザレコードでは、この部分の文字列が部・課コードを表します。

メールテンプレートでの使用

IDを加工した処理をテストした

公式サイトの記載通りに動作しました。

APEXクラス

String targetId18Digit = 'aaaaabbbbbcccccddd';
String result = '';
String hyphen = '_';
String refStr = 'ref';
String colon = ':';
if(String.isNotEmpty(targetId18Digit)){
    result += refStr + colon + hyphen;
    result += targetId18Digit.left(5);
    result += hyphen + targetId18Digit.mid(5, 5);//6番目文字から5桁を取りたい
    result += hyphen + targetId18Digit.mid(10, 5);//11番目文字から5桁を取りたい
    result += hyphen + targetId18Digit.right(3);
    result += colon + refStr;
    
}
System.debug('ref:_wwwww_xxxxx_yyyyy_zzz:refの形に変えた結果' + result);

実行結果 USER_DEBUG [15]|DEBUG|ref:wwwww_xxxxx_yyyyy_zzz:refの形に変えた結果ref:aaaaa_bbbbb_ccccc_ddd:ref

Salesforce's Lightning Object Creator

これがなにかというと、オブジェクト構築するツールです。

クリック作業で項目が多すぎる時に手が痛いでしょう

antツールを使うのもありだけど。

公式にこんなツールがあれば、うれしいですね。

18桁IDがほしい場合

カスタム数式項目を追加し、内容を下記にようにすれば、該当数式項目の値が18桁になります。

CASESAFEID(Id)

つまり、CASESAFEID関数を使うことです。

終わりに

Salesforceの数式の関数を使う時に、やっぱり地味に確認したほうが良いと思っています。