Вы находитесь на странице: 1из 20

Разработка на базе ТЕЗИС в CUBA Studio

Быстрый старт
1 Введение
CUBA Studio - это визуальный инструмент разработки, предназначенный для
быстрого создания приложений на базе платформы CUBA. Подробная
информация о платформе, ее устройстве и процессе разработки
приложений (в том числе и при помощи CUBA Studio) доступна по адресу:
http://docs.cuba-platform.com.

В данном руководстве описывается специализированная партнерская


версия CUBA Studio, предназначенная для разработчиков на базе системы
ТЕЗИС. Она включает в себя плагин, позволяющий выполнять
специфические действия по расширению системы ТЕЗИС, такие как
создание и модификация карточек или справочников.

Кроме того, партнерская версия CUBA Studio позволяет создавать


полноценные приложения на основе системы ТЕЗИС. Она может
использоваться для быстрого старта проекта, визуального проектирования
модели данных и прототипов экранов UI. Впоследствии для них можно
разработать бизнес-логику в классической Java IDE.

2 Необходимые требования
Минимально необходимым набором программного обеспечения является:

 Java SE 7+ SDK. В переменной окружения JAVA_HOME необходимо


установить путь к корневому каталогу JDK, например C:\Program
Files\Java\jdk1.7.0_40.
 Cреда разработки на Java. Для разработки проектов на базе ТЕЗИС
рекомендуется использовать IntelliJ IDEA Community Edition 12+.
 Сервер баз данных приложений. Для работы с ТЕЗИС рекомендуется
использовать СУБД PostgreSQL 9.1+. После установки БД
необходимо завести роль входа cuba с паролем cuba.
 Веб-браузер. В настоящий момент интерфейс CUBA Studio
работоспособен в браузерах Google Chrome, Mozilla Firefox, Safari и
Opera 15+.

Также обязательно требуется установить переменные окружения:


HAULMONT_REPOSITORY_USER=external

HAULMONT_REPOSITORY_PASSWORD=aiva33n8

Для Windows переменные окружения можно установить, открыв


Компьютер -> Свойства системы -> Дополнительные параметры
системы -> Дополнительно -> Переменные среды.
3 Установка и настройка инструментария
3.1 Установка CUBA Studio

Для установки Studio выполните следующиe шаги:

1. В системе ТЕЗИС зайдите в пункт меню Помощь -> Настройки и в


разделе Установить нажмите на ссылку CUBA Studio. Для отображения
ссылки необходимы права администратора.
2. Распакуйте загруженный архив в любой локальный каталог, например,
c:/work/thesis-studio.
3. Перейдите в подкаталог c:/work/thesis-studio/studio/bin и
запустите файл studio.bat
4. Запустится окно CUBA Studio Server. В нем введите следующие
параметры (Рисунок 1):
 Workspace - каталог, в котором будут создаваться проекты,
например, d:/thesis-studio/workspace
 Gradle home − оставьте поле пустым, в этом случае при первом
запуске будет автоматически загружен нужный дистрибутив
Gradle. Если Вы хотите использовать уже установленный на
компьютере Gradle, введите в поле путь к соответствующему
каталогу, например, d:\gradle\gradle-1.0
 Server port − порт, на котором будет запущен сервер CUBA Studio
(по умолчанию 8111)
 IDE port − порт, на котором принимает подключения плагин IDE
(по умолчанию 48561)
 Repository − URL репозитория бинарных артефактов. Введите
значение:
http://repository.haulmont.com:8587/nexus/content/groups/work.
Затем нажмите на кнопку Auth и в отобразившемся окне введите:
 Login: external
 Password: aiva33n8

В выпадающем списке Language выберите русский язык


(Russian). Это необходимо для того, чтобы контекстная помощь
Studio отображалась на русском языке.
Рисунок 1

5. Запустите сервер Studio, нажав на кнопку Start.


6. Сервер выполнит загрузку, запуск и подключение к демону Gradle. При
первом запуске это может занять продолжительное время, при
последующих - не более нескольких секунд.
7. Затем запустится веб-сервер, и в поле URL отобразится адрес, по
которому доступен интерфейс Studio. Нажав ->, можно открыть веб-
браузер, нажав Copy, − скопировать адрес в буфер обмена.
8. Запустите веб-браузер и перейдите по указанному адресу.
9. В веб-интерфейсе Studio нажмите кнопку Open project. Studio предложит
принять соглашение о лицензии. Нажмите Принять.

