Е. Всяких - Практика и проблематика моделирования бизнес-процессов
В приложении 1 приведен пример кода функции getassmodpar (получить ассоциированную с текущей функцией подмодель с нужным видом транспорта).
Подобным образом реализуется чувствительность модели к другим входным параметрам.
При написании и отладке скриптов применялся встроенный в среду ARIS интерпретатор языка программирования Sax Basic, окно экранного редактора которого приведено на рис. 12.
Рис. 12
Для доступа к специфическим средствам языка – компонентам объектовой среды ARIS – применялись стандартные библиотеки ATARep.dll и ATDRepDb.dll среды ARIS (рис. 13).
Рис. 13
При помощи диалогового окна «ActiveX Automation Members» можно получить доступ как к средствам языка Sax Basic, так и к типам данных – объектам среды ARIS, информацию обо всех их свойствах (Properties) и методах, реализованных через процедуры (Sub) и функции (Function), о типе возвращаемого значения, количестве и типах параметров методов (рис. 14).
Рис. 14
При необходимости можно подключить другие библиотеки из опубликованного в системном реестре набора dll-ресурсов. Доступ к этой возможности предоставляется через опцию Tools/Referenses… окна экранного редактора среды ARIS (рис. 15).
Рис. 15
Интерактивный режим прохождения в реальном масштабе времени бизнес-процесса с учетом заданных параметров входных условий и принятия бизнес-решений
В штатном режиме среда ARIS предоставляет стандартные возможности навигации, состоящие в ручном прохождении по моделям путем или выбора имени модели из окна Explorer, или – на модели – выделения функции, имеющей ассоциации с другими подмоделями, выбора ассоциированной подмодели из списка закладки Assignments окна просмотра модели. В этих случаях можно увидеть модель и ее объекты, просмотреть свойства модели и ее объектов, можно изменить модель и любое из ее свойств, изменить любой объект и любое из его свойств. Формирование статистики обхода или любое документирование воздействий невозможно. При помощи специально написанного скрипта можно:
♦ произвести фиксацию «следа», «тропы», по которой происходил обход моделей;
♦ получить возможность интерактивного режима принятия бизнес-решений;
♦ получить подробный протокол обхода;
♦ получить новые модели, на которых отражены только те объекты, которые были использованы при обходе исходных моделей.
Список сервисного функционала может быть значительно расширен в зависимости от бизнес-потребностей заказчика и возможностей разработчика.
Навигация по модели производится в автоматическом режиме, в реальном масштабе времени. По соглашениям о моделировании модель может начинаться и завершаться любой совокупностью функций, интерфейсных функций, событий. Для облегчения программирования возможны следующие соглашения:
♦ модель верхнего уровня может начинаться событием или интерфейсным процессом с детализацией и заканчиваться событием или интерфейсным процессом с детализацией или интерфейсным процессом без детализации;
♦ модель, являющаяся детализацией, начинается и заканчивается событием;
♦ интерфейсный процесс с детализацией вначале ссылается на модель-предшественник;
♦ интерфейсный процесс с детализацией в конце ссылается на модель-последователь;
♦ если модели связаны через интерфейсные процессы, то должна выполняться дисциплина: на модели-источнике – событие 1, интерфейсный процесс 1, ссылающийся на модель-приемник, на модели-приемнике – интерфейсный процесс 1, но ссылающийся на модель-источник, затем событие 1;
♦ интерфейсный процесс без детализации в конце завершает процесс и обход.
Последовательное применение таких соглашений облегчит навигацию и понимание связей между моделями.
При моделировании часто возникает необходимость выбора пути, по которому будет развиваться бизнес-процесс в зависимости от принятого бизнес-решения.
Точки принятия бизнес-решений реализованы путем введения в модель совокупностей объектов – правил, за которыми следуют совокупности многочисленных событий, объясняющих альтернативы дальнейшего прохождения бизнес-процесса в зависимости от сделанного пользователем бизнес-решения (рис. 16).
Рис. 16
Если в процессе обхода модели встречается правило, то сначала анализируется его тип.
Если правило AND, то начала альтернативных ветвей заносятся в стек, затем в автоматическом режиме продолжается обход ветвей одна за другой, диалоговый режим не возникает. Извлечение из стека начала очередной ветви происходит по достижении конца текущей ветви. Для организации такого режима необходимо, чтобы при ручном создании модели каждому открывающему правилу соответствовало аналогичное закрывающее правило.
Если правило OR, то формируется список альтернативных ветвей процесса, который в диалоговом режиме предлагается пользователю. Пользователь выбирает любую комбинацию ветвей, начала этих ветвей заносятся в стек, затем в автоматическом режиме продолжается обход ветвей одна за другой.
Если правило XOR, то также формируется список альтернативных ветвей, который предъявляется пользователю в диалоговом режиме. Пользователь сможет в этом случае выбрать только одну ветвь. Начало ветви в стек не заносится, затем в автоматическом режиме продолжается обход текущей ветви.
Дисциплина доступа к стеку: последним вошел – первым вышел (LIFO).
Стек может быть организован несколькими способами.
Если надо хранить несколько параметров для одного объекта, применяется или многомерный массив вариантного типа, в каждом измерении которого хранится один параметр объекта, или одномерный массив структур, в котором отдельная структура хранит параметры отдельного объекта.
Если надо хранить один параметр для каждого объекта, может подойти или одномерный массив вариантного типа, или список. Список в этом случае более предпочтителен.
Так как операции с объектами требуют много ресурсов, то обязательна практика возврата ресурсов системе перед завершением работы всех процедур и функций скрипта. Для списка это делается путем присвоения значения Nothing, для массива придется писать код, который обнулит ссылки каждого задействованного объекта в ячейке массива.
На рис. 17 приведен пример выбора альтернативной ветви процесса для правила XOR.
Рис. 17
В приложении 1 приведен пример кода, реализующего этот функционал. Это процедура XOROpen. Строки диалогового окна формируются при помощи функции Getname(), код которой также приведен в приложении 1.
Цветовое выделение «маршрута» на фоне общей модели
В стандартном режиме ARIS позволяет просматривать модели любой группы, свойства модели и любого из ее объектов, менять свойства модели и любого из ее объектов. Журнал посещений моделей не ведется, поэтому запомнить путь, повторить просмотр, пометить как-то просмотренные модели и т. п. невозможно.
Для реализации подобного функционала создан скрипт, позволяющий в интерактивном режиме пройти по любой модели или группе моделей, сделать осознанный выбор альтернативного пути развития бизнес-процесса, пометить уже пройденный путь (выделить отличным от стандартного цветом пройденные объекты), получить журнал – список пройденных моделей. В процессе прохода по модели формируется подробный журнал, типа Технологической карты, в котором отмечаются все точки принятия решений, все пройденные функции, фиксируется окружение каждой пройденной функции.
Создан также скрипт, при помощи которого можно повторить обход модели, так как пройденные объекты на модели помечаются не только цветом, но и последовательным номером. Кроме того, этот скрипт использует навигационную информацию из журнала, созданного при первом проходе.
Создан также скрипт, который производит восстановление всех моделей из списка просмотренных до первоначального состояния – восстановление цветов, сброс номеров объектов, сброс других сервисных атрибутов моделей и объектов на них.
На рис. 18 приведен пример использования описанного скрипта, под ним – список моделей, пройденных скриптом за последний сеанс работы.
Рис. 18
Изменение цвета объекта и присвоение ему последовательного номера производятся путем назначения некоторым атрибутам объектов специальных значений.
Пример кода, реализующего этот функционал, приведен в приложении 2.
Это функции setfunnomer() и setcolor(). Список пройденных моделей:
1. Оформление запрещения выпуска товаров.
2. Проставление штампа «Выпуск запрещен» и соответствующей записи, подписи и ЛНП.
3. Проставление штампа «Выпуск разрешен» и соответствующей записи и ЛНП.