LoginSignup
2
1

More than 5 years have passed since last update.

Heroku Connectで「Database→Salesforce」同期 (JPA使用)

Last updated at Posted at 2019-01-31

よくわからないままHeroku ConnectのEdit Mappingの画面で「Database→Salesforce」欄の「Write database updates to Salesforce~」のチェックボックスをチェックすると、画面上部に警告「Read-write mappings require a unique identifier to be specified. Unique identifiers must be defined as unique External ID fields in Salesforce.」が表示された
以下の手順で同期ができるようになった

Salesforceの対象オブジェクトにカスタム項目を追加する

  1. データ型:テキスト
  2. 項目の表示ラベル:<自由> ※「HerokuID」等
  3. 文字数:36 ※UUIDの長さ
  4. 項目名:<自由> ※「HerokuId」等
  5. 必須項目:OFF
  6. ユニーク:ON
    1. 大文字と小文字を区別しない ※「する」でも可
  7. 外部ID:ON
  8. 項目レベルセキュリティ
    1. 参照可能:ON
    2. 参照のみ:ON
  9. ページレイアウトへの追加:なし

再度「Write database updates to Salesforce~」のチェックボックスをチェックする
この時、メッセージ途中のドロップダウン(属性追加前の選択肢は「None」のみだった)で追加属性を選ぶ

Entityクラスに以下のフィールドと値設定処理を記述する
(項目名が「HerokuId」の例)

    @Column(name = "herokuid__c", length = 36, updatable = false)
    @Setter(AccessLevel.NONE)
    private String herokuId;

    @PrePersist
    private void onPrePersist() {
        herokuId = UUID.randomUUID().toString();
    }

おまけ:Heroku ConnectはSalesforceのAPIコール数制限を消費しないとのこと

以上

2
1
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
2
1