воскресенье, 5 октября 2014 г.

Процессы создания модуля cbs3plus

Перейти к концу метаданных
Переход к началу метаданных
This is version 0.9.0 of this page. | Status: Draft
Working Version:
VersionStatusChange InfoActions
0.8.0Complete
Page added in 0.8.0.
0.9.0Draft
Page modified in 0.9.0. (show differences)
0.10Page not changed in version 0.10.

Введение

Перед началом работы по нижеследующим инструкциям должны быть верны следующие утверждения:

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

Процесс создания справочника следующий:
При создании необходимо обратить внимание на следующие моменты:
  1. Следить за совпадением имен полей в запросе и в наборе;
  2. Следить за совпадением параметров фильтрации в запросе и в настройках;
  3. В описании набора нужно заполнять только одну закладку и не все поля формы. Наличие большого количества невостребованных полей вызывает у разработчиков лишние вопросы.

Создание новой задачи

Элементы, разрабатываемые в рамках задач:
  1. Описание задачи (TAS);
  2. Описание структуры, включающее создание контекстов (CONTEXT), наборов данных (DATASET) и доменов (DOMAIN);
  3. Описания экранных форм; бывают задачи без форм, например "очистка кэша" в ядре;
  4. Чтение данных: реализуется у большинства задач, исключения - задачи с диалогами, когда идет только ввод. Элемент включает java-сервисы чтения и настройки фильтрации (USRFLT,FILTER);
  5. Сценарии Sarasvati (SCRIPT), включая Java-сервисы, не связанные с сохранением (расчеты, некоторые действия);
  6. Валидация и сохранение данных, включая валидаторы полей и наборов (DATASETCONTEXT), "прикладные методы" (METHOD), условия доступности и обязательности (FORM), Java-сервисы сохранения и пакеты-обёртки в CBS3;
  7. Динамические фрагменты форм, включая Java-сервисы построения описаний динамических наборов и самих форм.
Icon
Обязательными элементами являются только TAS и SCRIPT
Задача просмотра данных
Для реализации просмотровой задачи необходимо создать:
  1. Описания контекста CONTEXT;
  2. Описания экранной формы FORM;
  3. Сценарий задачи SCPIPT;
  4. Несколько описаний наборов данных DATASET;
  5. Интерфейс Java-сервиса;
  6. Реализацию Java-сервиса;
  7. Карту MyBatis, содержащую несколько sql-запросов;
  8. Несколько элементов фильтра FILTER;
  9. Один или несколько регулярных фильтров USRFLT.
Не так и много объектов, но в реальных задачах заранее все продумать, и выстроить линейный процесс разработки (каждый объект пишется сразу, без необходимости возвращаться к его редактированию) обычно не получается. В реальности процесс выглядит следующим образом:
При создании необходимо обратить внимание на следующие нюансы:
  1. Следить за совпадением имен полей в запросе и в наборе;
  2. Следить за совпадением параметров фильтрации в запросе и в настройках;
  3. Редактирование форм в словаре данных не удобно, а в pyQt дизайнере - вид формы не похож на то, что потом получится в qx.
Задача коррекции данных
При создании необходимо обратить внимание на следующие нюансы:
  1. Следить за совпадением имен полей в наборе и в картей MyBatis;
  2. Следить за совпадением кодов наборов и аннотаций;
  3. Не очевидная иерархия условий доступности и обязательности в формах.
Динамические фрагменты
Реализация динамических форм состоит из следующих шагов:
  1. Создать описание динамического набора, в нем указать код для метода чтения описания;
  2. В контекст добавить созданный набор, указать параметры набора;
  3. На форме разместить элемент "Встроенный фрагмент", для элемента указать код метода описания;
  4. Реализовать Java-метод построения описания набора (подбор метода построения выполняется на основании кода, указанного в наборе);
  5. Реализовать Java-метод построения описания формы (подбор метода построения выполняется на основании кода описания, указанного во фрагменте).
Доработка существующего

Доработка существующих сущностей

Определение/поиск объектов для модификации
Для определения контекста и/или формы необходимо посмотреть в тексте сценария задачи код контекста и/или формы. Альтернативный вариант: включить отладчик в браузере, очистить все кэши, запустить задачу и найти нужные коды в логе сетевых обращений.
Для определения java-класса и текста запроса необходимо посмотреть в описании контекста на закладке "методы"  код метода загрузки и путь к методу. По строке "путь к методу" в java-исходниках нужно найти файл ModuleProvider.java, оттуда и будет понятен класс, реализующий сервис. Имя метода в java и в контексте совпадают. Если в контексте метод не указан, то его следует искать в сценарии задачи в узле dd.load.
Добавление условий фильтрации
  1. Определить контекст списка и его главный набор данных;
  2. Найти карту MyBatis  и соответствующий списку запрос; 
  3. Создать элемент фильтра. Элемент может содержать более одного "поля" (условия);
  4. Для каждого "поля" в запросе в карте MyBatis создать условие запроса. Имена параметров, передаваемых в запрос списка, совпадают с кодами, указанными в условиях "поля" в элементе фильтра;
  5. Добавить элемент в регулярный фильтр.
Добавление новых полей на формы
  1. Определить форму, на которую нужно добавить поле; 
  2. По форме определить контекст; в контексте определить набор данных;
  3. Найти карту MyBatis  и соответствующий набору запрос; 
  4. Добавить поле в запрос MyBatis;
  5. Добавить поле в набор данных, при необходимости указать:
    1. справочник, его параметры и возвращаемые значения;
    2. валидатор;
  6. Если в значения параметров справочника передаются данные из других наборов контекста, то передача параметров настраивается в контексте. Аналогично с значениями  по умолчанию;
  7. Если в качестве справочника используется другой набор контекста, то настройка справочника выполняется в контексте;
  8. В pyQt дизайнере или в словаре данных добавить поле на форму, указать условия доступности и обязательности.
Добавление "деталей"
  1. Определить форму, на которую нужно добавить деталь;
  2. По форме определить контекст;
  3. Найти java-интерфейс сервиса;
  4. Написать текст SQL-запроса;
  5. Создать описание набора данных;
  6. В сервис добавить метод чтения и методы сохранения/удаления. Одновременно добавить набор в контекст, код набора и аннотации должны совпадать;
  7. В карту добавить запрос, реализовать новые методы;
  8. Если в новом наборе есть справочники, в значения параметров которых передаются данные из других наборов контекста, то настроить в контексте эту передачу;
  9. Если в новом наборе в качестве справочников используются другие наборы контекста, то выполнить настройку в контексте;
  10. В pyQt дизайнере или в словаре данных добавить на форму список/дерево/поля ввода, указать условия доступности и обязательности.
Переименование полей на формах

Сопряжение с устройствами

Комментариев нет:

Отправить комментарий