Перейти к содержанию

Урок 7. Автоматические вычисления

Содержание урока

 

Предусловие: пройден Урок 6 «Усовершенствованный процесс».

Расчетная продолжительность: 20 мин.

Примечание: в данном уроке представлена Comindware Business Application Platform версии 3.5.961.0, внешний вид страниц и меню в других версиях продукта может отличаться.

 

Автоматическое вычисление значений атрибутов

У заявок обычно есть номер и дата. Также в ходе рассмотрения заявки интересно знать, кто является заказчиком — в том числе исходя из этого будет приниматься решение, выделять машину или нет. Дата заявки — это дата запуска процесса, системный атрибут, значение которому присваивается автоматически. Заказчик также является системным атрибутом, нам надо только вынести эти атрибуты на форму. Для номера же заявки мы определим шаблон, по которому он будет формироваться автоматически.

 

Отображение ФИО заказчика и даты создания заявки

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

1. Перейдите на вкладку «Формы» шаблона «Заявка на автомобиль».

2. Разверните атрибут «Создан» на панели элементов слева и перетащите на форму атрибут «ФИО».

3. Перетащите на форму атрибут «Дата создания» и сохраните форму.

Добавление атрибутов на форму заявки на автомобиль

Добавление атрибутов на форму заявки на автомобиль

 

Вычисление суммы затрат

Настроим автоматическое вычисление итоговой суммы затрат. Для этого мы отредактируем настройки атрибута «Итоговая сумма затрат» и укажем, что он «Вычисляемый», затем добавим выражение для автоматического вычисления атрибута. Для написания выражения нам потребуется системное имя реестра «Затраты» и его атрибутов…

1. Откройте во второй вкладке браузера список шаблонов.

2. Скопируйте системное имя шаблона «Затраты»: 

Копирование в буфер обмена системного имени шаблона записи

Копирование в буфер обмена системного имени шаблона записи

3. Затем перейдите на вкладку «Атрибуты» шаблона записи «Затраты». При написании выражения мы вернемся на эту вкладку, чтобы скопировать системные имена атрибутов.

4. Вернитесь на первую вкладку браузера. Перейдите к схеме бизнес-процесса «Заказ автотранспорта» и выберите задачу «Выполнить рейс».

5. В меню элемента нажмите кнопку «Форма».

6. В конструкторе формы разверните элемент «Заявка на автомобиль» на левой панели.

7. Щелкните значок карандаша на атрибуте «Итоговая сумма затрат» для редактирования атрибута.

8. Установите флажок «Вычисляемый».

Настройка вычисляемого атрибута типа «число»

Настройка вычисляемого атрибута типа «число»

9. На вкладке «Выражение» введите выражение, указав системные имена: SUM((from i in db->Zatraty where i->Zayavka == $id select i->Summa)).

Здесь Zatraty — шаблон записи «Затраты»; Zayavka — ссылочный атрибут «Заявка» реестра «Затраты», $id — идентификатор заявки, Summa — атрибут «Сумма» шаблона «Затраты».

10. Нажмите кнопку «Сохранить».

Ввод выражения для вычисляемого числового атрибута

Ввод выражения для вычисляемого числового атрибута

11. Вернитесь к схеме бизнес-процесса и нажмите кнопку «Опубликовать». 

Для вычисления итоговой суммы затрат мы использовали встроенную функцию языка выражений — SUM:
SUM((from i in db->Zatraty where i->Zayavka == $id select i->Summa)).
В качестве атрибутов для суммирования необходимо использовать значения другого реестра (шаблона записи), для этого используются следующие конструкции:
  • from i in — объявление локальной переменной i;
  • db->Zatraty — объявление реестра (шаблона записи) «Затраты» в качестве источника данных;
  • where i->Zayavka == $id — выбор записи, значение атрибута-ссылки «Заявка» которой равно идентификатору текущей заявки, то есть выбор только тех затрат, которые ссылаются на данную заявку;
  • select i->Summa — выбор значений атрибута «Сумма» и передача этих значений в качестве аргумента для функции SUM.

 

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

1. Перейдите к списку экземпляров шаблона процесса «Заказ автотранспорта» и нажмите кнопку «Создать».

2. Пройдите процесс до задачи «Выполнить рейс».

3. Откройте задачу «Заказ автотранспорта — Выполнить рейс» и заполните коллекцию затрат — укажите различные суммы и типы затрат.

