Файл: Проектирование реализации операций бизнес-процесса «Управление документооборотом».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 03.07.2023

Просмотров: 91

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

1 глава. Аналитическая часть.

1.1 Выбор комплекса задач автоматизации

1.2 Характеристика существующих бизнес-процессов

1.3 Характеристика документооборота, возникающего при решении задачи

1.4 Обоснование проектных решений по информационному обеспечению

1.5. Обоснование проектных решений по программному обеспечению

2 глава. Проектная часть.

2.1. Разработка моделей в среде Platform1. Информационная модель и её описание

2.2 Характеристика нормативно-справочной, входной и оперативной информации

2.3 Характеристика результатной информации

2.4 Общие положения (дерево функций и сценарий диалога)

2.5.Характеристика базы данных

2.6. Структурная схема пакета (дерево вызова программных модулей)

2.7. Описание программных модулей.

2.8. Контрольный пример реализации проекта и его описание

Заключение

Список литературы

Рисунок 74. Программный модуль

  1. Сохранить. Проверить настройки в реестре при добавлении книг читателям.

Настройка процессов

В данной части будет описана моделирование и настройка процесса выдачи книг в библиотеке.

  1. Найти свою сущность читателей. Перейти на вкладку «Процессы». Нажать (Рисунок 75).

Рисунок 75. Программный модуль

  1. В открывшемся окне внести данные:

Код: префикс prc + название biblio + индекс (свой номер): prcbiblio14.

Имя: Процесс библиотека + свой номер: Процесс библиотека 14.

Нажать сохранить (Рисунок 76).

Рисунок 76. Программный модуль

  1. Нажать на карандаш в столбце «Модель» (Рисунок 77).

Рисунок 77. Программный модуль

  1. Откроется среда разработки бизнес процесса (Рисунок 78). Внизу в настройках внести:

Идентификатор процесса (1) (как вводили ранее в коде – prcbiblio14).

Имя (2): Перейти к выдаче книг.

Рисунок 78. Программный модуль

  1. Вытащить «Безусловный запуск». Для этого найти его в событиях запуска и перетащить в поле моделирования (Рисунок 80).

Рисунок 80. Программный модуль

  1. Вытащить «Пользовательскую задачу». Для этого найти его в задачах и перетащить в поле моделирования (Рисунок 81).

Рисунок 81. Программный модуль

  1. Вытащить «Завершение». Для этого щелкнуть на задачу (1). Выбрать завершение (2) (Рисунок 82).

Рисунок 82. Программный модуль

  1. Связать начало с задачей. Для этого щелкнуть на начало (1). Выбрать переход (2). Перетащить переход (3) на задачу (4) (она при этом окрасится зеленым) (Рисунок 66).

Рисунок 83. Программный модуль

  1. Щелкнув по задаче необходимо внизу заполнить ее реквизиты (Рисунок 84).

Id: ut14 (номер указать свой).

Имя: Выдать книгу.

Рисунок 84. Программный модуль

Назначение (Рисунок 85): в открывшемся окне «Присваивание» в поле «Пользователь» найти себя (ваша учетная запись). Сохранить.

Рисунок 85. Программный модуль

  1. Сохранить, нажав , получившийся процесс (Рисунок 86).

Рисунок 87. Программный модуль

  1. Внести реквизиты для потока на завершение (Рисунок 88).

Рисунок 88. Программный модуль

  1. Сохранить процесс: «Сохранить и закрыть редактор» (Рисунок 89).

Рисунок 89. Программный модуль

  1. Далее процесс необходимо опубликовать (развернуть), чтобы его можно было использовать в платформе. Для этого в строке своего процесса (1) нажать стрелку (2) (Рисунок 90). И подтвердить свое действие.

Рисунок 90. Программный модуль

  1. Чтобы была возможность запускать процесс необходимо создать скрипт. Для этого в навигаторе перейти в «Скрипты». Нажать создать (Рисунок 91).

Рисунок 91. Программный модуль

  1. Ввести данные (Рисунок 92):

Код: префикс AAA (латиница) + имя startPrc + индекс 14 (свой номер): AAAstartPrc014

