Информация |
---|
icon | false |
---|
title | Краткое описание |
---|
|
- описывает структуру данных объекта
|
, в себе - код управления событиями объекта
|
, переадресацию на другую схему Блок кода |
---|
language | xml |
---|
title | Структура XML |
---|
collapse | true |
---|
|
<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
<schema name="{name}" extends="{parent schema name}" recalc="true" workflow="false">
<!--propertyСвойство схемы -->
<string name="{name}"/>
<!-- Параметры конкретизации схемы -->
<param-specification>
<!--property-ref-->
<string-ref ref="{property string name}" value="{string value}"/>
</param-specification>
<!-- Код управления событиями -->
<custom-event-handler lang="JavaScript"><![CDATA[...]]></custom-event-handler>
</schema>
</schemas> |
attributes
Указывается название Название схемы. Название должно быть уникально |
, если оно совпадет, то будет выбрана первая попавшаяся схемаУказывается родительская Родительская схема. Из родительской схемы наследуются все |
описание данных свойства схем и обработчики событий. |
recalc | Отвечает за обновление свойств схемы при событии обновлении объекта. Может принимать значение: true, false. |
workflow | Используется для подключения движка самописного WorkFlow. Может принимать значение: true, false. Для движка WorkFlow Flowable он не используется. |
property<property>
Своиства схемы могут быть трех видов:
- Примитив;
- Перечисление;
- Объект.
Более детально рассматривается в разделе типы свойств
param-specification
<xs:element name="string-ref" type="paramStringType"/>
<xs:element name="intger-ref" type="paramIntegerType"/>
<xs:element name="double-ref" type="paramDoubleType"/>
<xs:element name="time-ref" type="paramTimeType"/>
<xs:element name="date-ref" type="paramDateType"/>
<xs:element name="datetime-ref" type="paramDateTimeType"/>
<xs:element name="boolean-ref" type="paramBooleanType"/>
<xs:element name="enum-ref" type="paramEnumType"/>
Тег отвечает за конкретизацию Схемы позволяет Примечание |
---|
Сохранен для совместимости более ранних версий. Вместо него нужно использовать Условие применения |
Параметр отвечает за конктретизацию Схемы. Позволяет настроить отображение объекта по различным Формам в зависимости от определенных Свойств схемы. Результатом конкретизации является изменение Схемы данных объекта, а по измененной Схеме будет выбрана новая Форма для его отображения. Конкретизация доступна для Схем данных типа «Объект».
Примечание |
---|
Раздел «Параметры конкретизации» сохранен для совместимости с 4.6.1. Вместо Параметров конкретизации нужно использовать Условие применения |
Поскольку при конкретизации Схемы данных происходит изменение Схемы, то для ее использования в Палитре XML должно быть описано как минимум две Схемы данных: родительская и производная. Родительская Схема связывается с типом документа, а производная будет являться результатом конкретизации родительской. Конкретизация Схемы производится по значениям Свойств родительской Схемы.
Подсказка |
---|
|
- Описать родительскую и производную Схемы данных типа «Объект», включая описание Свойств Схем.
- Открыть родительскую Схему данных.
- В разделе «Конкретизация» родительской Схемы данных в поле «Параметры конкретизации схемы» указать Свойства схемы, от значений которых зависит выбор Схемы данных объекта.
- Сохранить родительскую Схему данных.
- Открыть производную Схему данных.
- В разделе «Параметры конкретизации родительской схемы» производной Схемы указать Свойства родительской Схемы и их значения, при которых должна использоваться текущая производная Схема данных. Свойства родительской Схемы добавляются по кнопке «добавить» и выбираются из Свойств родительской Схемы, указанных в поле «Параметры конкретизации схемы».
- Сохранить производную Схему данных.
|
<property>-ref
Сопоставление свойства родительской схемы и значения, при котором будет включатся механизм конкретизации схемы
Параметры | Описание |
---|
ref | Название свойства родительской схемы |
value | Значение свойства |
custom-event-handler
Настраиваемый обработчик событий. Поддерживается настройка обработки событий для web-клиента:
Событие | Описание |
---|
queryCreate |
вызывается Вызывается при создании объекта Без форматирования |
---|
function queryCreate(object) {} |
Параметры: Пример |
querySave |
вызывается Вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится. Функция |
должна возвращать возвращает значение типа Boolean. Если функция вернула false - сохранение будет прервано. Обработчики события |
querySave выполняются в порядке наследования схем снизу вверх: сначала событие |
querySave текущей querySave текущей Схемы объекта, |
потом querySave той querySave той Схемы, которую она уточняет, и так далее до события |
querySave базовой Схемы.querySave базовой Схемы. Без форматирования |
---|
function querySave(object, document) {
return true;
} |
Параметры: - object - объект Java API, содержащий все изменения
- document - объект Notes Java API, notes-документ, сохраненный ранее (до внесения изменений).
Пример |
postSave |
вызывается Вызывается сразу после сохранения документа в хранилище. Обработчики события |
postSave выполняются в обратном порядке, сверху вниз: сначала событие postSave базовой Схемы, потом событие postSave уточняющей Схемы и так далее до текущей Схемы объекта. Обработчики события recalc выполняются аналогично postSave, сверху вниз. Без форматирования |
---|
function postSave(object, document) {} |
Параметры: - object - объект Java API
- document - документа Java API, который был сохранен со всеми изменениями.
|
recalc |
вызывается Вызывается при пересчете ресурса, |
в том числе вызов recalc может быть связан в изменением значения поля или нажатием на кнопку. Без форматирования |
---|
function recalc(object, changedField) {} |
Параметры: - object - объект Java API, содержащий все изменения
- changedField - название Свойства схемы, изменение которого вызвало пересчет объекта
Пример |
Обработчики событий могут быть созданы к нескольким схемам, объединенным в одну иерархию.
Если для какой-то из Схем в иерархии Обработчик событий не создан или не содержит описания соответствующего события, то эта Схема пропускается, и выполняется обработчик следующей по порядку обработки Схемы.
Код обработчика событий имеет доступ к Java API системы CMJ системы и подключенным к ней сторонним библиотекам. Для работы с тем или иным Java классом его или пакет, в котором он расположен, предварительно необходимо импортировать в обработчик. Для этого можно использовать функции importPackage() или importClass ().
Блок кода |
---|
|
importPackage (Packages.java.util); - импортирует все классы, расположенные в пакете java.util. |
Как и в Java, импортируются только классы, находящиеся непосредственно в указанном пакете. Классы из дочерних пакетов импортированы не будут.
Коду обработчика на JavaScript доступны все public методы реальных классов, реализующих те или иные интерфейсы Java API. Области видимости protected и private недоступны.
Синтаксис работы с объектами Java классов точно такой же, как и с объектами JavaScript.
В описании обработчика событий можно объявлять дополнительные функции и вызывать их из событий.
Предупреждение |
---|
Объекты Notes Java API CMJ, переданные в обработчик событий извне (например, параметр document), нельзя передавать в дополнительно объявленные функции. Работать с параметром document можно только внутри событий querySave и postSave. |