Показать сообщение отдельно
Старый 01.11.2007, 18:48   #1  
Lida is offline
Lida
Участник
 
21 / 12 (1) ++
Регистрация: 26.06.2007
Закрыть задачи
Доброго времени суток!
Задача состоит в следующем: есть несколько задач (объектов 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);
      }
     }
}
Но, увы, не работает - статус не изменяется. Кто-нибудь знает в чем ошибка?
Спасибо.