Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Статус
Свойства страницыinfo
icon
Статус
colourYellow
titleВ РАБОТЕ
Автор
Комментарий
панель

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

Оглавление

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

false

Корневой элемент schema. Пространство имен: <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">

Информация
iconfalse
titleКраткое описание
  • описывает структуру данных объекта
,
  • ;
  • содержит
в себе
  • код управления событиями объекта
, переадресацию на другую схему
  • .
Блок кода
languagexml
titleСтруктура XML
collapsetrue
<?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">
       
	
	
<string name="{name}"/> <enum-ref name="{name}" ref="{enum name}"/> <enum>
<!--Свойство схемы -->
	 	<string name="{name}"/>
</enum>
    	
        
	 	
<schema-ref name="{name}" ref="{schema name}"/> <param-specification>
<!-- Параметры конкретизации схемы -->
	  	<param-specification>
		 	<!--property-ref-->
            
<primitive
<string-ref ref="{property string name}" value="{string value}"/>
        </param-specification>
       
	 	<!-- Код управления событиями -->
        <custom-event-handler lang="JavaScript"><![CDATA[...]]></custom-event-handler>
    </schema>
</schemas>

schema 

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

attributes

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

name

Название схемы. Название должно быть уникально.

extends

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

recalc

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

<property>

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

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

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

param-specification

Примечание

Сохранен для совместимости более ранних версий.

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

С помощью НОС в НР2 может быть описана обработка событий как для web-клиента, так и для клиента Notes. В качестве языка для описания обработчиков событий для web-клиента используется JavaScript, а для клиента Notes - LotusScript.

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

querySave - вызывается непосредственно

Вместо него нужно использовать Условие применения

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

<property>-ref

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

ПараметрыОписание
ref
Название свойства родительской схемы
value
Значение свойства

custom-event-handler

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

СобытиеОписание

queryCreate

Вызывается при создании объекта

Без форматирования
function queryCreate(object) {}

Параметры:

    • object - объект Java API

Пример

querySave

Вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится.

Функция

должна возвращать

возвращает значение типа Boolean. Если функция вернула false - сохранение будет прервано

.
  • postSave - вызывается сразу после сохранения документа в хранилище.
  • recalc - вызывается при пересчете ресурса, в том числе вызов recalc может быть связан в изменением значения поля или нажатием на кнопку «Пересчет секций» (добавлено с СМ 4.5)
  • Схема типа «Объект» предназначена для описания структуры данных бизнес-объекта. Это может быть документ или его часть.

    Image Removed

    Рисунок 5: Пример наследования Схем данных

    Для Схемы типа «Объект» может быть указана родительская Схема данных, тоже типа «Объект» (Рисунок 5). Это значит, что текущая Схема данных будет наследовать все Свойства, описанные для родительской Схемы. Если родительская Схема, в свою очередь, тоже имеет родительскую, то текущая Схема будет наследовать и ее Свойства. Т.е. дочерняя Схема наследует Свойства всех родительских. Одна Схема может быть родительской для нескольких Схем, но всегда имеет единственную родительскую Схему.

    Image Removed

    Рисунок 6: Указание Схемы типа «Объект» как Схемы для Свойства другой Схемы

    С другой стороны, Схема данных типа «Объект» может быть указана, как Схема для Свойства другой Схемы данных (2.2.1. Общее описание Свойства схемы). Это будет означать, что все Свойства Схемы будут доступны внутри родительской для Свойства Схемы через соответствующее Свойство (Рисунок 6). Это позволит описывать общие для объектов части один раз

    .

    Image Removed

    Рисунок 7: Схема данных типа «Объект»

    Для создания Схемы данных типа «Объект» (Рисунок 7):

    В разделе «Свойства схемы» отображаются Свойства текущей Схемы и их типы (Схемы, указанные для Свойств).

    Примечание: Признак «включить recalc» имеет смысл устанавливать только для Схем, описывающих составную часть объекта. Установка признака означает, что в web-клиенте будет доступна операция перевычисления только той части объекта, которая описывается текущей Схемой данных. При этом в коде сервера должна быть предусмотрена отдельная процедура для перевычисления этой части объекта. Таким образом данный признак устанавливается только разработчиками при выполнении доработок и в НР2 и на сервере.

    • Открыть представление «Схемы» БД НР и нажать кнопку «Схема» на панели действий.
    • В поле «Тип» выбрать значение «объект».
    • В поле «Название» указать уникальное в рамках списка Схем название.
    • В поле «Наследует» при необходимости выбрать название родительской Схемы. В данном поле может быть указана только Схема типа «Объект».
    • Сохранить Схему.

    Обработчики

    событий для иерархии схем

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

    Обработчики

    события

    querySave

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

    querySave текущей

    querySave текущей Схемы объекта,

     потом

    потом событие

    querySave той

    querySave той Схемы, которую она уточняет, и так далее до события

    querySave базовой Схемы.Обработчики события postSave

    querySave базовой Схемы.

    Без форматирования
    function querySave(object, document) {
    	return true;
    }

    Параметры:

      • object - объект Java API, содержащий все изменения
      • document - объект Notes Java API, notes-документ, сохраненный ранее (до внесения изменений).

    Пример

    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

    Код обработчика событий имеет доступ к

    Java системы

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

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

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

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

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

    .

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

    Примечание: Раздел «Параметры конкретизации» сохранен для совместимости с НР1. Вместо Параметров конкретизации в НР2 нужно использовать Условия применения (5. Условия применения)

    .

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

    Image Removed

    Рисунок 8: Конкретизация Схемы данных

    Для описания конкретизации Схемы данных типа «Объект» (Рисунок 8):

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

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

    Предупреждение
    Внимание:

    Объекты

    Notes Java

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

    Schema

    <custom-event-handler
    <?xml version='1.0' encoding='UTF-8'?>
    <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
    <schema extends="RkkResource" name="RkkResourceAdvInput" >
    <meta>
    <category name="Система\Делопроизводство"/>
    </meta>
    <Примитив>
    <Перечисление>
    <Объект>
    </schema>
    </schemas>

    Атибуты

    <xs:attribute name="name" type="xs:string" use="required">
    <xs:annotation>
    <xs:documentation><![CDATA[Название схемы]]></xs:documentation>
    </xs:annotation>
    </xs:attribute>
    <xs:attribute name="workflow" type="xs:boolean" use="optional" default="false">
    <xs:annotation>
    <xs:documentation><![CDATA[Используется WorkFlow]]></xs:documentation>
    </xs:annotation>
    </xs:attribute>
    <xs:attribute name="recalc" type="xs:boolean" use="optional" default="false">
    <xs:annotation>
    <xs:documentation><![CDATA[Признак обновления свойств схемы]]></xs:documentation>
    </xs:annotation>
    </xs:attribute>
    <xs:attribute name="extends" type="xs:string" use="optional">
    <xs:annotation>
    <xs:documentation><![CDATA[Название родительской схемы]]></xs:documentation>
    </xs:annotation>
    </xs:attribute>




    Свойства страницы
    Статус

    Статус
    colourGreen
    titleГотово

    Комментарий
    панель

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

    Оглавление