Дополнительно - перспектива данных

From RunaWFE
Revision as of 13:18, 22 November 2020 by Maintenance script (talk | contribs) (Imported from text file)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Описание бизнес-процесса. (Перспектива данных).

В соответствии со строгим определением бизнес-процесса перспектива данных бизнес-процесса соответствует набору его переменных, а также данных внешних информационных систем, которые используются при исполнении бизнес-процесса. Переменные бизнес-процесса могут являться входящими и исходящими параметрами при взаимодействии BPM-системы с информационными системами предприятия.

При помощи внутренних переменных происходит обмен информацией между Действиями процесса и, как следствие, между внешними информационными системами, т. е. бизнес-процесс может переносить информацию в корпоративной информационной среде между разнородными информационными системами. Переменные бизнес-процесса также используются при выборе конкретного внутреннего перемещения точки управления между узлами по какому-либо из возможных переходов.


Так как данные внешних информационных систем предполагаются произвольными, под Перспективой данных будет подразумеваться только Перспектива данных с точки зрения разработки BPM-системы, а именно – все множество переменных бизнес-процесса.


Мы предполагаем, что все переменные бизнес-процесса являются глобальными (однако мульти-действие на время своего выполнения может порождать копии некоторых переменных – см. ниже). Доступ «извне» к переменным бизнес-процессов возможен только через ботов или пользователей.


Связь переменных подпроцесса с переменными бизнес-процесса.

  • Изменение значений переменных бизнес-процесса на основании значений переменных подпроцесса происходит только в случае подпроцесса с синхронизацией.
  • Связь осуществляется по именам переменных:
    • Если в подпроцессе есть переменная, совпадающая по имени с переменной бизнес-процесса и в бизнес-процессе она определена к моменту запуска подпроцесса, то ее значение копируется в соответствующую переменную бизнес-процесса.
    • Если в бизнес-процессе есть переменная, имя которой совпадает с именем одной из переменных подпроцесса, то при окончании подпроцесса значение переменной подпроцесса копируется в соответствующую переменную бизнес-процесса

Если какие-то переменные бизнес-процесса в подпроцессе надо использовать «только для чтения», то в подпроцессе не надо менять значения переменных с соответствующими именами. Замечание. Если «параллельно» подпроцессу другой поток процесса изменит значение переменной бизнес-процесса, переданной в подпроцесс «только для чтения», то подпроцесс при завершении «восстановит» старое значение этой переменной. – Подпроцессы надо использовать аккуратно.


Связь переменных мульти-действия с переменными бизнес-процесса

Предполагается для каждого узла-действия типа мульти-действие ввести в свойствах узла таблицу со следующими полями:

  • Обычная переменная БП
  • Переменная БП, использующаяся в мульти-действии как локальная
  • Операция
    • Сумма, Максимум, Минимум и т.д. (предопределенные функции)
    • Добавить в контейнер (если глобальная переменная является переменой-контейнером, например, списком)
    • Кастомизированное выражение (в этом случае после выполнения всех экземпляров мульти-действия в рамках одной транзакции в произвольном порядке последовательно выполняется это выражение для обычной переменной и локальной переменной каждого экземпляра мульти-действия)

В момент прихода управления в мульти-действие, для каждого экземпляра мульти-действия создается своя копия переменной, имя которой присутствует в колонке «Переменная БП, использующаяся в мульти-действии как локальная». После ухода управления из мульти-действия все эти копии переменной уничтожаются.


Понятие формула.

Вводится новая сущность. Кроме Исполнителя и Бота с узлом-действием бизнес-процесса (а также с переходом) может быть связана Формула. Если задача бота обеспечить взаимодействие WF-системы и сторонних приложений через изменение значений переменных бизнес-процесса, то задача Формулы – произвести некоторые преобразования над значениями переменных бизнес-процесса, не обращаясь к сторонним приложениям. Так же, как и у бота, у формулы есть списки входящих и исходящих параметров, однако, в отличие от бота, программный код, непосредственно реализующий формулу, будет помещен редактором бизнес-процессов в файл-архив бизнес-процесса.

Также формула может быть связана с узлом типа «исключающий выбор». В этом случае она должна возвращать переменную, значением которой должно быть имя выбранного исходящего перехода.

Реализация формул. Язык формул.

На программном уровне формулу будет реализовывать Java-класс (набор связанных Java-классов), который в момент деплоймента бизнес-процесса в ядро системы должен находиться в файле-архиве бизнес процесса. В случае узла типа «исключающий выбор» определенный метод этого класса в зависимости от значений параметров должен возвращать имя перехода, который будет выбран в данном узле. Предполагается реализовать следующие варианты работы разработчика бизнес-процесса с Формулами:

  • Будет существовать возможность вызова из редактора бизнес-процессов различных Java IDE, в которых можно будет непосредственно разработать соответствующие Java-классы. Далее, после передачи управления обратно редактору бизнес-процессов эти классы будут размещены файле-архиве бизнес-процесса.
  • В редакторе бизнес-процессов можно будет в соответствующей форме написать скрипт на специальном скриптовом языке (BeanShell), далее редактор самостоятельно сгенерирует соответствующий скрипту Java-класс и положит его в файл-архив бизнес-процесса. Этот способ более удобен, чем предыдущий, однако более ограничен (не все Java классы, которые возможно разработать при помощи IDE, можно будет получить таким способом)
  • Из редактора бизнес-процессов можно будет вызывать различные Wizard’ы, при помощи которых пользователь в привычном для себя графическом интерфейсе (например, Excel-подобном) задаст выражения, на основе которых редактор бизнес-процессов сгенерирует соответствующий Java-класс и разместит его в файле-архиве бизнес-процесса (возможно, редактор сначала «переведет» действия пользователя в BeanShell скрипт, и только потом трансформирует его в Java-класс). Этот способ более удобен, чем предыдущий, однако еще более ограничен (не все скриптовые выражения, которые возможно составить при помощи предыдущего подхода, можно будет получить таким способом)


Предлагается для несложных действий в качестве Wizard’а для формирования Java классов узла типа «исключающий выбор» использовать интерфейс, похожий на лист Excel. На ячейки этого листа можно отображать переменные бизнес-процесса, являющиеся «простыми» переменными Java, а также для Java классов – переменных бизнес-процессов - их «простые» члены класса (переменные «простых» типов Java, для которых предусмотрены get() и/или set() методы). Вот список типов, которые мы называем «простыми»:

  • long
  • double
  • boolean
  • String

Предполагается, что на листе Wizard’а также будут доступны стандартные Excel’евские функции.

Замечание 1. Точке старта процесса могут соответствовать значения переменных, передаваемых в бизнес-процесс в качестве параметров. В частности, точке старта процесса может соответствовать стартовая форма.

Замечание 2. jboss jbpm проще соответствующих реализаций спецификаций WfMC, так как вместо реализации сложных конструкций определения внешних функций и параметров он «напрямую» использует Java. Поэтому для систем, основанных на jboss jbpm, наиболее естественным в этих условиях является использование в качестве переменных бизнес-процесса экземпляров сериализуемых Java-классов.