Поле «Итоговая сумма затрат» должно вычисляться автоматически: 

Автоматическое вычисление итоговой суммы затрат

Автоматическое вычисление итоговой суммы затрат

 

Формирование номера заявки

Настроим автоматическую нумерацию заявок…

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

2. Добавьте новый текстовый атрибут «Номер заявки». Установите флажок «Отображаемый атрибут».

3. Перейдите к схеме процесса «Заказ автотранспорта».

4. Выберите стартовое событие и с помощью меню элемента откройте «Правила для данных».

Переход к настройке правил для данных стартового события со схемы бизнес-процесса

Переход к настройке правил для данных стартового события со схемы бизнес-процесса

5. Перетащите с панели правил слева элемент «Изменить значение» в группу «Правила на выходе».

6. Выберите элемент «Изменить значение» на области правил и на правой панели выберите атрибут «Номер заявки». 

7. В поле «Правило изменения» выберите пункт «Выражение».

8. Введите выражение: FORMAT("ЗA-{0}",LIST(COUNT((from i in db->Zayavkanaavtomobil select i->id)))).

Здесь Zayavkanaavtomobil — это системное имя шаблона записи «Заявка на автомобиль».

9. Сохраните правила, вернитесь к схеме процесса и опубликуйте схему бизнес-процесса. 

Добавление правила изменения значения атрибута на вычисляемое выражение при выходе из стартового события

Добавление правила изменения значения атрибута на вычисляемое выражение при выходе из стартового события

 

Настройка отображения номера заявки

Настроим отображение номера заявки на форме заявки…

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

2. Откройте форму «Заявка на автомобиль — Основная форма» и добавьте на нее поле «Номер заявки».

3. Укажите тип отображения «Только для чтения» и сохраните форму.

Добавление атрибута «Номер заявки» только для чтения на форму заявки на автомобиль

Добавление атрибута «Номер заявки» только для чтения на форму заявки на автомобиль

Тестирование формирования номера заявки

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

2. Создайте новую заявку на автомобиль.

3. Перейдите в раздел «Мои задачи» и откройте форму задачи «Заказ автотранспорта — Согласовать заявку». Поле «Номер заявки» должно быть заполнено автоматически:

Автоматически сформированный с помощью выражения номер заявки

Автоматически сформированный с помощью выражения номер заявки

Статус заявки

Настроим автоматическое изменение статуса заявки. Статусы заявок будут храниться в справочнике, поэтому сначала мы создадим справочник статусов заявок…

1. На панели навигации выберите пункты «Настройки» — «Диаграммы».

2. Откройте диаграмму «Модель данных — Заказ автотранспорта».

3. Перетащите на диаграмму элемент «Новый шаблон записи» и создайте шаблон записи «Статус заявки».

4. Выберите созданный шаблон и добавьте отображаемый атрибут «Название».

5. С помощью меню элемента перейдите на вкладку «Списки» шаблона «Статус заявки».

Диаграмма модели данных — создание нового шаблона записи, добавление в него атрибута и переход к настройке списков

Диаграмма модели данных — создание нового шаблона записи, добавление в него атрибута и переход к настройке списков

6. Откройте список «Все записи» и настройте отображение справочника «Статус заявки». Сохраните список.

Настройка отображения справочника «Статус заявки»

Настройка отображения справочника «Статус заявки»

7. Откройте форму шаблона «Статус заявки» и настройте е так, чтобы она содержала поле «Название».

Настройка формы «Статус заявки»

Настройка формы «Статус заявки»

8. Перейдите к списку экземпляров шаблона «Статус заявки» и заполните справочник следующими значениями: «Создана», «На рассмотрении», «Завершена», «Отклонена», «Выполняется».

Заполненный справочник «Статус заявки»

Заполненный справочник «Статус заявки»

9. Вернитесь к диаграмме модели данных и выберите шаблон «Заявка на автомобиль».

10. С помощью меню элемента создайте атрибут «Статус» типа «ссылка», укажите целевой шаблон «Статус заявки». Сохраните атрибут.

Добавление атрибута типа «ссылка»

Добавление атрибута типа «ссылка»

Представление связей на диаграмме модели данных

Представление связей на диаграмме модели данных

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

Теперь настроим автоматическое изменение статуса заявки…

1. Перейдите к схеме бизнес-процесса «Заказ автотранспорта».

2. Выберите стартовое событие и с помощью меню элемента откройте «Правила для данных».

