![]() |
![]() |
![]() |
|
БизнесПроцесс. Как завершить его из любой точки выполнения. | ☑ | ||
---|---|---|---|---|
0
H A D G E H O G s
08.02.10
✎
09:15
|
День добрый.
Ситуация - есть бизнес-процесс. Примитивный. Точка старта->Точка действия1->Точка действия2->Точка завершения. Хочу иметь возможность, находясь в ЛЮБОЙ ТОЧКЕ действия (Точке действия1, либо в Точке действия 2) ПО ЖЕЛАНИЮ завершить процесс. Фактически хочу иметь возможность альтернативной НЕОБЯЗАТЕЛЬНОЙ ветви выполнения. Альтернативную обязательную ветвь можно сделать через Точку разделения. Как сделать необязательную (кроме как через изврат с Точками условий) ветвь выполнения - ума не приложу. |
|||
1
vde69
08.02.10
✎
09:18
|
делаешь цикл, условие с ветвлением, каждая ветка - ведет к новой точке, в условии ветвления проверяй аварийный выход
|
|||
2
H A D G E H O G s
08.02.10
✎
09:20
|
(1) Тоесть, на каждую точку действия подвешивать условие с ветвлением?
|
|||
3
vde69
08.02.10
✎
09:21
|
(2) нет, счас скрин сделаю
|
|||
4
H A D G E H O G s
08.02.10
✎
09:22
|
(3) Спасибо
|
|||
5
strange2007
08.02.10
✎
09:25
|
Тут небольшая непонятка: у Вас выходы плановые или не плановые? Если плановые, тогда логично описывать весь маршрут с выходами, в противном случае схема БП не будет отражать реальный БП. А вот если экстренный выход, тогда отражать в схеме не надо и выход инициировать программно.
Как правило процессы имеют экстренные выходы из любой точки, при этом на схеме не отображается. Пример тому, пользователь отказался доделывать его или БП заведен ошибочно |
|||
6
vde69
08.02.10
✎
09:26
|
||||
7
H A D G E H O G s
08.02.10
✎
09:34
|
(5) Выходы внеплановые.
|
|||
8
strange2007
08.02.10
✎
09:36
|
(7) Тогда не надо их отражать в карте. Выход осуществлять программно. Почему? Да потому что в любом БП есть такие экстренные завершения, но их ни когда не показывают явно. В противном случае получится схема из одних выходов (сам пробовал, чушь полная получается и директора смеются потом)
|
|||
9
H A D G E H O G s
08.02.10
✎
09:37
|
(6) Офигеть.
Я бы так не придумал. А последовательность действий определяется программно? Типа - если выполнено действие2 - переходим к действию 3? |
|||
10
H A D G E H O G s
08.02.10
✎
09:37
|
(8) см (6)
|
|||
11
vde69
08.02.10
✎
09:39
|
(9) да, обычно такая схема нормально работает если для всего БП используем "статусы", тогда условие будет простое.
Кроме того такая схема позволяет вернутся на шаг назад (что штатные БП не умеют) |
|||
12
vde69
08.02.10
✎
09:42
|
(11) вот реальный процесс http://slil.ru/28611790 где из любой точки есть аварийный выход
|
|||
13
H A D G E H O G s
08.02.10
✎
09:44
|
(11) Знал бы раньше.
Эхх, переделывать придется похоже порядочно. |
|||
14
MRAK
08.02.10
✎
09:44
|
(12) круто!
|
|||
15
strange2007
08.02.10
✎
09:50
|
мдаааа, процессик получился ни фига не процесс. Автор, не повторяйте ошибок чужих, пересмотрите взгляды на процессы. Гляньте на карты процессов из стандартных конф, например в УПП
|
|||
16
1CPapaKarlo
08.02.10
✎
09:50
|
В любой точке бизнес-процесса если необходимо его завершить в модуле БП:
1.Запросом выбрать все задачи по данному БП и удалить их . 2.Завершен = Истина; 3.Записать(); |
|||
17
strange2007
08.02.10
✎
09:51
|
(16) зачем удалять задачи? Установить признак завершения, а то вдруг захочется потом поглядеть
|
|||
18
1CPapaKarlo
08.02.10
✎
09:53
|
Если задачи не удалить то на них будут ссылки и они будут появляться у пользователей, а выполнить они их не смогут, т.к. БП уже не будет - будет генерироваться ошибка...
|
|||
19
strange2007
08.02.10
✎
09:54
|
Их пометить как завершенными и они не будут появляться у пользователей
|
|||
20
1CPapaKarlo
08.02.10
✎
09:55
|
ну может быть и так...можно поэкспериментировать... но задачи по любому надо изменять...
|
|||
21
vde69
08.02.10
✎
10:02
|
(15) установкой признака "завершен" у БП фактически не завершенного - это кривость, так как у него остаются не закрытые текущие задачи в МАРШРУТЕ (не путать с обьектами "задачи"), эта кривость вылезает боком практически при любых копаниях в потрохах БП.
Цикл - это нормальный нелинейный БП, который понятен всем нормальным постановщикам. Линейный БП - вообще обычно особого смысла не имеет, так как он вполне реализуем например подчиненными документами |
|||
22
MRAK
08.02.10
✎
10:06
|
(21) + 100
|
|||
23
strange2007
08.02.10
✎
10:06
|
(21) В ветвистом БП иногда много точек не пройденных! А задачи то все как раз и завершенные будут. Я говорил задачам ставить признак "Выполнено". А БП не надо завершать.
|
|||
24
strange2007
08.02.10
✎
10:07
|
(21) Сейчас разбираю такой "линейный" БП на галочках. Это сложно и ни кому не нужно. В УПП закрытие месяца тоже не на галочках сделано
|
|||
25
vde69
08.02.10
✎
10:12
|
(23) я не про непройденый, а про активные точки маршрута, которые будут в массиве ФормируемыеЗадачи при создании задачи.
// //Процедура РаботаПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) // собствено я спорить не буду, я знаю, что закрывать БП любым способом кроме исполнения точки "Завершения" - это косяк, так-же как и ставить признак задачи без вызова метода - это тоже косяк. |
|||
26
H A D G E H O G s
08.02.10
✎
10:15
|
Идея в (6) мне подходит идеяльно. Посмотрим, что будет на практике.
vde69 - тебе респект и уважуха. |
|||
27
1CPapaKarlo
08.02.10
✎
10:31
|
(21)К сожалению ничего не слышал о мифических внутренних задачах...
Посмотрите внимательнее код - формируемые задачи это никакие не мифические "внутренние задачи"! Вы с успехом можете ими управлять и программно удалять и добавлять задачи(именно те самые объект задачи как Вы выражаетесь): Процедура РПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если не Элемент.С тогда НоваяЗадача = Задачи.Задача1.СоздатьЗадачу(); НоваяЗадача.БизнесПроцесс = Ссылка; НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.СС.ТочкиМаршрута.Р; НоваяЗадача.Дата = ТекущаяДата(); НоваяЗадача.Наименование = БизнесПроцессы.СС.ТочкиМаршрута.Р.НаименованиеЗадачи; НоваяЗадача.Пользователь = Элемент.Р; ФормируемыеЗадачи.Добавить(НоваяЗадача); НоваяЗадача.Записать(); КонецЕсли; |
|||
28
1CPapaKarlo
08.02.10
✎
10:35
|
(21) и можно посмотреть что происходит в точке завершения БП = он становиться завершенным. Ну в общем то хозяин барин, но у меня это применяется давно и никаких косяков не замечено...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |