Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WF SRS 1.4.1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
275.97 Кб
Скачать

Функции workflow engine

Основные объекты engine:

Документ – пользовательский документ, проходящий по маршруту.

Форма этого документа использует WF подформу, на которой находятся основные пользовательские функции engine: «Взять в работу», «Завершить» и т. д.

Пользовательские функции подформы в свою очередь вызывают функции API библиотеки WF script library. Эти функции для своей работы используют как данные workflow полей документа, так и данные профиля процесса. Также для отсылки почтовых напоминаний библиотека использует почтовые шаблоны.

Форма профиля процесса использует библиотеку для выполнения различных UI функций, например выбора процессов из БД определения процессов.

Агенты автоактивностей (если они используются в маршрутах конкретных бизнес-процессов) вызываются специальным агентом по расписанию использующим библиотеку.

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

  1. Статус документа – статус документа (корректность документа, взят в работу, свободен)

  2. Информация о процессе – имя, версия, ссылка на документ текущего процесса

  3. Информация о профиле – имя, версия, ссылка на документ текущего профиля процесса

  4. Информация о текущей активности – имя, ссылка на документ активности

  5. Информация доступа к документу – поля с информацией о читателях и редакторах документа, в которых хранится информация о текущем ответственном документа либо потенциальных ответственных, администраторах, команде.

  6. Информация о поручении - был ли поручен документ, кому поручен, можно ли поручать дальше, может ли поручитель завершать работу над документом

  7. История – информация о том, какой пользователь в какой момент выполнял какое действие (связанное с workflow) над документом. Например: «11.11.2007 Иван Иванович Иванов завершил работу в состоянии «Черновик»»

2.3.3.1. Основные функции engine

Прецедент: Инициировать документ по профилю

Цель: Намерение пользователя «запустить» документ по маршруту процесса

Основной пользователь: Потенциальные ответственные

Сценарий:

  1. Пользователь выполняет функцию «Инициировать документ по профилю». Эта функция, как правило, находится внутри функции более высокого уровня «Создать документ»

  2. engine находит документ профиля, производит необходимые проверки прав пользователя на выполнение операции инициации

  3. engine выполняет действия инициации, заполняет поля документа, хранящие информацию о текущем выполнении процесса

  4. engine выполняет действие «Взять в работу»

Альтернативные сценарии:

2а. engine не находит документ профиля.

3а. Операция инициация завершается с кодом ошибки.

3б. engine выполняет действия инициации, заполняет поля документа, хранящие информацию о текущем выполнении процесса. Во время этой операции происходит ошибка

4б. Операция инициация завершается с кодом ошибки.

Прецедент: Взять в работу

Цель: Намерение пользователя взять в работу документ, в котором пользователь в соответствии с маршрутом процесса является одним из потенциальных ответственных

Основной пользователь: Потенциальные ответственные

Сценарий:

  1. Пользователь выполняет функцию «Взять в работу»

  2. engine производит «захват» документа для текущего пользователя. Текущий пользователь указывается как Ответственный, документ переходит в режим редактирования.

Альтернативные сценарии:

1а. Пользователь выполняет функцию «Взять в работу». Пользователь не указан в списке потенциальных ответственных документа

2а. engine не производит «захват» документа для текущего пользователя.

Прецедент: Добавить в команду (изменить команду)

Цель: Намерение пользователя добавить других пользователей в «команду», либо изменить состав команды, чтобы те имели возможность работать с текущим документом наравне с ответственным. Команда не имеет права выполнять иные действия кроме как редактировать документ.

Основной пользователь: Ответственный

Сценарий:

  1. Пользователь выполняет действие «Добавить в команду»

  2. engine открывает диалоговое окно с возможностью выбора одного или нескольких персон

  3. Пользователь выбирает одного или несколько персон

  4. engine добавляет их в поля документа, хранящие информацию о команде

  5. engine посылает пользователям входящим в команду уведомление

Альтернативные сценарии:

3а. Пользователь не выбрав ни одной персоны закрывает диалог

4а. engine не производит никаких действий

3б. Пользователь убирает из списка одну или несколько персон

4б. engine убирает удаленные персоны из поля документа, хранящие информацию о команде

Прецедент: Завершить работу

Цель: Намерение пользователя завершить работу над документом в текущем состоянии, и перевести его в следующее состояние.

Основной пользователь: Ответственный

Сценарий:

  1. Пользователь выполняет действие «Завершить работу»

  2. engine проверяет необходимые условия для завершения работы

  3. engine определяет следующее состояние документа в маршруте

  4. engine заполняет необходимые поля в документе хранящие информацию о текущем выполнении процесса.

  5. engine сохраняет и закрывает документ

  6. engine посылает потенциальным ответственным следующего состояния уведомление, согласно настройкам профиля процесса

Альтернативные сценарии:

3а. engine определяет что состояний в которые может перейти документ несколько

4а. Если тип переходов в следующие состояния «Выбор», то engine открывает диалоговое окно со списком возможных переходов

5а. Пользователь выбирает один из переходов.

6а. Выполнение продолжается с пункта 3 основного сценария.

3б. engine определяет что состояний в которые может перейти документ несколько

4б. Если тип переходов в следующие состояния «Выбор», то engine открывает диалоговое окно со списком возможных переходов

5б. Пользователь не выбирает ни один из переходов, закрывает диалог

6б. engine не производит перевода документа в следующее состояние.

3в. engine определяет что состояний в которые может перейти документ несколько

4в. Если тип переходов в следующие состояния «По условию», то engine определяет какой из переходов удовлетворяет условиям.

5в. Выполнение продолжается с пункта 3 основного сценария.

3г. engine определяет что состояний в которые может перейти документ несколько

4г. Если тип переходов в следующие состояния «По условию», то engine определяет какой из переходов удовлетворяет условиям.

5г. Если ни одно из условий не выполняется, engine выдает пользователю сообщение об ошибке

6г. engine не производит перевода документа в следующее состояние.

Прецедент: Поручить

Цель: Намерение пользователя поручить работать над документом в текущем состоянии другого пользователя.

Основной пользователь: Ответственный

Сценарий:

  1. Пользователь выполняет действие «Поручить»

  2. engine открывает диалоговое окно с возможностью выбора одного или нескольких персон

  3. Пользователь выбирает одну персону

  4. engine добавляет их в поля документа, хранящие информацию об ассистенте, изменяет внутренний статус документа

  5. engine посылает ассистенту уведомление о поручении

Альтернативные сценарии:

3а. Пользователь не выбрав персоны закрывает диалог

4а. engine не производит никаких действий

Прецедент: Забрать порученное

Цель: Намерение пользователя забрать порученный ранее документ

Основной пользователь: Ответственный

Сценарий:

  1. Пользователь выполняет действие «Забрать порученное»

  2. engine удаляет персону которой был поручен документ из полей документа, изменяет внутренний статус документа

  3. engine посылает ассистенту уведомление о том что поручение было отозвано

Альтернативные сценарии: нет

Прецедент: Вернуть порученное

Цель: Намерение пользователя вернуть порученный ему документ

Основной пользователь: Ассистент

Сценарий:

  1. Пользователь выполняет действие «Вернуть порученное»

  2. engine удаляет персону которой был поручен документ из полей документа, изменяет внутренний статус документа, документ сохраняется и закрывается

  3. engine посылает ответственному уведомление о возврате поручения

Альтернативные сценарии: нет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]