2

PHP と SOAP (NuSOAP) を使用して、Dynamics CRM 2011 システムの Web フロントエンドを作成しています。その過程で、前回のインポート以降に更新されたエンティティを取得する必要があります。

既存の CRM フロントエンドを調べて、基準として何を追加するかについてのヒントが得られるかどうかを確認しましたが、役に立ちませんでした。

標準クエリの xml は次のようになります。

<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>new_arrangement</q1:EntityName>
    <q1:ColumnSet xsi:type="q1:ColumnSet">
        <q1:Attributes>
            <q1:Attribute>subject</q1:Attribute>
            <q1:Attribute>activitytypecode</q1:Attribute>
            <q1:Attribute>regardingobjectid</q1:Attribute>
            <q1:Attribute>scheduledstart</q1:Attribute>
            <q1:Attribute>scheduledend</q1:Attribute>
        </q1:Attributes>
    </q1:ColumnSet>
    <q1:Criteria>
        <q1:FilterOperator>And</q1:FilterOperator>
            <q1:Condition>
                <q1:AttributeName>statecode</q1:AttributeName>
                <q1:Operator>Equal</q1:Operator>
                <q1:Values>
                    <q1:Value xsi:type="xsd:string">Open</q1:Value>
                </q1:Values>
            </q1:Condition>
        </q1:Conditions>
    </q1:Criteria>
    <q1:Orders>
        <q1:Order>
            <q1:AttributeName>subject</q1:AttributeName>
            <q1:OrderType>Ascending</q1:OrderType>
        </q1:Order>
    </q1:Orders>
    <q1:Distinct>false</q1:Distinct>
    <q1:PageInfo>
        <q1:PageNumber>1</q1:PageNumber>
        <q1:Count>20</q1:Count>
    </q1:PageInfo>
</query>

そのため、どの属性を条件として追加する必要があるかについて、ヘルプを探しています。

4

1 に答える 1

1

アプリケーションが最後のインポートの日付と時刻を記憶できる場合、Modified On フィールドをチェックすることですべての新しいレコードを取得できるはずです。すべてのエンティティがそれを持っていると思います。

このようなクエリが必要になると思います (ただし、もちろん XML で)。

DateTime lastImportDate = ...;

QueryExpression q = new QueryExpression("contact");
q.Criteria.FilterOperator = LogicalOperator.And;
q.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, "Open"));
q.Criteria.AddCondition(new ConditionExpression("modifiedon", ConditionOperator.GreaterThan, lastImportDate);
于 2012-11-07T14:01:34.553 に答える