正在检索自定义工作流活动C#中具有自定义字段的CRM 4实体



我正在尝试检索所有与商机相关的电话,其状态代码不等于1。尝试了QueryByAttribute、QueryExpression和RetrieveMultipleRequest,但仍然没有解决方案
这是我写的一些代码。

        IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
        IWorkflowContext context = contextService.Context;
        ICrmService crmService = context.CreateCrmService(true);
        if (crmService != null)
        {
            QueryByAttribute query = new Microsoft.Crm.Sdk.Query.QueryByAttribute();
            query.ColumnSet = new Microsoft.Crm.Sdk.Query.AllColumns();
            query.EntityName = EntityName.phonecall.ToString();
            query.Attributes = new string[] { "regardingobjectid" };
            query.Values = new string[] { context.PrimaryEntityId.ToString() };
            RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
            retrieve.Query = query;
            retrieve.ReturnDynamicEntities = true;
            RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)crmService.Execute(retrieve);  
        }
        return ActivityExecutionStatus.Closed;
    }

QueryExpression 几乎相同

QueryExpression phCallsQuery = new QueryExpression();
ColumnSet cols = new ColumnSet(new string[] { "activityid", "regardingobjectid" });
phCallsQuery.EntityName = EntityName.phonecall.ToString();
phCallsQuery.ColumnSet = cols;
phCallsQuery.Criteria = new FilterExpression();
phCallsQuery.Criteria.FilterOperator = LogicalOperator.And;
phCallsQuery.Criteria.AddCondition("statuscode", ConditionOperator.NotEqual, "1");
phCallsQuery.Criteria.AddCondition("regardingobjectid", ConditionOperator.Equal, context.PrimaryEntityId.ToString();

调试时,我总是会遇到Soap异常或"服务器无法继续请求"之类的情况。

要获取异常详细信息,请尝试使用以下代码:

检索到RetrieveMultipleResponse=null;

try
{ 
    retrieved = (RetrieveMultipleResponse)crmService.Execute(retrieve);
}
catch(SoapException se)
{
    throw new Exception(se.Detail.InnerXml);
}

最新更新