Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

Heroku Postgresで単純にSalesforceオブジェクトのレコード連携

おはようございます。ロジカル・アーツ株式会社のSE 輪島 幸治です。

SalesforceからHerokuにレコードを連携するSalesforceインテグレーションの記事を執筆させて頂きます。

この記事は、SalesforceとHerokuを使用します。Herokuでは、Heroku Postgresというデータベースを使用します。 初心者向けに、Heroku環境の取得からHerokuにあるHeroku PostgresにSalesforceのレコードを連携する方法までをご紹介させて頂きます。

ブログ記事の範囲としては、SalesforceのオブジェクトのレコードをHeroku Postgresに連携させるところまでです。 Heroku PostgresでSQLを実行して、その結果、Salesforceから連携したレコードを表示することが出来れば目標達成としています。

はじめに

エンジニアの皆様は、合わせて関連する公式のドキュメントもご参照下さい。 設定手順については、 公式のTrailheadにはHerokuについてのモジュールが用意されております。

公式ドキュメント・Trailhead・ヘルプ・ナレッジ: Heroku Enterprise の基礎

この記事では、公式のTrailheadを補足する記事として、 Herokuの環境取得・Add-Onの設定、SQLの実行方法について、画像付きでご紹介させて頂きます。

この記事の目的

対象者

この記事では、Salesforceとの連携するPaaSやIaaSを検討する際に、Herokuを検討している方。 あるいはSalesforceを使用している方が、 初めてHerokuを使用する場合に、 Heroku側のSalesforceとの連携設定の概要を把握したい方を対象としています。

目標

SalesforceのオブジェクトのレコードをHeroku Postgresに連携させてHeroku PostgresにSQLを実行して、 その結果、Salesforceから連携したレコードを表示することを目標としています。 他システム連携の設定理解を目標とした記事です。 Salesforceの設定をする時間がないので、画像だけで設定概要を知りたいという方も対象としています。 この記事では、公式のTrailheadを補足する記事として、Salesforce組織とHerokuを使用して、データベースのレコード連携を行う手順について、画像付きでご紹介させて頂きます。

Herokuについて

さて,Herokuとは、AWS上に構築されたPaaS型のクラウドアプリケーションです。

jp.heroku.com

Heroku Security

Data Centers Heroku’s physical infrastructure is hosted and managed within Amazon’s secure data centers and utilize the Amazon Web Service (AWS) technology. Amazon continually manages risk and undergoes recurring assessments to ensure compliance with industry standards. Amazon’s data center operations have been accredited under:

Herokuは、PaaS上でアドオンをインストールしたり、プログラムを実行することができます。 このため、アドオンを使用することでアプリケーションの構築コストを低下させることもできます。 また、PaaSは、インフラストラクチャの複雑さを低減させる上でもメリットが大きいです。 複雑さを意識することなく、使用できるHerokuは、敷居が低く使いやすいと言えます。

Heroku - 環境取得

Herokuのサインアップ

まず、Heroku Dev Centerから、Sign upを押下します。

f:id:logicalarts:20210601113921p:plain
(HerokuSignUp00)

アカウントのサインアップページが表示されますので、必須項目を入力します。

ここでのHerokuのサインアップ手順では、私の情報を使用してサインアップ手順のご説明をさせて頂きます。

