TrailheadはSalesforceテクノロジーを学ぶ上で非常に素晴らしい学習プラットフォームです。
丁寧で網羅的な解説から初心者でも迷わない詳細な演習手順によって、だれでも楽しくステップバイステップでSalesforceを実際に触りながら学ぶことができます。
ですがしばらくTrailheadで学習を進め、カテゴリごとの学習修了を意味するバッジの数もそこそこ増えてきた時に、ふとあなたは思うはずです。
「手順通りの演習は出来る様になってきたけど、本当に実際の仕事に役立つ知識が身についてるのだろうか?」
そこで自分の力試しを行うことが出来るのがスーパーバッジ(Super Badge)という特別な機能です。
スーパーバッジでは従来のモジュールやプロジェクトとは異なり、演習を必ずクリアするための詳細な手順などは書いてありません。
その代わりに前提となる業務要件や解決しなければならない課題、そして行うべきミッションが記されています。
あなたはまさに実際の開発プロジェクトを行なっている様な感覚で自分で考え、最適な答えを探しながら問題を解いていきます。
もちろん”Super”の名の通り、課題の難易度は従来のものに比べて格段に高いです。
ですが、このスーパーバッジのチャレンジを独力でクリアすることができたなら、あなたの力は紛れもなく本物です。
いつでも胸を張ってSalesforceのエキスパートとして、あらゆる場所で大活躍出来ること間違いなしです。
今回は3回目ということで、より実践的なシチュエーションのシナリオが用意されている「Data Integration Specialist」を取得するのに役立つTipsと、スーパーバッジに記される業務要件およびチャレンジの日本語訳を用意しました。
Salesforceを有効に活用する際に決して避けては通れないのが、他のシステムとの連携や既存のデータの取り込みです。さらにSalesforceは顧客情報を始めとした機密度の高い情報を扱うことが非常に多いため、外部システムとシームレスに連携して利便性を向上させつつも、強固なセキュリティを保つ必要があります。
このSuper Badgeでは、あなたが開発者やアーキテクトとして実際のシステムを構築する際に、インテグレーション設計と実装に必要な知識を学びます。
これを機会に自身のシステム連携のスキルを確認してみましょう。
Data Integration Specialist 日本語訳
日本語訳はこちらにあります。
Trailhead自体のチャレンジやチェックは英語が前提で行われますので、ラベル等の日本語補足までシステムに入力してしまわない様にご注意下さい。
またスーパーバッジへのチャレンジはUnlockと呼ばれる前提となるモジュールの修了が必要となりますので、まだスーパーバッジに鍵マークが付いている人は、前提となるモジュールから始めてください。
Data Integration Specialist Super Badge日本語訳
https://salesforce.quip.com/gJ3QAkFy6boE
Data Integration SpecialistのTips
Data Integration Specialist のスーパーバッジを取得するには、インテグレーション機能の設定および連携のためのプログラムの作成、さらには認証/認可といったセキュリティについて正しく理解をしておく必要があります。
データインテグレーションにはスーパーバッジで使用するテクノロジ以外にもいくつもの実現方法がありますが、なぜその方式を取るのか?という背景とそのメリットを正しく理解しておくことが、バッジの取得の上でも、またその先にある実際のシステムの設計・構築の上でも非常に重要となりますので、ぜひその方式を採用する背景への理解も深めながら進めていただければと思います。
今回は、Data Integration Specialistで使用されているテクノロジから3つのTIpsをご紹介します。
またこのスーパーバッジは事前にパッケージのインストールが必要となりますが、Playgroundへパッケージがインストールできないという方は、Trailheadスーパーバッジにチャレンジしよう – Reports & Dashboards Specialist の「Ⅰ. パッケージインストールのTips」を参考にしてみて下さい。
Ⅰ. 接続アプリケーションのTips
システムのデータ連携の方法として、一番シンプルに分けると2つの方法があります。一つは Salesforceから外部に通信する ケース、そしてもう一つは 外部からSalesforceへ通信するケースです。
そしてエンタープライズシステムの場合には連携先のシステムがセキュリティを考慮してFireWallの内側にあるケースも多くなります。したがって、どちらかと言えばSalesforceのデータ連携は 外部からSalesforceへ通信する ケースが多くなります。実際に全世界のSalesforceへの通信の半分以上がWebブラウザではなくAPIによるものであるなど、統計的にも多くの外部のシステムからの連携が行われています。
SalesforceのREST/SOAP APIだけを使っても、接続のセッション毎にユーザ ID/パスワードを入力して認証することで、そのユーザ の権限の範囲で自由にSalesforceデータを扱うことができます。しかしこの場合、同じユーザ でもシステムによっては違う権限を与えたい場合などに対応できず、また都度ユーザ IDとパスワードの入力を促すか、連携元の外部システムにユーザ ID/PWを保存しなければならなくなり、セキュリティに課題が生まれます。
こういったケースに利用するのが接続アプリケーションです。
接続アプリケーションを利用すれば、OAuth2.0を利用してアプリケーション毎に一意なトークンを発行し、範囲(Scope)と呼ばれるパラメータとあわせることで、アプリケーションが実施できる処理をコントロールできます。
また、OAuthにはアクセストークンとリフレッシュトークンと呼ばれる仕組みが用意されており、ユーザ IDやパスワードを外部のシステムが保持することなく、安全にSalesforceとの連携を行うことができます。
今回のスーパーバッジでは、外部のシステムからの接続にこの接続アプリケーションとOAuthを利用してます。
また接続アプリケーションはOAuthの他にもSAMLを使った、IP制限をかけるなど様々な機能があるので、より詳細についてはこちらをご覧下さい。
接続アプリケーション | Salesforce ヘルプ
https://help.salesforce.com/articleView?id=connected_app_overview.htm
Ⅱ. Invocable MethodのTips
次に、Salesforce から外部システムへと通信する方法としては、Apexを利用するケースがほとんどです。
ApexにはHTTP通信を行うためのHTTPクラスがあらかじめ用意されているので、このHTTPクラスと指定ログイン情報(エンドポイントのURLや認証情報などをひとまとめにしたもの)を組み合わせれば、簡単に外部へと通信が行えます。
しかし、Salesforceでのシステム開発を熟知した皆さんならご存知の通り、どのタイミングで何を外部システムと連携すべきなのかといったビジネス要件は刻一刻と変わっていきます。
その都度コーディングを行うのではなく、外部システムとの連携部分に関しても、ある程度は宣言的開発環境で柔軟に対応できるようにしておきたいところです。
そこで役にたつのがInvocable Methodと呼ばれる機能です。
これはその名の通りプロセスビルダーから “呼び出すことのできる” メソッドを定義できるものです。
やり方は非常に簡単で、public or globalでアクセス可能な静的Apexメソッドに @InvocableMethodをつけるだけです。
これでこのメソッドはプロセスビルダーから呼び出せるようになります。
引数および戻り値には、プリミティブ型やsObject型のリストが利用でき、プロセスビルダーとApex間で値やオブジェクトを受け渡せるようにもなっており、後の仕様変更などに柔軟に対応できます。
InvocableMethod アノテーション
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_annotation_InvocableMethod.htm
また、Apexコールアウト自体のTipsは、前回のスーパーバッジTipsであるApex SpecialistのTipsにありますので、こちらもご参照下さい。
Ⅲ. Salesforce ConnectのTips
前項2つでは、REST APIやCalloutなどを使ったシンプルな通信による外部システムへの接続方法を紹介していますが、よりフレキシブルに、大量のデータを双方向に連携したい場合に利用できるのがSalesforce Connectです。Salesforce Connectを利用すると、oDataプロトコルに対応した外部データソースであれば、まるでSalesforce上にあるカスタムオブジェクトであるかのように、標準UIやレポートなどを使用してデータへのアクセス、編集、検索などが行えるようになります。
非常に強力な機能なのですが、設定自体は非常に簡単に行えます。
oDataに対応したデータソースを「外部データソース」として定義するだけで、あとは外部オブジェクトとして任意の外部データテーブルを追加することで、カスタムオブジェクトと非常に似た使用感で利用できます。
データソースに対して、柔軟なUIを構築したり、モバイルアクセスを提供するといった場合には、Salesforceと連携するだけでSalesforceの持つ様々な機能が利用できるので、開発工数の大幅な削減に繋がるため、データソースがoDataに対応しているならぜひ実際のプロジェクトでも利用を検討したい機能です。
Salesforce Connectは専用のTrailheadが用意されていますので、こちらのモジュールを履修してからスーパーバッジに取り掛かればより理解がしやすいでしょう。
Salesforce Connect | Salesforce Trailhead
https://trailhead.salesforce.com/ja/modules/lightning_connect
ここまでのTipsが頭に入ったなら、あとはスーパーバッジを取るだけです。
Q. どうしても解けない場合は?
A. Super BadgeのUnlockができているのであれば、これらのTipsはTrailheadのモジュール内で必ず学んでいるはずです。もしこのTipsを読んでも内容がイマイチ理解できない場合には、まずはUnlockしたモジュールをもう一度確認してみて下さい。
それでもどうしてもチャレンジが先に進めないという方は、Trailblazer CommunityにはTrailheadに関連する話題を話すためのグループがありますので、コミュニティにサポートをお願いしてみるのも良いでしょう。