Информация |
---|
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
Тег отвечает за конкретизацию Схемы позволяет Примечание |
---|
Сохранен для совместимости более ранних версий. Вместо него нужно использовать Условие применения |
Параметр отвечает за конктретизацию Схемы. Позволяет настроить отображение объекта по различным Формам в зависимости от определенных Свойств схемы. Результатом конкретизации является изменение Схемы данных объекта, а по измененной Схеме будет выбрана новая Форма для его отображения. Конкретизация доступна для Схем данных типа «Объект».
Примечание |
---|
Раздел «Параметры конкретизации» сохранен для совместимости с 4.6.1. Вместо Параметров конкретизации нужно использовать Условие применения |
Поскольку при конкретизации Схемы данных происходит изменение Схемы, то для ее использования в Палитре XML должно быть описано как минимум две Схемы данных: родительская и производная. Родительская Схема связывается с типом документа, а производная будет являться результатом конкретизации родительской. Конкретизация Схемы производится по значениям Свойств родительской Схемы.
Подсказка |
---|
|
Описать родительскую и производную Схемы данных типа «Объект», включая описание Свойств Схем.Открыть родительскую Схему данных.В разделе «Конкретизация» родительской Схемы данных в поле «Параметры конкретизации схемы» указать Свойства схемы, от значений которых зависит выбор Схемы данных объекта.Сохранить родительскую Схему данных.Открыть производную Схему данных.В разделе «Параметры конкретизации родительской схемы» производной Схемы указать Свойства родительской Схемы и их значения, при которых должна использоваться текущая производная Схема данных. Свойства родительской Схемы добавляются по кнопке «добавить» и выбираются из Свойств родительской Схемы, указанных в поле «Параметры конкретизации схемы».Сохранить производную Схему данных.<property>-ref
Сопоставление свойства родительской схемы и значения, при котором будет включатся механизм конкретизации схемы
Параметры | Описание |
---|
ref | Название свойства родительской схемы |
value | Значение свойства |
custom-event-handler
Настраиваемый обработчик событий. Поддерживается настройка обработки событий для web-клиента:
Событие | Описание |
---|
queryCreate |
- вызывается | Вызывается при создании объекта |
. querySave - вызывается Без форматирования |
---|
function queryCreate(object) {} |
Параметры: Пример |
querySave | Вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится. Функция |
должна возвращать возвращает значение типа Boolean. Если функция вернула false - сохранение будет прервано. Обработчики события |
querySave выполняются в порядке наследования схем снизу вверх: сначала событие |
querySave текущей querySave текущей Схемы объекта, |
потом querySave той querySave той Схемы, которую она уточняет, и так далее до события |
querySave базовой postSave - вызывается 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. |