|
19.03.2008, 13:18 | #1 |
Участник
|
Как поменять ответственного за инцидент?
Добрый день всем.
Возникла задача программной смены ответственного для инцидента, assign выдает ошибку, прочитал что нужно через route. Написал следующий код: Код: // Create the target object for the request. TargetQueuedIncident target = new TargetQueuedIncident (); // incid - код инцидента target.EntityId = incid; // Create the request object. RouteRequest route = new RouteRequest(); // Set the properties of the request object. route.Target = target; route.RouteType = RouteType.User; route.EndpointId = newowner; // Execute the request. RouteResponse routed = null; routed = (RouteResponse)ws.Service.Execute(route); //если routed не равно null то теоретически все прошло успешно return !(routed == null); даже срабатывает оповещение коллаут, об смене ответственного, указан новый ответственный. Только карточку инцидента открываю а там ничего не поменялось. |
|
19.03.2008, 15:00 | #2 |
CRM
|
Вы как открываете? Предварительно закрыв? Или, жмя F5 и в появимшемся алертике выбираете ОК (почему-то мне кажется, что так и есть.)?
В любом случае странно. А этот код у Вас работает (просто накидал) X++: incident in = new incident(); in.incidentid = new Key(); in.incidentid.Value = incid; in.ownerid = new Owner();//или что-то в этом духе. Студия подскажет ;) in.ownerid.Value = newowner; ws.Service.Update(in); |
|
|
За это сообщение автора поблагодарили: sam (1). |
20.03.2008, 07:56 | #3 |
Участник
|
Очень странно, вообще, назначать записи нельзя через апдейт, нужно метод специальный assign, а для некоторых объектов route.
Самое странное что решил попробовать, и, сработало. У инцидента поменялся ответственный, и он исчез из списка ожидания прошлого ответственного, т.е. все успешно прошло. Единственно, что в коде нужно указывать тип owner i.ownerid.type = EntityName.systemuser.ToString(); В общем не ожидал, может это глюк ? : ) |
|
26.04.2008, 08:33 | #4 |
CRM
|
Еще такой вот код работает
X++: // Create the SecurityPrincipal object. SecurityPrincipal assignee = new SecurityPrincipal(); // Set the properties of the SecurityPrincipal object.' // PrincipalId is a GUID that identifies the user or team // that will own this record. assignee.PrincipalId = new Guid("B05A92E4-E97B-DC11-8490-0003FF0C1ABB"); // Create the target object for the request. TargetOwnedPhoneCall target = new TargetOwnedPhoneCall(); // Set the properties of the target object'. // EntityId is a GUID that identifies the account // that is being assigned to the user. target.EntityId = new Guid("807899CD-B582-DC11-B0C3-0003FF0C1ABB"); // Create the request object. AssignRequest assign = new AssignRequest(); // Set the properties of the request object.' assign.Assignee = assignee; assign.Target = target; // Execute the request. AssignResponse assignResponse = (AssignResponse)service.Execute(assign);
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|