Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 17 Следующий »

Корневой элемент schema:

  • описывает структуру данных объекта,
  • содержит в себе код управления событиями объекта,
  • переадресацию на другую схему.
Структура
<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
    <schema name="{name}" extends="{schema name}" recalc="true" workflow="false">
       
	 	<property name="{name}"/>    	
        
	  	<param-specification>
            <string-ref ref="{string name}" value="{string value}"/>
        </param-specification>
       
        <custom-event-handler lang="JavaScript"><![CDATA[...]]></custom-event-handler>
    </schema>
</schemas>

attributes

ПараметрыОписание

name

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

extends

Указывается родительская схема. Из родительской схемы наследуются все описание данных и обработчики событий. 

recalc

Отвечает за обновление свойств схемы при событии обновлении объекта. Может принимать значение: true, false.

workflow

Используется для подключения движка самописного WorkFlow. Может принимать значение: true, false. Для движка WorkFlow Flowable он не используется.

property

Своиства схемы могут быть трех видов:

  • Примитив;
  • Перечисление;
  • Объект.

Более детально рассматривается в разделе типы свойств

param-specification

Тег отвечает за конкретизацию Схемы позволяет настроить отображение объекта по различным Формам в зависимости от определенных Свойств схемы. Результатом конкретизации является изменение Схемы данных объекта, а по измененной Схеме будет выбрана новая Форма для его отображения. Конкретизация доступна для Схем данных типа «Объект».

Раздел «Параметры конкретизации» сохранен для совместимости с 4.6.1. Вместо Параметров конкретизации нужно использовать Условие применения


Поскольку при конкретизации Схемы данных происходит изменение Схемы, то для ее использования в Палитре XML должно быть описано как минимум две Схемы данных: родительская и производная. Родительская Схема связывается с типом документа, а производная будет являться результатом конкретизации родительской. Конкретизация Схемы производится по значениям Свойств родительской Схемы.

Пример

  • Описать родительскую и производную Схемы данных типа «Объект», включая описание Свойств Схем.
  • Открыть родительскую Схему данных.
  • В разделе «Конкретизация» родительской Схемы данных в поле «Параметры конкретизации схемы» указать Свойства схемы, от значений которых зависит выбор Схемы данных объекта.
  • Сохранить родительскую Схему данных.
  • Открыть производную Схему данных.
  • В разделе «Параметры конкретизации родительской схемы» производной Схемы указать Свойства родительской Схемы и их значения, при которых должна использоваться текущая производная Схема данных. Свойства родительской Схемы добавляются по кнопке «добавить» и выбираются из Свойств родительской Схемы, указанных в поле «Параметры конкретизации схемы».
  • Сохранить производную Схему данных.

custom-event-handler

Настраиваемый обработчик событий. Поддерживается настройка обработки событий для web-клиента:

  • queryCreate - вызывается при создании объекта. 
  • querySave - вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится. Функция должна возвращать значение типа Boolean. Если функция вернула false - сохранение будет прервано. Обработчики события querySave выполняются в порядке наследования схем снизу вверх: сначала событие querySave текущей Схемы объекта, потом событие querySave той Схемы, которую она уточняет, и так далее до события querySave базовой Схемы.
  • postSave - вызывается сразу после сохранения документа в хранилище. Обработчики события postSave выполняются в обратном порядке, сверху вниз: сначала событие postSave базовой Схемы, потом событие postSave уточняющей Схемы и так далее до текущей Схемы объекта. Обработчики события recalc выполняются аналогично postSave, сверху вниз.
  • recalc - вызывается при пересчете ресурса, в том числе вызов recalc может быть связан в изменением значения поля или нажатием на кнопку.

Обработчики событий могут быть созданы к нескольким схемам, объединенным в одну иерархию.

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

Код обработчика событий имеет доступ к Java API системы и подключенным к ней сторонним библиотекам. Для работы с тем или иным Java классом его или пакет, в котором он расположен, предварительно необходимо импортировать в обработчик. Для этого можно использовать функции importPackage() или importClass ().

importPackage (Packages.java.util); - импортирует все классы, расположенные в пакете java.util.

Как и в Java, импортируются только классы, находящиеся непосредственно в указанном пакете. Классы из дочерних пакетов импортированы не будут.

Коду обработчика на JavaScript доступны все public методы реальных классов, реализующих те или иные интерфейсы Java API. Области видимости protected и private недоступны.

Синтаксис работы с объектами Java классов точно такой же, как и с объектами JavaScript.

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

Внимание: Объекты Notes Java API, переданные в обработчик событий извне (например, параметр document), нельзя передавать в дополнительно объявленные функции. Работать с параметром document можно только внутри событий querySave и postSave.



Теги и атрибуты:

  • Нет меток