Шаблон для регистрации/удаления расширений

Когда выдалось начинать осваивать написание расширений под OeBS, первым делом был полнейший шок, так как это был, так сказать, этакий монстр, и как к нему подойти даже не представлялось :).
Но, в принципе, так как сроки по расширению были критичными, первым делом было сделано copy-paste другого расширения, и его доведение до рабочего состояния.
После некоторого облегчения от выполненной задачи, была прочитана куча документации:

  • сначала – по flexfields – после чего, поняв принцип гибких полей, оставалось только искать таблицу-первоисточник, и правильно с ними работать, а это оказалось очень просто.
  • затем – application developer guide – после чего, написание форм под OeBS совсем не пугало, и более того, это было не сложнее, чем при разработке в обычных проектах, из которых как раз переносил куски кода по работе с визуальными элементами 🙂 🙂
  • и еще куча всего

После написания десятка расширений возникло желание написать универсальный механизм управления установки/удаления расширения, так как от расширения к расширению приходилось писать ручное создание, а тем более удаление объектов расширения, приходилось постоянно искать разные куски кода для вставки.
Так родилось расширение для инсталляции/деинсталляции других расширений. Но так как в проекте не удалось его зарегистрировать как расширение (оно даже и к лучшему), то далее во всех проектах оно было переделано как PL/SQL-скрипт. И требовалось исправить только в двух местах, которые определяли схему размещения пользовательских объектов базы данных.

Рассмотрим подробнее

Основные достоинства

  • универсальный механизм установки и удаления расширения
  • гибкая возможность удаления расширения
  • автоматическое ведение лога проводимых операций

Установка расширения (скрипт регистрации расширения)

  • регистрация расширения для запуска под указанными полномочиями
  • регистрация функции в меню
  • регистрация новой формы, автоматически создается функция и меню
  • регистрация отчета с его параметрами
  • регистрация таблицы
  • создание независимого списка значений (список значений)
  • создание независимого списка значений (без списка, проверка)
  • создание табличного списка значений
  • создание кода поиска
  • создание профиля
  • создание сообщений

Удаление расширения (скрипт удаления расширения)

  • установка признака удаления набора значения при удалении расширения (это необходимо, если набор значений данного расширения используется в другом расширении (например, параметр другого отчета использует этот набор значений), то при попытке его (набора значений) удалить, получаем ошибку)
  • установка признака удаления объектов базы данных
  • ручное и/или автоматическое заполнение списка объектов OeBS и серверных объектов (объектов базы данных) для удаления
  • удаление параллельной программы
  • удаление файла параллельной программы
  • удаление параллельной программы и ее файла
  • удаление списков значений
  • удаление кодов поиска
  • удаление профиля
  • удаление сообщений
  • удаление регистрации таблицы
  • удаление формы
  • удаление функции
  • удаление меню

Для автоматического заполнения списка для удаления объектов базы данных выбираются следующие типы объектов

  • CONSUMER GROUP
  • CONTEXT
  • EVALUATION CONTEXT
  • FUNCTION
  • INDEX
  • INDEX PARTITION
  • INDEXTYPE
  • JAVA CLASS
  • JAVA DATA
  • JAVA RESOURCE
  • JAVA SOURCE
  • LIBRARY
  • LOB
  • MATERIALIZED VIEW
  • OPERATOR
  • PACKAGE
  • PACKAGE BODY
  • PROCEDURE
  • QUEUE
  • SEQUENCE
  • SYNONYM
  • TABLE
  • TABLE PARTITION
  • TRIGGER
  • TYPE
  • TYPE BODY
  • VIEW

Дополнительные утилиты

  • Выгрузка кода поиска в текстовый вариант для последующей корректировки и вставки в скрипт регистрации расширения
  • Вызов процедуры пересоздания MSB файлов (пользовательских сообщений)

Leave a Reply

Your email address will not be published. Required fields are marked *