17.06.2017, 23:38 | #1 |
Участник
|
Set OwnerID for a new task
Всем привет.
У меня такой вопрос: Програмно (через плагин) проверяю все возможные сделки (выбираю нужные записи фильтрами) и для выбранных записей создаю задачи. Все нормально - задачи создаются, но ответственным за созданную новую задачу должен быть владелец возможной сделки, для которой была создана задача. Я конечно могу это решить с помощью workflow (assign), но хотелось бы кодом в плагине решить проблему. Пытался использовать opportunity.Attribute["ownerid"] и передать значение в ownerid сущности "task", но получаю ошибку что "приходит" не Guid.. Подскажите, пожалуйста, что я не так делаю. Заранее спасибо. |
|
18.06.2017, 06:40 | #2 |
Чайный пьяница
|
Код покажите, пожалуйста.
Должно быть чтото вроде: Код: task["ownerid"] = opportunity["ownerid"];
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
18.06.2017, 09:48 | #3 |
Участник
|
DateTime today = DateTime.Now;
Guid opportunity = Guid.Empty; ConditionExpression condition2 = new ConditionExpression(); condition2.AttributeName = "statecode"; condition2.Operator = ConditionOperator.Equal; condition2.Values.Add(0); FilterExpression filter1 = new FilterExpression(); filter1.Conditions.Add(condition2); QueryExpression query = new QueryExpression("opportunity"); query.ColumnSet.AllColumns=true; query.Criteria.AddFilter(filter1); EntityCollection retrieved = service.RetrieveMultiple(query); if (retrieved.Entities.Count != 0) { foreach (Entity act in retrieved.Entities) { try { opportunity = Guid.Parse(act["opportunityid"].ToString()); CreateTask(service,subject, body, today.AddDays(1), opportunity); //пока без передачи ownerid } catch (Exception e) { throw new InvalidPluginExecutionException(e.Message); } } } Последний раз редактировалось Анатолий Вешемирский; 18.06.2017 в 09:51. |
|
18.06.2017, 09:49 | #4 |
Участник
|
public Guid CreateTask(IOrganizationService _service, string subject, string body, DateTime schedule, Guid entityId)
{ Guid taskId = Guid.Empty; Entity objTask = new Entity("task"); objTask.Attributes["regardingobjectid"] = new EntityReference("opportunity", entityId); objTask.Attributes["subject"] = subject; objTask.Attributes["description"] = body; objTask.Attributes["scheduledend"] = schedule; taskId = _service.Create(objTask); return taskId; } |
|
18.06.2017, 22:41 | #5 |
Участник
|
Разобрался.
ownerId = ((EntityReference)act.Attributes["ownerid"]).Id; |
|
19.06.2017, 06:31 | #6 |
Чайный пьяница
|
Вообще то и без Attributes всё работает.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|