この記事の目次
Salesforceのapexのsubstring

substringの前に文字列関数について知ろう
substringは、Salesforceのapexで使われる文字列関数の1つです。そもそも関数は、入手したデータを決められた処理を行ってから結果を返させる命令文です。 文字列や数値を指定すればそれらを合体させた結果を出力してくれるconcat関数や指定した文字列を大文字や小文字に変換してから結果を返してくれるlower関数などがあります。 それでは簡単にSalesforceの関数の役割について解説していきます。apexの関数は、小文字から大文字あるいは大文字から小文字に変換したり、文字列同士や数値と合体させたりなど値を変換して返してくれる(出力してくれる)ツールです。 基本的な注意点が2つあります。1つめはテキスト(文字)を入力する際はダブルクォーテーションマーク(””)で括る事です。2つめは数式を入力する際はAPI参照名(末尾に__cや__r)を使用し、パラメーターはカッコで括る事です。Salesforceのapexのsubstringとは

substr(フィールド,ポジション,長さ)
フィールドの欄には選択、出力したい文字列を打ち込みます。ポジションの欄には指定した文字列のどの箇所から返したいのかを数値で指定します。文字列の末尾を基準に設定しており、末尾を出力したい場合は-1を、先頭を出力したい場合は1を入力する必要があります。
長さには返したい文字数を数値で入力します。もし0やマイナスの数値を入力すると何も表示されないか空を意味する「null」が表示されるなどになります。
substr(Manager_Id,8,4)
この場合、Manager_Id項目に格納されている8番目〜11番目の4文字が出力される事になります。
stringとsubstringとの違い
substringと検索すると「string」というキーワードが出てきますが、stringはクラス名でsubstringはSalesforceのapex関数名という歴然な違いがあります。 stringというクラスの中に、abbreviate(maxWidth)やdeleteWhitespace()と言った関数が複数所属していて、substringはその1つなのです。ですのでstringの中にsubstringがあるというイメージを持ってください。 ちなみにstrings内にある関数は引数で与えた数値分半角スペースを埋めてくれる関数や第1引数の文字列を第2引数の文字列に置き換えてから結果を返してくれる関数など多様な働きをしてくれます。 substringを取っ掛かりにしてSalesforceのapexの様々な関数を習得してください。substringの使用方法
ここからはsubstring関数の使い方を紹介していきます。substr("CRM", 1, 1)
1番目のコードでは、CRMという文字列を直接入力しているので、1番最初の”C”だけ出力されます。気をつけたいのは文字列にダブルクォーテーションマークを付けた事です。テキストや数値を直接指定する場合に””が必要になります。
substr("CRM", 1, 2) "
2番目のコードでは、選択した文字列及び指定箇所の指示は変わりませんが、2文字抽出する様にプログラミングされています。従って”CR”と返されます。
substr("CRM", -2, 2)
3番目のコードが1、2番目のコードと異なるのはポジションの指定方法です。今までは1番最初を基準としてきましたが、今回は末尾を基準にしています。先述した様に末尾を基準にする際は-1から始まるので後ろから2番目からを抽出、つまり”RM”が返されるのです。