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

Статья для предыдущей поддерживаемой версии ПО — 4.7!

Текущая рекомендованная версия — Comindware Platform 5.0. См. документацию к версии 5.0.

Локальная переменная. Использование для массовой обработки записей

В Comindware Business Application Platform можно настроить возможность массовой обработки несколько записей в таблице, например, если нужно поменять статус у нескольких заявок одновременно, подтвердить оплату нескольких счетов и т. д. В данной статье рассмотрен пример массового назначения исполнителей по заявкам и последующий запуск процесса по каждой из заявок.

Так как невозможно при выборе нескольких записей открывать какую-либо форму (форма показывает только атрибуты одной записи), предлагается использовать механизм локальных переменных. В локальную переменную можно поместить некоторое значение, которое потом можно применить или продублировать для всех выбранных записей.

Исходные данные:

  • Шаблон записи «Заявки».
  • Атрибут «Ответственный» в шаблоне записи «Заявки» (тип данных — Аккаунт).
  • Шаблон процесса «Исполнение заявки».

Настройка:

1. В шаблоне записи «Заявки» создайте кнопку со следующими параметрами:

  • Отображаемое название — Назначить исполнителя;
  • Контекст операции — Запись;
  • Операция — Сохранить;
  • Результат выполнения — Обновить данные;
  • Отображать диалоговое окно — отметьте чекбокс.

Сохраните настройки кнопки и перейдите во вкладку «Локальные переменные». Создайте переменную «Исполнитель» (тип данных — Аккаунт).

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

2. Перейдите в настройки приложения и нажмите «Сценарии». Создайте новый сценарий со следующими параметрами:

  • Название — Назначение исполнителя по заявке
  • Контекст выполнения — От инициатора;
  • Статус — Активен.

3. Настройте триггер на нажатие созданной в п. 1 кнопки, добавьте действие по изменению значения. Выберите атрибут «Ответственный», укажите операцию со значениями — Заменить и в поле «Значение», выберите N3 и вставьте следующее выражение:

@prefix cmwsession: <http://comindware.com/ontology/session#>.
@prefix user: <http://comindware.com/ontology/user#>.
@prefix variable: <http://comindware.com/ontology/session/variable#>.
@prefix debug: <http://comindware.com/ontology/debug#>.

{
    cmwsession:context variable:dialogVariables ?v1.
    ?v1 variable:Ispolnitel ?value.
}

Важно указать системное имя, прописанное в локальной переменной после «variable:».

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

4. Протестируйте. Выберите несколько заявок, нажмите на кнопку «Назначить исполнителей». Откроется диалоговое окно с локальной переменной «Исполнитель». Выберите пользователя, подтвердите операцию.