Hi,
I am trying to get the from email (from contact) from a list of email in a queue... i am getting a key error and i'm not sure what i am doing wrong.
i pasted my code, i'm using standard fields in queueitem and email entities...
my ultimate goal is the get contact email, but for debugging purposed i'm setting a counter in a field i can display.
this works but it never finds any "parties"
QueryExpression UserQry = new QueryExpression("queueitem"); // name of entity
UserQry.ColumnSet = new ColumnSet("objecttypecode", "title", "sender","queueid","statecode","objectid"); // columns
UserQry.Distinct = true; // not sure
UserQry.NoLock = true; // not sure
// conditions
UserQry.Criteria.AddCondition("queueid", ConditionOperator.Equal, new Guid("b462b806-eabc-e411-80d0-00155d013314"));
UserQry.Criteria.AddCondition("statecode", ConditionOperator.Equal, 0);
// link entity (master/detail merged into one)
LinkEntity linkEntityEmails = new LinkEntity()
{
LinkFromEntityName = "queueitem",
LinkFromAttributeName = "objectid",
LinkToEntityName = "email",
LinkToAttributeName = "activityid",
JoinOperator = JoinOperator.LeftOuter,
Columns = new ColumnSet("from","sender","subject"),
EntityAlias = "Email"
};
UserQry.LinkEntities.Add(linkEntityEmails);
//linkEntityEmails.LinkCriteria.AddCondition("subject", ConditionOperator.Equal, "Email Title"); // <- this does not work, not sure why
EntityCollection Qlist = (EntityCollection)service.RetrieveMultiple(UserQry);
foreach (Entity Email in Qlist.Entities)
{
if ((Email["Email.subject"] as AliasedValue).Value.ToString() == "TESTEMAIL") //NE PAS EFFACE")
{
//EntityCollection FromAddrs = (EntityCollection)Email["Email.from"]; //get an error?
EntityCollection FromAddrs = Email.GetAttributeValue<EntityCollection>("Email.from"); //(EntityCollection)Email["Email.from"];
if (FromAddrs != null && FromAddrs.Entities.Count > 0)
{
title = "count:" +FromAddrs.Entities.Count.ToString();
}
else title ="not found";
}
}
*This post is locked for comments
I have the same question (0)