Работа с метаданными#

Процесс создания и/или изменения метаданных включает следующие этапы:

../../_images/process1_2.png

Открытие метаданных проекта#

Чтобы открыть метаданные проекта нажмите в меню ФайлОткрыть файл проекта (gmproj) или на панели инструментов редактора нажмите кнопку папка.

Создание элементов#

Для создания элементов в редакторе метаданных правой кнопкой мыши щелкните по корневому элементу и выберите в контекстном меню «Добавить новый элемент». Откроется окно с элементами, которые возможно создать.

../../_images/new1.png ../../_images/up_level.png

Где:

  • LT – LogicalTable – элемент метаданных, представляющий объект предметной области. Реестр данных, который выводится в панель представления.

  • PV – PhysicalView – элемент метаданных, представляющий собой представление (выборку, view) в базе данных. Имеет имя-название представления в БД и SQL (в некоторых ситуациях незаполненный).

  • LV – LogicalView – логическое представление – элемент метаданных, представляющий выборку данных состоящую из одного или нескольких LT с различными фильтрами и связями. Имеет ссылку на PV для представления выборки в базе данных. Реестр данных, который выводится в панель представления. В отличии от LT, может выводить данные более чем одной LT и дополнительные фильтры и связи.

Содержит:

  • список LT, входящих в выборку;

  • ссылку на PV, отвечающую за SQL.

../../_images/collection5.png
  • GLV – GeoLogicalView – элемент метаданных, представляющий слой с пространственными данными. А также является указанием для LT-что это тип с геометрией. Является связкой между LT(LV), таблицей с геометрией и PV.

Имеет два важных атрибута:

  • Table – ссылка на LT или LV для отображения в панели представления;

  • Physical view – PV для отображения в панели карты.

../../_images/collection6.png

Создание элементов верхнего уровня#

Физическая таблица#

Физическая таблица создается, если она отсутствует среди существующих, для конкретного объекта.

Для создания физической таблицы выберите «Добавить новый элемент / PhysicalTable».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdBooksTable или Alias = IsogdRefBooksTable (для справочника).

  • Name – задайте имя таблицы с указанием нужного префикса (см. Префиксы наименований). Например: Name = D_ISOGD_BOOKS или Name = D_REF_ISOGD_BOOKS (для справочника).

Физическая таблица должна содержать атрибуты: SysStatusColumn (SYS_STATUS).

Если это физическая таблица для семантики геометрической таблицы, то она должна содержать дополнительно: SpatialUnitTypeKeyColumn (LA_SPATIAL_UNIT_TYPE_KEY), MI_STYLE (MI_STYLE).

Дискриминатор в таких таблицах должен обязательно ссылаться на существующий справочник дискриминаторов SpatialUnitTypeTable на физическом уровне.

В случае создания карточек объектов МД через sql нужно заполнять также и дискриминатор (если он есть). Если не заполнить дискриминатор (тогда, когда он есть), то объект не появится в соответствующем реестре.

Физическое представление#

Чтобы создать новый элемент физического представления, выберите «Добавить новый элемент / PhysicalView».

Важно

Если при написании SQL физического представления необходимо использовать подзапросы, то у используемых в нем таблиц обязательно должен быть указан Alias, а обращение к колонкам этих таблиц должно быть выполнено через Alias таблицы.

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdBooksView.

  • Name – задайте имя представления с указанием нужного префикса (см. Префиксы наименований). Например: NAME = V_ISOGD_BOOKS.

  • SQL – введите SQL запрос, подготовленный администратором базы данных. Для запроса, возвращающего геометрию: SQL должен начинаться с /*+GEOSQL*/.

  • Table_key – укажите ссылку на физическую таблицу, где хранятся типы, участвующие в представлении. Пример: PHYSICAL_TABLE_KEY = D_ISOGD_BOOKS.

  • Description – при необходимости укажите описание.

  • Filter – при необходимости укажите дополнительное условие, добавляемое к SQL автогенерируемых представлений для типов объектов, имеющих геометрию. Условие не должно начинаться с AND, так как оператор будет добавлен автоматически. Но в теле самого условия допустимо использование любых логических операторов (and, or, in, not).

    Например:

    s.info_set_key=1000010005813340
    s.KN='55:22:123123:15' and s.area>100
    s.KN in ('55:22:123123:15','55:22:123123:12')
    

Если создается GeoLogicalView у которой в качестве типа используется LT, а не LV, а также связанное физическое представление имеет пустое поле SQL, то при загрузке метаданных в проект для такого физического представления будет автоматически сгенерирован SQL с выводом набора полей, включая поля с пространственными данными.

Если у такого физического представления в поле [Description] указать метод DO_OPEN_V и указать один или несколько физических справочных столбцов LT, связанной с GLV, то при генерации представления в дополнение к указанным столбцам в базе данных будет создано соответствующее количество столбцов вида ИМЯ_СТОЛБЦА_V с текстовым значением справочного поля. Расширенное представление используется для стилей в случае необходимости раскраски слоев по справочным полям.

В примере ниже указано поле [URBAN_KIND_OBJ]. Указание данного параметра означает, что данная PV будет расширена в базе на одно поле [URBAN_KIND_OBJ_V], которое позволяет хранить текстовое значения справочника, а не кодовое, как в классическом варианте.

../../_images/description.png

Рекомендации по работе с физическими пространственными представлениями#

Примечание

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

  • owner_key – ключ связанного семантического объекта;

  • geoloc – геометрия представленная данными в градусах (система координат 4326);

  • geoloc_orig – геометрия в оригинальной (исходной) системе координат.

При размещении пространственных данных в Системе допускается наличие коллекций. Например, невалидные данные Росреестра конвертируются в коллекции и размещаются несколькими геометрическими записями для одной семантики. Все инструменты Системы имеют возможность работы с коллекциями, что позволяет снизить количество невалидной геометрии. Но особенность коллекций оказывает влияние на отображение данных в панели представления и в других приложениях.

Стандартный SQL для самописных (не автогенерируемых) представлений на примере ЗУ выглядит:

