【问题标题】:Get updated records from Dynamics CRM 2011 via SOAP通过 SOAP 从 Dynamics CRM 2011 获取更新的记录
【发布时间】:2012-10-27 11:57:06
【问题描述】:

我们正在为 Dynamics CRM 2011 系统编写一个 Web 前端,使用 PHP 和 SOAP (NuSOAP)。 在此过程中,我们需要检索自上次导入以来已更新的实体。

我查看了现有的 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>

因此,我正在寻求有关应将哪个属性添加为条件的帮助。

【问题讨论】:

    标签: php soap dynamics-crm dynamics-crm-2011


    【解决方案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);
    

    【讨论】:

    • 谢谢,成功了! modifiedon 似乎对所有实体都可用。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-03-02
    • 2012-01-05
    • 2012-01-21
    • 2013-06-09
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多