2013-03-18 2 views
1

Я хочу закрыть цитату из плагина. Все отлично работает в Интернет, но если мой плагин работает в автономном режиме в Outlook, я получу ошибку:MSCRM 2011 CloseQuoteRequest Offline

Первичного ключ должен быть заполнен для звонков на платформу богатых клиентов в автономном режиме

я закрываю цитату, как что:

CloseQuoteRequest req = new CloseQuoteRequest(); 
req.QuoteClose = myQuote; 
req.Value = new OptionSetValue(6); 
service.Execute(req); 

Я проследил мой плагин в автономном режиме, и мои атрибуты, такие как идентификатор моей цитаты, в порядке.

Есть ли у кого-нибудь идеи?

+0

У нас был этот вопрос раз при добавлении цитаты, я помню, но это было на CRM 4. И оказалось, быть ошибкой в ​​CRM, которая была исправлена. Работает ли ваш код в автономном режиме? –

+0

Да, он работает онлайн. Я думал, что это связано с моим Первичным полем сущности (оно является субъектом). Таким образом, я добавил в свой объект Quectlose Entity тему поля. Но это не работает. Я понятия не имею, что это такое – Alex

+0

Как насчет атрибута 'name' цитаты? Может, он пуст? – shytikov

ответ

0

решение использовать позднюю связанный quoteclose объект и обеспечить ActivityID справ:

var item = service.retrieve("quote",quoteid, new columnset(true); 
var quoteclose = new Entity("quoteclose"); 


quoteclose.Attributes.Add("quoteid", item.ToEntityReference()); 
quoteclose.Attributes.Add("subject", "Quote Closed"); 
quoteclose.Attributes.Add("description", "Quote Closed"); 
quoteclose.Attributes.Add("quotenumber", item.Attributes["quotenumber"]); 
quoteclose.Attributes.Add("ownerid", item.Attributes["ownerid"]); 
quoteclose.Attributes.Add("revision", 0); 
quoteclose.Attributes.Add("activityid", Guid.NewGuid()); 
quoteclose.Attributes.Add("actualend", DateTime.Now); 

// Close the quote 
CloseQuoteRequest closeQuoteRequest = new CloseQuoteRequest() 
{ 
    QuoteClose = quoteclose, 
     Status = new OptionSetValue(5) 
}; 
contextBag.Service.Execute(closeQuoteRequest); 
Смежные вопросы