Доброго времени суток!
Задача состоит в следующем: есть несколько задач (объектов CRM) с одинаковым признаком - групповым ключом. При завершении одной из задач должны автоматически завершиться все задачи с тем же групповым ключом.
Делаю так: callout на смену статуса Задачи
Код:
if (newSateCode==1)
{
task currTask = (task)service.Retrieve(EntityName.task.ToString(),entityContext.InstanceId,new AllColumns());
if (currTask.af_groupkey!=null&&currTask.af_groupkey!="0")//есть групповой ключ
{
//найти все задачи с таким же групповым ключом
ConditionExpression exp = new ConditionExpression();
exp.AttributeName = "af_groupkey";
exp.Operator = ConditionOperator.Equal;
exp.Values = new string[]{currTask.af_groupkey};
ConditionExpression exp2 = new ConditionExpression();
exp2.AttributeName = "state";
exp2.Operator = ConditionOperator.Equal;
exp2.Values = new string[]{TaskState.Open.ToString()};
FilterExpression filter = new FilterExpression();
filter.Conditions = new ConditionExpression[]{exp,exp2};
filter.FilterOperator = LogicalOperator.And;
QueryExpression qu = new QueryExpression();
qu.EntityName = EntityName.task.ToString();
qu.ColumnSet = new AllColumns();
qu.Criteria = filter;
BusinessEntityCollection tasks = service.RetrieveMultiple(qu);
foreach (BusinessEntity entity in tasks.BusinessEntities)
{
task oTask = entity as task;
SetStateTaskRequest setState = new SetStateTaskRequest();
setState.EntityId = oTask.activityid.Value;
setState.TaskState = TaskState.Canceled;
setState.TaskStatus = 6;
SetStateInvoiceResponse setedState = (SetStateInvoiceResponse)service.Execute(setState);
}
}
}
Но, увы, не работает - статус не изменяется. Кто-нибудь знает в чем ошибка?
Спасибо.