|
|
#1 |
|
Участник
|
Не выполняется отправка email в workflow activity
Всем доброго дня!
Не могу понять почему не выполняется SendEmailRequest. Подскажите, плиз, куда копать? CRM 4.0 RU8 X++: namespace CRM_SendMailActivity
{
[CrmWorkflowActivity("Send Mail")]
public partial class SendMailActivity : SequenceActivity
{
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext workflowContext = contextService.Context;
ICrmService crmservice = workflowContext.CreateCrmService(true);
Guid EmailId = new Guid(EntityIDIN);
QueryByAttribute queryByAttribute = new QueryByAttribute();
queryByAttribute.ColumnSet = new AllColumns();
queryByAttribute.EntityName = EntityName.email.ToString();
queryByAttribute.Attributes = new string[]{"activityid"};
queryByAttribute.Values = new string[] { EmailId.ToString() };
BusinessEntityCollection retrieved = crmservice.RetrieveMultiple(queryByAttribute);
if (retrieved.BusinessEntities.Count == 0)
return ActivityExecutionStatus.Canceling;
SendEmailRequest sendrequest = new SendEmailRequest();
sendrequest.EmailId = ((Key)((email)retrieved.BusinessEntities[0]).activityid).Value;
sendrequest.TrackingToken = "";
sendrequest.IssueSend = true;
crmservice.Execute(sendrequest);
return ActivityExecutionStatus.Closed;
}
public static readonly DependencyProperty EntityIDINProperty =
DependencyProperty.Register("EntityIDIN", typeof(string), typeof(SendMailActivity));
[CrmInput("Entity ID InpuT")]
public string EntityIDIN
{
get { return (string)GetValue(EntityIDINProperty); }
set { SetValue(EntityIDINProperty, value); }
}
}
}Последний раз редактировалось _AV_; 07.07.2010 в 14:43. Причина: Версия приложения |
|
|
|
|
#2 |
|
Участник
|
Ну а что значит "не выполняется"? С ошибкой падает? С какой?
Попробуйте для начала этот кусок кода вытащить в отдельное консольное приложение, так будет проще разобраться.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Ну а что значит "не выполняется"? С ошибкой падает? С какой?
Цитата:
Попробуйте для начала этот кусок кода вытащить в отдельное консольное приложение, так будет проще разобраться.
|
|
|
|
|
#4 |
|
Чайный пьяница
|
Цитата:
Не совсем понятно зачем этот ретрив стоит. Попробуйте использовать следующий код: Код: namespace CRM_SendMailActivity
{
[CrmWorkflowActivity("Send Mail")]
public partial class SendMailActivity : SequenceActivity
{
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext workflowContext = contextService.Context;
ICrmService crmservice = workflowContext.CreateCrmService(true);
Guid EmailId = new Guid(EntityIDIN);
SendEmailRequest sendrequest = new SendEmailRequest();
sendrequest.EmailId = EmailId;
sendrequest.TrackingToken = "";
sendrequest.IssueSend = true;
try
{
crmservice.Execute(sendrequest);
}
catch (SoapException sexc)
{
throw new Exception(sexc.Detail.InnerText);
}
return ActivityExecutionStatus.Closed;
}
public static readonly DependencyProperty EntityIDINProperty =
DependencyProperty.Register("EntityIDIN", typeof(string), typeof(SendMailActivity));
[CrmInput("Entity ID InpuT")]
public string EntityIDIN
{
get { return (string)GetValue(EntityIDINProperty); }
set { SetValue(EntityIDINProperty, value); }
}
}
}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Цитата:
Не совсем понятно зачем этот ретрив стоит. Попробуйте использовать следующий код:
....
|
|
|
|
|
#6 |
|
Участник
|
Господа, а скажите, пож-та, у вас работает данный пример в workflow activity?
|
|
|
|
|
#7 |
|
Чайный пьяница
|
Цитата:
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#8 |
|
Участник
|
Прям в таком виде - не будет, согласен. Но тут context используется только для создания CrmService. В консольном приложении его можно и ручками создать.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
|
|
|
#9 |
|
Чайный пьяница
|
Цитата:
PS в своих плагинах/кастомных экшенах всегда использовал метод создания сервиса через контекст - и ни разу не сталкивался с ошибками начиная со 2-го роллапа (до него были проблемы, которые 2-ым роллапом исправлялись).
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#10 |
|
Участник
|
Наконец-то нашлось время поразбираться с моей проблемой.
за 20 мин нашел из-за чего были проблемы.... оказалось, что в способе создания crmservice. ICrmService crmservice = workflowContext.CreateCrmService(true); //Не выполняется SendEmailRequest =( ICrmService crmservice = workflowContext.CreateCrmService(); //Выполняется SendEmailRequest =D Оказывается все работает, если не указывать параметр asAdminUser.... %) Последний раз редактировалось _AV_; 10.08.2010 в 18:44. |
|
|
|
| За это сообщение автора поблагодарили: a33ik (1). | |
| Теги |
| activity, email, sendemailrequest, workflow |
|
|
|