2012-11-07 128 views
2

我們正在使用PHP和SOAP(NuSOAP)爲Dynamics CRM 2011系統編寫Web前端。 在這樣做的過程中,我們需要檢索自上次導入後更新過的實體。通過SOAP從Dynamics CRM 2011獲取更新記錄

我已經瀏覽了現有的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> 

所以我尋求幫助與哪個屬性我要補充一個條件的問候。

回答

1

如果您的應用程序能夠記住上次導入的日期和時間,那麼您應該能夠通過選中「修改時間」字段來獲取所有新記錄,我相信每個實體都有它。

我想你會想要這樣的查詢(但在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); 
+0

謝謝,這是訣竅! 'modifiedon'似乎可用於所有實體。再一次,謝謝! –

相關問題