スーパーバッジ編、今回は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リンクを押下します。
アクセス許可が聞かれるので、当然許可します。
次に、Consumer KeyとConsumer Secretを入力する画面が表示されるので、先ほど作った接続アプリケーションのConsumer KeyとConsumer Secretをコピーして、入力します。
これを、
ここに入力してSubmit。
すると、トークンが発行されるので、赤枠内のコードをカスタム設定に入力すれば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の項目の中のStageから、Opportunity Stages Picklist ValuesのNewを選び、Submitted ProjectとResubmit Projectを追加します。
WSDLからクラス作成
今回はSOAP呼び出しも要するので、WSDLの取り込みも必要になります。
まずは、WSDLを取得してダウンロード(http://sb-integration-bs.herokuapp.com/ws/invoices.wsdl)。
一旦ローカルに置いて、Apex classesからGenerate from WSDLを選択して、ダウンロードしたWSDLをファイルに指定します。
そのあと、クラス名入力画面なので、「BillingServiceProxy」と入力。
これでクラスが作成されました。
作成された後、BillingServiceProxyクラスとAyncBillingServiceProxyクラスが作成されますが、AyncBillingServiceProxyは不要なので削除します。
残しておいても問題ないように見えますが、後々のテストのカバレージに影響するため削除する必要があります。
先取りしてしまいましたが、Step9の内容はこれで完了です。
ん〜、設定が意外と多かったですね。
ハンズオンは次からにしましょう。
コメント
接続アプリケーションの設定の画像が間違っているかと思います
ご指摘ありがとうございます。
確かに画像が間違っておりました。
URLの指定ミスのため、差し替えて修正しました。