Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • コマンドライン
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリー
    • 継続的統合
  • 言語サポート
    • Node.js
    • Ruby
      • Rails のサポート
      • Bundler の使用
    • Python
      • Django の使用
      • Python でのバックグランドジョブ
    • Java
      • Maven の使用
      • Java でのデータベース操作
      • Play Framework の使用
      • Java の高度なトピック
      • Spring Boot の使用
    • PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres Getting Started
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
    • Heroku Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
    • コンプライアンス
  • Heroku Enterprise
    • Private Space
      • インフラストラクチャネットワーキング
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
    • シングルサインオン (SSO)
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Integrating with Salesforce
  • Heroku Enterprise
  • Heroku Connect (Salesforce 同期)
  • Heroku Connect を使用した Salesforce からのデータの読み取り

Heroku Connect を使用した Salesforce からのデータの読み取り

日本語 — Switch to English

最終更新日 2021年11月30日(火)

Table of Contents

  • SOAP API
  • Bulk API
  • Streaming API
  • API 呼び出しの使用量
  • 読み取りエラーの解決
  • 同期の問題の解決
  • 判明したパフォーマンスの問題の診断

Heroku Connect では、データ変更の量や、Salesforce API 操作の詳細の多くを考慮に入れた一連のベストプラクティスを採用することによって、データベースと Salesforce の間で最も効率的にデータを転送する方法を自動的に選択します。これは、Salesforce からの読み取り​と Salesforce への書き込み​のどちらにも当てはまります。

Salesforce が提供している各種 API から、特定の統合の要件に最も合ったものを選ぶことができます。Heroku Connect では、それらの中から SOAP と Bulk の 2 つをデータ転送に利用します。さらに、Streaming API を使用して、加速ポーリング​を使用するマッピングの PushTopic 通知を消費します。

この記事では、Heroku Connect でこれらの API を使用して Salesforce からデータを同期する (読み取る) 方法と、一般的な読み取りエラーに対処する方法について説明します。

Heroku Connect は、API アクセスがある Salesforce のエディションでしか使用できません。試用版を含む一部のプランタイプにはデフォルトで API アクセスがないため、Heroku Connect で使用できません。

SOAP API

Heroku Connect では、主に SOAP API​ を使用して Salesforce 組織と情報をやり取りします。この API は少ない数のレコードを扱う操作向けに最適化されているため、Heroku Connect では、処理するレコードが 10,000 件以下​のときに以下のタスクでこの API を使用します。

  • 新しいマッピングのために Salesforce 組織からデータを初期ロードする
  • すべてのデータを既存のマッピングにリロードする
  • Salesforce 組織から変更を読み取る

レコードのカウントやマッピングフィールドのクエリなどの管理タスクにも SOAP API を使用します。

最後に、Salesforce にデータを書き込む​ときにも SOAP API を使用しますが、処理するレコード数のしきい値はさらに下がります。この件についての詳細は、こちら​を参照してください。

Heroku Connect によって行われる SOAP API の呼び出しは、お客様の API リクエスト制限​のカウントには入りません​。それらの呼び出しはお客様の Salesforce 組織でカウントされますが、API ライセンス利用のカウントには入りません。

Bulk API

Bulk API​ は、非同期処理を利用してレコードのバッチ​を取得する、大きなデータセットのロード向けに最適化されています。Heroku Connect では、Salesforce から読み取るレコードが 10,000 件より多い​ときに以下のタスクで Bulk API を利用します。

  • 新しいマッピングのために Salesforce 組織からデータを初期ロードする
  • すべてのデータを既存のマッピングにリロードする
  • Salesforce 組織から変更を読み取る

Bulk API は、読み取り/書き込みマッピングで Salesforce に変更を書き込む​ときにも使用できますが、レコード処理数のしきい値は下がります。Salesforce にデータを書き込むときの Bulk API の使用方法についての詳細は、こちら​を参照してください。

Bulk API の呼び出しは、お客様の Bulk API 制限​のカウントには入りません​。Heroku Connect によって作成された一括データロードジョブは Salesforce でジョブの一覧に表示されますが、24 時間以内に処理されたバッチのカウントに加算されません。

Streaming API

マッピングで加速ポーリング​を有効にすると、Heroku Connect では Streaming API​ を使用して、基本的には Salesforce での変更をリッスン​します。そのため、次のポーリング期間中に変更が確認されるのを待つ必要はありません。これは、Salesforce でデータが変更されたときにポーリングをトリガーするための通知を送信する PushTopic​ を作成することによって行われます。

Heroku Connect によって作成された PushTopic は、その名前に hc_​ 接頭辞が付き (例: ​hc_123​)、ポーリングモード​に切り替えるかマッピングを削除すると自動的に削除されます。

 

お客様の接続が 2017 年 4 月 5 日以降に承認されている​場合、Streaming API の呼び出しは、お客様の Salesforce 組織に適用される毎日の Streaming API イベント制限のカウントには入りません​。

