Salesforceを使った自動化はできるのか
ひょんなことからSalesforceを使ってバックエンド業務を自動化することになりました。これはその際に学んだことの記録です。同じくひょんなことからSalesforceを触ることになっちゃった人への道標になれば幸いです。
なぜ記録するのか
Salesforceは巨大なシステムです。そのため、Google検索で手がかりを得ようにも断片的なキーワードから過去のコンセプトに沿った知識を取得してしまい大きく回り道をする可能性があります。そこでLightningだけに焦点を当てて記録することで無関連のワードに惑わされることなく知識を得てもらうことを目的としています。
何を目指したか
例えば次のような要件があるとしましょう。
- ユーザーが入力を行うUI (ページ) が必要である
- ユーザーが入力したレコードは永続化される必要がある
- レコードを使って外部サービスを呼び出し、処理を依頼する
ユーザーのインタラクションをきっかけにSalesforceでの業務を自動化することが目標です。
Salesforceではこの要件をどうやって最短で叶えることができるのでしょう。
Lightning
Salesforceが現在推し進めているコンセプトです。いくつかのサービスやツールをまとめて呼称しています。
この内、Salesforce上でアプリケーション開発をする際のコアテクノロジーとしてLightning Experience、Lightning ComponentやLightning App Builderがあります。
この概要を掴むことのできる最高の資料があります。
はじめようLightningコンポーネント開発 | Salesforce Developers
これをみるとLightningをコンセプトに据えたSalesforceの最新事情がわかります。
Lightning ComponentでUIを作る前に
ここまででSalesforce上でUIを作るにはLightning Componentを作れば良さそうということがわかりますが、作る前に既存のLightning Componentでなんとかならないのか確認をするべきです。
既存のComponentは下記ドキュメントにまとまっています。
Salesforce Developers - コンポーネントの参照
これらの素晴らしいComponentで叶えることができるのであればこれを使いましょう。また、既存の機能をそのまま使えば叶えられることだってあります。リストビューもその一つです。
Lightning App Builderでページを作る
Salesforce上でページを簡単に作るにはLightning App Builderを使います。 ページはLightning Componentの組み合わせから成ります。公開するとSalesforce上のアプリケーションに紐付けることができます。
ApexコントローラーでLightning Componentのリクエストを処理する
Lightning ComponentはSalesforceのレコードを直接読み書きすることができません。そこでApexコントローラーに依頼します。ApexはJavaライクなDSLです。Salesforceからレコードを読み書きするにはSOQLという別のDSLを使います。
Salesforce Developers - Apex とは?
結論
Lightning Component、Lightning App Builderを使ってUIを作り、ApexでSalesforceからレコードを読み書きすることで自動化できそうです。 次回はより詳細なやり方と注意事項についてまとめてみようと思います。