0

私が実行しているセールスフォースにPHPライブラリを使用する:

SELECT ... FROM Account LIMIT 100

ただし、LIMITは常に25レコードに制限されています。多くのフィールド(60フィールド)を選択しています。これは具体的な制限ですか?

スケルトンコード:

$client = new SforceEnterpriseClient();
$client->createConnection("EnterpriseSandboxWSDL.xml");
$client->login(USERNAME, PASSWORD.SECURITY_TOKEN);

$query = "SELECT ... FROM Account LIMIT 100";
$response = $client->query($query);

foreach ($response->records as $record) {
   // ... there's only 25 records
}
4

4 に答える 4

0

Salesforce用のPHPライブラリは使用していません。しかし、私はする前にそれを仮定することができます

SELECT ... FROM Account LIMIT 100

さらにいくつかの選択クエリが実行されました。あなたがそれらをコーディングしなければ、おそらくPHPライブラリがあなたのためにそれをやってくれるでしょう;-)

于 2012-10-11T07:41:20.593 に答える
0

SalesforceのSOAPAPIクエリメソッドは、有限数の行のみを返します。定義された制限よりも少ない値が返される理由はいくつかあります。

  1. QueryOptionsヘッダーのbatchSizeが25に設定されています。この場合は、調整してみてください。明示的に設定されていない場合は、より大きな値に設定してみてください。
  2. SOQLステートメントが多数の大きなフィールド(長いテキストタイプの2つ以上のカスタムフィールドなど)を選択すると、SalesforceはbatchSizeで定義されているよりも少ないレコードを返す場合があります。バッチサイズの縮小は、Attachment.Bodyなどのbase64でエンコードされたフィールドを処理する場合にも発生します。この場合、最初の応答からQueryLocatorでqueryMoreを使用できます。

どちらの場合も、QueryResultのdoneプロパティとsizeプロパティのdoneプロパティとsizeプロパティを確認して、queryMoreを使用する必要があるかどうか、およびSOQLクエリに一致する行の総数を確認します。

于 2012-10-12T19:01:58.277 に答える
0

これが私のチェックリストです

1)25を超えるレコードがあることを確認します

2)最初のループの後、queryMoreを実行して、さらにレコードがあるかどうかを確認します

3)batchSizeが25に設定されていないことを確認します

于 2012-10-20T12:04:12.583 に答える
0

ガバナーの制限を回避するには、すべてのレコードをリストに追加してから、リスト内のレコードに対して必要なすべてのことを実行する方がよい場合があります。完了したら、次を使用してデータベースを更新します。update listName;

于 2015-03-09T15:50:36.753 に答える