加速ポーリング​を使用するようにマッピングを設定するときは、次の API 制限を考慮する必要があります。

  • Heroku Connect によって作成された PushTopic は、'組織ごとの最大トピック (PushTopic レコード) 数’ のカウントに入ります。

次のように Salesforce で現在の Streaming API イベント使用量を確認したとき、Heroku Connect の Streaming API イベント消費は含まれません​。

  • Salesforce 組織にログインします。
  • Setup​ (設定) に移動し、Quick Find​ (クイック検索) ボックスに Company Information​ (会社情報) を入力します。
  • Company Information​ (会社情報) をクリックします。
  • Streaming API Events, Last 24 Hours​ (過去 24 時間の Streaming API イベント数) は、受信した通知の数と許可されている最大数を示します。これには、Heroku Connect が受信した通知は含まれません。

API 呼び出しの使用量

Heroku Connect によって使用される API 呼び出しの数は、いくつかの要因に依存します。

  • マッピングの総数
  • 各マッピングの方向性 (読み取り専用または読み取り/書き込み)
  • 各マッピングの同期モード (ポーリングまたはストリーミング) (同期モード)​を参照)

Heroku Connect で変更をバッチ処理​する方式は、使用する API とマッピングの方向によって異なります。

レコードの変更を Salesforce から読み取る​場合、Heroku Connect の動作は次のとおりです。

  • 2,000 レコードまでのバッチでは SOAP API を使用、または
  • 150,000 レコードまでのバッチでは Bulk API を使用

レコードの変更を Salesforce に書き込む​場合、Heroku Connect の動作は次のとおりです。

  • 200 レコードまでのバッチでは SOAP API を使用、または
  • 2,000 ~ 10,000 レコードのバッチでは Bulk API を使用

以上の呼び出しはどれも、お客様の毎日の SOAP または Bulk API 制限のカウントには入りません。

読み取りエラーの解決

読み取りエラーが発生する原因は、マッピング中のオブジェクトに対する表示アクセス許可の不足、サポートされていないオブジェクトの種類、オブジェクトの属性の問題のいずれかです。

表示アクセス許可

Heroku Connect で最適な操作のために要求される “View All” (すべて表示) アクセス許可のスコープは、個々のオブジェクトのレベルです。"View All" (すべて表示) アクセス許可を設定するオプションがオブジェクトにない特定のケースでは、"View All Data" (すべてのデータを表示) を代わりに使用できます。レコードセットが大規模な Salesforce 組織では、これらのアクセス許可がないと一部の操作を実行できない場合があります。これらのアクセス許可を必要とする操作がアクセス許可不足のため失敗した場合、システムはアプリケーションのメンバーまたは共同作業者に通知します。

サポートされていないオブジェクト

Heroku Connect では、すべての標準およびカスタムオブジェクトの読み取りをサポートしています。サポートされているオブジェクトの完全な一覧はこちら​で確認できます。Knowledge Base (ナレッジベース) オブジェクトはマッピングできず、特殊な API 処理が必要または SystemModStamp​ などの必須属性がない標準またはカスタムオブジェクトもマッピングできません。Heroku Connect では、これらのマッピング不可能なオブジェクトを検出し、UI に表示されないようにします。

一般的な読み取りエラー

  • INVALID_TYPE_FOR_OPERATION...​ : このエラーまたは類似のエラーは、マッピング対象オブジェクトを Heroku Connect でクエリできないときにログに記録されます。

  • MALFORMED_QUERY...​ : このエラーまたは類似のエラーは、オブジェクト固有のフィルターが必要なため Heroku Connect でオブジェクトをマッピングできないときにログに記録されます。

  • Cannot poll changes for table '>fieldname<' because it contains neither...​ : このエラーまたは類似のエラーは、オブジェクトの必須属性がないため Heroku Connect でオブジェクトをマッピングできないときにログに記録されます。

  • Skipped fields on >mapping name< not present in Salesforce: >fieldname<, >fieldname<...​ : このエラーは、エクスポートされた設定内のフィールドを Heroku Connect でインポートできないときにログに記録されます。

これらのエラーを解決するには、エラーが報告されたオブジェクトまたはフィールドをマッピングから削除してください。

同期の問題の解決

接続でのマッピングでは、ユーザーの介入が必要ないくつかの問題が発生する可能性があります。Heroku Connect ダッシュボード​、CLI​、または API​ でマッピングの状態を確認してください。詳細は、マッピング状態のリファレンス​を参照してください。

判明したパフォーマンスの問題の診断

Heroku Connect での同期のパフォーマンスには、多くの要因が影響する可能性があります。Heroku Connect のパフォーマンスの問題の診断​に関する記事の手順に従って、認識された読み取りパフォーマンスの問題を診断してください。

関連カテゴリー

  • Heroku Connect (Salesforce 同期)
Heroku External Objects と Salesforce Connect Heroku Connect を使用した Salesfore へのデータの書き込み

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences