▶ はじめに
Salesforceはポイント&クリックで高度なアプリケションが作成できる素晴らしいサービスですが、ポイント&クリックで作成できない画面やビジネスロジックを実現したい場合は個別開発が必要となります。
そこで登場するのは、まず画面開発のSkyVisualEditor。ドラッグ&ドロップ(ノンコーディング)でVisualforceページを作成することが可能です。
さて、画面開発はSkyVisualEditorでノンコーディング化できました。それでは、ビジネスロジックはどうでしょう?
ワークフロールールなどで実現できないような複雑なデータ処理を行いたい場合にはApexトリガを作成する必要があり、コーディングを伴ってしまいます。
本Blogをご覧の方の中にも「せっかく画面をSkyVisualEditorで内製しようと考えていたのに、ロジックのコーディング開発部分を外注しなくてはいけなくなった・・・予算も無いし、あきらめようか・・・」といった方がいらっしゃるのではないでしょうか。
そんな折、SalesforceでSpring '15より「Lightning プロセスビルダー」がリリースとなりました。
Lightning プロセスビルダーの詳細はSalesforce社のヘルプやオンラインセミナーをご覧いただければと思いますが、超ざっくり言うと「今までApexトリガで実現していた機能をポイント&クリックで実装できる」のが、Lightning プロセスビルダーです。
この「Lightning プロセスビルダー」の登場により、
★SkyVisualEditor(画面)+ Apexトリガ(ロジック)
で実現していたことが
★SkyVisualEditor(画面)+ Lightning プロセスビルダー(ロジック)
という、完全ノンコーディングの手法で実現できる範囲がぐっと広がりました。
そこで、今回は取引先のリッチな画面を作成し、変更履歴(ログ)を別オブジェクトに取得するというロジックを「SkyVisualEditor(画面)+ Lightning プロセスビルダー(ロジック)」で実装する方法をご紹介したいと思います。
▶ 要件
- 取引先詳細画面の項目を3列表示にしたい。
- 取引先に対する当期の売上目標と売上予測/実績をカラム形式で入力したい。
- 関連するレコード(取引先責任者、商談)をタブにまとめて表示し、画面遷移なく編集したい。
- 前期の売上目標と売上予測/実績を画面に表示したい。
- 売上目標と売上予測に変更が入ったらログを取得したい。
<完成イメージ>
▶ 実装方法
各要件を以下のとおりSkyVisualEditorとLightning プロセスビルダーで実装します。
<SkyVisualEditor>
- 取引先詳細画面の項目を3列表示する。
- 取引先に対する当期の売上目標と売上予測/実績をカラム形式で入力する。
※予め売上目標と売上予測/実績入力用のカスタム項目を取引先オブジェクトに作成しておきます。 - 関連するレコード(取引先責任者、商談)をタブにまとめて表示し、画面遷移なく編集できるようにする。
- 前期の売上目標と売上予測/実績を画面に表示する。
<Lightning プロセスビルダー>
- 売上目標と売上予測に変更が入ったらログを取得する。
※予めログ取得用のカスタムオブジェクトを作成しておきます。
それでは早速作ってみましょう!
初めに、SkyVisualEditorで画面を実装します。
- Studioにログインし、取引先画面をSalesforceレイアウトで新規作成します。
Tips :「ページレイアウト取得」機能を使用すると、既存の標準レイアウトをベースに画面作成できるので、より開発スピードがUPします。 - ベージブロックセクションの列を3列にし、取引先の項目を配置します。
- パネルグリッドを使って売上目標と売上予測/実績の項目を配置します。
- タブパネルとデータテーブルを使って関連オブジェクト(取引先責任者、商談)を配置します。
- 複数行データテーブルを使ってログ取得用のカスタムオブジェクトを配置します。
- このままだとデータテーブルに全てのレコードが表示されてしまいます。
表示させたいのは前期の最終データだけなので、テーブルプロパティで絞り込みを設定します。- 検索条件を前期(サンプルでは「2期」)に設定
- ソート条件を「最終更新日(降順)」に設定
- レコード上限数を「1」に設定
- Salesforceにデプロイします。
次に、Lightning プロセスビルダーでロジックを実装します。
- 新規プロセスを作成します。
- 売上目標と売上予測/実績項目に変更が入った場合にアクションを起動する条件を設定します。
- ログ取得用のカスタムオブジェクトに新規レコードを作成するアクションを設定します。
新規レコードには親となる取引先ID、期、売上目標、売上予測/実績値をコピーするようにします。
- 作成したプロセスを有効化します。
以上で実装は完了です。
実際に取引先の売上目標と売上予測/実績を変更して、動作確認してみます。
※この画面では前期売上の視認性を高めるために、前述の手順に加えテーブルヘッダの上書きをJQueryで実装しています。
▶ おわりに
いかがでしたでしょうか?
コーディングしてアプリケーションを開発するのももちろん良いのですが、ノンコーディングで出来るのならば開発生産性も向上しますし、仕様変更時にも低コストで対応ができるようになります。
何よりも、「外注しないと実現できない」と諦めていたことがより簡単に出来るようになり、Salesforceの可能性が広がりますね。
皆様も是非、SkyVisualEditorとLightning プロセスビルダーの強力タッグで素敵なアプリケーション開発をお楽しみください!