После этого можно приступать к созданию и настройке проекта.

3.2 Создание проекта в Studio

Для создания нового проекта выполните следующие действия:

1. В окне Select project нажмите на кнопку New.


2. В окне New project в поле Project name введите имя проекта -
tezis_ext. Имя должно содержать только латинские буквы, цифры и
знак подчеркивания.
Внимание

Тщательно продумайте имя проекта на данном этапе. В дальнейшем его


невозможно изменить без сложного ручного вмешательства.

3. В полях ниже автоматически сгенерируются:


 Project path − путь к каталогу нового проекта. Каталог можно выбрать
вручную, нажав на кнопку ... рядом с полем. Отобразится окно Folder
select со списком папок, уже существующих в рабочем каталоге
Studio. Вы можете выбрать одну из них или создать новый каталог,
нажав на кнопку +.
 Project namespace − пространство имен, которое будет
использоваться как префикс имен сущностей и таблиц базы данных.
 Root package − корневой пакет Java-классов. Может быть
скорректирован позже, однако сгенерированные на этапе создания
классы перемещены не будут.

В поле Base projects version выберите используемую в проекте версию


ТЕЗИС. На момент написания данного руководства стабильной является
версия thesis-4.0.0 (Рисунок 2).

Рисунок 2

4. Нажмите на кнопку ОК. В указанном каталоге tezis_ext будет создан


пустой проект, и откроется главное окно Studio.

При первом использовании определенной версии ТЕЗИС открытие


проекта и сборка приложения могут занять продолжительное время, так
как Studio необходимо загрузить исходные тексты и бинарные артефакты
системы.
Прежде чем начать работу с проектом, желательно дождаться погасания
индикатора активности фоновых задач.
В центре экрана находится рабочая панель студии (1). Чуть ниже
находится главное меню CUBA Студии (2). Под меню располагается
панель навигатора, разделенная на секции. Первая секция содержит
функциональность специализированного плагина ТЕЗИС (3) Ниже
находится панель статуса (4), а справа от нее - панель сообщений (5).
На панели помощи (6), располагающейся в правой части экрана,
отображается контекстная помощь и описание пунктов главного меню.
Панель помощи можно скрыть. Для этого нажмите Help в главном меню и
снимите флажок Show help panel (Рисунок 3).

Рисунок 3

5. В главном меню студии перейдите в пункт меню Build −> Assemble


project для сборки проекта. На этом этапе будут загружены все
необходимые библиотеки и в подкаталогах build модулей будут
собраны артефакты проекта.
6. Выберите пункт меню Run −> Create database для создания базы
данных на локальном сервере PostgreSQL. Имя БД по умолчанию
совпадает с именем проекта.
Допускается использовать существующую БД. В этом случае пропустите
этот шаг, откройте секцию Project properties на панели навигатора и
нажмите на кнопку Edit.
Откроется окно редактора свойств проекта. В полях Database URL
укажите имя хоста и имя используемой БД.
В поле Database user введите имя роли входа БД, а в поле password -
её пароль (Рисунок 4).
Рисунок 4

Внимание

В случае если существующая БД создавалась для системы ТЕЗИС версии


ниже 4.0, после подключения необходимо выполнить команду Run ->
Update database. В противном случае возможны ошибки при создании
проекта.

7. Выберите пункт меню Run −> Deploy. В подкаталоге build проекта


будет установлен сервер Tomcat с собранным приложением.
8. Выберите пункт меню Run −> Start application server. Через несколько
секунд в панели статуса ссылка рядом с надписью Web application
станет доступной, и по ней можно осуществить переход к приложению
непосредственно из Studio.

Логин и пароль пользователя − admin / admin.

Запущенное приложение представляет собой стабильную версию


системы ТЕЗИС со всей присущей ей функциональностью, включая
графический интерфейс, бизнес-логику, набор стандартных бизнес-
процессов, функциональность подсистемы безопасности и
администрирования системы (Рисунок 5).

Рисунок 5

3.3 Интеграция Studio c IDE

