![]() |
#41 |
Участник
|
|
|
![]() |
#42 |
Участник
|
По ходу дела возникла вот какая проблема:
Хочу вывести в текстовый файл результат работы одной процедуры: Код: StreamWriter Sw1 = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Tarasov.txt"); Sw1.Write(ConnectToSite(url)); Sw1.Close(); А вот код самой процедуры: Код: public static string ConnectToSite(string link)//подключение к сайту и загрузка html-кода { string Code = ""; try { string ip = "192.168.0.7";//получение адреса прокси-сервера string port = "3128"; //получение номера порта WebProxy proxyObject = new WebProxy(ip + ":" + port, true);//передача параметров прокси WebClient client = new WebClient(); proxyObject.Credentials = CredentialCache.DefaultNetworkCredentials;//передача параметров аутентификации по умолчанию client.Proxy = proxyObject; Code = new Regex(@"\s+", RegexOptions.Compiled).Replace(client.DownloadString(link), " ").Normalize();//нормализация кода страницы } catch { } return Code; } |
|
![]() |
#43 |
Чайный пьяница
|
![]() Цитата:
Сообщение от Tarasov E
![]() По ходу дела возникла вот какая проблема:
Хочу вывести в текстовый файл результат работы одной процедуры: Код: StreamWriter Sw1 = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Tarasov.txt"); Sw1.Write(ConnectToSite(url)); Sw1.Close(); А вот код самой процедуры: Код: public static string ConnectToSite(string link)//подключение к сайту и загрузка html-кода { string Code = ""; try { string ip = "192.168.0.7";//получение адреса прокси-сервера string port = "3128"; //получение номера порта WebProxy proxyObject = new WebProxy(ip + ":" + port, true);//передача параметров прокси WebClient client = new WebClient(); proxyObject.Credentials = CredentialCache.DefaultNetworkCredentials;//передача параметров аутентификации по умолчанию client.Proxy = proxyObject; Code = new Regex(@"\s+", RegexOptions.Compiled).Replace(client.DownloadString(link), " ").Normalize();//нормализация кода страницы } catch { } return Code; } Код: public static string ConnectToSite(string link)//подключение к сайту и загрузка html-кода { string Code = ""; try { string ip = "192.168.0.7";//получение адреса прокси-сервера string port = "3128"; //получение номера порта WebProxy proxyObject = new WebProxy(ip + ":" + port, true);//передача параметров прокси WebClient client = new WebClient(); proxyObject.Credentials = CredentialCache.DefaultNetworkCredentials;//передача параметров аутентификации по умолчанию client.Proxy = proxyObject; Code = new Regex(@"\s+", RegexOptions.Compiled).Replace(client.DownloadString(link), " ").Normalize();//нормализация кода страницы } catch(Exception ex) { Code = ex.Message; } return Code; }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#44 |
Участник
|
Вот какую он ошибку мне возратил:
Цитата:
The remote server returned an error: (407) Proxy Authentication Required.
Последний раз редактировалось Tarasov E; 05.11.2009 в 10:14. |
|
![]() |
#45 |
Чайный пьяница
|
Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#46 |
Участник
|
Цитата:
Сообщение от a33ik
![]() Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
![]() |
|
![]() |
#47 |
Участник
|
Хотелось бы вернутся к обновлению поля дата на заданное в другом поле значение.
Как выше предлагалось - нужно получить значение поля Data и сложить в кастомном степе его со значением поля периодичность, а затем записать полученный результат снова в поле Data. Так вот - возник вопрос о форматах. Как лучше получить дату и как ее записать обратно в CRM? Со строками до этого получал так: Код: string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty; |
|
![]() |
#48 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
![]() Хотелось бы вернутся к обновлению поля дата на заданное в другом поле значение.
Как выше предлагалось - нужно получить значение поля Data и сложить в кастомном степе его со значением поля периодичность, а затем записать полученный результат снова в поле Data. Так вот - возник вопрос о форматах. Как лучше получить дату и как ее записать обратно в CRM? Со строками до этого получал так: Код: string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty; Код: CrmDateTime dt = retrievedEntity.Properties.Contains("new_datetime") ? (CrmDateTime)retrievedEntity["new_datetime"] : CrmDateTime.Now;
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#49 |
Участник
|
Цитата:
Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty; StreamWriter Sw = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Ace.txt"); Sw.WriteLine(period); Sw.Close(); |
|
![]() |
#50 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
![]() Бизнес-процесс переходит в состояние "Ожидание" вот на этом участке кода:
Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty; StreamWriter Sw = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Ace.txt"); Sw.WriteLine(period); Sw.Close();
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#51 |
Участник
|
Поковырялся...бизнес-процесс больше не уходит в ожидание, но в файл пишется не значение поля new_scandate, а
Цитата:
Microsoft.Crm.Sdk.CrmDateTime
Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; StreamWriter Sw = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Ace.txt"); Sw.WriteLine(sdt); Sw.Close(); Последний раз редактировалось Tarasov E; 10.11.2009 в 11:36. |
|
![]() |
#52 |
Участник
|
Изменил на sdt.value и все получил как надо
|
|
![]() |
#53 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
![]() Поковырялся...бизнес-процесс больше не уходит в ожидание, но в файл пишется не значение поля new_scandate, а
Вот код: Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; StreamWriter Sw = new StreamWriter(@"C:\BP_Scanner\BP_Scanner_Hash\Ace.txt"); Sw.WriteLine(sdt); Sw.Close(); Попробуйте так: Код: Sw.WriteLine(sdt.Value);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Tarasov E (1). |
![]() |
#54 |
Участник
|
Написал код, который к полученной дате прибавляет заданное колличество часов. Для это конвертил CRMDateTime в DateTime, но как перевести обратно к сожалению не знаю. Собственно вот сам код:
Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; string period = retrievedEntity.Properties.Contains("new_periodical") ? (string)retrievedEntity["new_periodical"]: string.Empty; double hours = Convert.ToDouble(period); DateTime time = Convert.ToDateTime(sdt.Value); DateTime newtime = time.AddHours(hours); Код: CrmDateTime nextDate = (CrmDateTime)newtime; но получил следующее: Цитата:
Error 1 Cannot convert type 'System.DateTime' to 'Microsoft.Crm.Sdk.CrmDateTime'
Последний раз редактировалось Tarasov E; 10.11.2009 в 14:27. |
|
![]() |
#55 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
![]() Написал код, который к полученной дате прибавляет заданное колличество часов. Для это конвертил CRMDateTime в DateTime, но как перевести обратно к сожалению не знаю. Собственно вот сам код:
Код: CrmDateTime sdt = retrievedEntity.Properties.Contains("new_scandate") ? (CrmDateTime)retrievedEntity["new_scandate"] : CrmDateTime.Now; string period = retrievedEntity.Properties.Contains("new_periodical") ? (string)retrievedEntity["new_periodical"]: string.Empty; double hours = Convert.ToDouble(period); DateTime time = Convert.ToDateTime(sdt.Value); DateTime newtime = time.AddHours(hours); Код: CrmDateTime nextDate = (CrmDateTime)newtime; но получил следующее: Какой есть выход если мне к CRM'овскойц дате надо прибавить часы и записать новое значение даты обратно в CRM? Особенно интересует запись обратно в CRM.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#56 |
Участник
|
А каким образом передать данные из Workflow Activity в конкретное поле в CRM типа Date/Time?
|
|
![]() |
#57 |
Чайный пьяница
|
CrmService.Update - подойдёт?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#58 |
Участник
|
|
|
![]() |
#59 |
Чайный пьяница
|
Через DynamicEntity.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
![]() |
#60 |
Участник
|
В случае с Retrieve делал так:
Код: targetRetrieve.EntityName = _entitytype; targetRetrieve.EntityId = _entityid; но в случае в update не знаю как передать айдишник вызвавшей бизнес-процесс записи. Делаю пока только так: Код: targetUpdate.Entity.Name = _entitytype; |
|