Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

Salesforce 認定 Platform アプリケーションビルダー資格 - ビジネスロジックとプロセスの自動化(3)

日頃よりお世話になっております。

ロジカル・アーツ株式会社のSE 輪島 幸治です。

Salesforce 認定 Platform アプリケーションビルダー資格の受験ガイドに準拠した記事です。 学習ガイドにある[ビジネスロジックとプロセスの自動化]の範囲について作成させて頂きました。*1

資格一覧 - セールスフォース・ドットコム

フラッシュカードのような問題対策のコンテンツではありませんが、試験受験前に機能全体を見直す際に参考にしてみて下さい。

資格対策コンテンツは、問題数が多いため説明文の記載が不足するかもしれませんが、画像をみて内容を補完下さい。

こちらの記事はUdemyのSalesforceの資格学習コンテンツを参考にさせて頂いております。*2

www.udemy.com

Udemy - Wikipedia

カスタムオブジェクトで作成できるカスタム項目の最大数は500である。

カスタム項目で作成できるカスタム項目&リレーションには、各オブジェクトごとにオブジェクト制限があり、1オブジェクトあたりで作成できる項目数は500個である。

f:id:logicalarts:20210926203059p:plain
図1

入力規則の条件がTrueになった場合、レコードは保存できない。

オブジェクトに入力規則が設定されており、入力規則の数式の条件がTrueになった場合は、レコードの保存ができない。

f:id:logicalarts:20210928174154p:plain
図2

入力規則 数式:

NOT(ISNUMBER(AccountNumber))

f:id:logicalarts:20210928174240p:plain
図3

取引先番号 - 入力値:

取引先番号

入力規則の数式の条件がTrueになった場合は、エラーメッセージが表示される。

f:id:logicalarts:20210928174256p:plain
図4

エラーメッセージ:

取引先番号が数値になっていません。

規則や自動化ルールが複数設定されている場合、一番最初に動作するのは入力規則である。

Salesforceの各オブジェクトに、指定される基準に一致しない場合、レコードを保存しない規則やレコード値をもとに動作する自動化ルールを複数設定できるが、 一つのオブジェクトに複数ルールが設定されていた場合は、最初に動作するのは入力規則である。

(1)Salesforceのヘルプ&トレーニングで確認できる順序の概要

f:id:logicalarts:20210909223255p:plain
図5

Salesforce ヘルプ&トレーニング - プロセスでレコードの変更が評価されるタイミング

(2)詳細な自動化ルールの実行順序

f:id:logicalarts:20210909223306p:plain
図6

Apex 開発者ガイド - トリガと実行の順序

ワークフロールールから、Apexやフロー、プロセスビルダーなど他の自動化ルールは呼び出せない。

(1)ルール適用時のアクション 新規 ToDo新規 メールアラート新規項目自動更新新規 アウトバウンドメッセージ既存アクションの選択

f:id:logicalarts:20210909223326p:plain
図7

(2)時間ベースのアクション 新規 ToDo新規 メールアラート新規項目自動更新新規 アウトバウンドメッセージ既存アクションの選択

f:id:logicalarts:20210909223341p:plain
図8

オブジェクトのレコードタイプは、プロファイルレベルで制御される。

[説明]>[ビルド]>[取引先]>[レコードタイプ]からプロファイルレベルで行うオブジェクトのレコードタイプの設定が行える。

1.[ページレイアウトの割り当て]を押下

f:id:logicalarts:20210909223357p:plain
図9

2.各レコードタイプ・プロファイルに割り当てられているページレイアウトを確認することができる。

f:id:logicalarts:20210926204759p:plain
図10

数式項目で数式の戻り値ををFALSE から TRUE に、または TRUE から FALSE に変更する場合は、論理関数のNOTを使用する

数式項目を入力する際の関数にあるNOTを使用した場合は、数式の戻り値を逆にすることができる。

図10のISPICKVAL関数は、変数が一致した場合にTrueを返す関数である。このため、NOT関数が設定されている場合は、StatusがCloseでない場合を確認している。

f:id:logicalarts:20210928182412p:plain
図11

数式:

NOT(ISPICKVAL(Status, "Closed"))

Salesforce ヘルプ & トレーニング - 数式の演算子と関数 I – Z

入力規則にてREGEX関数を使用することで、項目への入力形式を指定することができる。

1.取引先の入力規則にて、REGEX関数を使用します。図12では入力項目が郵便番号の規則に準拠しているかを確認する入力規則。

Salesforce ヘルプ & トレーニング - 一般的なREGEX関数を用いた正規表現の検証

f:id:logicalarts:20210909223611p:plain
図12

2.住所(請求先)の郵便番号にある郵便番号(請求先)の値に00000と郵便番号の形式に準拠しない値を設定します。

f:id:logicalarts:20210909223626p:plain
図13

3.入力した項目値を確認して、[保存]を押下します。

f:id:logicalarts:20210926210541p:plain
図14