Для интеграции Studio c IntelliJ IDEA выполните следующие шаги:

1. Перейдите в секцию Project properties и нажмите кнопку Edit. На панели


свойств установите флажок IntelliJ IDEA.
2. В главном меню Studio выберите пункт меню Build −> Create or update
IDEA project files. В каталоге проекта будут созданы проектные файлы
Intellij IDEA.
3. Запустите IntelliJ IDEA и установите плагин CUBA Framework
Integration, доступный в репозитории плагинов: File -> Settings -> IDE
Settings -> Plugins -> Browse Repositories
4. В IntelliJ IDEA в меню Settings в группе Project Settings найдите пункт
CUBA. На панели Studio integration установите флажок Enabled и
нажмите на кнопку OK.

При переходе обратно в Studio обратите внимание, что на панели статуса


загорится надпись IDE: on port 48561.

Теперь при нажатии кнопок IDE в Studio соответствующие файлы исходных


кодов будут открываться редактором Intellij IDEA.
3.4 Интеграция с системами контроля версий

Вновь созданные проекты Studio хранятся локально на компьютере


разработчика. В случае если ведется параллельную разработку проекта,
хранящегося на удаленном сервере, Studio можно интегрировать с системой
версионирования Subversion или Git.

Для интеграции с системой контроля версий необходимо:

1. Установить на локальном компьютере свежую версию клиента системы


