18.11.2008, 18:50 | #1 |
Участник
|
Не создается email в плагине
При попытке создать email в плагине вылетает с ошибкой: "Server was unable to process request", CRM сообщает "Ошибка SQL сервера".
Сам код создания валидный: проверял, например, в win-приложении - все создает. Кто-нить создавал email'ы в плагине? P.S. проверял на всех провах пользователей при регистрации плагина. |
|
18.11.2008, 21:22 | #2 |
Moderator
|
Приведите код, пожалуйста. Так будет проще понять в чем может быть проблема.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
19.11.2008, 10:30 | #3 |
Участник
|
Артем Enot Грунин
Код здесь обычный, как пример SDK: X++: WhoAmIRequest systemUserRequest = new WhoAmIRequest(); WhoAmIResponse systemUser = (WhoAmIResponse)service.Execute(systemUserRequest); activityparty party = new activityparty(); party.partyid = new Lookup(); party.partyid.type = EntityName.systemuser.ToString(); party.partyid.Value = systemUser.UserId; email email = new email(); email.to = new activityparty[] { party }; email.from = new activityparty[] { party }; email.subject = "My test subject"; email.description = "My test send e-mail message"; CrmBoolean direction = new CrmBoolean(); direction.Value = true; email.directioncode = direction; // создаем так: TargetCreateEmail targetCreate = new TargetCreateEmail(); targetCreate.Email = email; CreateRequest request = new CreateRequest(); request.Target = targetCreate; service.Execute(request); //либо так: //service.Create((BusinessEntity)email); Причем любая другая сущность создается, а email нет. Плагин регестрировался Plugin Resistration Tool на Update одного поля - собственно все как обычно. |
|
19.11.2008, 14:25 | #4 |
Moderator
|
Что в логах сервера (детальное сообщение об ошибке)? Как вы сервис создаете? В плагине его надо создавать так:
Код: public void Execute(IPluginExecutionContext context) { ICrmService service = context.CreateCrmService(true); service.<операции>; }
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
19.11.2008, 15:51 | #5 |
Участник
|
Перед Create'ом заполните поле Owner вот так:
Код: mail.ownerid = new Owner(); mail.ownerid.type = "systemuser"; mail.ownerid.Value = systemUser.UserId; |
|
19.11.2008, 18:53 | #6 |
Участник
|
Кстати, так тоже не прокатит.
В данном случае systemUser.UserId это и есть SYSTEM. Вообщем, определитесь кому Вы хотите послать письмо и его же пропишите в Owner мэйла. А если в поле from Вы хотите указать пользователя, по чьей "вине" был вызван плагин, то надо его GUID не из WhoAmIRequest получать, а из context'а плагина. |
|
|
За это сообщение автора поблагодарили: Alir (1). |
20.11.2008, 11:38 | #7 |
Чайный пьяница
|
Цитата:
http://forums.microsoft.com/Dynamics...0889&SiteID=27 |
|
|
За это сообщение автора поблагодарили: Артем Enot Грунин (1), Likefire (1). |
24.11.2008, 11:55 | #8 |
Участник
|
Действительно в случае, когда создаем email в plug-in'e, надо явно прописывать owner у письма, тогда все корректно создается.
|
|