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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2009, 14:44   #81  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Если состояние - отложенная отправка, значит что просто само по себе письмо ещё не ушло через почту. Каким образом у вас организована работа почты в CRM (имею ввиду через Router, MS Outlook)?
Насчёт отправки-не так страшно пока
Главная проблема, почему данные не добавляются во вложенный отчёт...
Старый 07.08.2009, 14:53   #82  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
При запуске отчёта под пользователем, под учётной записью которого работает асинхронный сервис - в отчёт попадают данные?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 07.08.2009, 15:01   #83  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
При запуске отчёта под пользователем, под учётной записью которого работает асинхронный сервис - в отчёт попадают данные?
Нет
Старый 07.08.2009, 15:11   #84  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Нет
Вот Вам и ответ - почему вкладывается файл без данных.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 07.08.2009, 15:13   #85  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Вот Вам и ответ - почему вкладывается файл без данных.
Как это исправить, не подскажите?
Старый 07.08.2009, 15:34   #86  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Как это исправить, не подскажите?
Исследуйте почему из базы не приходят данные. Вот и будет Вам и ответ и решение проблемы.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 11.08.2009, 16:59   #87  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Вобщем так у меня проблема с вложением отчёта в письмо и не разрешается...
Письмо само вкладывается, а данных там так и нет.
Попытался сделать немного по-другому(не как у вас в примере):
ksdb3.ReportExecutionService rs = new ksdb3.ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string format = "Excel";
byte[] result = null;
string reportPath = "/Новая папка/Прайс-лист";

string encoding;
string mimeType;
string extension;
ksdb3.Warning[] warnings = null;
string[] streamIDs = null;
ksdb3.ExecutionInfo execInfo = new ksdb3.ExecutionInfo();
ksdb3.ExecutionHeader execHeader = new ksdb3.ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, null);

string SessionID = rs.ExecutionHeaderValue.ExecutionID;

result = rs.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);


Всё равно то же самое. Сейчас хочу cохранить в файл, вообще, что получает result.

Для этого дальше помещаю следующий код:
[I]int i;
StreamWriter sw = new StreamWriter("C:\\temp.txt");
for (i = 0; i < result.Length; i++)
{
sw.WriteLine(result);
}
sw.Close();


В логах асинхронного сервиса пишет:
[2009-08-11 16:18:33.2] Process:CrmAsyncService |Organization:e26d7e2d-33b0-417e-8875-7e0c045fda3e |Thread: 4 |Category: Platform.Workflow |User: 00000000-0000-0000-0000-000000000000 |Level: Error | WorkflowHost.OnWorkflowTerminated
>Workflow terminated: {5615DD03-7186-DE11-9267-000E0C4BF7BF} - System.UnauthorizedAccessException: Отказано в доступе по пути "C:\temp.txt".
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
в System.IO.StreamWriter.CreateFile(String path, Boolean append)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
в System.IO.StreamWriter..ctor(String path)
в SendReportAction.SendReport.Execute(ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutionFilter.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
в System.Workflow.Runtime.Scheduler.Run()

Почему отказано в доступе не пойму...

P.S. При запуске отчёта под пользователем, под учётной записью которого работает асинхронный сервис - в отчёт попадают данные. Зато при запуске Асинхронного сервиса от имени пользователя, который ставил всё(то есть имеет все права) письмо даже не создаётся. В логах пишет следующее:
[2009-08-11 16:57:44.0] Process:CrmAsyncService |Organization:e26d7e2d-33b0-417e-8875-7e0c045fda3e |Thread: 21 |Category: Platform.Async |User: 00000000-0000-0000-0000-000000000000 |Level: Error | AsyncOperationCommand.Execute
>Exception while trying to execute AsyncOperationId: {1C98A682-7686-DE11-9267-000E0C4BF7BF} AsyncOperationType: 1 - в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
в Microsoft.Crm.SdkTypeProxy.CrmService.Retrieve(String entityName, Guid id, ColumnSetBase columnSet)
в Microsoft.Crm.Asynchronous.SdkTypeProxyCrmServiceWrapper.Retrieve(String entityName, Guid id, ColumnSetBase columnSet)
в Microsoft.Crm.Asynchronous.SdkPluginDescriptionProvider.GetPluginTypeDescription(Guid pluginTypeId, IOrganizationContext context)
в Microsoft.Crm.Caching.PluginTypeCacheLoader.LoadCacheData(Guid key, IOrganizationContext context)
в Microsoft.Crm.Caching.CrmMultiOrgCache`2.CreateEntry(TKey key, IOrganizationContext context)
в Microsoft.Crm.Caching.CrmSharedMultiOrgCache`2.LookupEntry(TKey key, IOrganizationContext context)
в Microsoft.Crm.Caching.PluginTypeCache.LookupEntry(Guid pluginTypeId, IOrganizationContext context)
в Microsoft.Crm.Asynchronous.AsyncOperationCommand.GetPluginType(Guid pluginTypeId)
в Microsoft.Crm.Asynchronous.EventOperation.InternalExecute(AsyncEvent asyncEvent)
в Microsoft.Crm.Asynchronous.AsyncOperationCommand.Execute(AsyncEvent asyncEvent)
Старый 11.08.2009, 17:10   #88  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Вобщем так у меня проблема с вложением отчёта в письмо и не разрешается...
Письмо само вкладывается, а данных там так и нет.
Попытался сделать немного по-другому(не как у вас в примере):
ksdb3.ReportExecutionService rs = new ksdb3.ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string format = "Excel";
byte[] result = null;
string reportPath = "/Новая папка/Прайс-лист";

string encoding;
string mimeType;
string extension;
ksdb3.Warning[] warnings = null;
string[] streamIDs = null;
ksdb3.ExecutionInfo execInfo = new ksdb3.ExecutionInfo();
ksdb3.ExecutionHeader execHeader = new ksdb3.ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, null);

