02.08.2008, 19:14 | #1 |
Участник
|
Как программно закрыть Opportunity?
Пытался найти какие-либо специализированные методы для этого, но безуспешно. Пробовал делать так:
Код: SetStateOpportunityCloseRequest closeOpportunityRequest = newSetStateOpportunityCloseRequest(); closeOpportunityRequest.EntityId = newGuid("..."); closeOpportunityRequest.OpportunityCloseState = OpportunityCloseState.Completed; closeOpportunityRequest.OpportunityCloseStatus = 1; SetStateOpportunityCloseResponse result = (SetStateOpportunityCloseResponse)service.Execute(closeOpportunityRequest); Может кто сталкивался уже с этим? Помогите плз. |
|
02.08.2008, 20:01 | #2 |
Moderator
|
Что значит не проходит? Какую ошибку выдает сервер? Вы не указали версию системы.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
04.08.2008, 10:22 | #3 |
Участник
|
Не проходит, значит выдает: "Server was unable to process request"
Версия 4.0. |
|
04.08.2008, 14:43 | #4 |
MCTS
|
А почему бы с помощью WorkFlow не менять статус возможной сделки ?
|
|
04.08.2008, 15:49 | #5 |
Участник
|
А вроде бы Status = 1 соответствует State = Open, а не Complete.
Для начала попробуйте: closeOpportunityRequest.OpportunityCloseStatus = -1; |
|
07.08.2008, 18:19 | #6 |
Участник
|
попробуйте так
WinOpportunityRequest wor = new WinOpportunityRequest(); opportunityclose oc = new opportunityclose(); oc.opportunityid = new Lookup(); oc.opportunityid.type = EntityName.opportunity.ToString(); oc.opportunityid.Value = new Guid(idOpportunity); oc.statecode = new OpportunityCloseStateInfo(); oc.statecode.Value = state; oc.statuscode = new Status(); wor.OpportunityClose = oc; wor.Status = status; service.Execute(wor); |
|
08.08.2008, 18:08 | #7 |
Moderator
|
Если не поможет придется включить трассировку и посмотреть детальное описание ошибки. Скорее всего будет выдана трассировка стека по которой можно будет понять откуда ноги растут.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
20.08.2008, 16:38 | #8 |
Участник
|
2Lud
Угу, так и сделал. Работает. Спасибо. X++: WinOpportunityRequest closeOpportunityRequest = new WinOpportunityRequest(); opportunityclose oppClose = new opportunityclose(); Lookup oppLookup = new Lookup(); oppLookup.Value = new Guid([I]opportunityid[/I]); oppClose.opportunityid = oppLookup; closeOpportunityRequest.OpportunityClose = oppClose; closeOpportunityRequest.Status = 3; service.Execute(closeOpportunityRequest); Последний раз редактировалось Alir; 25.08.2008 в 14:25. |
|