こんにちは、管理人の@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の数式の関数を使う時に、やっぱり地味に確認したほうが良いと思っています。