6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Heroku ConnectのGetting Started

Posted at

Heroku ConnectのGetting Started

Dev CenterのGetting Started on Heroku with Heroku Connectに添って進めていけば、SalesforceのテーブルがPostgresのテーブルと同期するところまで試せます。サンプルアプリはsinatraとsinatra-activerecordを使っています。

Salesforceは開発に利用できる無料のDeveloperEditionがあるので[ここからサインアップしておきます]。
しばらくするとメールが来るのでパスワードを設定してログインします。

ログインするとこんな画面になりますが、サンプルアプリで使うのは「取引先責任者」です。イマイチ意味の分からない翻訳ですがContactのことです。ちなみに取引先がAccountです。

取引先責任者を開いたら、ビュー→すべての取引先責任者→Go

DeveloperEditionにサンプルで入っている取引先責任者が表示されます。Getting Startedを進めていくと、これがPostgresに同期されます。

最初のデプロイ

Getting Startedのこのステップでは、Heroku Buttonでこのサンプルアプリをデプロイします。フリープランのHeroku PostgresとHeroku Connectがインストールされます。

同期設定

ダッシュボードからデプロイしたアプリを開き、Heroku Connectアドオンを開きます。
最初はPostgresとSalesforceの設定です。Setup Connection→Next→Next→Salesforceにログイン→アクセス許可と進めます。

Create Mappingをクリックすると、Salesforceのテーブル(Salesforce用語ではオブジェクトといいます)一覧が出てくるのでContactを探してクリックします。右上に検索ボックスがあります。

同期間隔、双方向同期するか、どのカラム(Salesforce用語では項目)を同期するかを設定できます。

Mapped Fieldsで以下の3つを選んで右上のSaveで保存します。

  • Email
  • FirstName
  • LastName

同期確認

次のステップはDataclipその次のステップはGitHub連携の話です。その次がソースコードを修正してGitHubからデプロイする説明ですが、heroku git:clone --app アプリ名して手元で書き換えてgit push heroku masterでよいでしょう。

書き換える、というかコメントアウトを解除するのはapp.rbのこの辺です。

class Contact < ActiveRecord::Base
  self.table_name = 'salesforce.contact'
end

# ↓この4行のコメントアウトを解除する
get "/contacts" do
  @contacts = Contact.all
  erb :index
end

https://アプリ名.herokuapp.com/contactsを開くと同期されていることが確認できます。

アドオンダッシュボードのGUIで同期設定すると、Heroku Connectが使うPostgresのスキーマにテーブルができるのでマイグレーションする必要はありません。むしろ勝手にテーブルを作るとアドオンGUIでエラーになります。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?