この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える
Clouds with binary code floating aboveCloud with binary code floating above

No Results

Search Tips:

  • Please consider misspellings
  • Try different search keywords

ベストプラクティス

この章では、インテグレーションアプリケーションをはじめとするアプリケーションを開発する前に考慮すべき、データ管理、使用制限、通信などの課題について説明します。

ユーザ権限

クライアントアプリケーションが SOAP API に接続するとき、最初にログインする必要があります。クライアントアプリケーションは、ログインユーザの権限および共有設定に基づいて動作します。

組織の Salesforce 管理者は、プロファイルおよび権限セットを設定し、ユーザをそれらに割り当てることによって、さまざまな機能やビューの使用を制御します。API にアクセスするには (コールを発行してコール結果を受信するには)、ユーザに「API 対応」権限が割り当てられている必要があります。クライアントアプリケーションは、ログインユーザの権限を介してアクセス権限を付与されるこれらのオブジェクトおよび項目のみをクエリしたり更新したりできます。

共有ルールによってデータへのアクセスを許可されたユーザとしてのログインでは、API はアクセスを確認する追加のクエリを発行する必要があります。それを避けるには、「すべてのデータの編集」権限を持つユーザとしてログインします。

API 利用状況の監視

組織で生成された SOAP API 要求の数を監視するには、次の 2 つの方法があります。

  • すべてのユーザが 24 時間以内に送信された API 要求の数を確認できます。この情報を参照するには、[設定] から、[組織プロファイル] | [組織情報] をクリックします。右の列の [API 要求数 (この 24 時間以内)] を参照します。
  • ユーザが「すべてのデータの編集」権限を持つ場合、7 日以内に送信された API 要求のレポートを参照できます。情報を参照するには、[レポート] タブをクリックし、[管理レポート] セクションにスクロールして [過去 7 日間の API 使用状況] リンクをクリックします。[集計情報:] ドロップダウンリストにある任意の項目でレポートを並び替えることができます。

クエリの制限

ユーザが同時に実行できるクエリの数は制限されています。ユーザは一度に最大 10 個のクエリカーソルを開くことができます。同じユーザとしてログインしているクライアントアプリケーションが、新しい QueryLocator カーソルを開こうとしたときに、10 個のカーソルがすでに開かれていると、そのうち最も古いカーソルが解放されます。クライアントアプリケーションがリリースされたクエリカーソルを開こうとすると、エラーになります。

複数のクライアントアプリケーションが、同じ username 引数を使用してログインできます。ただし、クエリ制限によってエラーになるリスクが高くなります。

複数のクライア��トアプリケーションが同じユーザを使用してログインした場合、そのアプリケーションすべてで同じセッションが共有されます。いずれかのクライアントアプリケーションが logout() をコールすると、すべてのクライアントアプリケーションのセッションが無効になります。クライアントアプリケーションごとに異なるユーザを使用すると、こうした制限を回避しやすくなります。

API 要求の制限

最適なパフォーマンスを維持し、すべてのお客様が Force.com API を使用できるようにするために、Salesforce は次の 2 つの制限を設けることによって、トランザクションの負荷を調整しています。

  • 同時 API 要求数の制限
  • API 要求数の合計に対する制限

コールが要求制限を超えると、エラーが返されます。

次の表は、20 秒以上の同時要求 (コール) 数について、さまざまな種類の組織に対する制限を示しています。

組織種別 制限
Developer Edition 5
トライアルの組織 5
本番組織 25
Sandbox 25

次の表は、組織の 24 時間あたりの API 要求 (コール) 数の合計に関する制限について示しています。

Salesforce のエディション ライセンスの種類ごとの API コール数 最小 最大
すべてのエディション: 指定の Apex 用の API テストコールに対する DebuggingHeader。API バージョン 20 以降で有効。 なし 1,000 1,000
Developer Edition なし 15,000 15,000
  • Enterprise Edition
  • Professional Edition (API アクセス有効)
  • Salesforce: 1,000
  • Force.com App Subscription: 200
  • Salesforce プラットフォーム: 1,000
  • Force.com - One App: 200

    新規ユーザは、このライセンスを使用できません。

    メモ

  • パートナーコミュニティ: 200
  • Gold Partner: 200

    新規ユーザは、このライセンスを使用できません。

    メモ

15,000 1,000,000
  • Unlimited Edition
  • Performance Edition
  • Salesforce: 5,000
  • Force.com App Subscription: 200
  • Salesforce プラットフォーム: 5,000
  • Force.com - One App: 200

    新規ユーザは、このライセンスを使用できません。

    メモ

  • パートナーコミュニティ: 200
  • Gold Partner: 200

    新規ユーザは、このライセンスを使用できません。

    メモ

15,000 制限なし。ただし、高い数値を設定すると、システム負荷などのその他の制限要因によって、24 時間すべてのコール割り当てを使用できなくなる可能性が高まります。
Sandbox なし なし 5,000,000

コール数の制限は、24 時間あたりに組織で行われた API コール数の集計に対して適用されます。この制限は、ユーザごとに適用されるものではありません。組織がこの制限を超過した場合、組織内のすべてのユーザが一時的にブロックされ、追加のコールを行うことができなくなります。直近 24 時間の使用状況が制限値内に収まるまで、コールはブロックされます。

Salesforce データベースサーバの複数インスタンス

Salesforce は数多くのデータベースサーバインスタンスを提供しています。通常組織は地理的な地域ごとに分けられていますが、組織はあらゆるインスタンスに置かれる可能性があります。

コンテンツタイプの要件

API バージョン 7.0 以降では、すべての要求には Content-Type: text/xml; charset=utf-8 などの正しいコンテンツタイプの HTTP ヘッダーを含んでいなければなりません。バージョン 7.0 より前の API ではこの要件は適用されません。

圧縮

SOAP API は、HTTP 1.1 仕様で定義された標準を使用した要求と応答の圧縮をサポートしています。いくつかの SOAP/WSDL クライアントでは自動的にサポートされており、他のクライアントへも手動で追加できます。クライアント別の詳細は、https://developer.salesforce.com/page/Tools を参照してください。

クライアントが圧縮をサポートしていることを示すには、HTTP ヘッダー「Accept-Encoding: gzip, deflate」または同様のヘッダーを含める必要があります。クライアントでこのヘッダーが正しく指定されている場合、SOAP API は応答を圧縮します。レスポンスには、「Content-Encoding: deflate」または「Content-Encoding: gzip」のいずれか適切な方が含まれます。「Content-Encoding: deflate」または「gzip」をヘッダーに含めることで、あらゆる要求を圧縮することができます。

HTTP 永続接続

ほとんどのクライアントでは、HTTP 1.1 の永続接続を使用し、複数の要求のソケット接続を再利用したほうがパフォーマンスが向上します。永続接続は通常 SOAP/WSDL クライアントが自動的に処理します。詳細は、次の HTTP 1.1 の仕様を参照してください。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1

HTTP のチャンク

HTTP 1.1 を使用しているクライアントは、チャンクレスポンスを受け取ることがあります。チャンクは通常 SOAP/WSDL クライアントが自動的に処理します。