Heroku PostgreSQL のレコードを Salesforce Connector (Odata 4.0) を使って Salesforce の外部オブジェクトとして表示させる
Summer '21 の時に書いたメモです
表題の内容を検証してみました。ググっても手順が部分的にしか見つからなかったのでメモを残しておきます。
すべて無料でできます。
概要
1) Heroku にログインし、Heroku Application を新規作成する
2) Heroku Postgres の Add-on を入れる
3) Heroku Connect の Add-on を入れる
4) PostgreSQL でテーブルを作成、レコードを入れる
5) Salesforce 上で外部データソース定義を作成する
6) Salesforce 上で外部オブジェクトを作成する
7) Salesforce 上で外部オブジェクトのタブを作成する
詳細
1) Heroku にログインし、Heroku Application を新規作成する
1-1) Dashbord より New -> Create New App を選択
https://gyazo.com/a9ee1da4d5c1bc5ce68c928df04384cc
1-2) 適当な名前を入れて Create app をクリック
2) Heroku Postgres の Add-on を入れる
2-1) Resources タブから Heroku Postgres を検索してインストール
Plan は Hobby Dev にすればお金はかかりません
https://gyazo.com/8437690903e84750d6b8eb9570eac092
3) Heroku Connect の Add-on を入れる
3-1) 同様に Resources タブから Heroku Connect を検索してインストール
Plan は Demo Edition であればお金はかかりません
3-2) Heroku Connect の詳細から External Objects > Show credentials ボタンをクリック
3-3) User, Password, Server URL をメモっておきます
4) PostgreSQL でテーブルを作成、レコードを入れる
4-1) クライアント端末から heroku login を実行して heroku にログイン
heroku toolbelt (でしたっけ?) がインストールされていて、heroku コマンドがクライアント端末から実行できる前提です
4-2) 適当なフォルダに移動 cd my-project/
4-3) git を初期化 git init
4-4) git と紐付け heroku git:remote -a <appname>
4-5) postgres にログイン heroku pg:psql
heroku にログインしていて app との紐付けができているから、引数なしでぽすぐれにログインできます
4-6) テーブル定義を作成
code: createtable.sql
CREATE TABLE tbl_herokudb
(
id character varying(100) PRIMARY KEY,
str character varying(100) NOT NULL,
date timestamp NOT NULL
);
※プライマリーキーがないと後々の設定で Salesforce と共有できないので注意
4-7) \d コマンドでテーブル一覧を確認
code:\d
Schema | Name | Type | Owner
--------+--------------+-------+----------------
public | tbl_herokudb | table | ydthgkkslpvvdu
4-8) \d <table_name> でテーブル定義を確認 (できるらしい)
code:\d tbl_test
(なぜかエラーになりました。定義見れなくても先に進めるので一旦省略)
4-9) レコードを作成
INSERT INTO tbl_herokudb (id, str, date) VALUES (1, 'abc', '2022-01-01');
4-10) Heroku Connect の設定画面から External Objects の Shared にチェック
※テーブル作成時にプライマリーキーを設定してないとチェックがつけられないので注意
https://gyazo.com/0c0501f4fc928e4b8e690d560a02fc55
5) Salesforce 上で外部データソース定義を作成する
5-1) Salesforce にログイン
5-2) 設定 > 外部データソース のページに移動
5-3) 必須項目を入力
外部データソース:(任意)
名前:(任意)
URL:(3-3 でメモった URL)
ID 種別:ユーザ
認証プロトコル:パスワード認証
管理者ユーザ名:(3-3 でメモった User)
管理者パスワード:(3-3 でメモった Password)
5-4) 保存 をクリック
https://gyazo.com/5b401e2813ac8c0b9c65b4334b119432
6) Salesforce 上で外部オブジェクトを作成する
6-1) 検証して同期 をクリック
6-2) 同期するテーブルにチェックをつけて、同期 をクリック
https://gyazo.com/7413aa3dbd6766e59ad317a61ed5051f
6-3) 外部オブジェクトが出来上がっていることを確認する
7) Salesforce 上で外部オブジェクトのタブを作成する
7-1) 設定 > タブ のページに移動
7-2) カスタムオブジェクトタブ の 新規 をクリック
7-3) オブジェクト で外部オブジェクト名を選択、タブスタイル は適当なものを選択して 次へ をクリック
7-4) あとは適当に設定して 保存 をクリック
7-5) できた
https://gyazo.com/d57e5954143a70350efbce465c1ca313