AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.08.2008, 19:14   #1  
Alir is offline
Alir
Участник
 
47 / 14 (1) ++
Регистрация: 02.08.2008
Адрес: Санкт-Петербург
Как программно закрыть Opportunity?
Пытался найти какие-либо специализированные методы для этого, но безуспешно. Пробовал делать так:
Код:
SetStateOpportunityCloseRequest closeOpportunityRequest = newSetStateOpportunityCloseRequest();
closeOpportunityRequest.EntityId = newGuid("...");
closeOpportunityRequest.OpportunityCloseState = OpportunityCloseState.Completed;
closeOpportunityRequest.OpportunityCloseStatus = 1;
SetStateOpportunityCloseResponse result = (SetStateOpportunityCloseResponse)service.Execute(closeOpportunityRequest);
Но request не проходит. Других приемов не нашел.
Может кто сталкивался уже с этим? Помогите плз.
Старый 02.08.2008, 20:01   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Что значит не проходит? Какую ошибку выдает сервер? Вы не указали версию системы.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 04.08.2008, 10:22   #3  
Alir is offline
Alir
Участник
 
47 / 14 (1) ++
Регистрация: 02.08.2008
Адрес: Санкт-Петербург
Не проходит, значит выдает: "Server was unable to process request"
Версия 4.0.
Старый 04.08.2008, 14:43   #4  
Сабитов Андрей is offline
Сабитов Андрей
MCTS
Аватар для Сабитов Андрей
MCBMSS
Лучший по профессии 2009
 
851 / 122 (6) +++++
Регистрация: 07.09.2006
Адрес: СПб
А почему бы с помощью WorkFlow не менять статус возможной сделки ?
Старый 04.08.2008, 15:49   #5  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
А вроде бы Status = 1 соответствует State = Open, а не Complete.
Для начала попробуйте:
closeOpportunityRequest.OpportunityCloseStatus = -1;
Старый 07.08.2008, 18:19   #6  
Lud is offline
Lud
Участник
 
47 / 10 (1) +
Регистрация: 28.03.2007
Записей в блоге: 1
попробуйте так
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  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Если не поможет придется включить трассировку и посмотреть детальное описание ошибки. Скорее всего будет выдана трассировка стека по которой можно будет понять откуда ноги растут.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 20.08.2008, 16:38   #8  
Alir is offline
Alir
Участник
 
47 / 14 (1) ++
Регистрация: 02.08.2008
Адрес: Санкт-Петербург
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.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как программно выполнить заказ? Alir Dynamics CRM: Разработка 1 17.03.2009 18:38
Как программно вложить файл? Tony Green Dynamics CRM: Разработка 3 04.02.2009 17:16
Как программно задавать обязательность поля на форме при заполнении? Bakai Madybaev Dynamics CRM: Функционал 6 10.10.2008 11:46
Как программно очистить поле типа Customer? Артем Enot Грунин Dynamics CRM: Разработка 3 09.06.2008 13:25
Create Opportunity Lud Dynamics CRM: Разработка 5 29.03.2007 18:22

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:51.