|
![]() |
#1 |
Чайный пьяница
|
Цитата:
Сообщение от 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 |
|
![]() |
#2 |
Участник
|
Цитата:
Код: 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(); |
|
![]() |
#3 |
Чайный пьяница
|
Цитата:
Сообщение от 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 |
|
![]() |
#4 |
Участник
|
Поковырялся...бизнес-процесс больше не уходит в ожидание, но в файл пишется не значение поля 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. |
|
![]() |
#5 |
Участник
|
Изменил на sdt.value и все получил как надо
|
|
![]() |
#6 |
Чайный пьяница
|
Цитата:
Сообщение от 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). |
![]() |
#7 |
Участник
|
Написал код, который к полученной дате прибавляет заданное колличество часов. Для это конвертил 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. |
|
![]() |
#8 |
Чайный пьяница
|
Цитата:
Сообщение от 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 |
|
![]() |
#9 |
Участник
|
А каким образом передать данные из Workflow Activity в конкретное поле в CRM типа Date/Time?
|
|
![]() |
#10 |
Заноза в заднице
|
Позвольте и мои 5 копеек...
Тоже была аналогичная задача: периодичность запуска, получение данных из базы и всё такое. Воротить код для процесса не стал. Сделал новую сущность под названием "Задание", при создании которой отрабатывает плагин, запускающий серверный скрипт, определяемый параметрами задания. При этом, при создании нового задания запускается воркфлоу, который ждет 20 минут и создает новое задание. Так у меня раз в 20 минут происходит проверка содержимого базы проджекта на предмет появления новых узлов проектов и в базе CRM появляются новые записи возможных сделок. Элементарное решение вопроса, а запуск серверного скрипта не омрачается контекстом воркфлоу.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|