web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :

CRM 4.0 - Assigning Case to Queue

a33ik Profile Picture a33ik 84,331 Most Valuable Professional
I had the task to assign case (incident) to queue. MSDN has good sample. But this sample didn't solved my problem because in my case not in all situations item was assigned to "In Progress" queue of user. Following code solved my problem.




string fetchRequest = string.Format(@"<fetch mapping='logical'>
<entity name='queueitem'>
<attribute name='queueid'/>
<filter type='and'>
<condition attribute='objectid' operator='eq' value='{0}'/>
</filter>
</entity>
</fetch>", Guid.Empty);//Insert identifier of incident here

string fetchResponce = string.Empty;

try
{
fetchResponce = crmservice.Fetch(fetchRequest);
}
catch (SoapException sexc)
{
throw new Exception(sexc.Detail.InnerText);
}

XmlDocument doc = new XmlDocument();
doc.LoadXml(fetchResponce);

XmlNode queueidnode = doc.SelectSingleNode("//resultset/result/queueid");

TargetQueuedIncident target = new TargetQueuedIncident();
target.EntityId = Guid.Empty;//Insert identifier of your incident here

RouteRequest routerequest = new RouteRequest();
routerequest.EndpointId = Guid.Empty;//Insert Identifier of queue here
routerequest.RouteType = RouteType.Queue;

if (queueidnode != null)
routerequest.SourceQueueId = new Guid(queueidnode.InnerText);
else
throw new Exception("Queue was not found");

routerequest.Target = target;

try
{
crmservice.Execute(routerequest);
}
catch (SoapException sexc)
{
throw new Exception(sexc.Detail.InnerText);
}

This was originally posted here.

Comments

*This post is locked for comments