【試験対策用】OmniStudioコンサルタント

## はじめに
OmniStudioコンサルタントの試験対策用の記事です。
読みやすさを一切に排除し、インプットすべき知識を箇条書きしました。

## Salesforce Industries
Salesforce社は、汎用的なCRMの提供から始まり、各業界に特化したデータモデル/ビジネスプラクティスをソリューションとして提供をしてきた。
Salesforce Industry Cloudとは、Salesforce社が買収したVelocity社のコンポーネントをSalesforceの中に組み込んだものである。
一例を挙げると、Financial Services Cloud、Manufacturing Cloud、Health Cloudなどである。それぞれのインダストリーのビジネスに特化して設計されたオブジェクトが提供されている。
メリットとして、今までApexなどで開発していた部分を、Industriesに特化した標準機能などで代替することで開発工数を大幅に下げることが可能である。

## OmniStudioとは
- ノーコード/ローコードで情報参照画面やガイド付きユーザエクスペリエンスを実装できる機能。
- OmniStudioは、以下の機能で構成されている。
### 1. FlexiCard
- SOQLなどで取得した情報をリッチなUIで画面表示できる。
- 特徴
    - FlexCard には、Salesforce からの内部情報と Web サイトやサードパーティレガシーシステムからの外部情報を組み合わせて表示することができる。
    - FlexCard 状態では、表示される情報の種別や状況に基づいて異なる外観で FlexCard を設定できる。
    - フライアウトは、FlexCard のアクションをクリックしたときに表示される別の FlexCard。親カードで表示すると煩雑になりすぎる追加情報・アクションや、そこまで重要ではない二次的な情報・アクションを表示する。
    - 他の FlexCard に FlexCard を埋め込むことができる（親と子の関係）。子 FlexCard を埋め込むと、1 つの FlexCard に複数のデータソースを表示できる。有効なものであれば、いくつでも子 FlexCard を埋め込むことができる。
- デザイン
    - Custom CSS (カスタム CSS)：スタイル設定をカスタムスタイルとして FlexCard 要素に保存し、FlexCard の複数の要素で使用する。
### 2. OmniScript
- ビジネスプロセスを完了させるためのガイドパス。画面フローに近い。
- ブランド設定
    - カスタムの Lightning スタイルシートを使用する。
    - Newport Design System (NDS) を使用する。NDS には、カスタム可能なグローバルスタイルの完全なセットが用意されており、カスケードスタイルシート (CSS) フレームワークが採用されている。
- アクション要素
    - 1 つ以上の Salesforce レコードからデータを取得する (DataRaptor Extract Action)。
1 つ以上の Salesforce レコードのデータを更新する (DataRaptor Post Action)。
一連のアクションをコールする (Integration Procedure Action)。
Web アプリケーションインターフェース (API) を介してデータの取得、保存、削除を行う (HTTP Action)。
インタラクションの一環としてメールに入力し、メールを送信する (Email Action)。
署名のための DocuSign メールを送信する、または DocuSign メールに署名する (DocuSign Envelope Action および DocuSign Signature Action)。
インタラクションが完了した後にユーザーを前のページに転送する (Navigate Action)。
### 3. Integration Procedure
- 複数の処理をひとまとめにしたインターフェイス的な役割。
- Salesforceや外部システムのデータの読み取りや書き込みに使用するアプリケーション。Integration Procedure は OmniScript や FlexCard などの OmniStudio コンポーネント、API、さらには Apex メソッドからもコールできる。
- データ入力 （データ入力ソースの種類とIntegration Procedure Action 要素）
    - Salesforce 組織：DataRaptor Extract Action、DataRaptor Turbo Action
    - API：HTTP Action
    - Apex がアクセスできるデータ：Remote Action
- データ出力 （データ出力ソースの種類とIntegration Procedure Action 要素）
    - FlexCard または OmniScript：Response Action
    - Salesforce 組織：DataRaptor Post Action (データを Salesforce レコードに保存する)
    - Salesforce 組織：Delete Action (データを Salesforce レコードから削除する)
    - API：HTTP Action
    - メール送信：Email Action
    - DocuSign テンプレート：DocuSign Envelope Action
### 4. Data Raptor
- Salesforce内のデータを取得/加工/更新する。各種のDataRaptorの機能は次の通り。
1. DataRaptor Turbo Extract
    - 1 つの Salesforce オブジェクト (sObject) からデータを取得する
2.  DataRaptor Extract
    - 1 つ以上の Salesforce sObject からデータを取得する
3.  DataRaptor Load
    - 1 つ以上の Salesforce sObject に次の方法でデータを保存する。
        - Salesforce レコードを更新する
        - Salesforce レコードを作成する
        - CSV データを Salesforce レコードに移行する
    - 入力データを変更する場合は、数式の定義、値の変換、出力データ型の変更を行う。
    - DataRaptor Post Actionによって、Loadが呼び出される。
4.  DataRaptor Transform
    - Salesforce の内部または外部から取得したデータを操作する。
    - 例として、DocuSign テンプレートとPDFドキュメントに記入する必要があるときに使用する。

## OmniStudioコンサルタント試験の出題ポイント
- DataRaptorの機能
    - Salesforce へのデータの読み取りと書き込み
    - データの変換
- OmniScript の Messaging 要素の目的
    - 論理条件に基づいてユーザーに警告を表示する。
- 表示すべき情報が多い時、FlexCard上で使用できる機能
    - フライアウト アクションを使用して追加情報を表示する
    - 特定のフィールドを折りたたみ可能なブロックに入れる
- FlexCard上で、コーディング不要でレイアウト調整を実現する機能
    - FlexCard デザイナ
    - FlexCard で使用される Newport Design System
- Integration Procedure/Response Action
- Edit Block
    - リアルタイムでレコードの追加、編集、削除を行うことができる。リモートアクションでApexの標準クラスを使用することができる。
- Integration Procedure上の処理の実行時間を制御する
    - CHAINABLE CONFIGURATION
- FlexiCardで設定できるデータソースの数：1
- OmniScriptで実現できるネスト上限数：1
- DataRaptor 抽出アクション
- OmniScript のテキスト ブロック要素の機能
    - テキストの書式設定
    - 表の書式設定
    - リンクまたは画像
- Integration Procedureのアクション
    - メール
- OmniScriptの要素
    - ステップ
    - 式
    - エディットブロック
- 親 FlexCard の状態内に複数の子カードを含む FlexCard キャンバスを構築する。
    - 複数のデータソースの使用を許可できることがメリット。
- DataRaptor Turbo Extract
    - パフォーマンスが最適化され、構成時間が最小限に抑えられている OmniStudio ツール
- ユーザー エクスペリエンスを向上させるためにコンサルタントが推奨する FlexCard 機能
    - 折りたたみプロパティを有効にしてブロック要素を使用する
    - Datatable 要素を使用する
- FlexiCardのフライアウトとは？
- Integration Procedureが推奨されるのはなぜ？
    - 複数のオブジェクトから Salesforce データをより高速に取得できます。
    - 複数のアクションを 1 つのサーバー呼び出しに結合します。
- ガバナーの制限を超えないようにデータを取得する
    - Integration ProcedureとDataRaptor Turbo Extract
- 事前入力された PDF を生成する
    - DataRaptor
- 計算手順とマトリックスを使用する利点
    - 代数演算子を使用したテキスト連結を許可する。
- ほとんどの場合、デフォルトのデータソースとしてIntegration Proceduresを使用し、RESTとSOAPの呼び出しにはApexの代わりに使用します。
- デザインを自由にカスタマイズする機能
    - ニューポートデザインシステム
    - オムニスクリプト
    - カスタム スタイル