02.04.2018, 13:42 | #1 |
Участник
|
Выполнение логики по рассписанию (CRM 365 он праймис)
Доброго дня!
Имеется необходимость производить по расписанию, ежедневно (несколько раз в день) определенную логику действий с данными в CRM. К примеру, переназначать Owner-ов в некоторых сущностях. Первое что приходит в голову - это использование планировщика Windows или nnCron, который запускал бы некое консольное приложение устанавливающее соединение с базой и делающее свое дело. Второе, более массивное - тот же "крон" и приложение - создающее соединение посредством Web API и активирующее событие, на которое реагирует плагин (который и выполняет определенную логику). Третье - в моем случае не подходит, так как действие не может быль привязано к бизнес-процессу и происходить должно независимо - это использование WorkFlow-плагина. Господа, подскажите, возможно имеются еще способы для решения задачи? Возможно более удобные и лаконичные. UPD: Пока ждал ответов нашел еще вариант - зацикливание Бизнес-процесса самого на себя (каждые 5 минут, что не вызывает защиты от зацикливания), или зацикливание одного бизнес-процесса на другой, который снова выполняет первый. Последний раз редактировалось ximik33rus; 02.04.2018 в 14:22. |
|
02.04.2018, 15:05 | #2 |
Участник
|
Хороший вариант - консольное приложение, которое запускается планировщиком Windows и выполняет Action в CRM.
В планировщике вы можете гибко управлять временем запуска. В случае необходимости можно запустить приложение вручную. При этом приложение (совместно с планировщиком) будет отвечать только за тайминг запуска. Всю основную логику разместить в Action. |
|
02.04.2018, 17:07 | #3 |
Чайный пьяница
|
Варианты, что вы описали - все рабочие. Вот ещё пара:
1. Использование Bulk-Delete - https://www.crmsoftwareblog.com/2012...ing-workflows/ 2. Использование SQL Agent + SSIS DTS - https://docs.microsoft.com/en-us/sql...kages#packages
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
02.04.2018, 17:21 | #4 |
Участник
|
Цитата:
Сообщение от ZooY
Хороший вариант - консольное приложение, которое запускается планировщиком Windows и выполняет Action в CRM.
В планировщике вы можете гибко управлять временем запуска. В случае необходимости можно запустить приложение вручную. При этом приложение (совместно с планировщиком) будет отвечать только за тайминг запуска. Всю основную логику разместить в Action. Хотя хотелось бы избежать децентрализации системы на несколько внешних компонент, но зацикливание или Bulk-Delete тоже как то костыльно выглядит. Выбрал меньшее из зол. Спасибо за ответы! Возможно, кто то еще выскажется о своих предпочтениях? |
|
03.04.2018, 09:41 | #5 |
Участник
|
Вы всегда можете оправдать свои действия тем, что выполнение заданий по таймауту - это не функция CRM В связи с этим, логично передать этот функционал в специально заточенную на то систему.
|
|
04.04.2018, 13:51 | #6 |
Moderator
|
Поддерживаю вариант - держать все компоненты внутри CRM. Классическими подходами является использование массового удаления (некий хак) или зацикленных рабочих процессов. Вот хорошая подборка подобных решений: https://blog.apex.it/2016/11/schedul...-dynamics-crm/
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
Теги |
crm 365, cron |
|
|