
На входе блока Task может быть задано несколько путей с
разными типами рабочих объектов. Действие в блоке Task выполняется
при поступлении на всех входных путях рабочих объектов, то есть
поступление объектов на вход должно быть синхронизировано (рис.
6.8.а).
Рис.6.8. Возможные ситуации использования блоков
Если вместо блока Task использовать блок Merge (рис.6.8.б), то
объекты проходят этот блок не задерживаясь, но они должны
принадлежать одному классу или подклассам одного класса.
Разветвляющиеся процессы
Для разветвления (разделения обработки) рабочих объектов
используется блок Branch:
Ветвление может быть организовано:
1. По вероятности – proportion mode
2. По типу рабочего объекта – type mode
3. По значению атрибута – attribute value
4. По выбору пользователя – prompt mode
5. Свой метод – other
1. Ветвление по вероятности.
Вероятности проставляются на выходных
для этого блока путях в атрибуте branch-proportions.
Рис. 6.9. Модель с ветвлением процесса по вероятности
1. Ветвление по типу рабочего объекта.
Кроме задания типа ветвления,
необходимо, чтобы был заданы соответствующие атрибуты на
выходных путях. Для организации такого ветвления, необходимо
правильно организовать иерархию классов. Значение типа
пропускаемого объекта для входного пути блока разветвления должно
быть суперклассом для подтипов на выходных путях.
84