はじめに
こんにちは。
今回は、ロングテキストエリア項目を数式で使用する方法についてご紹介します。
ロングテキストエリア項目は、Salesforceの仕様上、数式項目で使用することができないため、ロングテキストエリア項目の値によって何らかの処理を行いたい場合は別の手段で設定を行う必要があります。
具体的にはフロー内の数式ではロングテキスト項目を使用することが可能ですので、フローによって設定を行います。
では設定方法をご紹介していきます。
ロングテキストエリア項目を数式で使用する方法
1. 事前準備
今回設定方法をご紹介するにあたって、以下の条件の処理を設定していくこととします。
「取引先」レコードを作成するとき、ロングテキストエリア項目の文字数によって以下の処理を行う。
・ロングテキストエリア項目の文字数が300文字以下の場合 ⇨ 別のロングテキストエリア項目に内容をコピー
・ロングテキストエリア項目の文字数が301文字以上の場合 ⇨ エラーとし保存しない
処理には以下の項目を使用。
「ロングテキストエリア①」(文字数を判定する項目):LongTextArea1__c
「ロングテキストエリア②」(コピー先の項目):LongTextArea2__c
上記の処理を行うために「取引先」レコードを作成する画面フローを作成し設定を行なっていきます。
2. 画面フローを作成する
① 画面フローの作成を開始する
[設定] > [フロー] > [新規フロー] を選択し、画像①のように[画面フロー]を選択し[作成]をクリックします。
② 「取引先」レコード作成画面を作成する
作成したら画像①のように緑色のアイコンの下にある[ + ]をクリックし、画像②のように[画面]を選択します。
[画面]を選択すると、画像③のように新規画面作成の画面が表示されるので、画面右側の[画面のプロパティ]にて任意の[表示ラベル]と[API参照名]を入力します。
入力後、画像④のように画面左側にある[項目]タブをクリックし、[レコード変数]の[ + 新規リソース]をクリックします。
クリックしたら画像⑤の画面が表示されるので、以下のように入力を行い[完了]をクリックします。
API参照名:Account (任意)
データ型:レコード
オブジェクト:取引先
レコード変数を作成すると「取引先」の項目が画面要素に配置できるようになるので、画像⑥のように必要な項目を[項目]タブから画面要素にドラッグ&ドロップしていきます。今回は必須項目である「取引先名」のみ配置しました。
処理を行うロングテキストエリア項目については上記の方法は利用せず、別の方法で配置することが必要です。
画面左側の[コンポーネント]タブをクリックし、画像⑦のように[ロングテキストエリア]コンポーネントを画面要素にドラッグ&ドロップします。そして、画面右側の[ロングテキストエリア]で[表示ラベル]と[API参照名]を入力します。なお、[表示ラベル]は画像⑧のように画面要素に反映されるので「ロングテキストエリア①」と項目名を入力します。
③ 条件を満たさない場合のエラーを設定する
次に本題であるロングテキストエリア項目の文字数の取得を行い、その文字数に応じた処理の設定をしていきます。今回行うとしていた以下の設定の内、「ロングテキストエリア項目の文字数が301文字以上の場合 ⇨ エラーとし保存しない」の設定をここで行います。
「取引先」レコードを作成するとき、ロングテキストエリア項目の文字数によって以下の処理を行う。
・ロングテキストエリア項目の文字数が300文字以下の場合 ⇨ 別のロングテキストエリア項目に内容をコピー
・ロングテキストエリア項目の文字数が301文字以上の場合 ⇨ エラーとし保存しない
処理には以下の項目を使用。
「ロングテキストエリア①」(文字数を判定する項目):LongTextArea1__c
「ロングテキストエリア②」(コピー先の項目):LongTextArea2__c
画面右側の[ロングテキストエリア]を下にスクロールし、画像⑨の赤枠の箇所にある[入力を検証]セクションをクリックし展開します。そうすると、[エラーメッセージ]と[数式]の2つの設定箇所が新たに表示されます。
まず、[エラーメッセージ]では後述する[数式]の結果、エラーとなった場合に画面要素に表示されるエラーメッセージを設定します。今回は画像⑩のように入力しました。
次に[数式]では、[ロングテキストエリア]コンポーネントの入力内容が有効かどうかを評価する数式を入力します。数式の結果がTrueなら入力は有効、Falseならエラーメッセージが表示されます。
今回は文字数が301文字以上の場合にエラーとするように数式を作成していきます。画像⑪のように[リソースピッカー]の[ + 新規リソース]をクリックし、その後画像⑫の画面が表示されるので、以下のように入力を行い[完了]をクリックします。そして、以上で画面要素の作成は完了したので右下の[完了]をクリックします。
リソース種別:数式
API参照名:Check_LongTextArea1_CharacterCount (任意)
データ型:Boolean
数式:LEN({!LongTextArea1}) <= 300
数式の解説:
文字数が301文字以上の場合にエラーとしたい場合、300文字以下であれば有効となるように数式を作成します。括弧内で指定されたテキストの文字数を返すLEN関数を使用し、全体としてLEN関数の結果が300文字以下であればTrueとなる数式となっています。
④ 条件を満たす場合の処理を行い「取引先」レコードを作成する
今回行うとしていた以下の設定の内、ロングテキストエリア項目の文字数が301文字以上の場合について③で設定を行なったので、最後に「ロングテキストエリア項目の文字数が300文字以下の場合 ⇨ 別のロングテキストエリア項目に内容をコピー」を行い、「取引先」レコードが作成されるように設定を行います。
「取引先」レコードを作成するとき、ロングテキストエリア項目の文字数によって以下の処理を行う。
・ロングテキストエリア項目の文字数が300文字以下の場合 ⇨ 別のロングテキストエリア項目に内容をコピー
・ロングテキストエリア項目の文字数が301文字以上の場合 ⇨ エラーとし保存しない
処理には以下の項目を使用。
「ロングテキストエリア①」(文字数を判定する項目):LongTextArea1__c
「ロングテキストエリア②」(コピー先の項目):LongTextArea2__c
③で作成した画面要素の下にある[ + ]をクリックし、画像⑬のように[レコードの作成]を選択します。その後表示される画像⑭の画面では、以下のように値を入力します。これでロングテキストエリア項目の値が別のロングテキストエリア項目へコピーされ、「取引先」レコードが作成されるようになりました。以上でフローの作成は完了です。[保存] をクリックして、[有効化] をクリックします。
表示ラベル:取引先レコード作成 (任意)
API参照名:CreateAccounRecord (任意)
作成するレコード数: 1
レコード項目の設定方法:個別のリソースおよびリテラル値を使用
オブジェクト:取引先
取引先の項目値を設定(項目 ← 値):
Name ← {!Account.Name} (②で作成したレコード変数の「取引先名」)
LongTextArea1__c ← {!LongTextArea1} (②で作成した[ロングテキストエリア]コンポーネント)
LongTextArea2__c ← {!LongTextArea1} (②で作成した[ロングテキストエリア]コンポーネント)
3. 作成したフローを確認する
最後に以上で作成したフローによって、実際にユーザーが「取引先」レコードを作成した時に、ロングテキストエリア項目の文字数が300文字以下の場合、別のロングテキストエリア項目に内容がコピーされ、ロングテキストエリア項目の文字数が301文字以上の場合はエラーとなるのかテストしていきます。
テストするには作成したフローを開き、画像①の赤枠で囲んだ箇所にある[実行]をクリックします。
[実行]を押すと、フローが実行され作成した画面が画像②のように表示されます。こちらで実際に入力を行い、その後の処理をテストしていきます。
① ロングテキストエリア項目の文字数が301文字以上の場合
ロングテキストエリア項目の文字数が301文字以上の場合について、エラーとなるかテストしていきます。画像③のように301文字以上テキストを入力し、[完了]をクリックします。すると、画像④のようにエラーメッセージが表示され、設定が機能していることが確認できました。
② ロングテキストエリア項目の文字数が300文字以下の場合
ロングテキストエリア項目の文字数が300文字以下の場合について、別のロングテキストエリア項目に内容がコピーされ「取引先」レコードが作成されるのかテストしていきます。画像⑤のように300文字以下のテキストを入力し、[完了]をクリックします。そうすると、画像⑥のようにフローが実行され初期状態の画面へと戻ります。
これではまだフローが設定通り作成されているかわからないため、先ほど入力した取引先名のレコードを開きます。すると、画像⑦のように別のロングテキストエリア項目に内容がコピーされ「取引先」レコードが作成されていることが確認できました。
まとめ
今回はフローによってロングテキストエリア項目を数式で使用する方法をご紹介しました。
Salesforceでは、今回のようにある機能ではやりたいことを実現できない場合でも、他の機能を駆使することで実現できる場合がありますので様々な機能について学習していくことが大切です。
Salesforceに関するお悩みはありませんか?
今回ご紹介したフローや数式をはじめとするSalesforceの機能活用について、
「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」
などお悩み事はありませんか?
Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、Salesforce認定資格保持者で構成される当社チームが貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。
Salesforce業務を他社に外注するイメージがわかない…という方に向け、外注する際のメリット・デメリットやSalesforce開発の流れを以下の記事で解説しています。ぜひご覧ください。
Salesforce運用保守を外注するメリット・デメリットとは?
Salesforceのノーコード・ローコード開発の流れを解説!
また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。
貴社の課題解決のお力になれるよう、Salesforce認定資格を持つ担当者が心を込めてサポートいたします。まずはお気軽に下記ボタンよりお問い合わせください。
Salesforceオンライン無料相談会
Air合同会社では
「サービスについて簡単に知りたい」
「Salesforceの使い方について相談したい」
など、Salesforceのお悩みに関する無料相談会を随時実施しております。
\Salesforce認定資格を持つ担当者が対応!/
無料相談のご予約はこちら