версионирования. Для Subversion рекомендуется использовать клиент
SlikSvn (https://www.sliksvn.com/en/download), для Git - официальный
клиент (http://git-scm.com/downloads).
2. Создать рабочую копию проекта из репозитория при помощи команды
checkout.
3. Импортировать проект в Studio. Для этого необходимо запустить Studio,
нажать на кнопку Open project и в стартовом окне Select project нажать
на кнопку Import. В окне Select project folder выбрать каталог проекта и
нажать ОК.
4. Открыть проект и перейти в секцию Project properties. Нажать на кнопку
Edit.
5. В списке VCS выбрать используемую систему контроля версий -
Subversion или Git, и нажать ОК.

Это позволит Studio автоматически выполнять команды add и remove,


добавляя новые файлы проекта под версионный контроль.

4 Плагин ТЕЗИС для CUBA Studio


Специализированный плагин разработчика ТЕЗИС для CUBA Studio включает в
себя следующие функции (Рисунок 6):

 Создать справочник - создание нового справочника

 Создать карточку - создание новой карточки. Отличие карточки от


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

 Добавить поле - добавление поля в справочник или карточку,


созданную в текущем проекте-расширении, или в стандартную
сущность ТЕЗИС (например, "Документ", "Юридическое лицо" и др).

 Сгенерировать скрипты БД - генерация скриптов обновления базы


данных. Скрипты обновления должны быть сгенерированы и
применены после любых модификаций со справочниками и
карточками.

Рисунок 6

В качестве первого знакомства с плагином ТЕЗИС мы выполним три простых


задачи из обучающего курса для разработчика ТЕЗИС:

 Создание справочника «Статьи бюджета»


 Создание карточки «Счет на оплату»
 Добавление поля «Счет на оплату» в стандартную карточку «Документ».
 Добавление коллекции сущностей «Список условий по оплате» в
карточку «Счет на оплату».

4.1 Создание справочника


Предположим, что нам требуется создать справочник «Статьи бюджета» со
следующим набором полей:

1. Наименование (тип - строка, длина - 50 символов);

2. Код (тип - строка, длина - 3 символа, обязательное поле).

1. Перейдем в секцию ТЕЗИС на панели навигатора Studio и нажмем на


ссылку Создать справочник.

2. В отобразившемся окне редактора справочника заполним поля:

 Имя (рус.) - название справочника на русском языке. Укажем


значение Статьи бюджета.

 Имя (англ.) - название справочника на английском языке. Укажем


название Budget Item. Имя на английском языке рекомендуется
тщательно продумать, так как оно будет использовано в качестве
имени сущности, хранящей данные справочника.

 Меню - выпадающее меню ТЕЗИС, из которого будет доступен


новый справочник. Выберем меню Справочники.
3. Добавим поле Наименование. Нажмем на кнопку Новый под таблицей
Атрибуты и в отобразившемся окне Новый атрибут заполним поля и
нажмем ОК:

 Имя (рус.) - Наименование

 Имя (англ.) - Name

 Вид атрибута - Простой атрибут

 Тип - Строка

 Длина - 50

4. Аналогичным образом создадим атрибут Код, указав в поле Имя (англ).


- Code, в поле Длина - 3. Установим флажок Обязательный. Это
сделает поле обязательным для заполнения.

Рисунок 7

5. Сохраним готовый справочник, нажав на кнопку ОК. Studio выдаст


уведомление о тем, что в проекте была создана новая сущность
tezisext$BudgetItem и стандартные экраны просмотра и
редактирования справочника - budgetitems-browse.xml и
budgetitems-edit.xml. Ссылки на сущность последнего созданного
справочника и экраны ее просмотра и редактирования доступны в
нижней части секции ТЕЗИС на панели навигатора (Рисунок 8). По
нажатию на ссылки открываются редактор сущностей проекта и
дизайнер экранов соответственно.

Рисунок 8

6. Запустим сервер приложения, выполнив команду Run -> Start


application server. Studio выведет сообщение о несоответствии модели
данных и схемы базы данных (Рисунок 9). Допустимо выбрать одну из
трех опций:
 Открыть Менеджер БД. Studio сгенерирует скрипты обновления и
отобразит их в отдельном окне, из которого можно вручную запустить
обновление БД при помощи кнопки Update database.
 Обновить БД в фоне. Studio сгенерирует и самостоятельно применит
скрипты обновления БД.
 Запустить сервер без обновления БД.

Рисунок 9
Выберем Обновить БД в фоне. После успешного завершения
обновления и запуска сервера нажмем на ссылку Web application на
панели статуса и войдем в приложение, выбрав русский язык в окне
логина.

7. Перейдем в пункт меню Справочники -> Статьи бюджета и убедимся в


работоспособности экрана просмотра справочников (Рисунок 10).

Рисунок 10

8. Нажмем на кнопку Создать и убедимся в работоспособности экрана


редактирования (Рисунок 11).

Рисунок 11

4.2 Создание карточки


Необходимо создать карточку «Счета на оплату» со следующим набором
полей:

1. Статья бюджета (ссылка на сущность "Статья бюджета")

2. Контрагент (ссылка на сущность "Юридическое лицо")

3. Дата оплаты (тип - Дата)

4. Сумма (тип - строка, длина - 50)

5. Условие платежа (тип - строка, длина - 4000)


Дополнительно к карточке можно указать префикс нумератора - CO.

1. Если сервер приложения запущен, остановим его командой Run -> Stop
application server.

2. Перейдем в секцию ТЕЗИС на панели навигатора Studio и нажмем на


ссылку Создать карточку.

3. В отобразившемся окне редактора справочника заполним поля:

 Имя (рус). - Счет на оплату

 Имя (англ). - Invoice

 Префикс нумератора - СО

 Меню - Приложение

4. В разделе «Закладки редактора» можно настроить отображение


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

5. Создадим поле карточки Статья бюджета. Нажмем на кнопку Новый под


таблицей Атрибуты и в отобразившемся окне заполним поля:

 Имя (рус.) - Статья бюджета

 Имя (англ.) - Budget Item

 Вид атрибута - Ссылка на сущность

 Тип - BudgetItem (tezisext$BudgetItem)

6. Сохраним атрибут. Аналогичным образом добавим оставшиеся атрибуты:

 Имя (рус). - Контрагент, Имя (англ). - Contractor, Вид атрибута -


Ссылка на сущность, Тип - Company (df$Company);

 Имя (рус). - Дата оплаты, Имя (англ). - Payment Date, Вид атрибута -
Простой атрибут, Тип - Дата;

 Имя (рус). - Сумма, Имя (англ). - Amount, Вид атрибута - Простой


атрибут, Тип - Строка, Длина - 50;

 Имя (рус). - Условия платежа, Имя (англ). - Payment Conditions,


Вид атрибута - Простой атрибут, Тип - Строка, Длина - 4000.
Рисунок 12

7. Сохраним карточку, нажав на кнопку ОК. Studio создаст новую сущность


tezisext$Invoice и стандартные экраны просмотра и редактирования
каточек - invoice-browse.xml и invoice-edit.xml, которые можно
просмотреть по ссылкам внизу панели ТЕЗИС.
8. Сгенерируем скрипты обновления базы данных, нажав на ссылку
Сгенерировать скрипты БД.
9. Обновим БД, нажав на кнопку Update database.
10. Запустим сервер приложения, выполнив команду Run -> Start application
server. Войдем в приложение, выбрав русский язык в окне логина.
11. Перейдем в пункт меню Приложение -> Счет на оплату, нажмем на кнопку
Создать и убедимся в работоспособности карточки (Рисунок 13).
Рисунок 13

4.3 Добавление полей в карточку


Необходимо расширить стандартную сущность «Документ» ссылкой на
сущность «Счет на оплату».

1. Остановим сервер приложения, если он запущен (Run -> Stop


application server).
2. Перейдем в секцию ТЕЗИС на панели навигатора Studio и нажмем на
ссылку Добавить поле.
3. В отобразившемся окне в поле Сущность выберем сущность Документ
- df$SimpleDoc.
4. В таблице Атрибуты отобразится список существующих атрибутов
сущности. Нажмем на кнопку Новый и создадим атрибут со следующими
параметрами:

 Имя (рус.) - Счет на оплату

 Имя (англ.) - Invoice

 Вид атрибута - Ссылка на сущность

 Тип - Invoice(tezisext$Invoice)

5. Cохраним атрибут. Он появится в списке атрибутов сущности Документ


(Рисунок 14).
Рисунок 14

6. Сохраним сущность и сгенерируем скрипты базы данных, нажав на ссылку


Сгенерировать скрипты БД.
7. Обновим БД, нажав на кнопку Update database.
8. Запустим сервер приложения, выполнив команду Run -> Start application
server. Войдем в приложение, выбрав русский язык в окне логина.
9. Перейдем в пункт меню Документы и договоры -> Список документов и
Договоры -> Список документов, нажмем на кнопку Создать -> Новый и
убедимся, что новое поле добавлено (Рисунок 15).
Рисунок 15

4.4 Добавление коллекции связанных сущностей в карточку

Рассмотрим пример добавления коллекции сущностей. Добавим в карточку


«Счет на оплату» таблицу «Список условий по оплате», в которой будет
отображаться два столбца: текст условия и срок его выполнения.
1. Перейдем в секцию ТЕЗИС на панели навигатора Studio и нажмем на
ссылку Добавить поле.
2. В отобразившемся окне в поле Сущность выберем сущность Счет на
оплату - tezisext$Invoice.
3. Нажмем на кнопку Новый и создадим новый атрибут со следующими
параметрами:

 Имя (рус.) - Список условий по оплате

 Имя (англ.) - Payment Terms List

 Вид атрибута - Коллекция сущностей

4. В нашем приложении пока что отсутствует объект, содержащий


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

Откроется редактор нового типа для коллекции сущностей (Рисунок 16).


Заполним в нем следующие поля:

 Имя (рус.): Коллекция условий

 Имя (англ.): Terms Collection

Затем создадим необходимые нам поля, нажимая на кнопку Новый под


таблицей Атрибуты:

 Имя (рус). - Условие, Имя (англ). - Term, Вид атрибута - Простой


атрибут, Тип - Строка, Длина - 4000.

 Имя (рус). - Срок выполнения, Имя (англ). - Deadline, Вид атрибута -


Простой атрибут, Тип - Дата и время.

Рисунок 16

Нажмем на кнопку ОК. Studio создаст новую сущность TermsCollection,


экземпляры которой будут загружаться в нашу таблицу Список условий по
оплате (Рисунок 17).

Рисунок 17

5. Сохраним атрибут и карточку документа и перезапустим сервер


приложения, выполнив команду Run -> Restart application server.
6. Studio выдаст предупреждение о несоответствии модели данных
текущему состоянию БД. Нажмем на кнопку Обновить БД в фоне.

7. Нажмем на ссылку Web application на панели статуса и войдем в


приложение.

8. Перейдем в пункт меню Приложение -> Счета на оплату, нажмем на


кнопку Создать и убедимся, что таблица добавлена в карточку (Рисунок
18).

Рисунок 18