Имя: Запустить процесс014.

Рисунок 92. Программный модуль

  1. Ввести сам скрипт (проверить название своего процесса, он выделен) (Рисунок 93):

if (workflowDataProvider.getProcessesForObject(dataObjectController.instance).findAll{it.completed == null}.size() >= 1) {

messages.warn('Вход читателя в библиотеку был зарегистрирован ранее')

return

}

def procDef = workflowDataProvider.getProcessDefinitionByCodeActual('prcbiblio014')

workflowDataProvider.startProcess(procDef, dataObjectController.instance)

messages.info('Зарегистрирован вход читателя в библиотеку')

Рисунок 93. Программный модуль

Сохранить.

  1. Перезайти в систему. Далее необходимо перейти в построитель сущностей в форму. Нажать кнопку (Рисунок 94).

Рисунок 94. Программный модуль

  1. В открывшемся окне внести имя «Читатель вошел в библиотеку» и нажать карандаш (Рисунок 95).

Рисунок 95. Программный модуль

  1. В поле «Доступность» вместо true вставить выражение:

workflowDataProvider.getProcessesForObject(dataObjectController.instance).stream().filter(s->empty s.completed).toList().size() < 1

  1. Нажать на галочку слева от данного поля, чтобы сохранить. Затем нажать . Сохранить сущность. Подтвердить сохранение.
  2. Зайти в задание «Выдать книги» проверить, что после нажатия на данную кнопку она пропадает с формы, а в «Задания» (в навигаторе) появляется задача «Выдать книги».
  3. Далее необходимо создать еще один скрипт на выдачу книг (Рисунок 96) [29].

Индексы – свои номера.

Скрипт:

//обращаемся к контексту данных текущего процесса

def dataObject = currentProcessController.dataObject

//забираем спеку "aReg" как объект в переменную

def uReg = dataObject.fields.aReg.value

//бежим по всем строкам спеки (по сути это строки из класса "clRegistr", привязанные к спеке)

uReg.each { rg ->

//т.к. напрямую изменить значения строк нельзя, то забираем строку как объект в переменную

def elReg = externalDataSource.getObject('tregistr014', rg.id)

//заполняем дату выдачи книги

elReg.fields.aIssuiDate.value = elUtils.now()

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

elReg.fields.aReturnDate.value = elUtils.dateAdd(elReg.fields.aIssuiDate.value,5,14)

//очищаем дату сдачи книги

elReg.fields.aFactDate.value = null

//сохраняем изменения по строке

externalDataSource.updateObject(elReg)

}

Необходимо проверить выделенные название атрибутов с созданными вами.

Сохранить.

Рисунок 96. Программный модуль

  1. Далее необходимо открыть модель процесса. Вытащить задачу «Выполнить скрипт». Поток на выход перепривязать (перетащить) к скрипту. Нарисовать поток от задачи «Выдать книгу» к скрипту. Задать данному потоку реквизиты (Рисунок 97).

Рисунок 97. Программный модуль

  1. Щелкнуть на задачу скрипта. Внести для нее реквизиты, имя – «Регистрация выдачи книг» (Рисунок 98).

Рисунок 98. Программный модуль

  1. Щелкнуть на поле «Скрипт». Найти свой скрипт, созданный ранее, «Выдача книг 14». Внести выражение (проверить название скрипта) (Рисунок 99):

integrationsDataProvider.runSavedScript("AAA_BiblioReg014",null)

Рисунок 99. Программный модуль

  1. Сохранить и закрыть редактор.
  2. Развернуть процесс.
  3. Проверить введенные изменения. Запустить процесс, зайдя в читателя.
  4. Далее необходимо создать еще один скрипт (Рисунок 100). Заполнить его реквизиты:

Индексы – свои номера.

Скрипт:

//обращаемся к контексту данных текущего процесса

def dataObject = currentProcessController.dataObject

//забираем спеку "aReg" как объект в переменную

def uReg = dataObject.fields.aReg.value

//создаем пустой локальный список строк спеки

def listRg = []

messages.info('start')

//бежим по всем строкам спеки (по сути это строки из класса "tregistr014", привязанные к спеке)