4.エラー:無効なデータです。以下のエラーメッセージを参照して検証してください。というメッセージが表示され、入力規則で設定したエラーメッセージが表示されることを確認します。

f:id:logicalarts:20210909223656p:plain
図15

ワークフローのアウトバウンドメッセージは、SOAPメッセージである。

SOAP API 開発者ガイド - アウトバウンドメッセージについて

アウトバウンドメッセージは notifications() コールを使用し、ワークフロールールでトリガした場合に、SOAP メッセージを >HTTP(S) を経由して指定されたエンドポイントに送信します。

f:id:logicalarts:20210909223738p:plain
図16

フローを使用することで、レコードの更新処理のループが行える。

Flow Builderでループ処理を含んだフローを設定します。

取引先レコードを取得して、従業員数が10,000以上の場合は、説明に従業員数を記載します。従業員数が空白の場合は、説明に空白値を設定します。

f:id:logicalarts:20210909223807p:plain
図17

Salesforce ヘルプ & トレーニング - コレクションをループするサンプルフロー

設定したフローを動作させます。

(1)従業員数が145,000の場合は、説明項目に145,000が設定されていることを確認します。

f:id:logicalarts:20210909223820p:plain
図18

(2)従業員数が24,000の場合は、説明項目に24,000が設定されていることを確認します。

f:id:logicalarts:20210909223836p:plain
図19

(3)従業員数が3000の場合は、説明項目に空白値が設定されていることを確認します。

f:id:logicalarts:20210909223850p:plain
図20

プロファイルのレコードタイプの割り当ては、作成、項目の編集だけであるので、レコードタイプの割り当てがプロファイル権限にない場合でも、レコードを表示することはできる。

(1)プロファイル上の設定

1.プロファイルを開きます。

f:id:logicalarts:20210928184448p:plain
図21

2.取引先のレコードタイプ設定にて、[編集]というリンクが表示されていることを確認します。

f:id:logicalarts:20210928185032p:plain
図22

3.レコードの作成画面にて、実行可能な 取引先 レコードタイプに選択したレコードタイプが表示されていることを確認します。

f:id:logicalarts:20210928185339p:plain
図23

4.レコード詳細画面にて、[変更]というレコードタイプの編集リンクが表示されていることを確認します。

f:id:logicalarts:20210928185622p:plain
図24

(2)レコード詳細画面の表示

f:id:logicalarts:20210929095213p:plain
図25

f:id:logicalarts:20210929095232p:plain
図26

f:id:logicalarts:20210929095245p:plain
図27

5.選択済みのレコードタイプから、取引先レコードタイプを外します。

f:id:logicalarts:20210929095712p:plain
図28

6.レコードの詳細画面にて、選択済みのレコードタイプから変更していない取引先(レコードタイプ標準)のレコードタイプの[編集]リンクが表示されなくなったことを確認します。

f:id:logicalarts:20210929100338p:plain
図29

6.使用可能なレコードタイプに設定変更してアクセス権をなくした取引先(レコードタイプカスタム)のレコードタイプのレコードを確認して、レコードが表示できること、レコードを編集するための[編集]リンクが表示されていることを確認します。

f:id:logicalarts:20210929100354p:plain
図30

f:id:logicalarts:20210929100408p:plain
図31

数式を使用することで、項目値のフォーマット変更が行える。

1.カスタム項目にて、電話番号のハイフンを除去するフォーマット変更の数式項目を作成します。

f:id:logicalarts:20210909224206p:plain
図32

数式項目:

SUBSTITUTE(Phone,"-","")

2.作成したフォーマット変更の数式項目にて、カスタム項目の表示が変更されていることを確認します。

f:id:logicalarts:20210929101136p:plain
図33

入力規則で用いる数式には、標準項目、カスタム項目を設定することができる。

入力規則を設定する場合に、設定するオブジェクトの標準項目、カスタム項目やリレーションが設定されているオブジェクトの標準項目、カスタム項目を差し込むことができる。

f:id:logicalarts:20210909224232p:plain
図34

Salesforceで処理を自動化する機能には、ワークフロールール、承認プロセス、プロセスビルダー、フローがある。

(1)ワークフロールール

f:id:logicalarts:20210909224248p:plain
図35

(2)承認プロセス

f:id:logicalarts:20210909224301p:plain
図36

(3)プロセスビルダー

f:id:logicalarts:20210926214349p:plain
図37

(4)Flow Builder

f:id:logicalarts:20210926214604p:plain
図38

プロセスビルダーで、InvocableMethodアノテーションを定義したApexクラスを呼び出すことができる。

プロセスビルダーでは、InvocableMethodアノテーションを宣言して、呼び出し可能なグローバルメソッドとして定義したApex クラスを呼び出すことができる。

アクション種別を確認して、Apexが選択できることを確認します。

f:id:logicalarts:20210929105622p:plain
図39

f:id:logicalarts:20210929105635p:plain
図40

f:id:logicalarts:20210929105651p:plain
図41

Apex 開発者ガイド - InvocableMethod アノテーション

