Отмена процесса средствами БП не отменяет процесс. Процесс после отмены "оживает".
Уважаемые коллеги!
Помогите пжл. разобраться с проблемой отмены процессы средствами БП.
Дело в том, что мне необходимо отменить процесс, запущенный ранее...
Для эти целей я смоделировал соответствующий процесс (см. вложенный файл).
При наступлении определенного события этот процесс отменяет ранее запущенный процесс, фиксирует такую отмену в Журнале процессов.
Однако, при наступлении предыдущего события, отмененный процесс вдруг "оживает" и выполняет свою миссию...
Замечу, однако, что при ручной отмене процесса непосредственно в журнале процессов, отмененный процесс "не оживает"...
Что делать?
Нравится
Примерно такой вид должен быть. Отменять процесс необязательно - будет выполнена одна из веток (т.е., если до таймера наступит изменение напоминания, то на верхнюю ветку процесс больше и не пойдет)
Добрый день, Владимир!
Спасибо за совет! Только данная конструкция никак не подходит - до таймера надо еще кучу элементов вставить считать данные, вычислить время до напоминания, а только потом это время вставить в таймер...
Или, возможно, я чего-то не так делаю....
"Ифутин Юрий Борисович" написал:Спасибо за совет! Только данная конструкция никак не подходит - до таймера надо еще кучу элементов вставить считать данные, вычислить время до напоминания, а только потом это время вставить в таймер...
вставляйте до ветвления
Спасибо Владимир!
Процесс работает в следующем виде (см. вложенный файл). Работает хорошо...
Однако, полученный процесс работает только для одного изменения напоминания...
В случае двух и более изменений напоминания, данная конструкция выдает все напоминания...
Надо что-то думать - либо делать аналогичное ветвление для одной из веток ветвления, затем аналогичное ветвление для предыдущей ветки ветвления и так далее до бесконечности...
Думаю, что решение для всех (множественных) случаев изменения напоминаний напрашивается с использованием цикла и условных переходов....
Что думаете коллеги по этому поводу?...
"Ифутин Юрий Борисович" написал:В случае двух и более изменений напоминания
Подозреваю, что надо, чтобы этот процесс стартовал не только при добавлении, но и при изменении напоминания.
Тогда при изменении завершится первый процесс. И начнется второй.
При следующем изменении завершится второй, и начнется первый.
Спасибо, Владимир!
Дело в том, что для этой опции активности нет понятия "добавлен", есть только "изменен" - то есть, либо напоминание "включено" либо "выключено" (да/нет).
То есть, с точки зрения системы, добавление напоминания- это и есть изменение из состояния "нет" в состояние "да" (галочка).
А в поле "Дата напоминания" также формируются только два состояния - "Не заполнено" (нет никакой даты) и "Заполнено" (есть дата)
И вот, как придумать два разных старта пока не знаю...
Жду Вашей помощи, коллеги!!!
Хм... Я не проверял, как работает, но для Notification есть и added, и modified
Большое спасибо, Владимир!
Получилось! (См. вложенный файл)
Однако, еще надо учесть, что данный процесс должен быть отменен, если:
- напоминание отменено
- задача выполнена до даты напоминания
- задача отменена до даты напоминания
Но, если добавлять в процесс такие события в структуру «ИЛИ по событиям» – возникает ошибка: "Элемент удалить невозможно, так как он используется в процессе"... (см. вложенный файл)
Поделитесь коллеги пжл. решением данного вопроса...
PS.
Даже если ничего больше не добавлять в процесс, то при отмене напоминания, завершении задачи, отмене задачи, системой выдается та же ошибка: "Элемент удалить невозможно, так как он используется в процессе"
Учтите еще, что напоминание может быть не только по задаче
"Ифутин Юрий Борисович" написал:Получилось! (См. вложенный файл)
А зачем вы сделали 2 одинаковых процесса? Мне кажется, что достаточно было одного, но с двумя входами
Еще бы надо учесть, что несколько авторов могут поставить напоминания по своим задачам.. Надо-бы все эти ньюансы как-то идентифицировать...
Попробую сделать один процесс с двумя входами... Хотя, думаю, что надо не с двумя, а с тремя - кроме "добавить" и "изменить", добавить "удалить"...
"Ифутин Юрий Борисович" написал:добавить "удалить".
на удаление вход не нужен, а нужен выход - там, где в другой ветке ожидаем изменения по таймеру.
Добрый день, коллеги!
Добрый день, Владимир!
Весь день промучился. Перебрал все варианты Ваших советов, но так и не смог победить ошибку "Элемент удалить невозможно, так как он используется в процессе".
Сделал более подробные скрины процесса (см. вложенный файл)...
Коллеги, помогите пжл. найти ошибку...
Здравствуйте, Юрий!
Средствами приложения запись не удаляется, если она участвует в процессе. Вы можете удалить запись, используя запрос в БД.
Примеры запросов на удаление описаны по ссылке:
https://academy.terrasoft.ru/documents/technic-sdk/7-8/postroenie-zapro…
Добрый вечер, Алексей!
Большое спасибо Вам за данный совет...
Думал, что я что-то не так делаю по обработке промежуточных событий...
К сожалению, я не программист, но хочу научиться...
Прошу Вас, если не сложно, скиньте какое-нибудь решение (в виде кода) в данном контексте задачи в расчете на дилетанта в программировании... - Попробую сделать что-нибудь по аналогии...
PS.
С наступающим Вас праздником Единения!..
Юрий, добрый вечер! Вашу задачу можно решить вообще без разработки, просто правильно изменив схему самого процесса.
Для этого процесс должен быть один. Запускаться он должен или при создании нового напоминания, или при изменении даты существующего.
При этом логика его следующая: он распараллеливается в начале и или завершается так, как вы указали в первом процессе, или сразу идет на выход после изменения даты (как нижняя ветка второго процесса).
Т.о. при создании напоминания запустится экземпляр 1 БП. Если дата изменится, этот экземпляр отменится. Но запустится экземпляр 2 этого же процесса. И будет также выполняться, пока не завершится, или пока не изменится опять дата. И так сколько угодно раз.
"Бондарь Наталия" написал:Если дата изменится, этот экземпляр отменится. Но запустится экземпляр 2 этого же процесса. И будет также выполняться, пока не завершится, или пока не изменится опять дата. И так сколько угодно раз.
Да, такую схему и обсуждали. Но если кто-то захочет удалить это напоминание, то не сможет это сделать, так как по нему запущен процесс.
"Владимир Соколов" написал:
Бондарь Наталия пишет:
Если дата изменится, этот экземпляр отменится. Но запустится экземпляр 2 этого же процесса. И будет также выполняться, пока не завершится, или пока не изменится опять дата. И так сколько угодно раз.
Да, такую схему и обсуждали. Но если кто-то захочет удалить это напоминание, то не сможет это сделать, так как по нему запущен процесс.
Владимир, уведомления можно отменить - они не удаляются. Также хочу обратить внимание, что начиная с версии 7.8.2 удаление записи игнорирует наличие запущенного процесса. Это значит, что запись будет удалена.