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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.11.2009, 11:43   #41  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Врядли. С точки зрения работы с файловой системы - все работы выполняются в контексте учётной записи под которой запущен асинхронный сервис CRM.
Перезапустил асинхронный сервис CRM, и все заработало!
Кстати спасибо еще раз - параметры таки передались правильно!
Старый 05.11.2009, 09:44   #42  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
По ходу дела возникла вот какая проблема:
Хочу вывести в текстовый файл результат работы одной процедуры:
Код:
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  
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
Navision
Цитата:
Сообщение от 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;
        }
Вообще есть предположение, что не смотря на то, что шарповский компилятор все это дело глотает - процедуры в тут надо оформлять несколько иначе? Тогда как?
Судя по коду - никаких данных не будет записано если в try...catch будет сгенерировано исключение. Попробуйте код изменить на такой:

Код:
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  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Вот какую он ошибку мне возратил:
Цитата:
The remote server returned an error: (407) Proxy Authentication Required.
Хотя на Win приложении с этими параметрами прокси он получал код...Или нужно прописовать параметры аутентификации для сервера в коде?

Последний раз редактировалось Tarasov E; 05.11.2009 в 10:14.
Старый 05.11.2009, 10:53   #45  
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
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Вот какую он ошибку мне возратил:

Хотя на Win приложении с этими параметрами прокси он получал код...Или нужно прописовать параметры аутентификации для сервера в коде?
Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 05.11.2009, 10:58   #46  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Проверьте можно ли доступиться в интернет через прокси с правами учётной записи, под которой работает Асинхронный сервис Microsoft CRM. Если нет - то либо дайте права, либой шейте в коде учётные данные, либо создавайте в CRM какое нибудь хранилище для данной учётной записи. Как по мне первый вариант - самый лучший.
Спасибо! Разобрался с учетками - аутентификацию проходит! При возможности плюсану
Старый 06.11.2009, 10:34   #47  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Хотелось бы вернутся к обновлению поля дата на заданное в другом поле значение.
Как выше предлагалось - нужно получить значение поля Data и сложить в кастомном степе его со значением поля периодичность, а затем записать полученный результат снова в поле Data. Так вот - возник вопрос о форматах. Как лучше получить дату и как ее записать обратно в CRM?
Со строками до этого получал так:
Код:
string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty;
Работать с DateTime?
Старый 06.11.2009, 13:06   #48  
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
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Хотелось бы вернутся к обновлению поля дата на заданное в другом поле значение.
Как выше предлагалось - нужно получить значение поля Data и сложить в кастомном степе его со значением поля периодичность, а затем записать полученный результат снова в поле Data. Так вот - возник вопрос о форматах. Как лучше получить дату и как ее записать обратно в CRM?
Со строками до этого получал так:
Код:
string period = retrievedEntity.Properties.Contains("new_period") ? (string)retrievedEntity["new_period"] : string.Empty;
Работать с DateTime?
Попробуйте так:

Код:
CrmDateTime dt = retrievedEntity.Properties.Contains("new_datetime") ? (CrmDateTime)retrievedEntity["new_datetime"] : CrmDateTime.Now;
В случае, если поле не будет заполнено - будет использовано текущее время.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.11.2009, 10:52   #49  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Попробуйте так:

Код:
CrmDateTime dt = retrievedEntity.Properties.Contains("new_datetime") ? (CrmDateTime)retrievedEntity["new_datetime"] : CrmDateTime.Now;
В случае, если поле не будет заполнено - будет использовано текущее время.
Бизнес-процесс переходит в состояние "Ожидание" вот на этом участке кода:
Код:
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  
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
Цитата:
Сообщение от 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  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Поковырялся...бизнес-процесс больше не уходит в ожидание, но в файл пишется не значение поля 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  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Изменил на sdt.value и все получил как надо
Старый 10.11.2009, 11:45   #53  
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
Цитата:
Сообщение от 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();
При такой попытке записи возьмётся ToString() метод.

Попробуйте так:

Код:
Sw.WriteLine(sdt.Value);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Tarasov E (1).
Старый 10.11.2009, 13:48   #54  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Написал код, который к полученной дате прибавляет заданное колличество часов. Для это конвертил 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'
Какой есть выход если мне к CRM'овскойц дате надо прибавить часы и записать новое значение даты обратно в CRM? Особенно интересует запись обратно в CRM.

Последний раз редактировалось Tarasov E; 10.11.2009 в 14:27.
Старый 10.11.2009, 16:56   #55  
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
Цитата:
Сообщение от 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  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
А каким образом передать данные из Workflow Activity в конкретное поле в CRM типа Date/Time?
Старый 16.11.2009, 10:14   #57  
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
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
А каким образом передать данные из Workflow Activity в конкретное поле в CRM типа Date/Time?
CrmService.Update - подойдёт?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 16.11.2009, 10:36   #58  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
CrmService.Update - подойдёт?
В примере в одном видел подобный метод, там шла работа со стандартными CRM'овскими сущностями.
А каким образом загнать новое значение в запись пользовательской сущности new_web, которая породила бизнес-процесс?
Старый 16.11.2009, 11:31   #59  
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
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
В примере в одном видел подобный метод, там шла работа со стандартными CRM'овскими сущностями.
А каким образом загнать новое значение в запись пользовательской сущности new_web, которая породила бизнес-процесс?
Через DynamicEntity.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 16.11.2009, 11:50   #60  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Цитата:
Сообщение от a33ik Посмотреть сообщение
Через DynamicEntity.
В случае с Retrieve делал так:
Код:
targetRetrieve.EntityName = _entitytype;
 targetRetrieve.EntityId = _entityid;
,
но в случае в update не знаю как передать айдишник вызвавшей бизнес-процесс записи. Делаю пока только так:
Код:
targetUpdate.Entity.Name = _entitytype;
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бизнес-процесс висит в состоянии ожидания Evgenia_f Dynamics CRM: Функционал 70 21.12.2009 18:53
Странности бизнес-процесса на изменение атрибутов записи SLK Dynamics CRM: Функционал 6 19.05.2009 08:14
Событие "Назначение записи" для бизнес-процесса Lazarus Dynamics CRM: Функционал 1 22.01.2009 19:54
Работает неопубликованный бизнес-процесс sergeyjb Dynamics CRM: Разработка 1 22.12.2008 09:16
Бизнес-процесс и список ожидания Evgenia_f Dynamics CRM: Разработка 16 07.10.2008 16:22

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:42.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.