Результаты действий мастера можно вывести в таблице. Для этого нужно добавить элемент "таблица" в редакторе мастера. В данном примере будет показан весь путь создания небольшого "мастера".
Допустим, что нужен мастер, который отображает в таблице список абонентов с отрицательным балансом, и пополнение счёта от которых не было более 2 месяцев
Создаём окно с таблицей, указывая Action ID: debtorsTable
При запуске мастер "Поиск должников", появится такое окно для задания условий.
В обработчике мы можем получить введённые в мастере данные и произвести необходимые операции с ними. В данном примере показано, как можно получить данные и пример некоторых действий.
Для того, чтобы данные корректно отобразились в таблице, необходимо в дин.коде создать собственный класс, который должен быть наследником абстрактного класса ru.bitel.bgbilling.plugins.assistant.common.bean.FilterTableModel.
Для того, чтобы передать список собственных классов в механизм создания таблицы, нужно передать полный путь до созданного класса, также нужно преобразовать список в формат JSON,
воспользовавшись методом mapperWrite( List<? extends FilterTableModel> data ) из класса ru.bitel.bgbilling.plugins.assistant.server.AssistantUtils
Пример того, как это можно сделать показан на скриншоте выше. assistantResponse.addFieldData( "debtorsTable", new AssistantKeyValue[]{ new AssistantKeyValue( "ru.bitel.bgbilling.assistant.contract.DebtorTableFilter", result )} );
При необходимости, можно реализовать абстрактный метод getCorrectData() и передать в таблицу данные для определённого столбца. Например, есть необходимость показать в таблицы текущий статус для договоров, с помощью этого метода, можно подменить число статуса на более понятный "Активен". Если нет необходимости в "подмене" данных, метод должен возвращать null.
Второй метод getCorrectTitleColumn() из родительского FilterTableModel должен возвращать корректное название для колонок таблицы.
Итоговый результат работы мастера показан ниже
Если таблица содержит колонку с названием "contractId", "cid" или "idContract", то при клике на строке, будет выполняться поиск договора с таким id в БД, если договор будет найден, он будет открыт.