利用しながら、Salesforceではない別のシステムのデータを参照・更新したい」といった悩みは、どの会社にもあふれているでしょう。ディスク容量を圧迫してしまう」といった問題にも対処できますが、一般的にはプログラミングやETL等のツールが必要になり、実際に実現しようとなると少し敷居が高くなってしまいそうです。Connectというサービスが提供されています。Connectを利用すると、Salesforce外部システム上のデータは「外部オブジェクト」として、いまみなさんが操作をしているSalesforceから直接、外部システム上にあるデータの参照や更新ができるようになります。特別なコーディングは不要です。Salesforceの設定を行うだけで利用可能になるのです。Connectと外部オブジェクトの設定を行ってみましょう。SalesforceとSalesforceを連携するのであれば、外部オブジェクトを使用せずとも、例えば、Salesforce-to-Salesforceなどのソリューションを利用することができますが、今回はあくまでも例として一方のSalesforceを「外部システム」と見立てて外部オブジェクトの利用例を紹介します。Connectを設定してみるその前に今回利用する2つのSalesforceについて名前をつけておきます(この名称はあくまでも両者を区別するための便宜上の名称であり、Salesforceの正式な用語ではありません)。自分のオブジェクトをConsumerに外部オブジェクトとして公開します(=Provider)。Provider上に定義されているオブジェクトを外部オブジェクトとして利用します(=Consumer)。目標は、「Provider上にあるカスタムオブジェクトをConsumer上で参照/編集する」ことです。設定の流れは以下のようになります。.動作を確認してみるそれでは実際に設定して行きましょう。(事前準備)Providerにて、オブジェクトを作成するProvider側でオブジェクト(カスタムオブジェクト)を1つ作成します。「部屋」という名前で、空き部屋に関する情報を保持するオブジェクトとしましょう。Consumerにて、外部データソースの設定を行うさて、外部オブジェクトの設定はここからです。最初に外部オブジェクトがホスティングされているProvider側への接続情報を定義しましょう。[外部データソース]を開きます。ここでは外部データソースの名前を"ExternalProvider"としておきます。「管理者ユーザ名」と「管理者パスワード」には、接続先のシステム、つまり、Provider側のユーザ名とパスワードを設定します。忘れてはならないのが「書き込み可能外部オブジェクト」にチェックを入れることです。デフォルトではチェックが入っていません。チェックを入れることで、外部オブジェクトへの書き込み機能が提供されます。Consumerにて、検証して同期を行う外部データソースの定義が終わったら、「検証して同期」という作業を行います。実際にこの外部データソースの定義を用いて、ConsumerからProviderへ接続を行いProvider側のオブジェクトをConsumer側で「外部オブジェクト」として取り込むための操作および設定を行います。接続エラーが発生した場合は、前のステップに戻って「外部データソース」のユーザ名、パスワードを確認しましょう。Provider側のユーザのログイン履歴を確認することでも、パスワードの間違いやセキュリティトークン、IPアドレス制限などのエラーを確認することができます。無事に接続が成功すると、Provider側に定義されているオブジェクトの一覧が取得できます。この中から、今回Consumer側で利用したい「部屋」というオブジェクトを探します。画像のようにチェックを入れて、画面上部(または下部)にある「同期」ボタンを押下します。同期が成功すると、以下のように「部屋」オブジェクトが表示されます。作成された「部屋」オブジェクトの内容を見てみましょう。上記画像の「部屋」をクリックします。API名は、外部オブジェクトの場合は末尾に__xが付与されます。Provider側では、Property__cという名前でしたが、Consumer側では、Property_c__xのようになります(__cが_cになっていることに注意)。いくつか設定の変更を行いましょう。「部屋」オブジェクトをレポートで利用しますので、「レポートを許可」にチェックを入れましょう。アプリケーションのカスタマイズ)を有しているユーザのみが参照できるからです)。「検索を許可」にチェックを入れることで、グローバル検索の対象に外部オブジェクトを含めることができます。設定を続けて行きましょう。Consumerにて、タブとページレイアウトの設定を行うタブとページレイアウトの設定を行います。タブは通常のカスタムオブジェクト同様に設定することができます。外部オブジェクト固有の設定はありません。Object」というアプリケーションを定義して追加しておきましょう。ページレイアウトの設定自体も、同様に設定することができます。カスタムのレイアウトを以下のように定義をして、「部屋レイアウト(カスタム)」と別名で保存します(その理由は後述します)。忘れずにレイアウトの割り当ての変更を行いましょう。動作を確認してみるこれで一通り設定ができました。実際にレコードを確認してみましょう。Provider側でレコードを登録する以下のようにレコードを登録します。難しい点はありません。Consumer側でレコードを確認するこれまでいくつかの設定を行ってきましたが、いよいよConsumer側でレコードを閲覧するときがきました。「部屋」タブを開いてみましょう。Provider側で登録したレコードが表示されています。部屋番号部分をクリックします。先程定義したページレイアウトに従って、Provider側の部屋レコードの詳細が確認できます。Consumer側でレコードを更新する下記画像の編集ボタンを押し、レコード内容を変更してみましょう。上記では「形態」を戸建てへ変更しています。保存ボタンを押下します。保存ボタンを押下した時間で更新されていることがわかります。Provider側でConsumer側でのレコードの更新をする。最後に、Provider側でもレコードの更新状況を確認しておきましょう。当然ですが、Consumer側で更新された内容がProvider側でも確認ができます。いかがでしたでしょうか。1行もコードを記述することなく、別なシステム(Provider)にあるレコードを自分のシステム(Consumer)で参照、更新することができました。外部オブジェクトの利用で何が嬉しいのか?ここまでで、外部オブジェクトの設定と実例をご紹介しましたが、もう少し外部オブジェクトについて考えてみます。外部オブジェクトを利用することで、何が嬉しいのでしょうか。1つ目は「宣言的手法」により、1行もコードを記述することなく、別のシステム(Provider)にあるレコードを自分のシステム(Consumer)で参照、更新することができる点があります。一般的にデータ連携は専門的な知識を必要とすることが多いですが、外部オブジェクトを利用した場合は、それがなくとも設定することができます。2つ目は、下記に代表されるような一般的なSalesforceの機能が利用できることです。タブによるレコード表示(レコードアクセス)が利用できること標準のページレイアウトやViewによる機能が利用できることレポートが利用できること3つ目は、レコードの反映に即時性があることです。ConsumerおよびProviderにおいて、双方でのレコードの更新結果は即時に更新されるため、待つ必要がないことです。今回は触れませんでしたが、ApexやSOQLからの外部オブジェクトに対する操作も、通常のオブジェクトと同様に行うことができます。このため、単に「他システムのデータを参照する」ということだけではなく、それを利用し、「複雑なロジックを構築することができる」ということも挙げられます。自動化プロセス機能(Workflow/承認プロセス/プロセスビルダー)はサポートされていないTriggerもサポートされていないデフォルトで定義されるレイアウトは「検証して同期」を行うと、上書きされてしまう(上記の例で、レイアウトを別名で保存していた理由は、この事象を回避するためです)。Connectを利用した、外部オブジェクトの機能をご紹介しました。著者についてCloudの世界に身を投じて早くも数年。変化の速いCloudの世界の波に揉まれながらも日々Cloudの世界で仕事をしていることを楽しんでいます。2019に参加します。どんな世界が待っているかワクワクしています。取り上げてみたいと思います。入門編ブログをシリーズに渡ってお届けします。開発の基本から簡単な応用テクニックまでを網羅します。Platform」についてご紹介します。主導のシステム連携をサポートするための幅広い機能が単一のプラットフォーム上で提供されています。デプロイ作業について説明します。実装について説明しました。デプロイ作業について説明します。変換例を紹介しようと思います。変数や関数の利用、典型的な変換パターンを例を交えて説明します。使ったブラウザ環境でのMuleアプリケーションの開発についてご紹介します。Muleアプリケーションを作成することに比べて、とても手軽にアプリケーションを開発できます。して提供されている単体テスト用のフレームワークです。同じようにテストスイートを実行することで単体テストを自動実行できます。開発におけるテストについて考えていきます。つのレベルの検証を実施すべきと考えます。実装したらすぐに運用開始できるというものではありません。ポリシー設定についてご紹介します。API管理は標準のポリシーの組み合わせで幅広い要件をカバーできますが、場合によっては既存機能の拡張や新機能の定義が必要になります。今回は、「カスタムポリシー」の開発手順についてご紹介します。リソースのバージョン」)を管理する必要があります。バージョン管理についてご紹介します。アプリケーションの実装方法について紹介しようと思います。アプリケーションの実装方法を引き続きご紹介します。ついて、その特長と使い方をご紹介します。ComponentsがSrping'19から提供されることになりました。Componentsが登場してきた背景とその特長について説明します。Componentsの基本的な構成(メタデータ、html、JavaScript)や実装のルールについて説明します。JavaScriptコードなどはAuraコンポーネント時代からかなり変更された要素ではありますが、より簡潔にコードが書けるように進化しているという印象を受けました。今回は簡単なサンプル・コンポーネントを通して、LWCの基本的な実装方法とSalesforceサーバーからのデータの取得方法を見ていくことにします。Serviceというノンコーディングでサーバーからデータを取得できる便利な方法が導入されており、いくつかの方法でサーバーデータを取得できます。本稿ではその特長と使い分けについて解説してみます。CLIを使って行います。今回はこのCLI(コマンドライン・インターフェース)にスポットを当ててみたいと思います。CLIは従来はAPIでのみ提供されていたSalesforceサーバーに対する様々な機能をコマンド形式で実行できる環境であり、Winter’18で正式にリリースされました。第5回目の今回は応用編ということで、本格的なLWCの実装時に必要となるテクニックをいくつか紹介します。各種資料ENGLISHこのハブをシェアするFacebookTwitterEmailLinkedIn。