スーパーバッジ攻略 Data Integration Specialist①

スーパーバッジ編、今回はData Integration Specialistです。
主にシステム間連携についての内容がメインとなり、ソースコード以外にも設定が必要なところがいくつかあるため、覚えることはちょっと多めです。

スポンサーリンク

まずは、問題文要約から

まずは文章が英語なので、アンニュイな要約から。
こちらもSalesforce岡本さんが解説要約してくれたページがあるので、こちらを見るのが早いです。
本っ当にありがとうございます!

ということで、問題文はようやくされた物を信用して、早速とりかかることにしましょう!

事前準備

ハンズオン解説に行く前に、Salesforceの設定周りを先に片付けておきましょう。
Stepが進むたび、都度設定してもいいですが、僕の場合は纏めてコーディングに専念したいので、先に設定できるものはしてしまいます。

  • パッケージのインストール
  • リモートサイトの設定
  • 指定ログイン情報の設定
  • 接続アプリケーションの設定
  • カスタム設定
  • 外部データソース&外部オブジェクトの作成
  • 商談のカスタマイズ
  • WSDLからクラス作成

パッケージのインストール

これは今までのスーパーバッジ課題と同じ、指定されたパッケージのインストールです。
新たにTrailhead Playground 組織を作成し、余分なオブジェクトやクラスが入っていない状態でインストールすることを推奨します。
Trailhead Playgroundで環境を作った場合は、パッケージインストール時にユーザ名とパスワードを要するので、パスワードのリセットは事前に済ませておきましょう。

多少読みづらくても、言語は「English」にした方が、ラベル名とか合わせやすくなります。

リモートサイトの設定

次はSOAPで使う用のリモートサイトの設定。
ここはURLの入力と有効化してしまえばOKです。
リモートサイトの設定

指定ログイン情報の設定

設定では、Named Credentialsから登録できます。
登録内容については、説明文に記載されているのでそれ通りに設定すればOKです。
指定ログイン情報の設定

接続アプリケーションの設定

接続アプリケーションも登録します。
設定内容は説明文通りの設定でOKです。
** 追記:画像誤りのため修正しました **
接続アプリケーションの設定

入り口が分かりづらいですが、LightningではApp Managers → New Connected Appから作成できます。

カスタム設定

パッケージをインストールすると、ServiceCredentialsとServiceTokensというカスタム設定が作成されています。

BillingServiceCredentialはSquare Peg Accountingの請求システムへの認証用に使用されるため、ユーザ名とパスワードを登録する必要があります。
BillingServiceCredentialという名前で以下情報を登録します。
(パスワードとユーザ名を逆に入力しないように注意!僕は引っかかりました。。。)
カスタム設定に認証情報を入れる

もうひとつのServiceTokensは、何個か手順を踏む必要があります。
まずは、こちらのサイト(https://sb-integration-pms.herokuapp.com)に入り、log into your DE orgリンクを押下します。
ProjectManagementSystemのログイン

アクセス許可が聞かれるので、当然許可します。
PMS RESTのアクセス許可

次に、Consumer KeyとConsumer Secretを入力する画面が表示されるので、先ほど作った接続アプリケーションのConsumer KeyとConsumer Secretをコピーして、入力します。
これを、
接続アプリケーションのコンシューマ鍵と秘密鍵
ここに入力してSubmit。
コンシューマ鍵をPMSに入力
すると、トークンが発行されるので、赤枠内のコードをカスタム設定に入力すればOKです。
発行されたトークン

名前は指定通りにProjectServiceTokenとしてください。
カスタム設定にトークンを入力

外部データソース&外部オブジェクトの作成

ほぼStep9でやる内容ではありますが、外部システムから請求書データを同期し、外部オブジェクトを作成します。
設定のExternal Data Sourcesを選択し、New External Data Sourceボタンから、説明文記載のデータソースを登録します。

外部データソースの設定

登録すると、同期するオブジェクトが問われるので、invoiceにチェックを入れてSyncボタンを押します。

同期するオブジェクトを指定

同期すると、外部オブジェクトにInvoiceが作成されます。

この時点ではまだProjectと繋がっていないので、間接的なリレーションを作成します。
外部オブジェクトのInvoiceから、projectRefのデータ型を変更します。

間接的なリレーションを選択

次の画面でProjectを選んで、

関連する外部オブジェクトの選択

次の画面でProjectRef__cを選択(というか、これしか選択肢ないです)

ターゲットフィールドの設定

それ以降のページレイアウトの設定などはとりあえずデフォルトでOKです。
とりあえずと言ったのは、ページレイアウトは別で設定する必要があるから。
なので、オブジェクトマネージャーからProjectのページレイアウトを開いて、関連リストにInvoiceを加えます。
関連リストに出す列も、指定があるので、External ID, Bill Amount, Bill Dateの3つを並べましょう。

関連リストの設定

商談のカスタマイズ

商談のTypeとStageにも値が必要になるので追加します。
Opportunityの項目の中のTypeから、Opportunity Stages Picklist ValuesのNewを選び、New Projectを追加します。
OpportunityのTypeを設定
Opportunityの項目の中のStageから、Opportunity Stages Picklist ValuesのNewを選び、Submitted ProjectとResubmit Projectを追加します。
OpportunityのStage設定

WSDLからクラス作成

今回はSOAP呼び出しも要するので、WSDLの取り込みも必要になります。
まずは、WSDLを取得してダウンロード(http://sb-integration-bs.herokuapp.com/ws/invoices.wsdl)。
SOAPの使用にはWSDLが必要
一旦ローカルに置いて、Apex classesからGenerate from WSDLを選択して、ダウンロードしたWSDLをファイルに指定します。
WSDLの取り込み
そのあと、クラス名入力画面なので、「BillingServiceProxy」と入力。
WSDLから生成されたApexクラス
これでクラスが作成されました。
作成された後、BillingServiceProxyクラスとAyncBillingServiceProxyクラスが作成されますが、AyncBillingServiceProxyは不要なので削除します。
不要なAyncBillingServiceProxyクラスは削除
残しておいても問題ないように見えますが、後々のテストのカバレージに影響するため削除する必要があります。

先取りしてしまいましたが、Step9の内容はこれで完了です。
ん〜、設定が意外と多かったですね。
ハンズオンは次からにしましょう。

 

コメント

  1. hm より:

    接続アプリケーションの設定の画像が間違っているかと思います

    • 管理人エスパー より:

      ご指摘ありがとうございます。
      確かに画像が間違っておりました。
      URLの指定ミスのため、差し替えて修正しました。