|
|
|
Как такое реализовать через бизнес-процесс? | ☑ | ||
|---|---|---|---|---|
|
0
mikecool
03.04.13
✎
09:48
|
Имеем заказ покупателя, есть схема маршрута его исполнения. Но заказ может отгружаться частями, соотвественно часть маршрута может повторяться последовательно-параллельно. Как такое реализовать через механизм БП?
Точку разделения как то прикрутить? Но она должна сразу указывать на все возможные варианты. Последовательные отгрузки (типа часть отгрузили, потом еще часть) реализуются просто, а вот с параллельной у меня затык. Кто нить реализовал такое? Пока думается част ьпроцесса, связанную с отгрузкой, выделить в подпроцесс и генерить их нужное количество по мере необходимости, но может есть способ проще? |
|||
|
1
drcrasher
03.04.13
✎
09:49
|
(0) подпроцесс с условием на полную отгрузку
|
|||
|
2
sda553
03.04.13
✎
09:55
|
Ты все правильно придумал, подпроцессы отгрузки, которые гененрировать по мере необходимости.
|
|||
|
3
mikecool
03.04.13
✎
09:55
|
(1) но даже подпроцесс не даст варианта параллельности
|
|||
|
4
mikecool
03.04.13
✎
09:56
|
(2) и каждый из подпроцессов привязывать к точке основного процесса?
|
|||
|
5
drcrasher
03.04.13
✎
09:56
|
(3) а зачем тебе параллельность?
пока всё не отгрузили, основной БП стоит и ждёт. или что-то я упускаю? |
|||
|
6
mikecool
03.04.13
✎
09:57
|
(5) часть отгрузки могут отправить на склад на собрать-спаллетировать, при этом может параллельно пойти еще одна часть...
|
|||
|
7
mikecool
03.04.13
✎
09:58
|
а вот самый интересный момент будет - если две параллельные отгрузки придется собрать в одну машину )))
|
|||
|
8
Cyberhawk
03.04.13
✎
10:00
|
У нас сборка - отдельный БП. А маршрутизация происходить до начала сборки
|
|||
|
9
Cyberhawk
03.04.13
✎
10:00
|
*происходит
|
|||
|
10
Cyberhawk
03.04.13
✎
10:00
|
После начала маршрутизации заказ корректировать в плюс уже нельзя
|
|||
|
11
mikecool
03.04.13
✎
10:02
|
(10) то, что заказ не корректируется, самое сложное, поскольку это в умах надо править. как ьы у нас тоже не корректируется, но "вот тут классный дядя Вася, которому я обязан" и понеслась ))
|
|||
|
12
Cyberhawk
03.04.13
✎
10:05
|
(11) у нас если дядя Вася нарисовался до начала процесса маршрутизации, то проблем нет - создаем еще один заказ
|
|||
|
13
mikecool
03.04.13
✎
10:08
|
(12) ясно
таки вопрос(пока в голове не укладывается) - если каждую частичную отгрузку оформить подпроцессом - как его привязывать и к каким точкам маршрута БП его можно привязать, если он не был описан явно? |
|||
|
14
Cyberhawk
03.04.13
✎
10:10
|
(13) а что включает в себя частичная отгрузка? Сборка части изначального заказа + отгрузка (РТУ)?
А увеличение заказа в плюс сюда не входит? |
|||
|
15
sda553
03.04.13
✎
10:11
|
(4) я бы не привязывал, хотя можно и привязать:
я бы сделал как то так: Оснлвной процесс step Обработка генерации параллельных отгрузок step Задача исполнение отгрузок Каждый из подпроцессов в свою оцередь в конце имеет step Условие все параллельные процессы завершены Нет Завершение текущего процесса Да Завершить "Задача исполнение отгрузок" главного процесса |
|||
|
16
mikecool
03.04.13
✎
10:15
|
(14) нет, изменение заказа пока не буду предусматривать, поскольку могут принять административные меры в этом направлении.
Под частичной отгрузкой понимаю отгрузку всего заказа итерациями(если такое допустимо по соглашению) по мере наполнения запасов (15) я не могу знать, сколько отгрузок у меня может быть. Может одна(в идеале), а может "пля, люди!!! дайте мне пока одну эту позицию, а остальное отгружайте, как будет приходить". :) |
|||
|
17
Cyberhawk
03.04.13
✎
10:20
|
(16) а что мешает после каждой отгрузки возвращать бизнес-процесс к началу исполнения, попутно запоминая уже то что отгрузили?
Например, заказ 10 позиций, в первый раз отгрузили 2, запомнили это. После возвращения БП к началу мы будем знать, что надо отгрузить по заказу 10-2=8 позиций. |
|||
|
18
sda553
03.04.13
✎
10:20
|
(16) НоваяНежданнаяОтгрузка = БизнесПрлцессы.бизнесподпроцессПараллельный.Создать();
НоваяНежданнаяОтгрузка.РодительскийПроцесс= НашаОтгрузка; НоваяНежданнаяОтгрузка.РодительскаяЗадача = ЗадачаИсполненияОтгрузок; Как то так |
|||
|
19
mikecool
03.04.13
✎
10:23
|
(18) ога, спасибо, как то так и предполагал, но как собака - не мог сказать )))
(17) в таком случае - пока не отгрузили первую часть, не могут параллельно отгружать вторую часть... а вдруг стрельнет и придется так делать |
|||
|
20
mikecool
03.04.13
✎
10:37
|
гм.. не нашел у БП-объекта свойства или метода установки родительского процесса, похоже связь только через ведущую задачу?
|
|||
|
21
mikecool
03.04.13
✎
10:53
|
провел эксперимент - при авто-создании вложенного процесса по карте маршрута создал новый БП, который пробовал привязывать с пом. ведущей задачи - он не отразился ни на схеме, ни в структуре подчиненности ((
|
|||
|
22
sda553
03.04.13
✎
11:36
|
(20) А зачем? Реквизиь с таким именм сделай
(21) Сам отрази |
|||
|
23
mikecool
03.04.13
✎
11:48
|
(22) "Сам отрази" - лишние телодвижения, которые наврядли кто оценит )
|
|||
|
24
Лефмихалыч
03.04.13
✎
11:55
|
(3) не понял, как это не даст? Что помешает вложенным процесса мыполняться параллельно?
|
|||
|
25
vde69
03.04.13
✎
11:57
|
цикличный БП, на каждом цикле создаются задачи
1. Ожидание отгрузки (если еще не все отгрузили) 2. Отгрузка (сама отгрузка) |
|||
|
26
mikecool
03.04.13
✎
12:14
|
(24) да, вложенные подпроцессы могут исполняться параллельно, но - этого нельзя отразить на одной схеме "исходного" процесса, либо дорисовывать их вручную на схему...
(25) цикл - это как бы и придумано, но возникла мысль, что возможно будут ситуации параллельных отгрузок, а в данном случае не получится запустить вторую отгрузку, не выполнив полностью первую |
|||
|
27
sda553
03.04.13
✎
12:26
|
(26) Я уже отошел от идеи вложенных процессов еще в (15)
Просто независимые БП. Но в одном БП, который мы называем подчиненным есть реквизит ссылки на родительский БП и на родительскую задачу. Последний шаг этого процесса, указанный в (15) Все параллельные процесс завершены - делаем запрос выбрать количество(*) из БизнесПроцесс.ПодчиненныйБП где не(ссылка=&Текущий) и (РодительскаяЗадачаРевизит =&текЗадачаРодительская) и не (Завершен) Получаем больше 0 этот процесс уходит просто на завершение Получаем 0 процесс поворачивает на обработку завершения родительской задачи. Обработка завершения родительской задачи, берет Ссылку на родительскую задачу и завершает ее. Все, родительский БП (который на самом деле нзависимый БП, просто мы его так назыыаем) пошагал дальше. Все нежданные отгрузки делаются как в (18) |
|||
|
28
mikecool
03.04.13
✎
12:41
|
(27) да, я тоже склоняюсь к этой схеме и уже почти приступил к реализации, осталось только согласовать
|
|||
|
29
Лефмихалыч
03.04.13
✎
14:34
|
(26) ну, понятен план - отразить на схеме нельзя. А было бы можно, как бы это выглядело?
Да и у вложенных БП есть своя карта, на которой видно, где он находится и ни чего не мешает какой-нить отчет сваять, в котором состояния всех БП по заказу будут. У нас с импортным товаром похожая на (0) ситуация, только там есть один договор со спецификацией объема, он разшелушивается на заказы, заказы расшелушиваются на поставки, поставки плывут/едут к таможне, с которой каждая поставка может вывозщиться частями. В общем - полный ад и погибель. Контроль этого всего барахла как раз через тьму БП, которые один из другого запускаются (NB! это не вложенные БП, а отдельные), и пару регистров накопления. Картина параллельности и перпендикулярности различных кусков одного исходного заказа смотрится не в картах маршрутов, а в отчете по регистрам накопления - там показывается, что, сколько, где, почем и когда будет и где. |
|||
|
30
mikecool
03.04.13
✎
16:04
|
(29) а вот это мне еще предстоит )))
|
|||
|
31
mikecool
03.04.13
✎
16:05
|
"у, понятен план - отразить на схеме нельзя. А было бы можно, как бы это выглядело? " а нехай бы система сама рисовала по горизонтали новый вложенный подпроцесс )))
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |