目次
via pixabay.com
はじめに
Salesforceに「OmniStudio」という機能があることをご存じですか?
OmniStudioについては、これまでフロント側のFlex CardやOmniScriptについての機能に注目が集まることが多くありました。
今回はバックエンドの処理として、Integration Procedureについて説明をしていきたいと思います。
OmniStudioが持つデータ処理機能はそれだけでも強力ですが、Integration Procedureではシンプルな処理(DataRaptorやApex処理など)を組み合わせ複雑な処理を実現することも可能です。
ノーコード・ローコードという流れの中で、一つの選択肢となってくることと考えています。
OmniStudioについては、これまでフロント側のFlex CardやOmniScriptについての機能に注目が集まることが多くありました。
今回はバックエンドの処理として、Integration Procedureについて説明をしていきたいと思います。
OmniStudioが持つデータ処理機能はそれだけでも強力ですが、Integration Procedureではシンプルな処理(DataRaptorやApex処理など)を組み合わせ複雑な処理を実現することも可能です。
ノーコード・ローコードという流れの中で、一つの選択肢となってくることと考えています。
Integaration Procedureとは
Salesforceや外部システムのデータの読み取りや書き込みに使用します。
Integration ProcedureはOmniScriptやFlexCardなどのOmniStudioコンポーネント、API、さらには Apex メソッドからもコールできます。
OmniStudio Integration Procedure は、1 回のサーバコールで複数のアクションを実行する宣言型のサーバ側プロセスとなります。
Integration ProcedureはOmniScriptやFlexCardなどのOmniStudioコンポーネント、API、さらには Apex メソッドからもコールできます。
OmniStudio Integration Procedure は、1 回のサーバコールで複数のアクションを実行する宣言型のサーバ側プロセスとなります。
サンプル
概要
今回はIntegrationProcedureを使ったサンプルを作成してみました。
概要は以下の通りです。
・画面から入力した郵便番号を元に請求先住所の郵便番号が一致する取引先レコードを検索し一覧表示する。
・郵便番号を元にAPIから取得した住所と取引先の請求先住所が異なる場合、住所有効性のチェックを外す。
概要は以下の通りです。
・画面から入力した郵便番号を元に請求先住所の郵便番号が一致する取引先レコードを検索し一覧表示する。
・郵便番号を元にAPIから取得した住所と取引先の請求先住所が異なる場合、住所有効性のチェックを外す。
画面デモ
実装内容
どのような実装内容となっているのかを確認してみましょう!
個々のストラクチャーの中身は以下のような処理になっています。
(今回はOmniStudioに関して初級レベルの知識があることを前提として、ポイントとなる箇所だけ細かく記載します。)
DRExtract_getAccount
DataRaptor ExtractでSalesforceに登録された取引先の一覧を表示する。
HttpAction_AddressApi
HTTPActionで画面に入力された郵便番号から外部の住所APIで住所を取得する。
RemoteAction
予め作成しておいたApexクラスを読み込んでDataRaptor Extractで取得したデータとHTTPアクションで取得したデータをApexクラスに渡して比較処理を行う。
(今回はOmniStudioに関して初級レベルの知識があることを前提として、ポイントとなる箇所だけ細かく記載します。)
DRExtract_getAccount
DataRaptor ExtractでSalesforceに登録された取引先の一覧を表示する。
HttpAction_AddressApi
HTTPActionで画面に入力された郵便番号から外部の住所APIで住所を取得する。
RemoteAction
予め作成しておいたApexクラスを読み込んでDataRaptor Extractで取得したデータとHTTPアクションで取得したデータをApexクラスに渡して比較処理を行う。
ResponceAction
RemoteActionで受け取った結果に対し、キー”Address”で取得された値をOmniScriptに返す。
RemoteActionで受け取った結果に対し、キー”Address”で取得された値をOmniScriptに返す。
以上が実装内容のポイントとなります。
まとめ(メリットとデメリット)
Integration Procedureを使用するメリット
・複数のデータ処理を組み合わせて1つの処理として定義することができる。
・DataRaptor(レコードのI/O)、HttpAction、RemoteAction(Apexクラス)といったさまざまな種類の処理を呼び出すことができる。
・データ処理を組み合わせて1つの処理を定義するため、1つ1つのデータ処理を小さい単位で設計することができる。これにより再利用性が高まる。
・DataRaptor(レコードのI/O)、HttpAction、RemoteAction(Apexクラス)といったさまざまな種類の処理を呼び出すことができる。
・データ処理を組み合わせて1つの処理を定義するため、1つ1つのデータ処理を小さい単位で設計することができる。これにより再利用性が高まる。
Integration Procedureを使用するデメリット
・Integration Procedureの開発のデザイン画面が他コンポーネントと大きく異なっており、開発のための学習コストがかかる。
・OmniStudio自体がまだまだアップデートが期待できるような機能なので、引数の渡し方がコンポーネントごとに違うといったように操作感に慣れるまで苦労した点が多々あった。
・OmniStudio自体がまだまだアップデートが期待できるような機能なので、引数の渡し方がコンポーネントごとに違うといったように操作感に慣れるまで苦労した点が多々あった。
感想
今回のサンプル作成で私は初めてOmniStudioをさわりました。
デメリットにも記載したのですが、最初から一人で実装するとなるとOmniStudioの操作感に慣れるまで時間がかかるなと感じました。
慣れてしまえばコードを書くことなく簡単に処理を実装できる優れた機能なので、また時間を見つけて何か作ってみたいなと思っています。
また、Integration ProcedureはSalesforce内外のデータや処理ロジックを組み合わせて複雑な処理をできるため、資源の有効活用という面でも大きな可能性を感じました。
今回は社内の知見があるメンバーと一緒にサンプルの作成を行い、分からないところを教えてもらいながら進められたので心強かったです!(IさんSさんありがとうございました!)
デメリットにも記載したのですが、最初から一人で実装するとなるとOmniStudioの操作感に慣れるまで時間がかかるなと感じました。
慣れてしまえばコードを書くことなく簡単に処理を実装できる優れた機能なので、また時間を見つけて何か作ってみたいなと思っています。
また、Integration ProcedureはSalesforce内外のデータや処理ロジックを組み合わせて複雑な処理をできるため、資源の有効活用という面でも大きな可能性を感じました。
今回は社内の知見があるメンバーと一緒にサンプルの作成を行い、分からないところを教えてもらいながら進められたので心強かったです!(IさんSさんありがとうございました!)
33 件