【问题标题】:QueryByAttribute (Dynamics CRM 2013) null reference exceptionQueryByAttribute (Dynamics CRM 2013) 空引用异常
【发布时间】:2014-10-23 15:28:42
【问题描述】:

我有以下代码正在执行重复检测请求(通过 CRM 查看时成功)但是当我尝试查询检测作业的结果时,我得到一个空引用(对象未设置为对象的实例) 在运行代码的最后一行时。

_response.jobid 不为空,此时与 CRM 的连接仍然有效,因为我在此阶段运行了一个单独的 Entity.Retrieve(未包含在代码中)以确保。有人可以告诉我我缺少什么吗?此代码主要取自示例代码,但适用于我们的自定义实体。

            // Create the BulkDetectDuplicatesRequest object
            Console.WriteLine("Creating the BulkDetectDuplicatesRequest object");
            BulkDetectDuplicatesResponse _response;

            BulkDetectDuplicatesRequest request = new BulkDetectDuplicatesRequest()
            {
                JobName = "Detect Duplicate Supplier Invoices",
                Query = new QueryExpression()
                {
                    EntityName = "custentityname",
                    ColumnSet = new ColumnSet(true)
                },
                RecurrencePattern = String.Empty,
                RecurrenceStartTime = DateTime.Now,
                ToRecipients = new Guid[0],
                CCRecipients = new Guid[0]
            };

            // Execute the request
            Console.WriteLine("Executing BulkDetectDuplicatesRequest");
            _response = (BulkDetectDuplicatesResponse)_serviceProxy.Execute(request);

            try
            {
                BulkImportHelper.WaitForAsyncJobCompletion(_serviceProxy, _response.JobId);

                QueryByAttribute query8 = new QueryByAttribute()
                {
                    ColumnSet = new ColumnSet(true),
                };

                query8.Attributes.Add("asyncoperationid"); //from sample code
                query8.Values.Add(_response.JobId); //has  the job id of the duplicate detection job
                EntityCollection results8 = _serviceProxy.RetrieveMultiple(query8); //errors due to null reference exception 

}

谢谢

【问题讨论】:

标签: c# crm dynamics-crm-2013


【解决方案1】:

QueryByAttribute需要指定实体名称

帐户实体示例:

QueryByAttribute querybyattribute = new QueryByAttribute("account"); // account entity
querybyattribute.ColumnSet = new ColumnSet("name", "address1_city", "emailaddress1");
querybyattribute.Attributes.AddRange("address1_city");
querybyattribute.Values.AddRange("Redmond");
EntityCollection retrieved = _service.RetrieveMultiple(querybyattribute);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多