03.11.2009, 11:43 | #41 |
Участник
|
|
|
05.11.2009, 09:44 | #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; } |
|
05.11.2009, 10:02 | #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 |
|
05.11.2009, 10:08 | #44 |
Участник
|
Вот какую он ошибку мне возратил:
Цитата:
The remote server returned an error: (407) Proxy Authentication Required.
Последний раз редактировалось Tarasov E; 05.11.2009 в 10:14. |
|
05.11.2009, 10:53 | #45 |
Чайный пьяница
|
Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
05.11.2009, 10:58 | #46 |
Участник
|
Цитата:
Сообщение от a33ik
Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
|
|
06.11.2009, 10:34 | #47 |
Участник
|
Хотелось бы вернутся к обновлению поля дата на заданное в другом поле значение.
Как выше предлагалось - нужно получить значение поля Data и сложить в кастомном степе его со значением поля периодичность, а затем записать полученный результат снова в поле Data. Так вот - возник вопрос о форматах. Как лучше получить дату и как ее записать обратно в CRM? Со строками до этого получал так: Код: string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty; |
|
06.11.2009, 13:06 | #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 |
|
10.11.2009, 10:52 | #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(); |
|
10.11.2009, 11:31 | #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 |
|
10.11.2009, 11:33 | #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. |
|
10.11.2009, 11:44 | #52 |
Участник
|
Изменил на sdt.value и все получил как надо
|
|
10.11.2009, 11:45 | #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). |
10.11.2009, 13:48 | #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. |
|
10.11.2009, 16:56 | #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 |
|
16.11.2009, 09:10 | #56 |
Участник
|
А каким образом передать данные из Workflow Activity в конкретное поле в CRM типа Date/Time?
|
|
16.11.2009, 10:14 | #57 |
Чайный пьяница
|
CrmService.Update - подойдёт?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.11.2009, 10:36 | #58 |
Участник
|
|
|
16.11.2009, 11:31 | #59 |
Чайный пьяница
|
Через DynamicEntity.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.11.2009, 11:50 | #60 |
Участник
|
В случае с Retrieve делал так:
Код: targetRetrieve.EntityName = _entitytype; targetRetrieve.EntityId = _entityid; но в случае в update не знаю как передать айдишник вызвавшей бизнес-процесс записи. Делаю пока только так: Код: targetUpdate.Entity.Name = _entitytype; |
|