3. В группу «Правила на выходе» добавьте элемент «Изменить значение».

4. На правой панели выберите атрибут «Статус».

5. Укажите правило изменения «Значение» и выберите статус — «Создана». Сохраните правила. 

Настройка правила изменения атрибута «Статус» при выходе из стартового события

Настройка правила изменения атрибута «Статус» при выходе из стартового события

Теперь после создания заявки она получит статус «Создана». 

Аналогичным образом настройте автоматическое изменение статуса для других элементов процесса…

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

2. Перетащите с панели правил слева элемент «Изменить значение» в группу «Правила на выходе».

3. Выберите атрибут «Статус» и укажите для него правило изменения «Значение» — «На рассмотрении».

4. Выберите задачу «Вам отказано» и перейдите к настройке правил для данных.

5. Настройте «Правило на входе» для атрибута «Статус» так, чтобы он принимал значение «Отклонена».

6. Выберите параллельную развилку перед событиями «Машина выделена» и «Выполнить рейс» и настройте для нее «Правило на входе»: статус должен принимать значение «Выполняется».

7. Настройте «Правило на входе» для завершающего события после выполнения рейса: укажите значение статуса «Завершена».

8. Опубликуйте схему бизнес-процесса, чтобы изменения вступили в силу.

 

Настройка отображения статуса и номера заявки

Мы добавили новый атрибут «Статус», теперь необходимо настроить его отображение в списке записей и на экранной форме…

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

2. Откройте форму «Заявка на автомобиль — Основная форма».

3. Упорядочьте поля на форме с помощью столбцов.

4. Перетащите на форму поле «Статус» и укажите тип отображения «Только для чтения».

5. Сохраните форму.

Добавление атрибута «Статус» на форму заявки на автомобиль

Добавление атрибута «Статус» на форму заявки на автомобиль

Настроим отображение реестра (шаблона записи) «Заявка на автомобиль»…

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

2. Сохраните список.

Добавление в список атрибутов

Добавление в список атрибутов

 

Тестирование изменения статуса заявки

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

2. Перейдите в раздел «Мои задачи» и откройте форму задачи «Заказ автотранспорта — Согласовать заявку». Поле «Статус» должно быть заполнено автоматически.

Автоматическое заполненное с помощью справочника поле статуса заявки

Автоматическое заполненное с помощью справочника поле статуса заявки

 

Настройка заголовка задачи

По умолчанию заголовки задач недостаточно информативны — они содержат только названия процесса и задачи, но никакой конкретной информации по заявке:

Представление списка задач по умолчанию

Представление списка задач по умолчанию

Настроим заголовки задач, чтобы в списке задач отображались не названия процессов, а содержательная информация — маршрут и ФИО создателя.

1. Перейдите к схеме бизнес-процесса и выберите задачу «Согласование заявки».

2. В меню элемента нажмите кнопку «Настройки».

Переход к настройке свойств задачи со схемы бизнес-процесса

Переход к настройке свойств задачи со схемы бизнес-процесса

3. В окне свойств задачи на вкладке «Дополнительные свойства» выберите пункт «Выражение» в поле «Заголовок задачи».

4. Введите выражение: FORMAT("Согласование заявки ({0} — {1})",LIST($Marshrut,$_creatorRef->fullName)).

Здесь $Marshrut — системное имя атрибута «Маршрут», $_creatorRef->fullName — имя пользователя, создавшего заявку. 

Ввод выражения для вычисляемого заголовка задачи

Ввод выражения для вычисляемого заголовка задачи

5. Аналогичным образом введите выражения для остальных задач процесса, указав в выражении соответствующие имена задач:

  • 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))

6. Опубликуйте схему бизнес-процесса. 

 

Тестирование

Посмотрим, как теперь задачи отображаются в списке…

1. Перейдите к экземплярам шаблона процесса «Заказ автотранспорта» и запустите процесс, создав новую заявку на автомобиль и заполнив стартовую форму.

2. Перейдите в раздел «Мои задачи» и откройте задачу «Согласовать заявку». Теперь заголовок задачи в списке и в форме содержит название маршрута и ФИО создателя заявки:

Сформированный с помощью выражения наглядный заголовок задачи

Сформированный с помощью выражения наглядный заголовок задачи

Сформированный с помощью выражения наглядный заголовок задачи

 

Результаты

Поздравляем! Вы научились делать автоматические вычисления в ходе процесса.

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