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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.11.2009, 10:34   #1  
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   #2  
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   #3  
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   #4  
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   #5  
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   #6  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Изменил на sdt.value и все получил как надо
Старый 10.11.2009, 11:45   #7  
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   #8  
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   #9  
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
Старый 28.12.2009, 18:16   #10  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Позвольте и мои 5 копеек...
Тоже была аналогичная задача: периодичность запуска, получение данных из базы и всё такое. Воротить код для процесса не стал. Сделал новую сущность под названием "Задание", при создании которой отрабатывает плагин, запускающий серверный скрипт, определяемый параметрами задания. При этом, при создании нового задания запускается воркфлоу, который ждет 20 минут и создает новое задание. Так у меня раз в 20 минут происходит проверка содержимого базы проджекта на предмет появления новых узлов проектов и в базе CRM появляются новые записи возможных сделок.
Элементарное решение вопроса, а запуск серверного скрипта не омрачается контекстом воркфлоу.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бизнес-процесс висит в состоянии ожидания 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, время: 01:45.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.