05.08.2009, 12:15 | #41 |
Участник
|
Цитата:
Сообщение от Bondonello
Если только начинаете, возможно поможет http://ms-dynamics-crm.com.ua/tag/plug-in/
|
|
05.08.2009, 12:22 | #42 |
Чайный пьяница
|
Правой кнопкой в студии на проекте - Properties - Signing - Sign the assembly - Choose a strong name key file - new - указываете имя файла, галочку Protect my key file with a password - снимаете. Сохраняете, пересобираете, регистрируете.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Kipetcoff (1). |
05.08.2009, 12:52 | #43 |
Участник
|
ааа...все я понял..strong name ему прописать. Помогло!!!! a33ik, СПАСИБО за помощь!!!
|
|
05.08.2009, 13:01 | #44 |
Участник
|
|
|
05.08.2009, 13:57 | #45 |
Консультант-джедай
|
Цитата:
и вот еще что-то похожее http://www.programmerworld.net/artic...ilactivity.php
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
06.08.2009, 11:56 | #46 |
Участник
|
Цитата:
Сообщение от a33ik
Добрый день. Сразу скажу, что простыми кастомизациями - не обойдёшься. Рекомендую написать кастомный WorkFlow action (пример тут), который будет:
1. Собственно формировать отчёт и экспортировать его в файл. Посмотрите это. 2. Создавать письмо и вкладывать в него сформированный на шаге 1 файл. 3. Отправлять созданное в п.2 письмо. Регистрирую, создаю бизнес-процесс, который отправляет отчёт "Прайс-лист"(отчёт без всяких парметров) из формы ЗАКАЗЫ. но почему-то никакое письмо не отправляется Не пойиу в чём проблема. |
|
06.08.2009, 12:09 | #47 |
Чайный пьяница
|
Цитата:
Сообщение от moskalevas
Пробую воспользоваться вашим примером: http://a33ik.blogspot.com/2009/08/cu...h-renders.html
Регистрирую, создаю бизнес-процесс, который отправляет отчёт "Прайс-лист"(отчёт без всяких парметров) из формы ЗАКАЗЫ. но почему-то никакое письмо не отправляется Не пойиу в чём проблема.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 12:26 | #48 |
Участник
|
Создал проект Class Project, добавил необходимые References, как и в примере, добавил код:
using System; using System.Collections.Generic; using System.Text; using Microsoft.Crm.Sdk; using Microsoft.Crm.SdkTypeProxy; using Microsoft.Crm.Workflow; using System.Workflow.Activities; using System.Workflow.ComponentModel; using System.ServiceModel; using System.Security.Principal; namespace SendReportAction { [CrmWorkflowActivity("Execute and send a report")] public class SendReport : SequenceActivity { protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { if (MailRecipient != null && !MailRecipient.IsNull && !MailRecipient.IsNullSpecified) { //создание email*************************************************************************************** IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService)); IWorkflowContext workflowContext = contextService.Context; ICrmService crmservice = workflowContext.CreateCrmService(); email mail = new email(); activityparty fromparty = new activityparty(); fromparty.partyid = new Lookup(); fromparty.partyid.type = EntityName.systemuser.ToString(); fromparty.partyid.Value = workflowContext.UserId; mail.from = new activityparty[] { fromparty }; activityparty toparty = new activityparty(); toparty.partyid = new Lookup(); toparty.partyid.type = EntityName.systemuser.ToString(); toparty.partyid.Value = workflowContext.UserId; mail.to = new activityparty[] { toparty }; mail.subject = "Report Subscription"; mail.sender = "babayan@mail.ru"; mail.description = "Report Subscription"; mail.ownerid = new Owner(); mail.ownerid.type = EntityName.systemuser.ToString(); mail.ownerid.Value = workflowContext.UserId; Guid createdEmailGuid = crmservice.Create(mail); //***************************************************************************************************** //формирование и экспорт отчёта************************************************************************ Reporting.SessionHeader sessionheader = null; byte[] result; string encoding; string mimetype; Reporting.ParameterValue[] parametersUsed = null; Reporting.Warning[] warnings; string[] streamids; BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly); binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName; binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows; binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None; binding.Security.Transport.Realm = string.Empty; EndpointAddress endpoint = new EndpointAddress(ServiceURL); Reporting.ReportingServiceSoapClient client = new Reporting.ReportingServiceSoapClient(binding, endpoint); client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation; client.Render(ref sessionheader, ReportName, "Excel", null, null, null, null, null, out result, out encoding, out mimetype, out parametersUsed, out warnings, out streamids); //***************************************************************************************************** //прикрепление отчёта к письму************************************************************************* activitymimeattachment attach = new activitymimeattachment(); attach.activityid = new Lookup(EntityName.email.ToString(), createdEmailGuid); attach.body = System.Convert.ToBase64String(result); attach.subject = "Report Subscription"; attach.filename = "Report.xls"; attach.filesize = new CrmNumber(result.Length); attach.mimetype = @"application/vnd.ms-excel"; crmservice.Create(attach); //***************************************************************************************************** //отправка письма************************************************************************************** SendEmailRequest sendrequest = new SendEmailRequest(); sendrequest.EmailId = createdEmailGuid; sendrequest.TrackingToken = ""; sendrequest.IssueSend = true; crmservice.Execute(sendrequest); } return ActivityExecutionStatus.Closed; } //объявляем URL of Reporting Service public static DependencyProperty ServiceURLProperty = DependencyProperty.Register("ServiceURL", typeof(string), typeof(SendReport)); [CrmInput("ServiceURL")] public string ServiceURL { get { return (string)base.GetValue(ServiceURLProperty); } set { base.SetValue(ServiceURLProperty, value); } } //объявляем ReportName public static DependencyProperty ReportNameProperty = DependencyProperty.Register("ReportName", typeof(string), typeof(SendReport)); [CrmInput("ReportName")] public string ReportName { get { return (string)base.GetValue(ReportNameProperty); } set { base.SetValue(ReportNameProperty, value); } } //объявляем MailRecipient (получатель письма) public static DependencyProperty MailRecipientProperty = DependencyProperty.Register("MailRecipient", typeof(Lookup), typeof(SendReport)); [CrmInput("MailRecipient")] [CrmReferenceTarget("systemuser")] public Lookup MailRecipient { get { return (Lookup)base.GetValue(MailRecipientProperty); } set { base.SetValue(MailRecipientProperty, value); } } } } Далее застронгнеймил сборку и опубликовал. В Dynamics CRM создаю бизнес-процесс. Объект - ЗАКАЗ. В ServiceURL:http://[назва_сервера]/Reportserver/ReportService.asmx, ReportName:/Новая папка/Прайс-лист, MailRecipient:[имя получателя]. Опубликовал бизнес-процесс. На форме ЗАКАЗ появилась кнопка Выполнить бизнес-процесс, но e-mail не отсылается. |
|
06.08.2009, 12:31 | #49 |
Чайный пьяница
|
На кнопку - Выполнить - нажимали?
Отчёт - параметризирован? Под какой учётной записью запущен Асинхронный Сервис CRM? Рекомендую посмотреть логи Асинхронного Сервиса, думаю, что ответ почему письмо не отправлено - кроется именно там.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 06.08.2009 в 12:33. |
|
06.08.2009, 13:14 | #50 |
Участник
|
Пытаюсь сформировать и экспортировать отчёт без параметров.
Асинхронный Сервис CRM вроде как запущен под учётной записью того человека, который ставил это всё. Как просмотреть логи Асинхронного Сервиса? При регистрации надо было регистрировать Stepы? Последний раз редактировалось moskalevas; 06.08.2009 в 13:19. |
|
06.08.2009, 13:22 | #51 |
Чайный пьяница
|
Цитата:
2. Вроде как - недостоверно. Надо знать точно. На то я в самом конце статьи и написал, что асинхронный сервис должен быть запущен под учёткой человека, у которого есть права на просмотр того самого отчёта. 3. Включаете трейс (это уже в данном форуме показывалось как), открываете каталог [каталог установки сервера CRM]\Trace и ищете самый свежий файл вида SQL-CRM-CrmAsyncService-bin-20090806-1.log. Открываете его, исследуете.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 13:53 | #52 |
Участник
|
на форме ЗАКАЗ слева в сведениях есть "Бизнес-процесс".Почему то после нажатия на кнопку "Запустить Бизнес-процесс" даже там он не отображается...
Ассинхронный Сервис запущен под учёткой человека,который имеет право читать отчёт. |
|
06.08.2009, 13:57 | #53 |
Чайный пьяница
|
Цитата:
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 14:15 | #54 |
Участник
|
Вот, что у меня.
Последний раз редактировалось moskalevas; 06.08.2009 в 14:20. |
|
06.08.2009, 14:21 | #55 |
Чайный пьяница
|
А промежуточный? Как на том скриншоте, что я выложил?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 14:24 | #56 |
Участник
|
|
|
06.08.2009, 14:27 | #57 |
Чайный пьяница
|
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 15:06 | #58 |
Участник
|
Он действительно был не запущен.
Теперь во вкладке "Бизне-процессы" на форме ЗАКАЗ появляется процес, но его состояние:ожидание. При этом email создаётся, но без вложенного файла... |
|
06.08.2009, 15:10 | #59 |
Чайный пьяница
|
Вот теперь посмотрите логи асинхронного сервиса. Скорее всего, что при выполнении - произошла ошибка в коде сборки. Как найдёте ошибку - выкладывайте сюда, постараюсь помочь, чем смогу.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
06.08.2009, 15:16 | #60 |
Участник
|
А можно ссылочку как просматривать логи этого самого сервиса, пожалуйста?
|
|
Теги |
c#, custom workflow action, plugin, workflow, reporting services, report |
|
|