私は、株式会社セールフォース・ドットコムには、2013年から2016年までの期間所属しており、 2019年度から2020年度までは、情報通信研究機構にて、研究者をしておりました。 (情報通信研究機構での所属研究室はこちら

f:id:logicalarts:20210601113950p:plain
(HerokuSignUp01)

項目名 項目値
First name Koji
Last name Wajima
Email address logical2021webapp@gmail.com
Company name Logical Arts Corporation
Role Professional Developer
Country Japan
Primary development language Python

www.nict.go.jp

サインアップページに必須項目を入力しましたら、I'm not a robotの表示があるreCAPTCHAにチェックを入れます。

f:id:logicalarts:20210601114008p:plain
(HerokuSignUp02)

reCAPTCHAが表示されますので表示されている通りに指定された画像をチェックします。

f:id:logicalarts:20210601114030p:plain
(HerokuSignUp03)
f:id:logicalarts:20210601114049p:plain
(HerokuSignUp04)

reCAPTCHAのセクションにあるI'm not a robotの表示の左にチェックマークが入ったことを確認して、[CREATE FREE ACCOUNT]を押下します。

f:id:logicalarts:20210601114103p:plain
(HerokuSignUp05)

画面に"Almost there..."と書かれた表示を確認して、サインアップのEmail addressに登録した登録メールアドレスを確認します。

f:id:logicalarts:20210601114125p:plain
(HerokuSignUp06)

登録メールアドレスに有効化のためのURLが送られてきているのを確認して、URLを押下します。

f:id:logicalarts:20210601114137p:plain
(HerokuSignUp07)

Set your passwordの画面を確認して、Create a new password及びPassword confirmationにパスワードを設定して、would like to receive occasional updates about new product releases, techinical content, tips, and more to help optimize my Heroku experience. I can unsubscribe at any time.と記載されたメールの購読のチェックボックスを外します。

項目にパスワードを設定してチェックを外したら、[SET PASSWORD AND LOG IN]を押下します。

f:id:logicalarts:20210601114209p:plain
(HerokuSignUp08)

[CLICK HERE TO PROCEED]を押下します。

f:id:logicalarts:20210601114225p:plain
(HerokuSignUp09)

Terms of Service画面が表示されましたら、All Customersの箇所にあるAgreementを確認して、[Accept]を押下します。

f:id:logicalarts:20210601114241p:plain
(HerokuSignUp10)

Welcome to Herokuの画面が表示されたことを確認します。

f:id:logicalarts:20210601114300p:plain
(HerokuSignUp11)

HerokuにLoginログイン

Herokuのログイン画面を表示して、Email addressPasswordを入力して、Herokuにログインします。

f:id:logicalarts:20210601114327p:plain
(HerokuLogin00)

Secure Your Accountの表示が表示された場合は、[Continue]を押下します。

※Herokuには、Multi-Factor Authenticationなどの設定もありますが、この記事では、Salesforceとのレコード連携のみ取り扱います。

f:id:logicalarts:20210601114341p:plain
(HerokuLogin01)

画面右上の設定メニューを押下します。

f:id:logicalarts:20210601114434p:plain
(HerokuLogin02)

設定メニューを押下すると、メニューが表示されますので、[Dashboard]を押下します。

f:id:logicalarts:20210601114451p:plain
(HerokuLogin03)

[Create a new app]を押下します。

f:id:logicalarts:20210601114506p:plain
(HerokuLogin04)

Create a new app画面が表示されたのを確認します。

f:id:logicalarts:20210601114521p:plain
(HerokuLogin05)

App nameに[salesforcepostgres01]を入力して、[Create app]を押下して、アプリケーションを作成します。

f:id:logicalarts:20210601114532p:plain
(HerokuLogin06)

[salesforcepostgres01]が作成され、[Deploy]のタブ画面が表示されていることを確認します。

f:id:logicalarts:20210601114545p:plain
(HerokuLogin07)

Salesforce

Salesforce_設定

HerokuとSalesforceの連携設定を行う前に、 SalesforceからHerokuに連携するオブジェクトが必要です。

今回は、scikit-learnにて提供されているデータセットを使用します。 scikit-learnとは、オープンソースのプロジェクトであり、産業界や大学でも広く使われている機械学習プロダクトです。 多くのアルゴリズムが提供されており、活発なユーザコミュニティを持っています。 APIドキュメントには、多くのアルゴリズムの使用方法やオプションが記載されています。

scikit-learn.org

Real world datasetsでダウンロードできる California Housing datasetのカスタムオブジェクトを作成して、レコードを作成しておきます。

f:id:logicalarts:20210601114635p:plain
(SalesforceSetting00)

f:id:logicalarts:20210601114654p:plain
(SalesforceSetting01)

f:id:logicalarts:20210601114707p:plain
(SalesforceSetting02)

Heroku - Add-On 設定

SalesforceからHerokuへのレコード連携には、 Heroku PosgreとHeroku ConnectというAdd-Onを設定する必要があります。 Heroku PosgreのAdd-On追加方法とHeroku ConnectのAdd-On追加方法、 Salesforceとの接続方法について記載させて頂きます。

Heroku Posgre インストール

Herokuの[Deploy]画面から、[Resources]タブを押下します。

f:id:logicalarts:20210601114750p:plain
(HerokuAddOnPostgres00)

[Resources]タブにAdd-onsと書かれた検索フォームがあることを確認します。

f:id:logicalarts:20210601114808p:plain
(HerokuAddOnPostgres01)

Heroku Postgresと入力して、Add-onの検索結果で、 Heroku Postgresが表示されていることを確認します。

f:id:logicalarts:20210601114822p:plain
(HerokuAddOnPostgres02)

表示されたHeroku Postgresを押下すると、Plan nameが記載された画面が表示されます。 Plan nameは、無償プランである[Hobby Dev - Free]を選択します。

[Heroku Postgres]には、無償プランの[Hobby Dev - Free]の他に Hobby Basic($9/month)やStandard 0($50/month)などの有償プランもあります。

有償プランは、無償プランにあるレコード数の上限がないこと。また、RAMやストレージ容量ハードウェア性能など違います。 有償プランを使用するためには、クレジットカードが必要です。

今回は、Salesforceとレコード連携ができれば良いため、クレジットカードを使用するプランは不要です。 [Hobby Dev - Free]を選択して、[Submit Order Form]を押下します。

f:id:logicalarts:20210601114835p:plain
(HerokuAddOnPostgres03)

[Submit Order Form]を押下すると、Add-onsのセクションに [Heroku Postgres]がインストールされていることが確認できますので、[Heroku Postgres]を押下します。

f:id:logicalarts:20210601114850p:plain
(HerokuAddOnPostgres04)

[Heroku Postgres]を押下すると、[Datastores]の[postgresql-perpendicular-19316]に移動します。 [postgresql-perpendicular-19316]にて、HEALTHセクションの表示にAvailableを確認します。Availableの表示でAdd-Onで追加したPostgres Databaseが、Heroku上で起動されていることを確認します。

f:id:logicalarts:20210601114902p:plain
(HerokuAddOnPostgres05)

Heroku Connect インストール

次は、Salesforceのレコード連携するために必要なAdd-Onである[Heroku Connect]の追加方法を記載させて頂きます。 Heroku appで作成した[salesforcepostgres01]の[Overview]タブから追加手順を説明させて頂きます。 まず、Add-Onに、[Heroku Postgres]が追加されていることを確認して、[Resources]タブを押下します。

f:id:logicalarts:20210601114942p:plain
(HerokuAddOnConnect00)

[Heroku Postgres]のインストール時と同様に、[Resources]タブにあるAdd-onsという検索フォームを確認します。

f:id:logicalarts:20210601114958p:plain
(HerokuAddOnConnect01)

Heroku Connectと入力して、Add-onの検索結果で、Heroku Connectが表示されていることを確認します。

f:id:logicalarts:20210601115011p:plain
(HerokuAddOnConnect02)

表示されたHeroku Connectを押下すると、Plan nameが記載された画面が表示されます。 Plan nameは、無償プランである[Demo Edition - Free]を選択します。

[Heroku Connect]にも、無償プランである[Demo Edition - Free]の他に[Enterprise - Contract]や[Shield - Contract]などの有償プランがあります。

今回は、Salesforceとレコード連携できれば良いため、[Demo Edition - Free]を選択して、[Submit Order Form]を押下します。

f:id:logicalarts:20210601115024p:plain
(HerokuAddOnConnect03)

[Submit Order Form]を押下すると、Add-onsのセクションに[Heroku Connect]がインストールされていることが確認できますので、[Heroku Connect]を押下して、[Heroku Connect]の設定を行います。

f:id:logicalarts:20210601115038p:plain
(HerokuAddOnConnect04)

連携手順

Heroku Connect 設定

[Heroku Connect]の設定については、[salesforcepostgres01]の[Resources]画面にて、 [Heroku Connect]を押下しても、Add-On設定画面に遷移できます。 この記事では、Heroku appで作成した[salesforcepostgres01]の画面から説明させて頂きます。

まずHeroku appである[salesforcepostgres01]を押下します。

f:id:logicalarts:20210601115115p:plain
(HerokuConnectSetting00)

[Overview]タブが表示されますので、Add-Onに、[Heroku Connect]が追加されていることを確認して、[Heroku Connect]を押下します。

f:id:logicalarts:20210601115135p:plain
(HerokuConnectSetting01)

[Heroku Connect]のAdd-On画面が表示されましたら、[Setup Connection]を押下します。

f:id:logicalarts:20210601115148p:plain
(HerokuConnectSetting02)

Heroku Enter schema name:の入力フォームに"salesforce"と入力されているため、 任意のschema nameを設定します。

f:id:logicalarts:20210601115159p:plain
(HerokuConnectSetting03)

画面右上の[Next]を押下します。この記事では、schema nameに"salesforceheroku"と設定します。

f:id:logicalarts:20210601115214p:plain
(HerokuConnectSetting04)

Authorize Connection画面に、[Authorize]を押下します。

f:id:logicalarts:20210601115228p:plain
(HerokuConnectSetting05)

ログイン画面が表示されますので、ユーザ名とパスワードを入力して、[ログイン]を押下します。

f:id:logicalarts:20210601115242p:plain
(HerokuConnectSetting06)

OAuth認証が表示されますので、[許可]を押下します。

f:id:logicalarts:20210601115255p:plain
(HerokuConnectSetting07)

[許可]を押下すると、CONNECTION STATUSのセクションに IDLEと表示されていることを確認して、[Mappings]を押下します。

f:id:logicalarts:20210601115311p:plain
(HerokuConnectSetting08)

[Create Mapping]を押下します。

f:id:logicalarts:20210601115322p:plain
(HerokuConnectSetting09)

[Create Mapping]を押下すると、Create Mappingの画面が表示されます。

f:id:logicalarts:20210601115338p:plain
(HerokuConnectSetting10)

Create Mappingの画面をスクロールすると、 Postgres Databaseに連携するオブジェクトであるCalifornia_Housing_dataset__cを確認します。California_Housing_dataset__cについては、履歴:から開始するオブジェクトや共有:から開始するオブジェクトもありますがこの記事では、California_Housing_dataset__cを選択します。

f:id:logicalarts:20210601115352p:plain
(HerokuConnectSetting11)

Edit Mapping:California_Housing_dataset__cという画面が表示されます。SalesforceのオブジェクトであるCalifornia_Housing_dataset__cが表示され、オブジェクトの項目が表示されていることを確認します。

f:id:logicalarts:20210601115408p:plain
(HerokuConnectSetting12)

Standard Fieldsセクションにて連携する項目を選択して、[Save]を押下します。 連携項目は、連携するオブジェクトのすべての項目を選択しても良いです。 今回は、既に選択されている項目に加え、連携したいカスタム項目のみを選択します。

f:id:logicalarts:20210601115423p:plain
(HerokuConnectSetting13)
f:id:logicalarts:20210601115658p:plain
(HerokuConnectSetting14)

All Mappingsセクションにある[Status]がReloadingとなっていることを確認します。

f:id:logicalarts:20210601115713p:plain
(HerokuConnectSetting15)

[Status]がPolling SFとなった際に、Salesforceから連携される レコード数が[Salesforce Rows]に表示されていることを確認します。

f:id:logicalarts:20210601115726p:plain
(HerokuConnectSetting16)

[Status]がOKという表示に代わることで、SalesforceからHeroku Postgresにレコードが連携されたことを確認します。

f:id:logicalarts:20210601115739p:plain
(HerokuConnectSetting17)

Heroku Posgre - DataclipでSQL

連携したレコードを、Heroku上でSQLを実行してに画面表示する方法を紹介させて頂きます。

f:id:logicalarts:20210601115814p:plain
(HerokuDataclips00)

Herokuの画面右上にあるメニューを押下します。

f:id:logicalarts:20210601115831p:plain
(HerokuDataclips01)

Herokuのメニューが表示されますので、[Dataclips]を押下します。

f:id:logicalarts:20210601115844p:plain
(HerokuDataclips02)

[Dataclips]画面が表示されますので、[Create Dataclip]を押下します。

f:id:logicalarts:20210601115900p:plain
(HerokuDataclips03)

[Create a new dataclip]の画面が表示されますので、 [Enter dataclips title]、[Select a datastore]、[SQLの入力フォーム]の画面を確認します。

f:id:logicalarts:20210601115911p:plain
(HerokuDataclips04)

[Select a datastore]を選択すると作成したHeroku Postgresが確認できますので、 Salesforceのオブジェクトを連携した[salesforcepostgres01]を選択します。

f:id:logicalarts:20210601115926p:plain
(HerokuDataclips05)

[Enter dataclips title]、[Select a datastore]に値を設定して、 [SQLの入力フォーム]にSQLを入力したら、[Save & Run]を押下します。

f:id:logicalarts:20210601115938p:plain
(HerokuDataclips06)

SQLが実行され、SQLがHeroku上で実行されていることを確認します。

f:id:logicalarts:20210601115951p:plain
(HerokuDataclips07)

まとめ

以上が、SalesforceをHerokuに連携するSalesforceインテグレーションにおけるHeroku側の設定方法です。

この記事の範囲であるSalesforceのオブジェクトのレコードをHerokuのHeroku Postgresに連携させて、SQLを実行するところまではできたと言えます。

ブログ記事で紹介させて頂いた手順を行うことで、SalesforceからHerokuにレコードを連携させることができます。 Salesforceからレコード連携できると、Heroku側から他のシステムに連携するインテグレーションや Heroku上でWebサービスを構築するインテグレーションが検討できます。

アカデミックな場面では、デジタル変革SDGS学問分野の議論若手人材の育成など、 社会課題解決への多くの議論や取り組みがなされています。

一般社団法人情報処理学会 - 会誌「情報処理」 - IPSJ2021 ニューノーマル時代を切り拓く学会を目指して -会長就任にあたって-

記事で紹介させて頂きました通り、SalesforceはHerokuを連携先として使用することができます。 また、多くのHerokuアドオンも用意されています。

皆様もSalesforceを使用しているプロジェクトで、PaaS連携やIaaS連携を検討する場合やPaaSやIaaSと連携するWebのフロントシステムという役割でHerokuと連携することを検討してみて下さい。

よろしくお願いいたします。

備考

この記事は、著者が独自に調査した結果をブログ記事化したものです。記載されている手順やアドレスなどは、予告なく変更される場合もあります。 この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。 クラウドアプリケーションは、成長が著しいため、機能更新も早いです。至らない箇所もあると思いますが、お気付きの点がありましたら、お問い合わせ下さい。

クラウドアプリケーショントレンド(参考)

Stack Overflow Insights - Stack Overflow Trends

f:id:logicalarts:20210715082258p:plain
Stack Overflow Trends(2009-2021)

Yahoo Finance - Salesforce.com Inc (CRM) Interactive Stock Chart

f:id:logicalarts:20210715082327p:plain
Yahoo Finance Chart(2009-2021)

よろしくお願いいたします。