1

私はMicrosoftDynamicsCRM4.0のSOAPAPIを使用しており、ほとんどすべてが機能していますが、データベース内の連絡先の総数(または特定のクエリ)をカウントしようとすると、TotalRecordCountが尊重されません。 =trueフラグ。

これが私が使用しているSOAPリクエストです:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <CrmAuthenticationToken xmlns="http://schemas.microsoft.com/crm/2007/WebServices">
            ...
        </CrmAuthenticationToken>
    </soap:Header>

    <soap:Body>
        <RetrieveMultiple xmlns="http://schemas.microsoft.com/crm/2007/WebServices">
            <query xmlns:q1="http://schemas.microsoft.com/crm/2006/Query" xsi:type="q1:QueryExpression">
                <q1:EntityName>contact</q1:EntityName>
                <q1:Distinct>true</q1:Distinct>
                <q1:PageInfo>
                    <q1:ReturnTotalRecordCount>true</q1:ReturnTotalRecordCount>
                    <q1:PageNumber>1</q1:PageNumber>
                    <q1:Count>1</q1:Count>
                </q1:PageInfo>
            </query>
        </RetrieveMultiple>
    </soap:Body>
</soap:Envelope>

しかし、私が返している応答には、まだ次のものが含まれています。

TotalRecordCount="-1" TotalRecordCountLimitExceeded="0"

私が間違っている/ここで欠けていることについて何か考えはありますか?

4

1 に答える 1

0

クエリで結果が得られますか? たとえば、連絡先の記録を受け取りますか?

過去にこのタイプのアプローチに問題があったと確信しています(ページング情報を使用してカウントを取得します)。

いずれにせよ、集計関数を使用して FetchXml クエリを実行すると、おそらくうまくいくでしょう (JavaScript からこの Soap を実行すると仮定しています)。

ジェイミー・マイリーは、これを行う方法の良い例を持っています: http://mileyja.blogspot.co.uk/2011/06/aggregation-count-max-min-etc-and.html

ここに FetchXml の本当に優れたデザイナーがいます: http://www.stunnware.com/

于 2012-08-04T14:44:59.547 に答える