string SessionID = rs.ExecutionHeaderValue.ExecutionID;

result = rs.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);


Всё равно то же самое. Сейчас хочу cохранить в файл, вообще, что получает result.

Для этого дальше помещаю следующий код:
[I]int i;
StreamWriter sw = new StreamWriter("C:\\temp.txt");
for (i = 0; i < result.Length; i++)
{
sw.WriteLine(result);
}
sw.Close();


В логах асинхронного сервиса пишет:
[2009-08-11 16:18:33.2] Process:CrmAsyncService |Organization:e26d7e2d-33b0-417e-8875-7e0c045fda3e |Thread: 4 |Category: Platform.Workflow |User: 00000000-0000-0000-0000-000000000000 |Level: Error | WorkflowHost.OnWorkflowTerminated
>Workflow terminated: {5615DD03-7186-DE11-9267-000E0C4BF7BF} - System.UnauthorizedAccessException: Отказано в доступе по пути "C:\temp.txt".
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
в System.IO.StreamWriter.CreateFile(String path, Boolean append)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
в System.IO.StreamWriter..ctor(String path)
в SendReportAction.SendReport.Execute(ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.CompositeActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutionFilter.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.Execute(Activity activity, ActivityExecutionContext executionContext)
в System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
в System.Workflow.Runtime.Scheduler.Run()

Почему отказано в доступе не пойму...

P.S. При запуске отчёта под пользователем, под учётной записью которого работает асинхронный сервис - в отчёт попадают данные. Зато при запуске Асинхронного сервиса от имени пользователя, который ставил всё(то есть имеет все права) письмо даже не создаётся. В логах пишет следующее:
[2009-08-11 16:57:44.0] Process:CrmAsyncService |Organization:e26d7e2d-33b0-417e-8875-7e0c045fda3e |Thread: 21 |Category: Platform.Async |User: 00000000-0000-0000-0000-000000000000 |Level: Error | AsyncOperationCommand.Execute
>Exception while trying to execute AsyncOperationId: {1C98A682-7686-DE11-9267-000E0C4BF7BF} AsyncOperationType: 1 - в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
в Microsoft.Crm.SdkTypeProxy.CrmService.Retrieve(String entityName, Guid id, ColumnSetBase columnSet)
в Microsoft.Crm.Asynchronous.SdkTypeProxyCrmServiceWrapper.Retrieve(String entityName, Guid id, ColumnSetBase columnSet)
в Microsoft.Crm.Asynchronous.SdkPluginDescriptionProvider.GetPluginTypeDescription(Guid pluginTypeId, IOrganizationContext context)
в Microsoft.Crm.Caching.PluginTypeCacheLoader.LoadCacheData(Guid key, IOrganizationContext context)
в Microsoft.Crm.Caching.CrmMultiOrgCache`2.CreateEntry(TKey key, IOrganizationContext context)
в Microsoft.Crm.Caching.CrmSharedMultiOrgCache`2.LookupEntry(TKey key, IOrganizationContext context)
в Microsoft.Crm.Caching.PluginTypeCache.LookupEntry(Guid pluginTypeId, IOrganizationContext context)
в Microsoft.Crm.Asynchronous.AsyncOperationCommand.GetPluginType(Guid pluginTypeId)
в Microsoft.Crm.Asynchronous.EventOperation.InternalExecute(AsyncEvent asyncEvent)
в Microsoft.Crm.Asynchronous.AsyncOperationCommand.Execute(AsyncEvent asyncEvent)
По поводу первого вопроса - попытайтесь создавать текстовый файл не на диске С. Системный жеж всё таки.

По поводу второго - а на данный момент тот пользователь, который ставил - обладает доступом к CRM, т.е. имеет право на создание записей и т.п.?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 11.08.2009 в 17:22.
Старый 12.08.2009, 10:02   #89  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Заработало!
Ошибка заключалась в том, что в коде необходимо было дописать от кого подключаемся к Reporting Services. Так как у нас Асинхронный сервис был запущен от имени NT AUTHORITY\Network service, то и к Reporting Services он пытался подключиться от этого же имени. То есть просто добавил строчку:

rs.Credentials = new System.Net.NetworkCredential("username", "password", "domain");

Осталось сделать, чтобы параметр для отчёта брался с самой формы ЗАКАЗ.
Старый 12.08.2009, 10:10   #90  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Заработало!
Ошибка заключалась в том, что в коде необходимо было дописать от кого подключаемся к Reporting Services. Так как у нас Асинхронный сервис был запущен от имени NT AUTHORITY\Network service, то и к Reporting Services он пытался подключиться от этого же имени. То есть просто добавил строчку:

rs.Credentials = new System.Net.NetworkCredential("username", "password", "domain");

Осталось сделать, чтобы параметр для отчёта брался с самой формы ЗАКАЗ.
Ээээ. Собственно об этом я и спрашивал несколько раз, а в моём сообщении в блоге в самом конце как раз и стоит предупреждение о том, что асинхронный сервис должен запускаться под учёткой пользователя который имеет доступ на репортинг сервис... Перечитайте внимательно пост
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 12.08.2009, 10:16   #91  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Ээээ. Собственно об этом я и спрашивал несколько раз, а в моём сообщении в блоге в самом конце как раз и стоит предупреждение о том, что асинхронный сервис должен запускаться под учёткой пользователя который имеет доступ на репортинг сервис... Перечитайте внимательно пост
Так я и запускал Асинхронный Сервис под учёткой пользователя который имеет доступ на репортинг сервис. Тогда он вообще не создавао письмо...Теперь у меня асинхронный сервис запущен от имени NT AUTHORITY\Network, но в коде дополнительно прописано подключение к Reporting Services от имени пользователя, который имеет доступ к немуСпасибо!

А для того, чтобы из формы ЗАКАЗ передавался параметр для отчёта в репортинг необходимо добавить что-то вроде:

ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "Param2";
parameters[0].Value = "ФУА Северодвинска";


Как в Value передать значение аттрибута name из формы ЗАКАЗ?
Старый 12.08.2009, 10:27   #92  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Так я и запускал Асинхронный Сервис под учёткой пользователя который имеет доступ на репортинг сервис. Тогда он вообще не создавао письмо...Теперь у меня асинхронный сервис запущен от имени NT AUTHORITY\Network, но в коде дополнительно прописано подключение к Reporting Services от имени пользователя, который имеет доступ к немуСпасибо!

А для того, чтобы из формы ЗАКАЗ передавался параметр для отчёта в репортинг необходимо добавить что-то вроде:

ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "Param2";
parameters[0].Value = "ФУА Северодвинска";


Как в Value передать значение аттрибута name из формы ЗАКАЗ?
Вы можете получить это значение в теле Custom WorkFlow Action.

Посмотрите http://a33ik.blogspot.com/2009/06/cr...record-in.html.

Можно получить идентификатор записи, которая вызвала запуск воркфлова и уже исходя из этой записи - получить любое поле этой записи.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: moskalevas (1).
Старый 12.08.2009, 11:50   #93  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Вы можете получить это значение в теле Custom WorkFlow Action.

Посмотрите http://a33ik.blogspot.com/2009/06/cr...record-in.html.

Можно получить идентификатор записи, которая вызвала запуск воркфлова и уже исходя из этой записи - получить любое поле этой записи.
Прочитал вашу статейку, но не совсем понял...
Пытаюсь передавать параметр следующим образом:

salesorder sss = (salesorder)crmservice.Retrieve(EntityName.salesorder.ToString(), workflowContext.OrganizationId,
new ColumnSet(new string[] { "name" }));
string sales = sss.name;
ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "Param2";
parameters[0].Value = sales.ToString();


Но отчёт не вкладывается...Не могли бы кинуть ссылочку, где поподробнее говорится о том, как получать значения полей с разных форм в теле Custom WorkFlow Action?
Старый 12.08.2009, 11:56   #94  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Прочитал вашу статейку, но не совсем понял...
Пытаюсь передавать параметр следующим образом:

salesorder sss = (salesorder)crmservice.Retrieve(EntityName.salesorder.ToString(), workflowContext.OrganizationId,
new ColumnSet(new string[] { "name" }));
string sales = sss.name;
ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "Param2";
parameters[0].Value = sales.ToString();


Но отчёт не вкладывается...Не могли бы кинуть ссылочку, где поподробнее говорится о том, как получать значения полей с разных форм в теле Custom WorkFlow Action?
workflowContext.OrganizationId - это не есть идентификатор записи, которая вызвала запуск Workflow, а вот workflowContext.PrimaryEntityId - совсем другое дело. Внимательнее.

И непонятно зачем такое надо - parameters[0].Value = sales.ToString(); достаточно parameters[0].Value = sales;
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 12.08.2009, 14:06   #95  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Надеюсь последний вопрос по данной теме
Как сделать, чтобы при нажатии на кнопку "выполнить бихнес-процесс" у нас сразу же открывалось создавшееся письмо?
Старый 12.08.2009, 14:41   #96  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Надеюсь последний вопрос по данной теме
Как сделать, чтобы при нажатии на кнопку "выполнить бихнес-процесс" у нас сразу же открывалось создавшееся письмо?
Думаю, что в данном случае я ответа дать не смогу. Отрабатывание бизнес процесса - процесс асинхронный. Запустить бизнесс процесс можно при помощи кода, написанного Jian Wang. Совсем другая задача - дождаться его выполнения, найти письмо созданное в результате его работы и т.п.

Как я советовал это сделать и результат был бы гарантированным.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 13.08.2009, 09:51   #97  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Думаю, что в данном случае я ответа дать не смогу. Отрабатывание бизнес процесса - процесс асинхронный. Запустить бизнесс процесс можно при помощи кода, написанного Jian Wang. Совсем другая задача - дождаться его выполнения, найти письмо созданное в результате его работы и т.п.

Как я советовал это сделать и результат был бы гарантированным.
Добрый день!Хотел у вас ещё поинтересоваться
У электронной почты существует activityid, по которому мы можем искать необходимую нам почту?Возможно ли добавить ещё один шаг в созданный нами бизнес-процесс, который бы по этому ID ( ID мы могли бы сохранять на первом шаге бизнес-процесса ) находил и открывал необходимое нам письмо?

Второй вопрос: параметр для отчёта я передал, всё работает. А вот как передать значение поля КЛИЕНТ (Customerid) из формы заказ в поле КОМУ (to) формы сформированной электронной почты? получается передать только systemuser:

activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.systemuser.ToString();
toparty.partyid.Value = workflowContext.UserId;
mail.to = new activityparty[] { fromparty };

Последний раз редактировалось moskalevas; 13.08.2009 в 10:08.
Старый 13.08.2009, 10:13   #98  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
Добрый день!Хотел у вас ещё поинтересоваться
У электронной почты существует activityid, по которому мы можем искать необходимую нам почту?Возможно ли добавить ещё один шаг в созданный нами бизнес-процесс, который бы по этому ID ( ID мы могли бы сохранять на первом шаге бизнес-процесса ) находил и открывал необходимое нам письмо?

Второй вопрос: параметр для отчёта я передал, всё работает. А вот как передать значение поля КЛИЕНТ (Customerid) из формы заказ в поле КОМУ (to) формы сформированной электронной почты? получается передать только systemuser:

activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.systemuser.ToString();
toparty.partyid.Value = workflowContext.UserId;
mail.to = new activityparty[] { fromparty };
Бизнес процесс выполняется на сервере. Как Вы себе представляете, чтобы он открывал карточки?

По поводу заполнения to - просто вычитываете значение этого поля из Заказа и формируете свой activityparty уже исходя из полученных значений типа кастомера (контакт или компания) и идентификатора этой записи.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 13.08.2009, 11:02   #99  
moskalevas is offline
moskalevas
Участник
 
107 / 11 (1) +
Регистрация: 16.07.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Бизнес процесс выполняется на сервере. Как Вы себе представляете, чтобы он открывал карточки?

По поводу заполнения to - просто вычитываете значение этого поля из Заказа и формируете свой activityparty уже исходя из полученных значений типа кастомера (контакт или компания) и идентификатора этой записи.
1. Но ведь есть возможность с помощью бизнес-процесса открывать форму ЭЛЕКТРОННОЙ ПОЧТЫ для создания нового письма.Почему тогда нельзя открывать не пустую ЭЛЕКТРОННУЮ ПОЧТУ, а конкретную, заполненную?

2. По поводу to. Там проблема в том, что в форме ЗАКАЗ поле КЛИЕНТ(customerid) - айдишник, а нам нужно его значение. Как в коде произвести связь и сразу же передать именно значение, а не айдишник?
Старый 13.08.2009, 11:15   #100  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от moskalevas Посмотреть сообщение
1. Но ведь есть возможность с помощью бизнес-процесса открывать форму ЭЛЕКТРОННОЙ ПОЧТЫ для создания нового письма.Почему тогда нельзя открывать не пустую ЭЛЕКТРОННУЮ ПОЧТУ, а конкретную, заполненную?
Простите, но не понимаю, что Вы имеете ввиду.

Цитата:
Сообщение от moskalevas Посмотреть сообщение
2. По поводу to. Там проблема в том, что в форме ЗАКАЗ поле КЛИЕНТ(customerid) - айдишник, а нам нужно его значение. Как в коде произвести связь и сразу же передать именно значение, а не айдишник?
Говорил, говорю и буду говорить. Внимательно читаем SDK. Поле customerid сущности salesorder - типа customer. Данное свойство содержит значимые в нашем случае значения - type (тип сущности - contact или account) и Value - которое содержит идентификатор сущности. Чего Вам недостаточно, чтобы заполнить поле to?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Bondonello (1).
Теги
c#, custom workflow action, plugin, workflow, reporting services, report

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mscrm4ever: CRM 4.0 Concatenating Fields Plug-In Blog bot Dynamics CRM: Blogs 0 14.02.2009 14:05
Microsoft Dynamics CRM Team Blog: Member, Static variable and Thread safety in Plug-in for CRM 4.0 Blog bot Dynamics CRM: Blogs 0 19.11.2008 00:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM Plug-in Template for Visual Studio Blog bot Dynamics CRM: Blogs 0 27.10.2008 23:05
Microsoft Dynamics CRM Team Blog: Storing Configuration Data for Microsoft Dynamics CRM Plug-ins Blog bot Dynamics CRM: Blogs 0 24.10.2008 22:05
Microsoft Dynamics CRM Team Blog: Accessing a SQL Database from a Microsoft Dynamics CRM Plug-in Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

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

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

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