Приветствую, коллеги! Менеджеры попросили уведомления о задачах с высоким приоритетом на почту. Когда бывают в командировках, чтобы могли получать уведомления с основными параметрами задачи.
Хотел бы поинтересоваться, есть идеи как можно реализовать ?
Павел, мне кажется, самым простым и эффективным будет создание БП с двумя стартовыми сигналами:
1. При создании записи Активность, если приоритет критический
2. При изменений записи Активность, если приоритет был изменен и стал критическим
После этого достаточно выполнить два чтения данных: ответственного и активности.
Затем подготовить тело письма в задании-сценарии, в которое следует поместить основные параметры задачи. В конце нужен элемент Автоматическая отправка E-Mail.
Спасибо, Максим, большое!
Я уже думал как-то работать с модулем напоминаний, но это вариант кажется действительно эффективнее, если можно будет отправлять e-mail за некоторое время до наступления события.
Попробую сегодня и отпишусь.
Сложные фильтры на стартовый сигнал наложить нельзя. Да и не нужно это, ведь с 7.2 доступен таймер, с помощью которого можно прервать выполнение ветки процесса на определенное время.
Максим, а почему так сделано, что в элементе "Отправить e-mail" нельзя указать значения уже ранее прочтенных параметров сразу, а нужно использовать скрип ?
Максим, а почему так сделано, что в элементе "Отправить e-mail" нельзя указать значения уже ранее прочтенных параметров сразу, а нужно использовать скрип ?
Да, очень хотелось бы тело и тему письма составлять попроще, не приглашая программиста
На странице элемента БП есть поле для заполнения тела письма. В структуре элемента доступен параметр Body, который можно заполнить используя макросы/програмный код.
На странице элемента БП есть поле для заполнения тела письма. В структуре элемента доступен параметр Body, который можно заполнить используя макросы/програмный код.
Максим, здравствуйте.
За ответ спасибо, но он не совсем отвечает на вопрос
"Харитонов Павел" написал:Максим, а почему так сделано, что в элементе "Отправить e-mail" нельзя указать значения уже ранее прочтенных параметров сразу, а нужно использовать скрип ?
Добрый день!
Павел, непонятно, что Вы имеете ввиду под фразой "нужно использовать скрип".
Значения параметров вставляются исключительно средствами визуального интерфейса:
"Андрей Каспаревич" написал:
Павел, непонятно, что Вы имеете ввиду под фразой "нужно использовать скрип".
"Maxim Gritsenko" написал:В структуре элемента доступен параметр Body, который можно заполнить используя макросы/програмный код.
Вот. Максим написал. Макросы и программный код, который указывается с элементе процесса- задание сценарий.
"Андрей Каспаревич" написал:Значения параметров вставляются исключительно средствами визуального интерфейса:
Предложенный вами вариант вызывает ошибку при публикации. Я уже пробовал вставлять туда формулы, выбирать параметр способом, который вы показали- возникает ошибка. Собственно оно и непонятно, почему так происходит.
"Харитонов Павел" написал:Предложенный вами вариант вызывает ошибку при публикации. Я уже пробовал вставлять туда формулы, выбирать параметр способом, который вы показали- возникает ошибка. Собственно оно и непонятно, почему так происходит.
У меня получалось вставлять лишь сам e-mail:
[#Читать ответственного.Первый элемент результирующей коллекции.E-mail#]
Да, коллеги. С полем Кому это я неверно параметр указывал. Поэтому ошибка выходила.
Прощу прощения.
Только вот один вопрос. Уведомление нужно не в момент постановки задачи, а перед ее началом. В принципе можно брать значение из активности- напоминания-время, только как лучше отсрочить отправку - С помощью таймера ? В элементе "Отправить e-mail" нет возможности указать дату и время отправки.
Может и перенести. Такой вариант, конечно, возможен, но его пока не учитываем. Хотя надо.
На мой взгляд bpm'online как раз позволяет избавиться от лишних e-mail'ов. А напоминать менеджерам поможет синхронизация с google calendar, например, если они не готовы использовать Bpm'online постоянно
"Владимир Соколов" написал:если они не готовы использовать Bpm'online постоянно
Спасибо, Владимир.
Они то готовы, но всегда есть возможность. Хотя идея хорошая. Только вот вопрос конфиденциальности, пожалуй, этого сделать не позволит.
Коллеги, при таких раскладх задача несколько усложняется, но остается решаемой.
Поменять время выполнения таймера нет возможности, а отменять можно двумя способами:
1) завершать процесс;
2) вызывать метод CancelExecuting() примерно так:
Поймать изменение записи нужно в том же БП, в котором ставится таймер.
Кроме того, можно воспользовться планировщиком QUARTZ из кода вместо таймера, если требуется более гибкая настройка.
Коллеги, а никак нельзя взаимодействовать с уведомлениями ? По сути нужно то же самое, мне так кажется, только не флажок нарисовать, а письмо отправить.
Павел, с уведомлениями, в общем-то, можно взаимодействовать, но это будет сложнее предложенного варианта.
Разве что при добавлении напоминания можно стартовать БП и брать время из времени напоминания. Но напоминания создаются в тот же момент, что и запись, по которой будет напоминание.
Коллеги, попробовал.
Таймер не ставил, но почему-то отправка произошла только в 00:00 следующего дня. Это первый вопрос.
Второй.
Пробовал указать параметры в задании-сценарии для тела письма:
Body ="<p>Внимание! Приближается время начала задачи: [заголовок]<br> Начало: [Начало]<br> Контрагент: [Контрагент]<br> Контакт: [контакт]<br> Средства связи: [мобильный телефон], [рабочий телефон]</p>";returntrue;
И получил ошибку:
А еще хочется указать в задании-сценарии название контакта, контрагента и средства связи. Что делал не так ?
Спасибо.
По поводу отправки на следующий день. Не понял, как она у Вас заработала, если процесс не опубликовался. Данные контакта, контрагента и т.д. можно получать с помощью четния данных или esq-запроса.
"Андрей Каспаревич" написал:Не понял, как она у Вас заработала, если процесс не опубликовался.
Я опробовал без задания-сценария процесс. Он опубликовался и запустился.
Андрей, попробовал с учетом рекомендаций. У меня появляется ошибка. Можете помочь, в чем она ?
Павел, в тексте ошибки четко же написано, что в поле "Контакт" активности не содержится значение, то есть там NULL, что недопустимо. НУжно заполнить поле "Контакт" или добавить проверку в БП.
"Андрей Каспаревич" написал:в тексте ошибки четко же написано, что в поле "Контакт" активности не содержится значение, то есть там NULL, что недопустимо.
Спасибо, Андрей. Да, я прочитал. Почему NULL не допустимо ?
Если вопросы кажутся очень глупыми, заранее простите. :smile:
"Андрей Каспаревич" написал:добавить проверку в БП.
Подскажите, как можно осуществить проверку стандартными свойствами элементов дизайнера на наличие значения в поле Контакт в Активности, чтобы пустить процесс по нужной ветке ?
Павел, процесс должен идти по первому только в случае, если поле "Контакт" не заполнено. Если у Вас оно дейтсивтельно не заполнено, но процесс идет по другому потоку, попробуйте изменить условие следующим образом:
[#Читаем активность.Первый элемент результирующей коллекции.Контакт#] == null || [#Читаем активность.Первый элемент результирующей коллекции.Контакт#] == Guid.Empty
Андрей, получилось с вариантом "Guid.Empty". Теперь все идет так, как планировалось.
Процесс прошел без ошибки, но письмо так и не пришло. Мне кажется оно снова в 00:00 придет.
На всякий случай прикладываю последнюю версию.
Павел, возможно есть необходимость дополнительно настроить конфиг сайта для корректной работы планировщика. Тут зависит от того, какая у Вас сборка.
Какую Вы сейчас сборку используете?
неправильна, так как int - это один тип данных, а DateTime - это другой тип данных.
Вы же определяете переменную типа DateTime. Зачем писать еще int?
Далее, если Вы хотите преобразовать промежуток времени (TimeSpan) в секунды, то нужно использовтаь свойство TotalSeconds. Так как оно возвращает double, а нужен int, необходимо преобразование, например:
Андрей, спасибо за помощь.
Ошибки закончились. Процесс успешно завершился, письмо в процессе отображается как отправленное, но пока не пришло. Очевидно снова ночью придет.
Для Вашего сайта выполнены настройки на площадке on-demand - пул не останавливается.
Вероятно проблема в том как Вы устанавливаете задержку отправки уведомления, просьба перепроверить Ваш код.