Урок 7. Автоматические вычисления
Содержание
- Введение
- Автоматическое вычисление значений атрибутов
- Отображение Ф. И. О. заказчика и даты создания заявки
- Вычисление суммы затрат
- Тестирование вычисления суммы затрат
- Формирование номера заявки
- Настройка отображения номера заявки
- Тестирование формирования номера заявки
- Статус заявки
- Настройка отображения статуса и номера заявки
- Тестирование изменения статуса заявки
- Настройка заголовка задачи
- Тестирование
- Результаты
Введение
Следуя указаниям в этом уроке, вы научитесь настраивать вычисляемые атрибуты и использовать язык формул, чтобы сделать данные в заявках более наглядными и повысить эффективность бизнес-процессов.
Предусловие: пройден Урок 6. Усовершенствованный процесс.
Расчетная продолжительность: 20 мин.
Примечание: в данном уроке представлен продукт Comindware Business Application Platform версии 4.2.219.0, внешний вид страниц и меню в других версиях продукта может отличаться.
Автоматическое вычисление значений атрибутов
У заявок обычно есть номер и дата. Также в ходе рассмотрения заявки интересно знать, кто является Заказчиком — в том числе исходя из этого будет приниматься решение, выделять машину или нет. Дата заявки — это дата запуска процесса, системный атрибут, значение которому присваивается автоматически. Имя Заказчика также является системным атрибутом, нам надо только вынести эти атрибуты на форму. Для номера же заявки мы определим шаблон, по которому он будет формироваться автоматически.
Отображение Ф. И. О. заказчика и даты создания заявки
Участникам процесса было бы полезно знать, кто является Заказчиком и когда была подана заявка. Эта информация сохраняется автоматически при создании заявки в системных атрибутах «Создатель» и «Дата создания».
1. Перейдите на вкладку «Формы» шаблона записи «Заявка на автомобиль».
2. Откройте конструктор формы «Заявка на автомобиль - Основная форма».
3. Разверните атрибут «Создатель» на панели элементов и перетащите на макет формы атрибут «Ф. И. О.».
4. Перетащите на макет формы атрибут «Дата создания».
5. Сохраните форму.
Добавление атрибутов на форму заявки на автомобиль
Вычисление суммы затрат
Настроим автоматическое вычисление итоговой суммы затрат. Для этого мы изменим свойства атрибута «Итоговая сумма затрат», установив флажок «Вычислять по выражению», затем добавим формулу для автоматического вычисления значения атрибута. Для составления формулы мы воспользуемся редактором выражений и предиктивным вводом…
Внимание!
В формулах необходимо указывать те системные имена, которые вы фактически использовали в своём приложении.
Например, если вы присвоили шаблону «Затраты» системное имя Zatraty123
, то именно это имя следует использовать в формуле.
То есть, если системные имена, приведённые в уроках, не совпадают с фактическими системными именами в вашем приложении, используйте фактические системные имена, а не копируйте их из текста уроков.
1. Перейдите к диаграмме бизнес-процесса «Заказ автотранспорта» и нажмите кнопку «Редактировать».
2. Выберите задачу «Выполнить рейс».
3. В меню элемента нажмите кнопку «Форма» .
4. В конструкторе формы разверните элемент «Заявка на автомобиль» на панели элементов.
5. Нажмите кнопку «Редактировать» у атрибута «Итоговая сумма затрат».
6. В окне свойств атрибута установите флажок «Вычислять по автоматически».
7. В поле «Вычисляемое выражение» нажмите кнопку «Открыть в редакторе» .
8. В редакторе выражений введите функцию: SUM()
.
9. Установив курсор внутри скобок функции SUM()
, нажмите клавиши Ctrl+Пробел (Windows и Linux) или ⌘+Пробел (macOS).
10. В отобразившемся раскрывающемся списке дважды нажмите пункт Zatraty
со значком .
Вставка заготовки запроса from-where-select для шаблона «Затраты» в качестве аргумента функции SUM()
11. в формулу будет вставлена заготовка запроса записей из шаблона «Затраты»: from a in db->Zatraty where Ваше условие select a->id
.
Заготовки запроса from-where-select для шаблона «Затраты»
12. Замените строку Ваше условие
на a->
и нажмите клавиши Ctrl+Пробел (Windows и Linux) или ⌘+Пробел (macOS).
13. В отобразившемся раскрывающемся списке дважды нажмите пункт Zayavka
. в формулу будет вставлено системное имя Zayavka
атрибута «Заявка» шаблона «Затраты».
Вставка в формулу системного имени атрибута «Заявка» шаблона «Затраты»
14. После системного имени Zayavka
введите строку == $
.
15. В отобразившемся раскрывающемся списке дважды нажмите пункт id
. в формулу будет вставлено системное имя id
атрибута «ID» текущего шаблона «Заявка на автомобиль».
Вставка в формулу системного имени атрибута «ID» шаблона «Заявка на автомобиль»
16. Удалите строку id
после оператора a->
и нажмите клавиши Ctr+Пробел.
17. В отобразившемся раскрывающемся списке дважды нажмите пункт Summa
. в формулу будет вставлено системное имя Summa
атрибута «Сумма» шаблона «Затраты».
Вставка в формулу системного имени атрибута «Сумма» шаблона «Затраты»
18. Получится формула SUM(from a in db->Zatraty where a->Zayavka == $id select a->Summa)
.
Здесь Zatraty
— шаблон записи «Затраты»; Zayavka
— атрибут «Заявка» типа «Запись» шаблона «Затраты», $id
— идентификатор заявки, Summa
— атрибут «Сумма» шаблона «Затраты».
19. Нажмите кнопку «Применить» и кнопку .
Формула для вычисляемого числового атрибута
20. В окне свойств атрибута «Итоговая сумма затрат» нажмите кнопку «Сохранить».
Сохранение атрибута «Итоговая сумма затрат»
21. Вернитесь к диаграмме бизнес-процесса и нажмите кнопку «Опубликовать».
Определения
- Для вычисления итоговой суммы затрат мы использовали функцию —
SUM()
:-
SUM(from a in db->Zatraty where b->Zayavka == $id select a->Summa)
-
Функция
SUM()
принимает в качестве аргумента список значений и возвращает сумму их значений (число).
-
- В функцию
SUM()
мы передаём список значений атрибута «Сумма» шаблона записи «Затраты», сформированный с помощью следующего запроса:from a in
— объявление локальной переменнойa
;db->Zatraty
— объявление шаблона записи «Затраты» в качестве источника данных;where a->Zayavka == $id
— выбор записи, у которой значение атрибута «Заявка» типа «Запись» равно идентификатору текущей заявки, то есть выбор только тех затрат, которые относятся к данной заявке;select a->Summa
— выбор значений атрибута «Сумма».
- Данную формулу можно составить двумя другими способами:
SUM(from a in $Zatraty select a->Summa)
— здесь в качестве источника данных запроса указан атрибут «Затраты» типа «Запись», который содержит идентификаторы записей шаблона «Затраты», связанные с текущей заявкой;SUM($Zatraty->Summa)
— здесь мы напрямую передаем в функциюSUM()
значения атрибута «Сумма», записей шаблона «Затраты», связанных с текущей заявкой.
Примечание
Подробные сведения о составлении формул см. в разделе «Язык формул».
Тестирование вычисления суммы затрат
1. Перейдите к списку экземпляров шаблона процесса «Заказ автотранспорта» и нажмите кнопку «Создать».
2. Пройдите процесс до задачи «Выполнить рейс».
3. Откройте задачу «Заказ автотранспорта — Выполнить рейс» и заполните таблицу затрат — укажите различные суммы и типы затрат.
Поле «Итоговая сумма затрат» должно вычисляться автоматически:
Автоматическое вычисление итоговой суммы затрат
Формирование номера заявки
Настроим автоматическую нумерацию заявок…
1. Перейдите на вкладку «Атрибуты» шаблона записи «Заявка на автомобиль».
2. Добавьте новый текстовый атрибут «Номер заявки». Установите флажок «Использовать как заголовок записей». Сохраните атрибут.
3. Перейдите к диаграмме процесса «Заказ автотранспорта» и нажмите кнопку «Редактировать».
4. Выберите начальное событие и с помощью меню элемента откройте «Сценарий на выходе».
Переход к сценарию на выходе начального события с диаграммы бизнес-процесса
5. Отобразится конструктор сценария.
6. Внутри действия «Сменить контекст» нажмите кнопку «Добавить действие» и в раскрывающемся меню выберите пункт «Изменить значения атрибутов».
Создание действия «Изменить значения» в сценарии
7. Внутри действия «Сменить контекст» будет создано действие «Изменить значения атрибутов».
8. В правой части заголовка элемента «Изменить значения атрибутов» нажмите кнопку «Изменить».
Переход к настройке действия «Изменить значения атрибутов »
9. Отобразится окно «Действие: Изменить значения атрибутов».
10. Нажмите кнопку «Создать».
11. В столбце «Атрибут» выберите атрибут «Номер заявки».
12. В столбце «Операция со значениями» выберите пункт «Заменить».
13. В столбце «Значение» выберите пункт «Формула».
Добавление операции с атрибутом для действия «Изменить значения »
14. Нажмите поле в столбце «Значение». Отобразится компактный редактор формулы.
15. Ведите формулу: FORMAT("ЗA-{0}",LIST(COUNT(from b in db->Zayavkanaavtomobil select b->id)))
. Нажмите кнопку с зеленым флажком.
Здесь:
FORMAT()
— функция, которая принимает в качестве аргументов строку и список, подставляет в первый аргумент значения из второго аргумента и возвращает строку.COUNT()
— функция, которая принимает аргумент-список и возвращает количество элементов в нём.Zayavkanaavtomobil
— это системное имя шаблона записи «Заявка на автомобиль».
Формула для вычисления номера заявки
16. Нажмите кнопку «Сохранить», чтобы сохранить действие «Изменить значения атрибута».
17. Вернитесь к диаграмме процесса и опубликуйте её.
Добавление выражения для изменения значения атрибута «Номер заявки» при выходе из начального события
Настройка отображения номера заявки
Настроим отображение номера заявки на форме заявки…
1. Перейдите на вкладку «Формы» шаблона записи «Заявка на автомобиль».
2. Откройте конструктор формы «Заявка на автомобиль — Основная форма» и добавьте на нее поле «Номер заявки».
3. Укажите для этого поля режим доступа «Только чтение» и сохраните форму.
Добавление атрибута «Номер заявки» только для чтения на форму заявки на автомобиль
Тестирование формирования номера заявки
1. Перейдите к списку экземпляров шаблона процесса «Заказ автотранспорта».
2. Создайте новую заявку на автомобиль.
3. Перейдите в раздел «Мои задачи» и откройте форму задачи «Заказ автотранспорта — Согласовать заявку». Поле «Номер заявки» должно быть заполнено автоматически:
Автоматически сформированный с помощью выражения номер заявки
Статус заявки
Настроим автоматическое изменение статуса заявки. Статусы заявок будут храниться в справочнике, поэтому сначала мы создадим справочник статусов заявок…
1. На панели навигации выберите пункты «Настройки» — «Диаграммы».
2. Откройте диаграмму «Модель данных — Заказ автотранспорта».
3. Перетащите на диаграмму элемент «Новый шаблон записи» и создайте шаблон записи «Статус заявки».
4. Выберите созданный шаблон «Статус заявки» и добавьте атрибут «Название» с установленным флажком «Использовать как заголовок записей».
5. С помощью меню элемента перейдите на вкладку «Таблицы» шаблона «Статус заявки».
Диаграмма модели данных — создание нового шаблона записи, добавление в него атрибута и переход к настройке таблиц
6. Откройте конструктор таблицы «Все записи» и настройте отображение в ней только столбца «Название».
7. Сохраните таблицу.
Настройка отображения справочника «Статус заявки»
8. Откройте конструктор формы шаблона «Статус заявки» и настройте её так, чтобы она содержала поле «Название».
Настройка формы «Статус заявки»
9. Перейдите к списку экземпляров шаблона «Статус заявки» и создайте записи со следующими названиями: «Создана», «На рассмотрении», «Завершена», «Отклонена», «Выполняется».
Заполненный справочник «Статус заявки»
10. Вернитесь к диаграмме модели данных и выберите шаблон «Заявка на автомобиль».
11. С помощью меню элемента создайте атрибут «Статус» типа «Запись», укажите связанный шаблон «Статус заявки». Сохраните атрибут.
Представление связей на диаграмме модели данных
Теперь настроим автоматическое изменение статуса заявки…
1. Перейдите к диаграмме бизнес-процесса «Заказ автотранспорта» и нажмите кнопку «Редактировать».
2. Выберите начальное событие и с помощью меню элемента откройте «Сценарий на выходе».
3. Внутри действия «Сменить контекст» нажмите кнопку «Изменить» в заголовке действия «Изменить значения атрибутов», созданного ранее.
Переход к настройке действия «Изменить значения атрибутов »
4. Создайте операцию «Заменить» с атрибутом «Статус».
5. В столбце «Значение» выберите пункт «Формула».
6. Нажмите поле в столбце «Выражение». Отобразится компактный редактор формулы.
7. Введите формулу: OBJECT("Upravlenieavtoparkom","Statuszayavki","Nazvanie","Создана")
. Нажмите кнопку с зеленым флажком.
Здесь:
OBJECT()
— функция, возвращающая ID записи по указанному пути к ней.Upravlenieavtoparkom
— системное имя приложения «Управление автопарком».Statuszayavki
— системное имя шаблона записи «Статус заявки».Nazvanie
— это системное имя атрибута «Название» в шаблоне записи «Статус заявки».Создана
— искомое значение атрибута «Название» в шаблоне записи «Статус заявки».
Настройка операции изменения атрибута «Статус» при выходе из начального события
8. Нажмите кнопку «Сохранить», чтобы сохранить действие «Изменить значения атрибутов».
9. Вернитесь к диаграмме процесса, но не публикуйте её.
Теперь после создания заявки она получит статус «Создана».
Аналогичным образом настройте автоматическое изменение статуса для других элементов процесса…
Если диаграмма бизнес-процесса открыта не в режиме редактирования нажмите кнопку «Редактировать».
1. Выберите задачу «Согласовать заявку» и с помощью меню элемента откройте «Сценарий на выходе».
2. Добавьте действие «Изменить значения атрибутов» внутри действия «Сменить контекст».
3. В действии «Изменить значения атрибутов» создайте операцию «Заменить» для атрибута «Статус» и формулой: OBJECT("Upravlenieavtoparkom","Statuszayavki","Nazvanie","На рассмотрении")
.
4. Выберите задачу «Вам отказано» и с помощью меню элемента откройте «Сценарий на входе».
5. Добавьте действие «Изменить значения атрибутов» внутри действия «Сменить контекст» с операцией « Заменить» для атрибута «Статус» и формулой: OBJECT("Upravlenieavtoparkom","Statuszayavki","Nazvanie","Отклонена")
.
6. Выберите развилку «и» перед событиями «Машина выделена» и «Выполнить рейс» и настройте для нее «Сценарий на выходе»: статус заявки должен принимать значение «Выполняется».
7. Настройте «Сценарий на входе» для конечного события после выполнения рейса так, чтобы статус заявки принимал значение «Завершена».
8. Опубликуйте диаграмму бизнес-процесса, чтобы изменения вступили в силу.
Настройка отображения статуса и номера заявки
Мы добавили новый атрибут «Статус», теперь необходимо настроить его отображение в списке записей и на экранной форме…
1. Перейдите на вкладку «Формы» шаблона записи «Заявка на автомобиль».
2. Откройте конструктор формы «Заявка на автомобиль — Основная форма».
3. Упорядочьте поля на форме с помощью столбцов.
4. Перетащите на форму поле «Статус» и укажите режим доступа « Только чтение».
5. Сохраните форму.
Добавление атрибута «Статус» на форму заявки на автомобиль
Настроим отображение реестра (шаблона записи) «Заявка на автомобиль»…
1. Перейдите на вкладку «Таблицы» шаблона «Заявка на автомобиль» и добавьте в таблицу «Все записи» столбцы «Номер заявки» и «Статус».
2. Сохраните таблицу.
Добавление в таблицу столбцов с атрибутами шаблона записи
Тестирование изменения статуса заявки
1. Перейдите к списку экземпляров шаблона процесса «Заказ автотранспорта» и создайте новую заявку на автомобиль.
2. Перейдите в раздел «Мои задачи» и откройте форму задачи «Заказ автотранспорта — Согласовать заявку». Поле «Статус» должно быть заполнено автоматически.
Автоматическое заполненное с помощью справочника поле статуса заявки
Настройка заголовка задачи
По умолчанию заголовки задач недостаточно информативны — они содержат только названия процесса и задачи, но никакой конкретной информации по заявке:
Представление списка задач по умолчанию
Настроим заголовки задач, чтобы в списке задач отображались не названия процессов, а содержательная информация — маршрут и Ф. И. О. создателя.
1. Перейдите к диаграмме бизнес-процесса и нажмите кнопку «Редактировать».
2. Выберите задачу «Согласовать заявку».
3. В меню элемента нажмите кнопку «Свойства» .
Переход к свойствам задачи с диаграммы бизнес-процесса
4. В окне «Свойства пользовательской задачи» на вкладке «Дополнительные» выберите пункт «Формула» в поле «Заголовок задачи».
5. Введите формулу: FORMAT("Согласовать заявку ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName))
.
Здесь:
$Marshrut
— системное имя атрибута «Маршрут».$_creatorRef->fullName
— имя пользователя, создавшего заявку.-
$FORMAT
— функция, подставляющая в строку в первом параметре значения из последующих параметров. -
$LIST
— функция, возвращающая массив значений атрибутов, указанных во входных параметрах.
6. Нажмите кнопку «Сохранить».
Ввод выражения для вычисляемого заголовка задачи
7. Аналогичным образом введите формулы для остальных задач процесса, указав в выражении соответствующие имена задач:
FORMAT("Принять заявку ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName))
FORMAT("Вам отказано ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName))
FORMAT("Выполнить рейс ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName))
FORMAT("Машина выделена ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName))
8. Опубликуйте диаграмму бизнес-процесса.
Тестирование
Посмотрим, как теперь задачи отображаются в списке…
1. Перейдите к экземплярам шаблона процесса «Заказ автотранспорта» и запустите процесс, создав новую заявку на автомобиль и заполнив стартовую форму.
2. Перейдите в раздел «Мои задачи» и откройте задачу «Согласовать заявку». Теперь заголовок задачи в списке и в форме содержит название маршрута и Ф. И. О. создателя заявки:
Сформированный с помощью выражения наглядный заголовок задачи
Результаты
Поздравляем! Вы научились делать автоматические вычисления в ходе процесса.
В следующем уроке вы настроите пользователей, роли и права доступа для вашего бизнес-приложения.
Эта статья была полезна 5 чел.