我们正在使用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>
所以我正在寻找关于我应该添加哪个属性作为条件的帮助。
答案 0 :(得分: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);