SELECT s.key,
   ...
   g.owner_key,
   g.geoloc,
   ...
   FROM kazan.d_su_gkn_parcel s
   --Обратите внимание на этот JOIN
   JOIN kazan.d_geo_gkn_parcel g ON s.key = g.owner_key AND g.sys_status = 0
   WHERE s.sys_status = 0
   AND s.la_spatial_unit_type_key IN ( SELECT t.key
   FROM kazan.d_ref_la_spatial_unit_type t
   WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');

Так как семантика и геометрия связаны через поле owner_key геометрии, то на одну запись семантики объекты-коллекции будут выведены несколькими записями, по полю owner_key геометрии есть дублирование у коллекций.

../../_images/collection.png

Обратите внимание, что на рисунке запись из семантической таблицы с ключом 1 выведена дважды, т.к. для семантики с ключом 1 существует две записи в таблице с геометрией, у которых в owner_key находится ссылка на эту семантику.

Для проверки наличия коллекций в представлении можно использовать следующий запрос:

select count(key),key from v_geo_gkn_parcel group by key having count(key)>1;

Дублирование при наличии коллекций не вызывает проблем с отображением данных в панели карты, но в панели представления дублирование ключей уже вызывает неудобство и вопросы пользователей. Причиной является использование в метаданных одной и той же PV для панели карты и для панели представления: то есть тот SQL, допускающий дублирование в панели карты, используется и для данных панели представления.

../../_images/collection21.png

В Системе это будет выглядеть следующим образом:

../../_images/collection3.png
Как исправить#

Рекомендуется при создании GLV использовать разные PV для панели представления и панели карты.

../../_images/collection4.png

То есть необходимо создавать следующую структуру метаданных:

  • GLV атрибутом «Physical view» ссылается на PV_1

  • GLV атрибутом «Table» ссылается на LV

  • LV атрибутом «Physical view key» должна ссылаться не на PV_1, а на отдельную PV_2

SQL для PV, на которую ссылается LV не должен содержать обращения к таблице с геометрией или, если невозможно избежать использования таблицы с геометрией в запросе для панели представления (например, выводим объекты у которых площадь больше определённого значения), то необходимо обработать дубли.

Примеры SQL для панели представления

  1. В большинстве случаев достаточно убрать Join на таблицу с геометрией и её поля

  • Для панели карты:

SELECT s.key,
   ...
   g.owner_key,
   g.geoloc,
   ...
   FROM d_su_gkn_parcel s
   JOIN d_geo_gkn_parcel g ON s.key = g.owner_key AND g.sys_status = 0
   WHERE s.sys_status = 0
   AND s.la_spatial_unit_type_key IN ( SELECT t.key
   FROM d_ref_la_spatial_unit_type t
   WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');
  • Для панели представления:

SELECT s.key,
  ...
  FROM d_su_gkn_parcel s
  WHERE s.sys_status = 0
  AND s.la_spatial_unit_type_key IN ( SELECT t.key
  FROM d_ref_la_spatial_unit_type t
  WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');
  1. Если существует отбор по характеристикам геометрии. Чтобы избежать дублирования при фильтрации по характеристикам геометрии можно использовать оператор exists, в т.ч. и для пространственных отношений (например, st_intersects)

  • Для панели карты:

SELECT s.key,
   ...
   g.owner_key,
   g.geoloc,
   ...
   FROM d_su_gkn_parcel s
   JOIN d_geo_gkn_parcel g ON s.key = g.owner_key AND g.sys_status = 0 and
  geometrytype(geoloc)='POINT'
   WHERE s.sys_status = 0
   AND s.la_spatial_unit_type_key IN ( SELECT t.key
   FROM d_ref_la_spatial_unit_type t
   WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');
  • Для панели представления:

SELECT s.key,
  ...
  FROM d_su_gkn_parcel s
  WHERE s.sys_status = 0
  AND s.la_spatial_unit_type_key IN ( SELECT t.key
  FROM d_ref_la_spatial_unit_type t
  WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel')
  AND exists(select from d_geo_gkn_parcel g where s.key = g.owner_key AND
 g.sys_status = 0 and geometrytype(geoloc)='POINT')
  1. Если необходимо выводить какие-либо характеристики геометрии в панель представления. В большинстве случаев это не требуется, но при необходимости, то дублирования можно избежать группировками.

Например, в LV для панели представления прописано поле Area

  • Для панели карты:

SELECT s.key,
  ...
  g.owner_key,
  g.geoloc,
  g.area,
  ...
  FROM d_su_gkn_parcel s
  JOIN d_geo_gkn_parcel g ON s.key = g.owner_key AND g.sys_status = 0
  WHERE s.sys_status = 0
  AND s.la_spatial_unit_type_key IN ( SELECT t.key
  FROM d_ref_la_spatial_unit_type t
  WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');
  • Для панели представления:

Вариант 1

SELECT s.key,
  g.area,
  ...
  FROM d_su_gkn_parcel s
  left join lateral(select st_area(st_collect(g.geoloc_orig)) as area from
 d_geo_gkn_parcel where owner_key=s.key) g on true
  WHERE s.sys_status = 0
  AND s.la_spatial_unit_type_key IN ( SELECT t.key
  FROM d_ref_la_spatial_unit_type t
  WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');

Вариант 2

with g as (select st_area(st_collect(g.geoloc_orig)) as area,owner_key from
d_geo_gkn_parcel group by owner_key)
 SELECT s.key,
 g.area,
 ...
 FROM d_su_gkn_parcel s
 left join g on g.owner_key=s.key
 WHERE s.sys_status = 0
 AND s.la_spatial_unit_type_key IN ( SELECT t.key
 FROM d_ref_la_spatial_unit_type t
 WHERE t.sys_status = 0 AND t.alias::text = 'GknParcel');

Важно проверить быстродействие подобного запроса с группировкой и, по возможности, избегать группировок.

Логическая таблица#

Логическая таблица создается для добавления нового типа объекта.

Для создания логической таблицы выберите «Добавить новый элемент / Добавить таблицу».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdBooks.

  • Name – задайте русское имя объекту. Например: Name = Книги ИСОГД.

  • Full name – см. Формирование атрибута Full name.

  • Physical_table_key – укажите ссылку на физическую таблицу. Например: PHYSICAL_TABLE_KEY = D_ISOGD_BOOKS.

  • Validation behavior – заполняется правилами проверки обязательности полей в зависимости от условий.

Настройка обязательности полей в зависимости от условий#

Функциональность

  • Возможность настраивать правила для проверки обязательности полей в зависимости от условий.

  • Проверка полей на обязательность заполнения в корневом типе, включая ссылочные поля.

  • Проверка обязательности полей _’проверка на Пусто’_ в связанных объектах: типы FK, MR и RRL, глобальные MR и RR.

  • Выполнение правила проверки обязательности поля по заданному условию:

Пусто – empty
Не пусто – not-empty
= ‘значение’ – eq
<> ‘значение’ – not-eq

Где и как хранятся описания правил

Правила валидации описываются в структуре XML, хранятся в метаданных объекта в поле «Validation behavior». Необходимо найти в редакторе метаданных актуальной версии объект, для которого требуется настроить обязательность по условию, например, LT, и добавить в указанное поле этого объекта содержимое подготовленного XML. После сохранения проекта с изменённым полем правило валидации хранится в файле метаданных .gmdiff, который необходимо пролить патчером на проект Geometa.

Структура xml

<validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<group-rules>
  <condition op="or">
    <eq>
   <prop alias="StateDoc">
       <prop alias="Name"/>
   </prop>
   <const value="Действующий"/>
       </eq>
    </condition>
    <rule>
       <condition op="or">
          <eq>
             <prop alias="StateDoc">
                <prop alias="Name"/>
             </prop>
             <const value="Действующий"/>
           </eq>
           <not-eq>
              <prop alias="StateDoc">
                  <prop alias="Name"/>
              </prop>
              <const value="Отменен"/>
                </not-eq>
                <operations op="or">
                     <eq>
                      <prop alias="StateDoc">
                        <prop alias="Name"/>
                        </prop>
                        <const value="Действующий"/>
                      </eq>
                      <eq>
                        <prop alias="StateDoc">
                           <prop alias="Name"/>
                        </prop>
                        <const value="Отменен"/>
                      </eq>
                </operations>
           </condition>
       <check message="В объекте из поля &quot;Документ, определяющий статус данных&quot; установите связь с документом типа Проект планировки, Проект межевания, изменение в проект планировки или изменение в проект межевания">
                <not-empty>
                  <prop alias="Doc">
                      <filter op="or">
                          <eq>
                            <type />
                            <const value="DocPPT"/>
                          </eq>
                          <eq>
                            <type />
                            <const value="DocPMT"/>
                          </eq>
                          <eq>
                            <type />
                            <const value="DocIZ"/>
                          </eq>
                    </filter>
                </prop>
            </not-empty>
        </check>
        <check message="Установите чекбокс &quot;Допущен до эл. согласования&quot;">
           <eq>
               <prop alias="Agreement"/>
               <const value="1"/>
           </eq>
         </check>
         <check message="Прикрепите файл">
              <not-empty>
                    <file />
                </not-empty>
          </check>
          <check message="Создайте или задайте геометрию">
              <not-empty>
                 <geometry />
              </not-empty>
            </check>
        </rule>
        <rule>
            <check message="В объекте из поля &quot;Результат услуги&quot; заполните поле &quot;Номер&quot;">
                <not-empty>
                    <prop alias="Doc_DocRelGpzuResult">
                        <filter>
                            <eq>
                                <prop alias="Doc_DocRelGpzuResult">
                                    <type />
                                </prop>
                                <const value="DocRejection"/>
                            </eq>
                        </filter>
                        <prop alias="Num"/>
                    </prop>
                </not-empty>
                    </check>
        </rule>
    </group-rules>
</validation-package>

Правило <rule> состоит из двух частей:

  1. Секции с тегом <condition>, в которой описываются условия исполнения проверки.

  2. Набора секций с тегом <check>, в которых описаны выполняемые проверки.

Условие выполнения проверки <condition> может быть общим для нескольких правил, объединенных в группу „<group-rules>“.

Если все условия, определенные в секции <condition>, возвращают положительный результат, то выполняются проверки, описанные в правилах <rule> для секций с тегом </check>.

Если условия <condition> описаны внутри правила <rule>, то они распространяются только на это правило.

  • Тег <condition> может иметь атрибут op, который может принимать значения «or» или «and», по умолчанию «and».

 <condition op="or">
     <eq>
         <prop alias="StateDoc">
             <prop alias="Name"/>
         </prop>
         <const value="Text"/>
     </eq>
</condition>
  • Тег <prop alias="Name"> указывает на поле объекта, которое может быть датой, числом, ссылкой на объект или текстовым полем.

<prop alias="Name"/>
  • Тег <eq> содержит пару «свойство <prop> - значение <const>», т.е. обработчик правила в поле «Name» будет ожидать значение «Text», при равенстве значений будет возвращена Истина. Можно выполнить сравнение на неравенство, использовав тег <not-eq> вместо <eq>.

Если поле объекта ссылочное, то можно использовать вложенность свойств <prop> для проверки значений полей связанного объекта.

Так поле [Статус] у корневого объекта имеет связь со справочником StateDoc «Статус документа», а у справочника есть поле Name «Наименование», в котором условие ожидает значение «Действующий»

<eq>
    <prop alias="StateDoc">
        <prop alias="Name"/>
    </prop>
    <const value="Действующий"/>
</eq>
  • Тег <operations op="or"> объединяет несколько условий в группу с заданным операндом op="". Атрибут op может принимать значения «or» или «and».

 <operations op="or">
   <eq>
     <prop alias="StateDoc">
        <prop alias="Name"/>
     </prop>
     <const value="Действующий"/>
   </eq>
   <eq>
     <prop alias="StateDoc">
        <prop alias="Name"/>
     </prop>
     <const value="Отменен"/>
   </eq>
</operations>
  • Тег <check message=""> содержит проверку поля на заполненность, если проверка провалена, то для пользователя выводится сообщение, заданное в message=»». Символ &quot; - заменяет символ ``.

  • Тег <not-empty> содержит проверку свойства <prop> на заполненность.

Фильтрация по определённому типу с помощью тэга <filter>

Тег <filter op="or"/> позволяет объединить несколько условий.

Например, когда в поле может быть установлена связь с несколькими типами, а проверять нужно не все, тег <type /> позволяет проверить наличие связи только c определенными типами объектов:

<check message="В объекте из поля quot; Документ, определяющий статус данных quot; установите связь с документом типа Проект планировки, Проект межевания, изменение в проект планировки или изменение в проект межевания">
<not-empty>
           <prop alias="Doc">
   <filter op="or">
       <eq>
           <type />
           <const value="DocPPT"/>
       </eq>
       <eq>
           <type />
          <const value="DocPMT"/>
       </eq>
       <eq>
           <type />
           <const value="DocIZ"/>
       </eq>
   </filter>
       </prop>
   </not-empty>
 </check>

Когда необходимо проверить не просто наличие связи с объектом, но и какой-либо атрибут связываемого объекта, на одном уровне с тэгом <filter> необходимо разместить закрытый тэг <prop alias=» «/>. В качестве Alias указать Alias поля, связи, файла или геометрии, в зависимости от того, какой атрибут связываемого объекта проверяется.

Проверка наличия геометрии

Тег <geometry/> указывает на связь объекта с геометрией. Проверить наличие геометрии можно с помощью следующей конструкции:

<check message="Создайте или задайте геометрию">
    <not-empty>
        <geometry />
    </not-empty>
</check>

Проверка наличия файла

Используя тег <file /> можно проверить наличие вложений в карточке объекта:

<check message="К карточке документа не приложен файл">
    <not-empty>
        <file />
    </not-empty>
</check>

Глобальные связи MR.

Например, у карточки Услуга ГПЗУ (wfServiceGpzu) есть связь с карточкой Заявление. В редакторе метаданных можно увидеть, что внутри логического типа «Услуга ГПЗУ» нет MR связи с Заявлением. Значит, связь является глобальной. Найти её наименование можно через редактор метаданных поиском по русскому наименованию типа (например, «Услуга ГПЗУ») или по запросу, отправляемому в момент открытия карточки через вкладку Network консоли разработчика в браузере.

../../_images/screenshot_1.png

Для корректной валидации глобальная MR связь указывается следующим образом:

Alias поля глобальной связи, которое указывает на связываемый объект «_» Alias глобальной связи».

../../_images/screenshot_2.png

Есть два разных случая:

  1. Alias типа WfServiceGpzu. Проверяем равенство значения справочного поля карточки, в которую переходим по глобальной связи. В данном случае по типу связать не получится, тэг <type> не подходит, используем Alias справочного значения. Тег <type> только для связи с LT, на которую ссылается LVI.

    Чтобы узнать Alias справочного значения, достаточно знать его полное наименование и использовать следующий SQL-запрос:

    select alias from
        kazan.d_ref_directory_simple
            where full_name = 'Заявление на получение ГПЗУ';
    
    
    <validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <rule>
        <check message="В объекте из поля quot;Заявлениеquot; установите связь с заявлением.">
            <eq>
                <prop alias="Doc_DocRelWfGpzuAppl">
                    <prop alias="ViewLetter">
                        <prop alias="Alias"/>
                    </prop>
                </prop>
            <const value="Gpzu"/>
            </eq>
        </check>
    </rule>
    </validation-package>
    
  1. Alias типа WfServiceGpzu. Проверяем заполненность поля в LVI, также известном как элемент логического представления. Это тот случай, когда в поле карточки есть выбор между LVI, в нашем случае между тремя такими LVI: ГПЗУ, Решение об отказе, Решение об утверждении ГПЗУ). Здесь применим тэг <type>, для поиска Alias такого типа в редакторе метаданных нужно перейти из глобальной MR в связываемую LV, найти нужный элемент LVI. В качестве Alias типа взять Alias логической таблицы, на которую ссылается выбранный LVI, в данном случае DocRejection.

    <validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <rule>
                <check message="Заполните поле ‘Номер’">
                    <not-empty>
                            <prop alias="Doc_DocRelGpzuResult">
                                <filter>
                                    <eq>
                                        <type />
                                        <const value="DocRejection"/>
                                    </eq>
                                </filter>
                                <prop alias="Num"/>
                            </prop>
                    </not-empty>
                </check>
            </rule>
        </validation-package>
    

Ещё один пример глобальной связи, здесь Alias поля глобальной MR связываемого объекта имеет вид SpatialUnit (для проверки укажите в редакторе метаданных Alias глобальной MR связи DocGpzuZuRelation):

<validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<rule>
    <check message="У связанного с документом ГПЗУ земельного участка должен быть указан кадастровый номер">
        <not-empty>
                <prop alias="SpatialUnit_DocGpzuZuRelation">
                    <filter>
                        <eq>
                            <type />
                            <const value="GknParcel"/>
                        </eq>
                    </filter>
                    <prop alias="KN"/>
                </prop>
        </not-empty>
    </check>
</rule>
</validation-package>

Пример:

Если карточка услуги «Выдача ГПЗУ» Doc_DocRelGpzuResult имеет связь с объектом «Отказ» DocRejection, то проверить на непустое поле «Причина отказа» RejectReason в «Отказе». Результатом услуги могут выступать и другие типы документов.

<validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <rule>
     <condition>
        <eq>
          <prop alias="Doc_DocRelGpzuResult">
                        <type />
           </prop>
           <const value="DocRejection"/>
         </eq>
     </condition>
     <check message="В объекте из поля &#171;Результат услуги &#187; заполните поле &#171;Причина отказа&#187;.">
        <not-empty>
           <prop alias="Doc_DocRelGpzuResult">
                <filter>
                   <eq>
                     <type />
                      <const value="DocRejection"/>
                   </eq>
                </filter>
          <prop alias="RejectReason"/>
           </prop>
        </not-empty>
     </check>
  </rule>
</validation-package>

Пример связи MR между логической таблицей и логическим представлением

<validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <check message="В объекте из поля ‘Адрес для аннулирования’ приложите файл">
        <not-empty>
            <prop alias="DocObjAdressCancel">
                <filter>
                <eq>
                    <type />
                    <const value="AdrPoint"/>
                </eq>
                </filter>
                <file />
            </prop>
        </not-empty>
    </check>
    </rule>
</validation-package>

Где:

  • DocObjAdressCancel - Alias глобальной MR связи корневого объекта

  • AdrPoint - Alias LT, на который ссылается элемент LV (LVI)

Глобальная RR связь.

У глобальной RR связи нет полей в редакторе метаданных, поэтому связь происходит только по Alias глобальной RR связи.

<rule>
    <check message="В объекте из поля quot;Заявительquot; заполните обязательное поле quot;Полное наименованиеquot;">
        <not-empty>
            <prop alias="SubjRoleDeclarer">
                <filter>
                    <eq>
                        <type />
                        <const value="SubjOrganization"/>
                    </eq>
                </filter>
                <prop alias="Name"/>
            </prop>
        </not-empty>
    </check>
</rule>

В теге <const value=" "/> записывается Alias логической таблицы из представления Субъекты (SubjParty):

  • SubjPerson - Физическое лицо.

  • SubjOrganization - Юридическое лицо.

Пример проверки обязательности полей в карточке ГПЗУ

Для объекта ГПЗУ выполнить проверку заполненности полей «Cлужебный номер», «Кто подготовил (Организация)» и «Проект планировки», если выполнены условия:

  1. Статус = «Действующий»

  2. Поле «Примечание» не пустое

<validation-package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<rule>
  <condition op="and">
      <eq>
        <prop alias="StateDoc">
                <prop alias="Alias"/>
        </prop>
        <const value="approved"></const>
     </eq>
     <not-empty>
        <prop alias="Note">
        </prop>
    </not-empty>
  </condition>
  <check message="Заполните поле quot;Cлужебный номерquot;">
    <not-empty>
       <prop alias="WorkNumKZN">
       </prop>
    </not-empty>
  </check>
  <check message="В карточке градостроительный план ЗУ не заполнено поле ‘Кто подготовил (Организация)’">
     <not-empty>
        <prop alias="SubjRoleWhoMakeOrg">
        </prop>
    </not-empty>
   </check>
  <check message="В карточке градостроительный план ЗУ не заполнено поле ‘Проект планировки’">
    <not-empty>
        <prop alias="DocRelPPM">
        </prop>
    </not-empty>
   </check>
  </rule>
</validation-package>

Из примера можем увидеть, как должно быть описано правило для проверки значения справочного поля:

<condition>
   <eq>
     <prop alias="StateDoc">
          <prop alias="Alias">
     </prop>
     <const value="approved"/>
  </eq>
</condition>

В карточке ГПЗУ (корневой тип) есть ссылочное поле «Статус документа (StateDoc)», которое указывает на справочник StateDoc «Статус документа». Cвойство <prop alias= «Alias»> - это указатель на поле «Псевдоним (Alias)» из типа StateDoc.

Если в этом поле будет значение «approved», то конструкция <eq> .. </eq> вернет true.

Так как других условий в фильтре <condition> не задано, то </condition>..</condition> также вернет true и будут выполнены все проверки <check>.

Логическое представление#

Чтобы создать новый элемент логического представления выберите «Добавить новый элемент / Добавить представление».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdBooksClose.

  • Name – задайте имя объекту на русском языке. Например: Name = Книги ИСОГД(закрытые).

  • DISCRIMINATOR COLUMN – укажите атрибут из физического представления, который содержит Alias объекта. Как правило, это атрибут TYPE_ALIAS.

  • PHYSICAL_VIEW_KEY – укажите ссылку на физическое представление. Например: PHYSICAL_VIEW_KEY = V_ISOGD_BOOKS_CLOSE.

Для каждого типа в логическом представлении необходимо также добавлять элемент логического представления.

Проверка SQL на ошибки#

В редакторе метаданных можно выполнить следующие проверки:

  • Проверка наличия дискриминатора, когда для одной PT существует несколько LT. Текст предупреждения будет выводиться на вкладке Warning: Для логической таблицы «Имя_таблицы» не задан дискриминатор.

  • Проверка наличия PT для PV. Текст предупреждения будет выводиться на вкладке Warning: Для физического представления 'Alias_PV' не задана физическая таблица.

    Эти проверки выполняются по кнопке Проверить на ошибки из контекстного меню корневого элемента.

  • Проверка соответствия SQL-запроса физического представления и текущей модели данных.

    Проверка выполняется для всей модели, если вызвать её из контекстного меню корневого элемента по кнопке Проверить SQL на ошибки, и для конкретного элемента PV при редактировании поля с SQL.

../../_images/editor_metadata_2.png

Справочник#

Для создания справочника выберите «Добавить новый элемент / Directory».

Заполните атрибуты объекта:

  • Aias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdRefBooksType.

  • Name – задайте имя справочнику на русском языке. Например: Name = Типы книг ИСОГД.

  • Full name – см. Формирование атрибута Full name.

  • Physical_table_key – укажите ссылку на физическую таблицу. Для простых справочников в наборе метаданных уже имеется таблица DirectorySimple. Например: PHYSICAL_TABLE_KEY = D_REF_DIRECTORY_SIMPLE.

Слой#

../../_images/down_level.png

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

Чтобы создать слой для логической таблицы, щелкните по ней правой кнопкой мыши и выберите «Создать слой GLV». Перейдите в созданную GLV и укажите ссылку на объект описания таблицы геометрии Geo Table.

Чтобы создать слой для логического представления, щелкните правой кнопкой мыши по корневому элементу и выберите «Добавить новый элемент – Добавить слой».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = GeoUrbanTerZoneExist.

  • Name – задайте имя слою на русском языке. Например: Name = Территориальные зоны (существующие).

  • Table – укажите ссылку на логическое представление. Например: Table = Территориальные зоны (существующие) (UrbanTerZoneExist).

  • Physical view – укажите ссылку на физическое представление. Например: Physical view = V_GEO_URBAN_TER_ZONE_EXIST.

  • Geo table – укажите ссылку на объект описания таблицы геометрии. Например: Geo table = Все пространственные данные (GeoTableInfo).

Добавление постраничного получения слоев по WFS средствами Geoserver#

Для реализации постраничного получения слоев:

  • В схеме проекта по данным таблицы gt_pk_metadata геосервер определяет какой столбец в представлении будет выступать в качестве ключа.

../../_images/wfs_page.png
  • При проливке метаданных, во все GeoLigicalView добавится столбец geoserver_entity_key. Значение нового ключа берется из значения ключа семантики (SQL GLV содержит код: s.key as geoserver_entity_key). Так же, при отсутствии, в таблицу «gt_pk_metadata» добавляется запись о соответствии.

  • Колонка geoserver_entity_key не переносится в атрибуты слоя, так как она является идентификатором только для геосервера. Если у слоя на геосервере будет атрибут geoserver_entity_key, то постраничность для данного слоя будет недоступна.

Вид поиска#

Для создания нового вида поиска выберите «Добавить новый элемент / SearchType».

Заполните атрибуты объекта:

  • Alias – идентификатор вида поиска, как правило, выглядит как: «Alias типа объекта + Search», например, DocAllDocViewSearch;

  • Name – наименование вида поиска;

  • Comment – комментарий;

  • Description – описание;

  • Icon id – здесь задается набор стилей для иконки, которая будет выводится в панели поиска Системы - Стили иконки предварительно описываются в коде;

  • Water mark – подсказка отображаемая в строке поиска, когда поле пустое;

  • Has button – будет ли вид поиска отображаться в виде кнопки в панели поиска;

  • Is default – если true, то этот вид поиска будет выбран по умолчанию;

  • Is Spatial – воспринимать ли поиск как пространственный (с отображением результатов на карте). Поиск пространственных объектов происходит дольше, поэтому, если отображение результатов поиска на карте обязательно, то установите флажок в поле [Is spatial];

  • Order No – порядок вывода иконки в панели поиска.

  • Тип объекта, участвующего в поиске – IndexSource. Для одного вида поиска SearchType можно описать несколько типов объектов.

Свойства IndexSource :

  • Alias – идентификатор, как правило, выглядит как: «Alias типа объекта + Query», например, DocAllDocViewQuery;

  • Name – произвольное наименование индекса (можно не заполнять);

  • REF_LOGICAL_TABLE_KEY – логическая таблица или view (тип для которого настраивается поиск);

  • UNIQUE_KEY – в качестве ключа обязательно указать поле ИД (KeyField) выбранной логической таблицы или view.

  • Поля, участвующие в поиске – SearchField, для всех перечисленных типов объектов.

Свойства SearchField:

  • Alias – идентификатор поискового поля, как правило, выглядит как: «Alias поля_Field», например, DocName_Field;

  • Name – можно не заполнять;

  • Field key – ссылка на поле логической таблицы;

  • Boost – задается для увеличения веса поля в итоговом результате - Как правило, используется стандартный вес, в этом случае значение равно 0;

  • Is indexed – будет ли осуществляться поиск по данному полю;

  • Is Multi Value – рекомендуется значение false;

  • Is stored – будет ли поле доступно в результатах поиска;

  • Solr type – ставится тип «SolrText».

Описание стиля иконки

Описание иконки поиска выполняется по примеру: fg fg-search-document.

Стиль должен быть описан в файле приложения font-grad.css.

Как выглядит стиль:

.fg-search-document:before {
            content: "\2920";
 }

где 2920 – это номер иконки из файла шрифтов GlyphiconIAS.otf (fg - это общий стиль шрифта, а fg-search-document описание выбранной иконки).

Описание стиля других иконок:

папкаfg-search-folder

домfg-search-real-estate

листfg-search-document

кубикfg-search-tablet

мэнfg-search-subject

культураfg-search-urban-cult

капля1fg-search-spatial

капля2fg-search-spatial-contour

маркер1fg-map-marker-background

маркер2fg-map-marker-body

кругfg-dot-circle-o

квадратfg-union

звезда1fg-ideo-graf-white

звезда2fg-ideo-graf-black

Примечание

После описания поиска в метаданных необходимо переформировать виды поиска для проекта (см. Как сформировать виды поиска), иначе попытки осуществления поиска по данным приведет к ошибке. Добавление нового поля в существующий вид поиска без переформирования также приведет к ошибке.

Физическая таблица геометрии#

Для создания физической таблицы геометрии выберите «Добавить новый элемент / PhysicalTable».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = GeometryLandscapeTable.

  • Name – задайте имя таблицы с указанием нужного префикса (подробнее: Префиксы наименований). Рекомендуется использовать префикс D_GEO_. Например: NAME = d_geo_landscape.

Физическая таблица геометрии должна содержать следующие атрибуты:

SYS_STATUS Name = SYS_STATUS, Alias = SysStatusColumn, Physical datatype = NUMBER

Numgeometries Name = numgeometries, Alias = NumGeometry, Physical datatype = NUMBER

npoints Name = npoints, Alias = NPoints, Physical datatype = NUMBER

linelength Name = linelength, Alias = LineLength, Physical datatype = NUMBER(20,2)

geometrytype Name = geometrytype, Alias = GeometryTypeStr, Physical datatype = VARCHAR2(100)

area Name = area, Alias = Area, Physical datatype = NUMBER(20,2)

owner_key Name = owner_key, Alias = OwnerKey, Physical datatype = NUMBER, Ref physical table key = ссылка на физическую таблицу семантики, связанная с создаваемой таблицей геометрии (например, d_la_spatial_unit (SpatialUnitTable))

geoloc Name = geoloc, Alias = GeoColumn, Physical datatype = public.geometry

Объект описания таблицы геометрии#

Для создания объекта описания таблицы геометрии выберите «Добавить новый элемент / GeoTable».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = IsogdBooksView.

  • Name – задайте имя на русском языке. Например: NAME = Лесной квартал.

  • Physical table – укажите таблицу геометрии, для которой создается объект описания. Например: Physical table = d_geometry (GeometryTable).

Формирование атрибута Full name#

../../_images/full_name.png

Атрибут Full name формируется для логических таблиц и справочников.

Чтобы заполнить атрибут Full name выделите элемент и перейдите в свойства элемента (см. Как просмотреть свойства элемента).

Заполните атрибут Full name.

Шаблон для Full name имеет структуру: выражение?условие, в котором:

  • выражение – либо атрибут, либо константа;

  • ? – принимает значение «если»;

  • условие – критерий, от которого зависит вывод выражения.

Примечание

Убедитесь, что между составными частями выражения и разделителями отсутствуют пробелы, иначе Full name не будет генерироваться.

Правила формирования выражения:

  1. Константа в подставляемом значении пишется в одинарных кавычках. Например, для шаблона test результатом будет test.

  2. Для вывода значения поля объекта, для которого формируется Full name, указывается Alias поля. Например, для шаблона KN результатом будет 86:11:0501008:844.

  3. Для вывода значения поля связанного объекта указывается <Alias связи>.<Alias поля>. Например, для шаблона GknParcel.KN результатом будет 86:11:0501008:844. Поддерживается неограниченное количество уровней вложенности.

  4. Для вывода наименования MR или RR связи используется системное свойство FullNameField. Например: SubjRoleDeclarer.FullNameField.

Правила формирования условия:

  1. Допускается лишь одно условие на составную часть.

  2. Для создания условия на равенство значению поля указывается: <Alias объекта>.<Alias поля>=<значение поля>. Пример запроса на условие: ?AdrObj.Type.Alias=street.

Обратите внимание: при указании условия на значение поля необходимо использовать только латинские символы.

  1. Для создания условия, что поле/объект пустое, указывается: ?<поле/объект>=.

  2. Для создания условия, что поле/объект не пустое, указывается: ?<поле/объект>.

Примеры шаблонов с условиями

  • 'Нет номера '?Number=|| '№' ?Number||Number

Результат:

«Нет номера», если поле [Number] пустое

<№ [Number]>, если поле [Number] не пустое

  • 'Земельный участок'?KN=||'Земельный участок '?KN||KN||' ('||Status.FullNameColumn||')'

Результат:

Если поле [Кадастровый номер] и [Статус] заполнено, то вывести Земельный участок №16:50:777777:77 (Существующий).

Если заполнено только поле [Кадастровый номер], то вывести Земельный участок №16:50:777777:77.

Если заполнено только поле [Статус], то вывести Земельный участок (Существующий).

Если не заполнены поля [Кадастровый номер] и [Статус], то вывести Земельный участок.

  • UrbanKindObj.Name?UrbanPlanningRegulation.FullNameField=||UrbanPlanningRegulation.FullNameField

Результат: Если поле [Градостроительный регламент] пусто, то вывести вид территориальной зоны, иначе вывести градостроительный регламент.

  • LastName?IsEntrepreneur=||''||FirstName?IsEntrepreneur=||''||MiddleName?IsEntrepreneur=||''||EntrepreneurShortName?IsEntrepreneur=1||LastName?IsEntrepreneur=0||''||FirstName?IsEntrepreneur=0||''||MiddleName?IsEntrepreneur=0

Результат: Если галочка «Предприниматель» не стоит, то вывести ФИО, иначе вывести «Краткое наименование ИП».

  • AdrType.Name?AdrType.FullNameOrder=||''?AdrType.FullNameOrder=||Name||''?AdrType.FullNameOrder||AdrType.Name?AdrType.FullNameOrder

Результат: В зависимости от типа объекта адресации выводить поля в прямом или обратном порядке. Например: если «улица» - то «улица Новая», если «линия» - то «7 линия».

Примечание

Сложные Full name при создании формируются из составных частей, разделенных «||». Например: выражение?условие||выражение?условие||выражение?условие.

В случае создания карточек объектов МД через sql нужно заполнять также и full_name. Если не заполнить full_name, то правила, указанные для метаданных, отрабатывать автоматически не будут, и полное наименование останется пустым.

Создание элементов нижнего уровня#

Физическое поле#

Физическое поле создается только для физических таблиц (PT) или физических представлений (PV).

../../_images/column.png

Для создания физического поля выберите «Добавить новый элемент / Column».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов). Например: Alias = OrgForm.

  • Name – задайте имя атрибуту в физической таблице заглавными буквами. Например: Name = ORG_FORM.

  • PHYSICAL DATATYPE – задайте тип атрибута в базе данных. Например: PHYSICAL_DATATYPE = NUMBER.

Типы данных, которые могут быть указаны в поле PHYSICAL DATATYPE:

  • DATE – дата;

  • VARCHAR2(500) – текстовое поле (число в скобках редактируется);

  • NUMBER – числовые и ссылочные поля;

  • NUMBER(15,2) – вещественное поле (числа в скобках редактируются).

  • REF PHYSICAL TABLE KEY – заполняется только для атрибутов, которые являются ссылкой на другой объект – Укажите физическую таблицу объекта, к которому установлена ссылка. Например: REF_PHYSICAL_TABLE_KEY = D_REF_DIRECTORY_SIMPLE.

Логическое поле#

Для создания логического поля выберите «Добавить новый элемент / Field».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте наименование полю;

  • ORDER NO – укажите порядковый номер поля в карточке;

  • ORDER IN GRID – укажите порядковый номер поля в панели представления;

  • VISIBLE IN CARD – задайте параметры отображения поля. Есть 3 варианта:
    • Show – отобразить поле.

    • Hide – скрыть поле.

    • ShowWithValue – отображение секции, в зависимости от наличия информации в полях, расположенных в этой секции. Данный параметр подходит для полей с автоматическим заполнением информацией. Если для всех полей секции установлено это свойство и при этом все поля не заполнены, то секция будет скрыта. Во всех остальных случаях секция с входящими в неё полями отображается в карточке объекта.

  • HIDE IN GRID – выберите, если нужно скрыть отображение в таблице;

  • DOMAIN KEY – укажите тип поля;

  • REF TABLE KEY – заполняется только в том случае, если в предыдущем поле указан тип – ссылка на объект – Имеется возможность указывать ссылки к логическим таблицам, представлениям, справочникам;

  • SECTION KEY – укажите секцию, которой будет принадлежать поле в карточке объекта;

  • FILTER – атрибут появляется, если поле ссылочное и заполнен атрибут REF TABLE KEY. Фильтр настраивается для таблицы, выбранной в атрибуте REF TABLE KEY, и определяет критерии выборки объектов в этом логическом поле.

  • IS DISCRIMINATOR – атрибут дискриминатора. В рамках одной логической таблицы возможно использование только одного дискриминатора;

  • IS LINK FIELD – атрибут ссылочного поля;

  • IS MINI CARD VISIBLE – атрибут видимости поля в мини-карточке (актуально только для портала);

  • IS READONLY – атрибут «Только для чтения»;

  • IS REQUIRED – атрибут обязательного заполнения поля пользователем;

  • COLUMN KEY – укажите физическое поле – При отсутствии необходимого поля, имеется возможность создать новое, нажав на кнопку в виде плюсика.

Добавление пространственной связи#

Добавление пространственной связи возможно для логической таблицы.

Чтобы добавить пространственую связь выберите «Добавить новый элемент / SpatialRelation».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте наименование полю;

  • ORDER NO – укажите порядковый номер поля в карточке;

  • VISIBLE IN CARD – задайте параметры отображения поля. Есть 3 варианта:
    • Show – отобразить поле.

    • Hide – скрыть поле.

    • ShowWithValue – отображение секции, в зависимости от наличия информации в полях, расположенных в этой секции. Данный параметр подходит для полей с автоматическим заполнением информацией. Если для всех полей секции установлено это свойство и при этом все поля не заполнены, то секция будет скрыта. Во всех остальных случаях секция с входящими в неё полями отображается в карточке объекта.

  • HIDE IN GRID – выберите, если нужно скрыть отображение в таблице;

  • SPATIAL RELATION TYPE – укажите вид пространственной связи.

../../_images/spatial.png

Различают следующие: Intersects (пересекает), equals (равняется), touches (касается), contains (содержит), covers (покрывает), disjoint (непересекает), covered by (покрыт), within (в пределах)

При выборе типа пространственного отношения IntersectionByEntryDepth становится доступным для редактирования связанный с ним поле [Глубина вхождения]. Значения в этом поле задаются в метрах. Допустимо указывать дробные значения с точностью до миллиметра.

При выборе типа пространственного отношения IntersectionByPercentArea становится доступным для редактирования связанное с ним поле [Тысячные доли процента соответствия]. Параметр определяет минимальный процент площади пересечения двух пространственных объектов для подтверждения их пространственного пересечения, и измеряется в тысячных долях процента. При значении 1000 объекты будут считаться пересекающимися, если площадь пересечения больше либо равна 1% площади исходного объекта. По умолчанию значение параметра равно нулю.

  • TARGET – укажите ссылку на объект, с которым устанавливается пространственная связь;

  • TARGET GEOVIEW – укажите ссылку на слой объекта, с которым устанавливается пространственная связь;

  • OWNER GEOVIEW – укажите ссылку на слой текущего объекта;

  • SECTION KEY – укажите секцию, которой будет принадлежать поле в карточке объекта.

Добавление множественной связи#

Добавление множественной связи возможно для логической таблицы.

Чтобы добавить множественную связь выберите «Добавить новый элемент / MultiRelation».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте наименование полю;

  • ORDER NO – укажите порядковый номер поля в карточке;

  • ORDER IN GRID – укажите порядковый номер поля в панели представления;

  • VISIBLE IN CARD – задайте параметры отображения поля. Есть 3 варианта:
    • Show – отобразить поле.

    • Hide – скрыть поле.

    • ShowWithValue – отображение секции, в зависимости от наличия информации в полях, расположенных в этой секции. Данный параметр подходит для полей с автоматическим заполнением информацией. Если для всех полей секции установлено это свойство и при этом все поля не заполнены, то секция будет скрыта. Во всех остальных случаях секция с входящими в неё полями отображается в карточке объекта.

  • HIDE IN GRID – выберите, если нужно скрыть отображение в таблице;

  • EDITOR TYPE – укажите вид редактирования поля;

  • PHYSICAL TABLE – укажите физическую таблицу для хранения связей М:М - Как правило, подобные таблицы в наименовании имеют префикс D_REL.

  • TARGET – укажите ссылку на объект, с которым будет реализована связь;

  • OWNER COLUMN – укажите физическое поле из выбранной таблицы связей, в котором будет храниться ключ текущего объекта;

  • TARGET COLUMN – укажите физическое поле из выбранной таблицы связей, в котором будет храниться ключ объекта, с которым будет реализована связь;

  • SECTION KEY – укажите секцию, которой будет принадлежать поле в карточке объекта;

  • IS READONLY – атрибут «Только для чтения»;

  • IS MULTIPLE CHOICE – атрибут множественной ссылки;

  • IS REQUIRED – атрибут обязательного заполнения поля пользователем.

Добавление связи с субъектами#

Добавление связи с субъектами возможно для логической таблицы.

Чтобы добавить множественную связь выберите «Добавить новый элемент / RoleRelationLocal».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте наименование поля;

  • ORDER NO – укажите порядковый номер поля в панели представления;

  • VISIBLE IN CARD – задайте параметры отображения поля. Есть 3 варианта:
    • Show – отобразить поле.

    • Hide – скрыть поле.

    • ShowWithValue – отображение секции, в зависимости от наличия информации в полях, расположенных в этой секции. Данный параметр подходит для полей с автоматическим заполнением информацией. Если для всех полей секции установлено это свойство и при этом все поля не заполнены, то секция будет скрыта. Во всех остальных случаях секция с входящими в неё полями отображается в карточке объекта.

  • HIDE IN GRID – выберите, если нужно скрыть отображение в таблице;

  • EDITOR TYPE – укажите вид редактирования поля;

  • PHYSICAL TABLE KEY – укажите физическую таблицу для хранения связей М:М.

  • TARGET – укажите ссылку на логическую таблицу или представление, которые содержат субъектов;

  • OWNER COLUMN – укажите физическое поле из выбранной таблицы, в котором будет храниться ключ текущего объекта;

  • TARGET COLUMN – укажите физическое поле из выбранной таблицы, в котором будет храниться ключ связи субъекта с ролью;

  • SECTION KEY – укажите секцию, которой будет принадлежать поле в карточке объекта;

  • ROLE TYPE COLUMN – укажите физическое поле, в котором будет храниться ключ роли (по умолчанию, ROLE_TYPE_KEY);

  • ROLE TARGET COLUMN – укажите физическое поле, в котором будет храниться ключ субъекта (по умолчанию, PARTY_KEY);

  • IS READONLY – атрибут «Только для чтения»;

Добавление возможности установить связь с реплицированными документами, субъектами#

Данная настройка может быть выполнена в редакторе метаданных или путём исправления файла .gmdiff, содержащего необходимую связь.

Важно

  • После внесения изменений в файл .gmdiff в региональной рабочей области появится возможность выбора реплицированных с МО документов как в Geometa, так и в ГИСОГД (Diamond).

  • Выбор реплицированных субъектов будет доступен только в Geometa. При создании/технической коррекции документа в ГИСОГД (Diamond) для выбора будут доступны только субъекты конкретного проекта.

Для добавления возможности установления связи с реплицированными документами, субъектами:

  1. Откройте файл с расширением .gmdiff, содержащий Alias связи, в текстовом редакторе. Если файл с необходимой связью отсутствует, то создайте его. Создание выполняется в редакторе метаданных изменением любого из свойств связи, например, можно увеличить на 1 порядковый номер в панели представления.

  2. Добавьте в блок <Values> Alias’a связи строку:

<Value Attribute="DISABLE_THIS_PROJECT_FILTER" DecimalValue="1" />

../../_images/values.png

Создание элемента логического представления#

Для каждого типа, входящего в логическое представление (см. Логическое представление), необходимо добавлять атрибут LogicalViewItem.

Чтобы добавить атрибут, выберите «Добавить новый элемент / LogicalViewItem».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте имя атрибуту (может оставаться пустым);

  • REF LOGICAL TABLE KEY – укажите ссылку на логическую таблицу.

Добавление секции#

Добавление секции возможно для логической таблицы.

Чтобы добавить секцию выберите «Добавить новый элемент / Section».

Заполните атрибуты объекта:

  • Alias – задайте уникальное в рамках родительского каталога значение в соответствии с правилами именования Alias’ов (см. Именование Alias’ов);

  • Name – задайте имя элементу;

  • ORDER NO – укажите порядковый номер в карточке;

  • DEFAULT COLLAPSE – атрибут сворачивания элемента по умолчанию.

Именование Alias’ов#

Для именования Alias’ов используется стиль написания CamelCase (стиль написания, при котором несколько слов пишутся слитно, без пробелов, и при этом каждое слово внутри фразы пишется с прописной буквы).

Пример именования Alias’ов: GknParcel – земельный участок, TopoTablet - топографический планшет.

Alias’ы объектов#

Правила именования Alias’ов объектов:

  • Alias объекта начинается с Alias’а подсистемы;

  • Alias объекта уникален.

Зарезервированные Alias’ы подсистем:#

Adr

Адресный план

Gkn

Сведения ГКН

Trans

Транспортная инфраструктура

Eng

Инженерная инфраструктура

Urban

Градостроительная документация

Urban5

Градостроительная документация (версия 5.0 Классификатор ДТП (Минэконом))

UrbGp

Градостроительная документация (конвертация из СТкГД)

Topo

Топографические материалы

Cult

Объекты культурного наследия

Subj

Заявители

Isogd

ИСОГД

Doc

Документы

Serv

Услуги

Wf

Управление процессами

Cop

Контроль общественных пространств

Rem

Управление недвижимостью

IsogdQA

Качество ведения ИСОГД

Alias’ы атрибутов#

Правила именования Alias’ов атрибутов:

  • Alias уникален в пределах объекта;

  • Alias атрибута не содержит Alias’а объекта.

Рекомендуемые Alias’ы атрибутов Общие:#

Date <чего>

Дата <чего>

Kind

Вид

Code

Код

Name

Наименование

Num

Номер

Desc, Description

Описание

Area

Площадь

Note

Примечание

Type

Тип

Content

Содержание

Qty, Quantity

Количество

Len

Длина

Category

Категория

State

Состояние

Status

Статус

Obj, Object

Объект

Level

Значение (местное, региональное)

Рекомендуемые Alias’ы атрибутов Градостроительные:#

Population

Население

District

Район города

Microdistrict

Микрорайон

Qarter

Квартал

Territory

Площадка

TerritoryNum

Номер площадки

RedLine

Красная линия

Agency

Орган (государственный)

Purp, Purpose

Назначение

Ownership

Собственность

Restr, Restriction

Ограничение

Regul, Regulation

Регулирование

Pr, Project

Проектное

Floor

Этаж, этажность

Undergr, Underground

Подземное [площадь]

Appt, Appartament

Квартира

Constr, Construction

Сооружение

Building

Здание

Investment

Инвестиционная

Calc, Calculation

Рассчет

Build

Застройка

BuildArea

Площадь застройки

Stage

Этап

People

Проживающие

QantityPeople

Количество проживающих

Total

Общая

Living

Жилая [площадь]

Unliving

Нежилая [площадь]

Rate

Степень [износа]

Deterioration

Износа

Waste

Ветхость

Reconstruction

Реконструкция

Emergency

Аварийность

Administr,Administrative

Административное

AdministrativeUnit

Административно- территориальная принадлежность

AdministrativeBounlaries

Административно- территориальное деление

Direction

Направление

Cluster

Кластер

Capital (Building)

Капитальное (здание)

Placing

Размещение (объектов)

Rank

Ранг

Approx

Ориентировочная площадь

Availability, Avail

Наличие [объектов]

Commercial, Comm

Коммерческая

IndividualResidential

ИЖС

Industrial, Ind

Промышленное

Production, Prod

Производственное

Profitability, Profit

Рентабельность

Developing, Dev

Освоение [этап, период]

Social, Soc

Социальное

Infrastucture, Infr

Инфраструктура

Stored

Сохраняемое

Demolished

Сносимое

Encumbrance

Обременение

Рекомендуемые Alias’ы атрибутов Транспортные:#

Transport, Trans

Транспорт

Railway

Железные дороги

Capacity

Пропускная способность

Рекомендуемые Alias’ы атрибутов Территории с град. ограничениями:#

Protection, Prot

Охранные

WaterProt

Водоохранные

Flooding

Затопление

Рекомендуемые Alias’ы атрибутов Инженерные сети:#

GasNetwork

Газоснабжение

HeatNetwork

Теплоснабжение

CommNetwork

Связь

PipeNetwork

Трубопровод

ElectrNetwork

Электроснабжение

WaterNetwork

Водоснабжение

SewerNetwork

Водоотведение

RainSewerNetwork

Ливневая канализация

Pipe

Труба

Network

Сеть

Segment

Участок (сети)

Cause

Основание (обоснование)

Method, LayMethod

Способ [прокладки]

Mode

Режим [температурный]

Cable

Провод

Material, Mat

Материал

Diameter, Diam

Диаметр

Pressure, Press

Давление

Power

Мощность

Unit

Единица измерения

Calculation, Calc

Расчетная

Fuel

Топливо

Запрещенные Alias’ы#

Запрещенные Alias’ы:

  • Date;

  • Number.

В названии Alias’ов бизнес-объектов и их полей, а также физических таблиц и их полей запрещено использовать символы: ! != & ( ) * + , - . / : ; < << <= = => > >= @ ~ [ ] ^ { | }.

Названия, которые нельзя присваивать Alias’ам, приведены в таблице Таблица запрещенных Alias’ов

Префиксы наименований#

D_GEO_

пространственные таблицы

D_

семантические таблицы

A_

таблицы подсистемы администрирования

M_

таблицы метаданных

L_

таблицы логов

D_WF_

таблицы подсистемы документооборота

D_SYS_

служебные таблицы (каталоги, задачи,…)

SYS_

служебные таблицы репликации, СМЭВ,…)

MDRT_

таблицы пространственных индексов

D_REF_

таблицы справочников

D_FILE_

таблицы файлов

V_

семантические физические представления

V_GEO_

пространственная физические представления

D_REL_

таблицы связей

/*+GEOSQL*/

SQL запрос, возвращающий геометрию

Таблица запрещенных Alias’ов#

Alias’ы бизнес-объектов и их полей, а также физические таблицы и их поля запрещено называть:

a

abort

abs

absolute

access

accessed

account

acos

action

activate

active_component

active_function

active_tag

add

add_column

add_group

add_months

adj_date

administer

administrator

advise

advisor

after

aggregate

alias

all

all_rows

allocate

allow

also

alter

always

analyse

analyze

ancillary

and

and_equal

antijoin

any

anyschema

append

append_values

appendchildxml

apply

archive

archivelog

array

as

asc

ascii

asciistr

asin

assembly

assertion

assignment

associate

asymmetric

async

asynchronous

at

atan

atan2

attribute

attributes

audit

authenticated

authentication

authid

authorization

auto

autoallocate

autoextend

automatic

availability

avg

admin

backup

backward

basic

basicfile

batch

become

before

begin

begin_outline_data

behalf

between

bfile

bfilename

bigfile

bigint

bin_to_num

binary

binary_double

binary_double_infinity

binary_double_nan

binary_float

binary_float_infinity

binary_float_nan

bind_aware

binding

bit

bitand

bitmap

bitmap_tree

bitmaps

bits

blob

block

block_range

blocks

blocksize

body

boolean

both

bound

branch

breadth

broadcast

buffer

buffer_cache

buffer_pool

build

bulk

by

bypass_recursive_check

bypass_ujvc

byte

cache

cache_cb

cache_instances

cache_temp_table

call

called

cancel

cardinality

cascade

cascaded

case

cast

catalog

category

ceil

cell_flash_cache

certificate

cfile

chain

chained

change

change_dupkey_error_index

char

char_cs

character

characteristics

chartorowid

check

check_acl_rewrite

checkpoint

child

choose

chr

chunk

class

clear

clob

clone

close

close_cached_open_cursors

cluster

cluster_id

cluster_probability

cluster_set

clustering_factor

co_auth_ind

coalesce

coalesce_sq

coarse

cold

collate

collation

collect

column

column_auth_indicator

column_stats

column_value

columnar

columns

comment

comments

commit

committed

compact

compatibility

compile

complete

compliance

compose

composite

composite_limit

compound

compress

compute

concat

concurrently

configuration

confirm

conforming

connect

connect_by_cb_whr_only

connect_by_combine_sw

connect_by_cost_based

connect_by_elim_dups

connect_by_filtering

connect_by_iscycle

connect_by_isleaf

connect_by_root

connect_time

connection

consider

consistent

const

constant

constraint

constraints

container

content

contents

context

continue

controlfile

conversion

convert

copy

corr

corr_k

corr_s

corrupt_xid

corrupt_xid_all

corruption

cos

cosh

cost

cost_xml_query_rewrite

count

covar_pop

covar_samp

cpu_costing

cpu_per_call

cpu_per_session

crash

create

create_stored_outlines

creation

cross

crossedition

csconvert

csv

cube

cube_gb

cume_dist

cume_distm

current

current_catalog

current_date

current_role

current_schema

current_time

current_timestamp

current_user

currentv

cursor

cursor_sharing_exact

cursor_specific_segment

cv

cycle

d

dangling

data

database

datafile

datafiles

dataobj_to_partition

dataobjno

date

date_mode

day

db_role_change

db_version

dba

dba_recyclebin

dbms_stats

dbtimezone

ddl

deallocate

debug

debugger

dec

decimal

declare

decode

decompose

decr

decrement

decrypt

deduplicate

default

defaults

deferrable

deferred

defined

definer

degree

delay

delete

deletexml

delimiter

delimiters

demand

dense_rank

dense_rankm

dependent

depth

dequeue

deref

deref_no_rewrite

desc

detached

determines

dictionary

dimension

direct_load

direct_path

directory

disable

disable_preset

disable_rpke

disallow

disassociate

discard

disconnect

disk

diskgroup

disks

dismount

distinct

distinguished

distributed

dml

dml_update

do

docfidelity

document

domain

domain_index_filter

domain_index_no_sort

domain_index_sort

double

downgrade

driving_site

drop

drop_column

drop_group

dst_upgrade_insert_conv

dump

dynamic

dynamic_sampling

dynamic_sampling_est_cdn

e

each

edition

editioning

editions

element

eliminate_join

eliminate_oby

eliminate_outer_join

else

empty

empty_blob

empty_clob

enable

enable_preset

encoding

encrypt

encrypted

encryption

end

end_outline_data

enforce

enforced

enqueue

enterprise

entityescaping

entry

enum

error

error_argument

error_on_overlap_time

errors

escape

estimate

evalname

evaluation

event

events

every

except

exceptions

exchange

exclude

excluding

exclusive

execute

exempt

exists

existsnode

exp

expand_gset_to_union

expand_table

expire

explain

explosion

export

expr_corr_check

extends

extension

extent

extents

external

externally

extra

extract

extractvalue

facility

fact

factorize_join

failed

failed_login_attempts

failgroup

false

family

fast

fbtscan

feature_id

feature_set

feature_value

fetch

file

filesystem_like_logging

filter

final

fine

finish

first

first_rows

first_value

firstm

flagger

flash_cache

flashback

float

flob

floor

flush

folder

following

follows

for

force

force_xml_query_rewrite

foreign

forever

forward

fragment_number

freelist

freelists

freepools

freeze

fresh

from

from_tz

full

full_outer_join_to_outer

function

functions

g

gather_plan_statistics

gby_conc_rollup

gby_pushdown

generated

global

global_name

global_topic_enabled

globally

grant

granted

greatest

group

group_by

group_id

grouping

grouping_id

groups

guarantee

guaranteed

guard

h

handler

hash

hash_aj

hash_sj

hashkeys

having

header

heap

help

hextoraw

hextoref

hidden

hide

hierarchy

high

hintset_begin

hintset_end

hold

hot

hour

hwm_brokered

hybrid

id

identified

identifier

identity

idgenerators

idle_time

if

ignore

ignore_optim_embedded_hints

ignore_row_on_dupkey_index

ignore_where_clause

ilike

immediate

immutable

impact

implicit

import

in

in_memory_metadata

in_xquery

include

include_version

including

incr

increment

incremental

indent

index

index_asc

index_combine

index_desc

index_ffs

index_filter

index_join

index_rows

index_rrs

index_rs

index_rs_asc

index_rs_desc

index_scan

index_skip_scan

index_ss

index_ss_asc

index_ss_desc

index_stats

indexed

indexes

indextype

indextypes

indicator

infinite

informational

inherit

inherits

initcap

initial

initialized

initially

initrans

inline

inline_xmltype_nt

inner

inout

input

insensitive

insert

insertchildxml

insertchildxmlafter

insertchildxmlbefore

insertxmlafter

insertxmlbefore

instance

instances

instantiable

instantly

instead

instr

instr2

instr4

instrb

instrc

int

integer

intermediate

internal_convert

internal_use

interpreted

intersect

interval

into

invalidate

invisible

invoker

is

isnull

isolation

isolation_level

iterate

iteration_number

java

job

join

k

keep

keep_duplicates

kerberos

key

key_length

keys

keysize

kill

label

lag

language

large

last

last_day

last_value

lateral

layer

lc_collate

lc_ctype

ldap_reg_sync_interval

ldap_registration

ldap_registration_enabled

lead

leading

leakproof

least

left

length

length2

length4

lengthb

lengthc

less

level

levels

library

life

lifetime

like

like_expand

like2

like4

likec

limit

link

list

listagg

listen

ln

lnnvl

load

lob

lobnvl

lobs

local

local_indexes

localtime

localtimestamp

location

locator

lock

locked

log

log_read_only_violations

logfile

logfiles

logging

logical

logical_reads_per_call

logical_reads_per_session

logoff

logon

long

low

lower

lpad

ltrim

m

main

make_ref

manage

managed

management

manager

manual

mapping

master

match

matched

materialize

materialized

max

maxarchlogs

maxdatafiles

maxextents

maximize

maxinstances

maxlogfiles

maxloghistory

maxlogmembers

maxsize

maxtrans

maxvalue

measure

measures

median

medium

member

memory

merge

merge$actions

merge_aj

merge_const_on

merge_sj

method

migrate

migration

min

minextents

minimize

minimum

mining

minus

minus_null

minute

minvalue

mirror

mirrorcold

mirrorhot

mlslabel

mod

mode

model

model_compile_subquery

model_dontverify_uniqueness

model_dynamic_subquery

model_min_analysis

model_no_analysis

model_pby

model_push_ref

modify

modify_column_type

monitor

monitoring

month

months_between

mount

mountpath

move

movement

multiset

mv_merge

name

named

names

namespace

nan

nanvl

national

native

native_full_outer_join

natural

nav

nchar

nchar_cs

nchr

nclob

needed

nested

nested_table_fast_insert

nested_table_get_refs

nested_table_id

nested_table_set_refs

nested_table_set_setid

network

never

new

new_time

next

next_day

nl_aj

nl_sj

nlj_batching

nlj_index_filter

nlj_index_scan

nlj_prefetch

nls_calendar

nls_characterset

nls_charset_decl_len

nls_charset_id

nls_charset_name

nls_comp

nls_currency

nls_date_format

nls_date_language

nls_initcap

nls_iso_currency

nls_lang

nls_language

nls_length_semantics

nls_lower

nls_nchar_conv_excp

nls_numeric_characters

nls_sort

nls_special_chars

nls_territory

nls_upper

nlssort

no

no_access

no_basetable_multimv_rewrite

no_bind_aware

no_buffer

no_cartesian

no_check_acl_rewrite

no_coalesce_sq

no_connect_by_cb_whr_only

no_connect_by_combine_sw

no_connect_by_cost_based

no_connect_by_elim_dups

no_connect_by_filtering

no_cost_xml_query_rewrite

no_cpu_costing

no_domain_index_filter

no_dst_upgrade_insert_conv

no_eliminate_join

no_eliminate_oby

no_eliminate_outer_join

no_expand

no_expand_gset_to_union

no_expand_table

no_fact

no_factorize_join

no_filtering

no_full_outer_join_to_outer

no_gby_pushdown

no_index

no_index_ffs

no_index_ss

no_load

no_merge

no_model_push_ref

no_monitor

no_monitoring

no_multimv_rewrite

no_native_full_outer_join

no_nlj_batching

no_nlj_prefetch

no_order_rollups

no_outer_join_to_anti

no_outer_join_to_inner

no_parallel

no_parallel_index

no_partial_commit

no_place_distinct

no_place_group_by

no_pq_map

no_prune_gsets

no_pull_pred

no_push_pred

no_push_subq

no_px_join_filter

no_qkn_buff

no_query_transformation

no_ref_cascade

no_result_cache

no_rewrite

no_semijoin

no_set_to_join

no_sql_tune

no_star_transformation

no_statement_queuing

no_stats_gsets

no_subquery_pruning

no_substrb_pad

no_swap_join_inputs

no_table_lookup_by_nl

no_temp_table

no_transform_distinct_agg

no_unnest

no_use_hash

no_use_hash_aggregation

no_use_hash_gby_for_pushdown

no_use_invisible_indexes

no_use_merge

no_use_nl

no_xdb_fastpath_insert

no_xml_dml_rewrite

no_xml_query_rewrite

no_xmlindex_rewrite

no_xmlindex_rewrite_in_select

noappend

noarchivelog

noaudit

nocache

nocompress

nocpu_costing

nocycle

nodelay

noentityescaping

noforce

noguarantee

nolocal

nologging

nomapping

nomaxvalue

nominimize

nominvalue

nomonitoring

nonblocking

none

nonschema

noorder

nooverride

noparallel

noparallel_index

norely

norepair

noresetlogs

noreverse

norewrite

normal

norowdependencies

noschemacheck

nosegment

nosort

nostrict

noswitch

not

nothing

notification

notify

notnull

novalidate

nowait

nth_value

ntile

null

nullif

nulls

num_index_keys

number

numeric

numtodsinterval

numtoyminterval

nvarchar2

nvl

nvl2

object

object2xml

objno

objno_reuse

occurences

of

off

offline

offset

oid

oidindex

oids

olap

old

old_push_pred

oltp

on

online

only

opaque

opaque_transform

opaque_xcanonical

opcode

open

operations

operator

opt_estimate

opt_param

optimal

optimizer_features_enable

optimizer_goal

option

options

or

or_expand

or_predicates

ora_branch

ora_checkacl

ora_dst_affected

ora_dst_convert

ora_dst_error

ora_get_aclids

ora_get_privileges

ora_hash

ora_rowscn

ora_rowscn_raw

ora_rowversion

ora_tabversion

oradebug

order

ordered

ordered_predicates

ordinality

organization

other

out

out_of_line

outer

outer_join_to_anti

outer_join_to_inner

outline

outline_leaf

over

overflow

overflow_nomove

overlaps

overlay

own

owned

owner

ownership

p

package

packages

parallel

parallel_index

param

parameters

parent

parity

parser

part$num$inst

partial

partially

partition

partition_hash

partition_list

partition_range

partitions

passing

password

password_grace_time

password_life_time

password_lock_time

password_reuse_max

password_reuse_time

password_verify_function

path

paths

pbl_hs_begin

pbl_hs_end

pctfree

pctincrease

pctthreshold

pctused

pctversion

pending

percent

percent_rank

percent_rankm

percentile_cont

percentile_disc

performance

permanent

permission

pfile

physical

pikey

piv_gb

piv_ssf

pivot

place_distinct

place_group_by

placing

plan

plans

plscope_settings

plsql_ccflags

plsql_code_type

plsql_debug

plsql_optimize_level

plsql_warnings

point

policy

position

post_transaction

power

powermultiset

powermultiset_by_cardinality

pq_distribute

pq_map

pq_nomap

prebuilt

precedes

preceding

precision

precompute_subquery

predicate_reorders

prediction

prediction_bounds

prediction_cost

prediction_details

prediction_probability

prediction_set

prepare

prepared

present

presentnnv

presentv

preserve

preserve_oid

previous

primary

prior

private

private_sga

privilege

privileges

procedural

procedure

process

profile

program

project

propagate

protected

protection

public

pull_pred

purge

push_pred

push_subq

px_granule

px_join_filter

qb_name

query

query_block

queue

queue_curr

queue_rowp

quiesce

quorum

quota

quote

random

random_local

range

rank

rankm

rapidly

ratio_to_report

raw

rawtohex

rawtonhex

rba

rbo_outline

rdba

read

reads

real

reassign

rebalance

rebuild

recheck

records_per_block

recover

recoverable

recovery

recursive

recycle

recyclebin

redo

reduced

redundancy

ref

ref_cascade_cursor

reference

referenced

references

referencing

refresh

reftohex

regexp_count

regexp_instr

regexp_like

regexp_replace

regexp_substr

register

regr_avgx

regr_avgy

regr_count

regr_intercept

regr_r2

regr_slope

regr_sxx

regr_sxy

regr_syy

regular

reindex

reject

rekey

relational

relative

release

rely

remainder

remote_mapped

remove

rename

repair

repeat

repeatable

replace

replica

replication

required

reset

resetlogs

resize

resolve

resolver

resource

respect

restart

restore

restore_as_intervals

restrict

restrict_all_ref_cons

restricted

result_cache

resumable

resume

retention

retry_on_row_change

return

returning

returns

reuse

reverse

revoke

rewrite

rewrite_or_error

right

role

roles

rollback

rolling

rollup

round

row

row_length

row_number

rowdependencies

rowid

rowidtochar

rowidtonchar

rownum

rows

rpad

rtrim

rule

rules

salt

sample

save_as_intervals

savepoint

sb4

scale

scale_rows

scan

scan_instances

scheduler

schema

schemacheck

scn

scn_ascending

scope

scroll

sd_all

sd_inhibit

sd_show

search

second

securefile

securefile_dba

security

seed

seg_block

seg_file

segment

select

selectivity

semijoin

semijoin_driver

sequence

sequenced

sequences

sequential

serializable

server

servererror

session

session_cached_cursors

session_user

sessions_per_user

sessiontimezone

sessiontzname

set

set_to_join

setof

sets

settings

severe

share

shared

shared_pool

show

shrink

shutdown

siblings

sid

sign

signal_component

signal_function

similar

simple

sin

single

singletask

sinh

size

skip

skip_ext_optimizer

skip_unq_unusable_idx

skip_unusable_indexes

smallfile

smallint

snapshot

some

sort

soundex

source

space

specification

spfile

split

spreadsheet

sql

sql_trace

sqlldr

sqrt

stable

stale

standalone

standby

standby_max_data_delay

star

star_transformation

start

startup

statement

statement_id

statement_queuing

statements

static

statistics

stats_binomial_test

stats_crosstab

stats_f_test

stats_ks_test

stats_mode

stats_mw_test

stats_one_way_anova

stats_t_test_indep

stats_t_test_indepu

stats_t_test_one

stats_t_test_paired

stats_wsr_test

stddev

stddev_pop

stddev_samp

stdin

stdout

stop

storage

store

streams

strict

string

strip

stripe_columns

stripe_width

structure

submultiset

subpartition

subpartition_rel

subpartitions

subqueries

subquery_pruning

substitutable

substr

substr2

substr4

substrb

substrc

substring

successful

sum

summary

supplemental

suspend

swap_join_inputs

switch

switchover

symmetric

sync

synchronous

synonym

sys_audit

sys_checkacl

sys_connect_by_path

sys_context

sys_dburigen

sys_dl_cursor

sys_dm_rxform_chr

sys_dm_rxform_num

sys_dom_compare

sys_dst_prim2sec

sys_dst_sec2prim

sys_et_bfile_to_raw

sys_et_blob_to_image

sys_et_image_to_blob

sys_et_raw_to_bfile

sys_extpdtxt

sys_extract_utc

sys_fbt_insdel

sys_filter_acls

sys_fnmatches

sys_fnreplace

sys_get_aclids

sys_get_privileges

sys_gettokenid

sys_getxtival

sys_guid

sys_make_xmlnodeid

sys_makexml

sys_mkxmlattr

sys_op_adt2bin

sys_op_adtcons

sys_op_alscrval

sys_op_atg

sys_op_bin2adt

sys_op_bitvec

sys_op_bl2r

sys_op_bloom_filter

sys_op_bloom_filter_list

sys_op_c2c

sys_op_cast

sys_op_ceg

sys_op_cl2c

sys_op_combined_hash

sys_op_comp

sys_op_convert

sys_op_countchg

sys_op_csconv

sys_op_csconvtest

sys_op_csr

sys_op_csx_patch

sys_op_decomp

sys_op_descend

sys_op_distinct

sys_op_dra

sys_op_dump

sys_op_dv_check

sys_op_enforce_not_null$

sys_op_extract

sys_op_grouping

sys_op_guid

sys_op_iix

sys_op_itr

sys_op_lbid

sys_op_lobloc2blob

sys_op_lobloc2clob

sys_op_lobloc2id

sys_op_lobloc2nclob

sys_op_lobloc2typ

sys_op_lsvi

sys_op_lvl

sys_op_makeoid

sys_op_map_nonnull

sys_op_msr

sys_op_nicombine

sys_op_niextract

sys_op_nii

sys_op_nix

sys_op_noexpand

sys_op_ntcimg$

sys_op_numtoraw

sys_op_oidvalue

sys_op_opnsize

sys_op_par

sys_op_par_1

sys_op_pargid

sys_op_pargid_1

sys_op_pivot

sys_op_r2o

sys_op_rawtonum

sys_op_rdtm

sys_op_ref

sys_op_rmtd

sys_op_rowidtoobj

sys_op_rpb

sys_op_tosetid

sys_op_tpr

sys_op_trtb

sys_op_undescend

sys_op_vecand

sys_op_vecbit

sys_op_vecor

sys_op_vecxor

sys_op_version

sys_op_vref

sys_op_vvd

sys_op_xmlcons_for_csx

sys_op_xpthatg

sys_op_xpthidx

sys_op_xpthop

sys_op_xtxt2sqlt

sys_optlobprbsc

sys_optxicmp

sys_optxqcastasnq

sys_orderkey_depth

sys_orderkey_maxchild

sys_orderkey_parent

sys_parallel_txn

sys_path_reverse

sys_pathid_is_attr

sys_pathid_is_nmspc

sys_pathid_lastname

sys_pathid_lastnmspc

sys_pxqextract

sys_rid_order

sys_row_delta

sys_sc_2_xmlt

sys_synrciredo

sys_typeid

sys_umakexml

sys_xmlanalyze

sys_xmlcontains

sys_xmlconv

sys_xmlexnsuri

sys_xmlgen

sys_xmli_loc_isnode

sys_xmli_loc_istext

sys_xmlinstr

sys_xmllocator_getsval

sys_xmlnodeid

sys_xmlnodeid_getcid

sys_xmlnodeid_getlocator

sys_xmlnodeid_getokey

sys_xmlnodeid_getpathid

sys_xmlnodeid_getptrid

sys_xmlnodeid_getrid

sys_xmlnodeid_getsval

sys_xmlnodeid_gettid

sys_xmlt_2_sc

sys_xmltranslate

sys_xmltype2sql

sys_xq_asqlcnv

sys_xq_atomcnvchk

sys_xq_nrng

sys_xq_pksql2xml

sys_xq_upkxml2sql

sys_xqbaseuri

sys_xqcastableerrh

sys_xqcodep2str

sys_xqcodepeq

sys_xqcon2seq

sys_xqconcat

sys_xqdelete

sys_xqdfltcolation

sys_xqdoc

sys_xqdocuri

sys_xqdurdiv

sys_xqed4uri

sys_xqendswith

sys_xqerr

sys_xqerrh

sys_xqeshtmluri

sys_xqexlobval

sys_xqexstwrp

sys_xqextract

sys_xqextrref

sys_xqexval

sys_xqfb2str

sys_xqfnbool

sys_xqfncmp

sys_xqfndatim

sys_xqfnlname

sys_xqfnnm

sys_xqfnnsuri

sys_xqfnpredtruth

sys_xqfnqnm

sys_xqfnroot

sys_xqformatnum

sys_xqftcontain

sys_xqfuncr

sys_xqgetcontent

sys_xqindxof

sys_xqinsert

sys_xqinspfx

sys_xqiri2uri

sys_xqlang

sys_xqllnmfrmqnm

sys_xqmknoderef

sys_xqnilled

sys_xqnodename

sys_xqnormspace

sys_xqnormucode

sys_xqnsp4pfx

sys_xqnspfrmqnm

sys_xqpfxfrmqnm

sys_xqpolyabs

sys_xqpolyadd

sys_xqpolycel

sys_xqpolycst

sys_xqpolycstbl

sys_xqpolydiv

sys_xqpolyflr

sys_xqpolymod

sys_xqpolymul

sys_xqpolyrnd

sys_xqpolysqrt

sys_xqpolysub

sys_xqpolyumus

sys_xqpolyupls

sys_xqpolyveq

sys_xqpolyvge

sys_xqpolyvgt

sys_xqpolyvle

sys_xqpolyvlt

sys_xqpolyvne

sys_xqref2val

sys_xqrename

sys_xqreplace

sys_xqresvuri

sys_xqrndhalf2evn

sys_xqrslvqnm

sys_xqryenvpget

sys_xqryvarget

sys_xqrywrp

sys_xqseq2con

sys_xqseq2con4xc

sys_xqseqdeepeq

sys_xqseqinsb

sys_xqseqrm

sys_xqseqrvs

sys_xqseqsub

sys_xqseqtypmatch

sys_xqstartswith

sys_xqstatburi

sys_xqstr2codep

sys_xqstrjoin

sys_xqsubstraft

sys_xqsubstrbef

sys_xqtokenize

sys_xqtreatas

sys_xqxform

sysasm

sysaux

sysdate

sysdba

sysid

sysoper

system

system_defined

systimestamp

t

table

table_lookup_by_nl

table_stats

tables

tablespace

tablespace_no

tabno

tan

tanh

tbl$or$idx$part$num

temp

temp_table

tempfile

template

temporary

test

text

than

the

then

thread

through

time

time_zone

timeout

times

timestamp

timezone_abbr

timezone_hour

timezone_minute

timezone_offset

timezone_region

tiv_gb

tiv_ssf

to

to_binary_double

to_binary_float

to_blob

to_char

to_clob

to_date

to_dsinterval

to_lob

to_multi_byte

to_nchar

to_nclob

to_number

to_single_byte

to_time

to_time_tz

to_timestamp

to_timestamp_tz

to_yminterval

toplevel

trace

tracing

tracking

trailing

transaction

transform_distinct_agg

transition

transitional

translate

treat

trigger

triggers

trim

true

trunc

truncate

trusted

tuning

tx

type

types

tz_offset

u

ub2

uba

uid

unarchived

unbound

unbounded

uncommitted

under

undo

undrop

unencrypted

uniform

union

unique

unistr

unknown

unlimited

unlisten

unload

unlock

unlogged

unnest

unpacked

unpivot

unprotected

unquiesce

unrecoverable

unrestricted

until

unusable

unused

upd_indexes

upd_joinindex

updatable

update

updated

updatexml

upgrade

upper

upsert

urowid

usage

use

use_anti

use_concat

use_hash

use_hash_aggregation

use_hash_gby_for_pushdown

use_invisible_indexes

use_merge

use_merge_cartesian

use_nl

use_nl_with_index

use_private_outlines

use_semi

use_stored_outlines

use_ttt_for_gsets

use_weak_name_resl

user

user_defined

user_recyclebin

userenv

usergroup

users

using

vacuum

valid

validate

validation

validator

value

values

var_pop

var_samp

varchar

varchar2

variadic

variance

varray

varrays

varying

vector_read

vector_read_trace

verbose

verify

version

versioning

versions

versions_endscn

versions_endtime

versions_operation

versions_startscn

versions_starttime

versions_xid

view

views

virtual

visible

volatile

volume

vsize

wait

wallet

wellformed

when

whenever

where

whitespace

width_bucket

window

with

within

without

work

wrapped

wrapper

write

x_dyn_prune

xdb_fastpath_insert

xid

xml

xml_dml_rwt_stmt

xml2object

xmlattributes

xmlcast

xmlcdata

xmlcolattval

xmlcomment

xmlconcat

xmldiff

xmlelement

xmlexists

xmlexists2

xmlforest

xmlindex_rewrite

xmlindex_rewrite_in_select

xmlindex_sel_idx_tbl

xmlisnode

xmlisvalid

xmlnamespaces

xmlparse

xmlpatch

xmlpi

xmlquery

xmlroot

xmlschema

xmlserialize

xmltable

xmltransform

xmltransformblob

xmltype

xpathtable

xs_sys_context

year

yes

zon