blog.logical.co.jp

フローは、フロービルダーから動作をテストすることができる。

フローは、フロービルダーから動作をテストすることができる。*3

1.[デバック]を押下します。

f:id:logicalarts:20210909224407p:plain
図42

2.デバックの結果が出力され、画面右側にデバックの詳細が表示されていることを確認します。

f:id:logicalarts:20210909224424p:plain
図43

プロセスビルダーでは、プロセスの開始条件に、レコードを作成したときのみを設定した際に、スケジュール済みアクションが使用できる。

(1)プロセスの開始条件がレコードを作成したときのみ

f:id:logicalarts:20210909224442p:plain
図44

(2)プロセスの開始条件がレコードを作成または編集したとき

f:id:logicalarts:20210909224459p:plain
図45

数式フィールドでは、相互関係で10階層先の値を参照できる。

数式フィールドで、項目値を差し込む際には、図46から図49までのようにオブジェクトのリレーションが10階層先の値を参照することができる。

f:id:logicalarts:20210909224512p:plain
図46

f:id:logicalarts:20210909224526p:plain
図47

f:id:logicalarts:20210909224550p:plain
図48

f:id:logicalarts:20210909224611p:plain
図49

数式項目の更新はリアルタイムで行われる。

1.最終更新日を表示する数式項目を作成します。

f:id:logicalarts:20210909224627p:plain
図50

2.数式項目が表示されていることを確認します。

f:id:logicalarts:20210909224645p:plain
図51

3.レコードを編集した際に、数式項目がリアルタイムで更新されていることを確認します。

f:id:logicalarts:20210909224704p:plain
図52

簡易作成の場合、レコードの入力規則が適用されない。

1.取引先レコードの入力規則を作成して、入力規則を有効化します。

f:id:logicalarts:20210909224719p:plain
図53

2.入力規則に合致するレコードの項目の場合は、取引先レコードが保存できないことを確認します。

f:id:logicalarts:20210909224734p:plain
図54

3.取引先レコードタブの画面左側にある簡易作成からレコードを作成します。

f:id:logicalarts:20210909224832p:plain
図55

4.必要な項目値が設定されていないが、レコードが作成できていることを確認します。

f:id:logicalarts:20210909224849p:plain
図56

5.レコードを編集して保存しようとすると、入力規則のエラーメッセージが表示され、入力規則は有効であることを確認します。

f:id:logicalarts:20210909224903p:plain
図57

プロファイル設定、権限セット設定行えるレコードタイプ設定は、新規レコード作成時のレコードタイプ選択へのアクセス設定を行うことができ、条件付き共有ルールでは新規レコード作成時のアクセス権設定は行えない。

(1)新規レコード作成時のレコードタイプ選択

f:id:logicalarts:20210929113726p:plain
図58

(2)プロファイル - レコードタイプ設定

f:id:logicalarts:20210909224921p:plain
図59

(3)権限セット - レコードタイプ設定

f:id:logicalarts:20210909224935p:plain
図60

(4)条件付き共有ルール - 新規レコード作成時の設定なし

f:id:logicalarts:20210909225000p:plain
図61

f:id:logicalarts:20210909224948p:plain
図62

以上です。

Salesforce 認定 Platform アプリケーションビルダー資格の受験頑張って下さい。

よろしくお願いいたします。

注意

この記事は、著者が技術調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。

記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。

成長が著しい業界であることから、機能更新も早くご紹介したドキュメントの内容などは、予告なく変更される場合もあります。

お気付きの点がありましたらSalesforceに関する内容については弊社、 関連アプリケーションについては、提供元ベンダーやベンダーのパートナー様にお問い合わせ下さい。

よろしくお願いいたします。

*1:資格試験コンテンツですが、私が画面スクリーンショットを取得したり 、補足説明を記載させて頂いているのですが、弊社、技術部のエンジニアチーム協力のもと作成をさせて頂いております。

*2:参考にさせて頂いたのは、Udemy講師のAdrián Rubio Martinezさんが提供しているSalesforce 認定 Platform アプリケーションビルダー資格の試験対策集です。 www.udemy.com

www.udemy.com

*3:

フローのデバックには、新規フローの種別によってオプションがあります。

f:id:logicalarts:20210929115051p:plain
図42-補足(1)

f:id:logicalarts:20210929111713p:plain
図42-補足(2)

f:id:logicalarts:20210929111739p:plain
図42-補足(3)

自動起動フローにはロールバックモードという設定もあるため合わせて下記のヘルプもご確認下さい。

Salesforce ヘルプ & トレーニング - レコードトリガフローのデバッグ

レコードトリガフローのデバッグでは [ロールバックモードでフローを実行します] オプションが常に有効になっているため、Salesforce レコードのデータを完全に変更することなくフローを実行できます。インタビューによるデータベースの変更は、デバッグ実行の終了後にすべてロールバックされます。デバッグ実行では現在のフローのみが実行され、その他のレコードトリガ自動化は実行されません。