DocxXlsxExample
Примеры разработки процессов с обработчиками для docx, xlsx файлов
Версия 4.6.0
© 2015-2023, ООО "Процессные технологии"
# Введение
В данном руководстве рассмотрены примеры разработки и выполнения процессов с использованием обработчиков
- office.excel.handler.ExcelReadHandler
- office.excel.handler.ExcelSaveHandler
- office.doc.DocxHandler
предназначенных для работы с docx, xlsx файлами.
Описание конфигураций данных обработчиков в руководстве по работе с обработчиками
Пример разработки и выполнения процесса officeExcel содержащего обработчики Excel.
Сценарий процесса.
Данный процесс является примером применения обработчиков Excel. Выполняется чтение данных из входного файла, при этом используется обработчик “Excel: Прочесть данные из файла”, затем считанные данные отображаются на форме и доступны пользователю для редактирования. Второй Excel обработчик “Сохранить данные в файл” записывает отредактированные данные в файл, при этом используется входной файл шаблона. Далее процесс переходит в узел-действие “Download xlsx”, где пользователь имеет возможность скачать созданный xlsx файл.
Разработка графа бизнес-процесса.
Для создания процесса officeExcel используем язык JPDL. Выбирая элементы палитры: “Начало”, “Окончание”, “Узел-действие”, “Переход” нарисуем следующий граф бизнес-процесса:
На переходах к узлам-действиям необходимо расположить обработчики. Класс и конфигурации обработчиков будут рассмотрены далее.
Создание переменных и ролей
В данном бизнес-процессе будет использоваться лишь одна роль-дорожка. Для ее создания необходимо перейти на вкладку Роли и нажать “Создать”. В появившемся окне введите название “Роль1”:
"Роль1" не имеет инициализатора т.к. будет использована в стартовом состоянии и проинициализируется пользователем, запустившим экземпляр процесса. Также данная роль-дорожка будет использована и для всех остальных узлов требующих роль-дорожку. Для установки роли необходимо выделить узел и в его свойствах, в поле Роль/Value выбрать или ввести “Роль1”
Далее создадим переменные, для этого необходимо перейти на вкладку “Переменные” и нажать “Создать”, в появившемся окне требуется ввести имя переменной, а также выбрать ее формат.
Описание переменных: |
Переменная | Тип | Описание |
НазваниеТаблицы | Строка | Название таблицы |
список1 | Список(Строка) | 1-й столбец таблицы |
список2 | Список(Дробное число) | 2-й столбец таблицы |
список3 | Список(Целое число) | 3-й столбец таблицы |
сейчас | Дата со временем | Дата/время создания xlsx файла |
ExcelFile | Файл | Переменная созданного файла xlsx |
Более подробно о назначении данных переменных будет рассказано далее.
Создание графических форм и валидация переменных
Процесс содержит две формы, в узле-действии “Edit table” и “Download xlsx” соответственно, для их создания выполните следующие действия.
Кликните на узле-действии правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши):
Используем тип формы «HTML форма + freemarker теги»
В узле “Edit table” переходим на вкладку “Код”, где создаем разметку следующего вида:
Далее переходим на вкладку дизайн:
Здесь также необходимо расположить следующие элементы:
- Freemarker тег “Ввод переменной” для ввода переменной “НазваниеТаблицы”
- Три Freemarker тега “EditLinkedLists” для заполнения/редактирования списков, на основе которых будет создана таблица
В поле “Название переменной” указываем “список1”, “список2”, “список3” соответственно для каждого из трех тегов, расположенных в ячейках “Название”, “Цена”, “Количество”.
В результате форма должна принять следующий вид:
Далее необходимо создать файл валидации и настроить проверку переменных:
Используем валидатор “Обязательное поле”:
Аналогичным способом создается форма для узла-действия “Download xlsx”, которая необходима для загрузки созданного xlsx файла с таблицей.
Форма имеет следующий вид:
Здесь используется Freemarker тег “Отобразить переменную”, в поле “название переменной” выбираем переменную “ExcelFile”
Настройка обработчиков
Первый обработчик необходим для выполнения чтения данных из Excel файла.
Класс обработчика – “Excel: Прочесть данные из файла”
Конфигурация:
Входной файл – задан в виде пути к файлу, содержит следующие входные данные:
Лист “Sheet0”
Эти данные будут считаны в “список1” (Страница по номеру 1, начальная строка 1, столбец 1, массив по вертикали)
Лист “Sheet1”
Эти данные будут считаны в “список2” (Страница по названию “Sheet1”, начальный столбец 2, строка 2, массив по горизонтали)
Лист “Sheet2”
Эти данные будут считаны в переменную “НазваниеТаблицы” (отдельная ячейка на странице по номеру 3, столбец 2, строка 4)
Второй обработчик необходим для определения Даты/времени создания xlsx файла.
Класс обработчика – ExecuteFormulaActionHandler,
конфигурация:
Т.е. переменная “сейчас” будет проинициализирована результатом выполнения функции “current_date_time()”, которая возвращает текущую дату/время
Третий обработчик – “Excel: Сохранить данные в файл”, предназначен для сохранения данных в файл Excel
Конфигурация:
Входной файл – в данном обработчике это файл шаблона, на основе которого будет создан xlsx файл результата. Задан с помощью пути к файлу и имеет следующий вид:
Выходной файл: Имя – Report.xls, используем файловую переменную ExcelFile;
Остальные параметры (отдельные ячейки и вертикальные массивы) заданы в соответствии с позициями на основе входного файла шаблона;
Таким образом данный обработчик должен создать файл Excel Report.xls, в котором будет создана таблица представленная в шаблоне, и заполнена данными из переменных “НазваниеТаблицы”, “Сейчас”, “список1”, “список2”, “список3”;
Загрузка и выполнение процесса
Загружаем разработанный процесс на сервер, для этого пользуемся функцией “Экспорт архива процесса” с установленной опцией “Экспорт на WFE сервер”.
После запуска процесса, срабатывает обработчик Excel, который выполняет чтение данных из входного файла:
Переходим в список заданий.
В задании “Edit table” вводим название таблицы, редактируем текущие данные, а также заполняем третий столбец таблицы:
Если все данные введены, то далее сработает обработчик сохранения данных в Excel файл Report.xls, управление перейдет в узел “Download Xls”, где будет возможность скачать созданный файл:
Кликнув на ссылку Report.xls, нам будет предоставлена возможность скачать данный файл. Полученный файл имеет вид:
Файл был создан согласно заданной конфигурации обработчика, а также с применением входного файла шаблона.
История выполнения процесса:
Пример разработки и выполнения процесса officeDocx содержащего обработчик Docx
Сценарий процесса
На стартовой форме процесса пользователь создает и заполняет данными таблицу, вводит ее название. Далее срабатывает обработчик DocxHandler, который на основе шаблона и таблицы с данными создает Docx файл, к сформированной таблице применяется стиль. После чего генерируется ссылка для скачивания полученного файла.
Разработка графа бизнес-процесса
Для создания процесса officeDocx используем язык JPDL. Выбирая элементы палитры: “Начало”, “Окончание”, “Узел-действие”, “Переход” нарисуем следующий граф бизнес-процесса:
На переходе к узлу-действию необходимо расположить два обработчика. Класс и конфигурации обработчиков будут рассмотрены далее.
Создание переменных и ролей
В данном бизнес-процессе будет использоваться лишь одна роль-дорожка. Для ее создания необходимо перейти на вкладку Роли и нажать “Создать”. В появившемся окне введите название “Роль1”:
"Роль1" не имеет инициализатора т.к. будет использована в стартовом состоянии и проинициализируется пользователем, запустившим экземпляр процесса. Также данная роль-дорожка будет использована и для узла-действия “ Download Docx ”. Для установки роли необходимо выделить узел и в его свойствах, в поле Роль/Value выбрать или ввести “Роль1”
Далее создадим переменные, для этого необходимо перейти на вкладку “Переменные” и нажать “Создать”, в появившемся окне требуется ввести имя переменной, а также выбрать ее тип.
Описание переменных: |
Переменная | Тип | Описание |
НазваниеТаблицы | Строка | Название таблицы |
список1 | Список(Строка) | 1-й столбец таблицы |
список2 | Список(Дробное число) | 2-й столбец таблицы |
список3 | Список(Целое число) | 3-й столбец таблицы |
сейчас | Дата со временем | Дата/время создания docx файла |
wordResult | Файл | Переменная созданного файла docx |
Более подробно о назначении данных переменных будет рассказано далее.
Создание графических форм и валидация переменных
Кликните на стартовый узел графа бизнес-процесса правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши):
Используем тип формы «HTML форма + freemarker теги»
Создаем форму следующего вида:
Здесь расположено:
- Тег “ввод переменной” для “НазваниеТаблицы”;
- теги “ввод переменной” для заполнения данными списков, на основе которых будет создана таблица;
Полученный код формы:
Далее необходимо создать файл валидации и настроить проверку переменных.
Все переменные, используемые на данной форме должны быть обязательными, поэтому используем валидаторы “Обязательное поле”:
Аналогичным способом создается форма для узла-действия “Download Docx”, которая необходима для загрузки созданного docx файла с таблицей.
Форма имеет следующий вид:
Здесь используется тег “Ввод переменной”, выбираем переменную “wordResult”
Настройка обработчиков
Первый обработчик необходим для определения Даты/времени создания docx файла.
Класс обработчика – ExecuteFormulaActionHandler,
конфигурация:
Т.е. переменная “сейчас” будет проинициализирована результатом выполнения функции “current_date_time()”, которая возвращает текущую дату/время
Второй обработчик – “обработчик файлов Docx”, предназначен для сохранения данных в файл docx
Конфигурация:
Входной файл (шаблон) создадим непосредственно в бизнес-процессе, подробнее в следующем пункте.
Выходной файл – здесь задано имя Report.docx, а также используется файловая переменная, которая будет указывать на созданный docx файл
Создание шаблона
Создадим файл шаблона docx непосредственно в бизнес-процессе.
Для этого в конфигураторе обработчика docx нажимаем на "Создать" напротив "Входного файла", и формируем шаблон следующего вида:
Таким образом, предполагается что:
- ${сейчас} - будет заменено обработчиком на значение переменной “сейчас”, в которой хранится дата/время создания docx файла;
- ${НазваниеТаблицы} – будет заменено на значение переменной НазваниеТаблицы;
- ${список1},${список2},${список3} – это столбцы таблицы;
Создание стиля
Создадим в шаблоне новый стиль таблиц, например следующего вида:
Для этого вызовем соответствующее меню с помощью комбинации клавиш ALT+CTRL+SHIFT+S, и выберем “Создать стиль”
Действия необходимые для создания стилей выбираются в зависимости от используемого пакета office и описаны в соответствующих справках по данным пакетам, также могут быть отличия в зависимости от версии (для данного примера использовался MS Office 2010)
Загрузка и выполнение процесса
Загружаем разработанный процесс на сервер, для этого пользуемся функцией “Экспорт архива процесса” с установленной опцией “Экспорт на WFE сервер”.
Запустив данный процесс, мы попадаем на стартовую форму.
Здесь вводим название таблицы, вводим данные, а также выбираем файл ранее созданного шаблона:
Если все данные введены, то далее сработают обработчики и будет создан docx файл, управление перейдет в узел “Download Docx”, где будет возможность скачать созданный файл:
Кликнув на ссылку Report.docx, нам будет предоставлена возможность скачать данный файл.
Полученный файл:
Файл был создан согласно заданной конфигурации обработчика, к таблице был применен созданный стиль.