Heroku ConnectでForce.com上に作ったカスタムオブジェクトの内容を表示してみる

July 18, 2017 Masanori Ikuta

こんにちは。

今日はHerokuの勉強として、Force.com上に作ったカスタムオブジェクトのデータを

Heroku Connectを使ってHeroku上に構築したWebアプリケーションに表示してみます。

前提条件

今回はHeroku上のJavaアプリケーションにデータを表示します。

  • Heroku、Force.comの開発環境を準備します。
  • Herokuのハンズオンであるjava-getting-startedで作ったアプリに処理を追加します。
  • Force.com上に 取引先(Torihikisaki__c)というカスタムオブジェクトを用意しておきます。
  • 取引先オブジェクトは 名前(Name), 住所(Jusho__c)という項目を持っています。

準備

作ったHeroku アカウントにログインして、Heroku Connect のアドオンをインストールします。

下の画面の Find more addons から探してDemo版をインストールすればOKです。

herokuc1

Heroku Connectの設定

アドオンをインストールしたらHeroku Connect のリンクをクリックします。

そうすると新しい設定を追加するボタンが出てくるのでクリックします。

その後DBのスキーマ名選択画面が出てくるので、Herokuアプリ側のDBスキーマ名を入力します。

スキーマ名はローカルのコマンドラインで以下のherokuコマンドを打てば調べられます。

 

heroku config

 

表示結果のDATABASE_URL末尾部分がスキーマ名です。

次に進むとSalesforceの認証画面が出てくるので自分のアカウントでログインします。

次にMappingの作成をします。Mapping の設定は下の画面のCreate Mappingからできます。

スクリーンショット 2017-07-13 10.23.46

開くとSalesforce側のオブジェクトを選ぶ画面が出てくるので取引先オブジェクトを選びます。

(下の画面だとすでに作成済みなのでハイライトされてますが、最初に作る場合はクイック検索窓から絞り込みが可能です)

herokuc3

オブジェクトを選ぶと細かい設定画面が出てくるので、デフォルトの設定にプラスしてName とJusho__cを同期するように設定してSaveします。

これでHeroku Connect側の設定は完了です。

herokuc4

アプリケーション側の実装

以下のソースをサンプルアプリのsrc/main/java/com/example/Main.java に追加します。

 

@RequestMapping("/torihikisakilist")
String torihikisakilist(Map<String, Object> model){
  try (Connection connection = dataSource.getConnection()) {
    Statement stmt = connection.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM スキーマ名.Torihikisaki__c");

    ArrayList<String> output = new ArrayList<String>();
    while (rs.next()) {
      output.add(rs.getString("Name") + "," + rs.getString("Jusho__c"));
    }

    model.put("records", output);
    return "torihikisakilist";
  } catch (Exception e) {
    model.put("message", e.getMessage());
    return "error";
  }
}

 

また、src/main/resource/templatesにtorihikisakilist.htmlを新規作成します。

 

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{fragments/layout :: layout (~{::body},'torihikisakilist')}">

<body>
<div class="container">
    <h1>Database Output</h1>
    <ul th:each="record : ${records}">
        <li th:text="${record}"/>
    </ul>
</div>
</body>
</html>

 

追加した後は下記コマンドでHerokuアプリケーションにデプロイすればOKです。

 

git add .
git commit -m "Heroku Connect Test"
git push heroku master

 

 

結果

以下のSalesforce側の取引先データが

herokuc5

無事Heroku側のアプリ http://アプリケーションのID.herokuapp.com/torihikisakilist

に取引先オブジェクトの内容が表示されました。

herokuc6

まとめ

今回はHeroku Connectを使ってForce.comとHerokuのアプリを連携させましたが思った以上に簡単に行うことができました。

もう少し凝ったことをやるときは調査が必要ですが、ハンズオンとしては簡単かつ無料でできるため

興味のある方は試してみてはいかがでしょうか?

 

戻る
Heroku Tips (1) Heroku Postgresを参照する
Heroku Tips (1) Heroku Postgresを参照する

Salesforce の Heroku Postgresを参照するいくつかの方法について紹介します。

次へ
効果的なアーキテクチャレビューボードを構築する
効果的なアーキテクチャレビューボードを構築する

本ブログはJoe Castroが寄稿した記事を抄訳したものです。 原文 ”Tips for an Effective Architecture Review Board” はこちらからご覧いただけます。   &… ...

アピリオまでお気軽にお問合せください

ご質問はこちら