uReg.each { rg ->

//т.к. напрямую изменить значения строк спеки нельзя, то забираем строку как объект в переменную

def elReg = externalDataSource.getObject('tregistr014', rg.id)

//заполняем дату сдачи книги

elReg.fields.aFactDate.value = elUtils.now()

//сохраняем изменения по строке

externalDataSource.updateObject(elReg)

//меняем статус по строке

//statusesDataProvider.setObjectStatus('tregistr014', rg.id, '14')

//наполняем локальный список строк спеки

listRg.add(rg)

}

listRg.each { rg ->

//удаляем связь

uReg.remove(rg)

}

//фиксируем изменения

externalDataSource.updateObject(dataObject)

Необходимо проверить выделенные название атрибутов с созданными вами.

Сохранить.

Рисунок 100. Программный модуль

  1. Далее необходимо перейти в модель процесса. Вытащить задачу «Пользовательская задача», заполнить ее реквизиты (используя свой номер) (Рисунок 101). Назначить исполнителем себя (поле «Назначение») [30].

Рисунок 101. Программный модуль

  1. Переместить поток от начала с «Выдать книги» к данной задаче.
  2. Вытащить задачу «Выполнить скрипт». Заполнить ее реквизиты, Название – «Регистрация сдачи книг» (Рисунок 102).

Рисунок 102. Программный модуль

  1. Щелкнуть на поле «Скрипт». Найти свой скрипт, созданный ранее, «Сдача книги 014». Внести выражение (проверить название скрипта):

integrationsDataProvider.runSavedScript("AAA_BiblioOver014",null)

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

Сохранить.

  1. Построить поток управления от задачи «Сдать книги» к задаче «Регистрация сдачи книги». Указать его реквизиты (Рисунок 103).

Рисунок 103. Программный модуль

  1. Построить поток управления от задачи «Регистрация сдачи книги» к задаче «Выдать книги».
  2. Получившийся процесс (Рисунок 104). Сохранить и закрыть редактор.

Рисунок 104. Программный модуль

  1. Развернуть процесс.
  2. Проверить введенные изменения. Запустить процесс, зайдя в читателя – нажать кнопку «Читатель вошел в библиотеку». Провести процесс до конца.
  3. Далее перейти в среду разработки бизнес-процесса. Построить поток управления от «Сдать книги» к «Выдать книги». Задать его реквизиты, имя – «Перейти к выдаче книг» (Рисунок 105).

Рисунок 105. Программный модуль

  1. Сохранить. Развернуть.
  2. Проверить введенные настройки, т.е. запустить процесс заново – выдать книги и сдать книги. Теперь есть 2 кнопки рядом: «Сдать книги» и «Перейти к выдаче книг».
  3. Перейти в среду разработки бизнес-процесса. Щелкнуть на поток «Сдать книги». поставить галку «Поток по умолчанию» (Рисунок 106).

Рисунок 106. Программный модуль

  1. Сохранить. Развернуть.
  2. Проверить введенные настройки. Теперь кнопка «Сдать книги» – оранжевая, а «Перейти к выдаче книг» осталась голубой.
  3. Перейти в среду разработки бизнес-процесса. Теперь необходимо добавить ветвление, которое позволит читателя без книг отправлять сразу на выдачу книг, а читателю с книгами предлагать сдать взятые книги. Для этого необходимо добавить логический шлюз «Уникальный шлюз». Заполнить его реквизиты (Рисунок 107).

Рисунок 107. Программный модуль

  1. Достроить потоки управления согласно схеме (Рисунок 108).

Рисунок 108. Программный модуль

  1. На потоке, идущем к «Выдать книги» необходимо задать условие. Для этого в поле состояние потока внести данное выражение (Рисунок 109):

${currentProcessController.dataObject.fields.aReg.value.size() < 1}

Рисунок 109. Программный модуль

  1. Поток, идущий к «Сдать книги», сделать потоком по умолчанию.
  2. Сохранить. Развернуть.
  3. Проверить введенные настройки. Прогнать процесс от начала до конца (выдать книги и сдать книги).