Определение и присваивание переменных

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

Об этой задаче

Переменные можно использовать как заменители для данных, вычисленных во время выполнения (присваивания переменных), либо можно указывать в спецификации документа. В отличие от атрибутов данных переменные можно также использовать в шаблонах.
Существует два типа переменных:
  • Пользовательские переменные: определенные разработчиком шаблона. Пользовательские переменные могут быть внутренними или внешними.
    • Внутренние пользовательские переменные: применяются для вычислений или для временного хранения информации, например, переменные, используемые для переноса данных в шаблоны. Внутренние переменные не отображаются в спецификации документа, поэтому им нельзя присваивать значения.
    • Внешние пользовательские переменные: применяются при присваивании им значений. Внешние переменные отображаются в спецификации документа. См. Создание спецификации документа.
  • Переменные Rational Publishing Engine: переменные Rational Publishing Engine - это внутренние переменные, доступные для использования в шаблоне документа.
    Табл. 1. Внутренние переменные Rational Publishing Engine
    Переменная Описание
    _cell_number Номер ячейки в текущей строке. Если элемент не является ячейкой, то значение равно 0. Можно использовать _cell_number со вкладки Выражение данных или Выражение сценария.
    _element_id Номер элемента в шаблоне. Хранится внутри шаблона и используется для отладки. Можно использовать _element_id с вкладки Выражение данных или Выражение сценария.
    _element_level Уровень рекурсии элемента. Если для элемента не задано значение в свойстве Уровень рекурсии на вкладке Данные, то значение равно 1. Можно использовать _element_level с вкладки Выражение данных или Выражение сценария.
    _row_number Номер строки в текущей таблице. Если элемент не входит в состав элемента строки, то значение равно 0. Можно использовать _row_number с вкладки Выражение данных или Выражение сценария.
    _sessionInfo Информация о свойстве из шаблона или спецификации документа. На вкладке Выражение сценария выберите переменную _sessionInfo и введите сценарий. Укажите пустые кавычки без значения для создания значения по умолчанию для свойства в выводе. Примеры сценариев:

    _sessionInfo.getDocspecProperty("свойство", "");
    _sessionInfo.getTemplateProperty("свойство", "");
    _sessionInfo.getDatasourceProperty("источник-данных","свойство", "");
    _sessionInfo.getOutputProperty("тип-вывода","свойство", "");
    _sessionInfo.docspecVersion
    _sessionInfo.templateVersion
    _sessionInfo.engineVersion
    _sessionInfo.buildNumber

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

    _sessionLogger В целях отладки можно просмотреть настроенную информацию, сообщения об ошибках, предупреждения и сообщения отладки в файле %TEMP%\rpe\rpe.log, на панели Консоль или на панели Неполадки. Сообщения отображаются в расположении, которое указано в файле log4j.properties.

    По умолчанию информационные сообщения отображаются на панели Консоль, но не заносятся в файл rpe.log.

    На вкладке Выражение сценария выберите переменную _sessionLogger и введите сценарий. Записи протокола можно создавать с помощью одного из следующих методов:
    1. _sessionLogger.debug(сообщение)
    2. _sessionLogger.info(сообщение)
    3. _sessionLogger.error(сообщение)
    4. _sessionLogger.warn(сообщение)

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

    _sessionUtils На вкладке Выражение сценария с помощью этой переменной можно запустить функцию для сценария с именем tidyXHTML. Эта переменная позволяет устранить пустые блоки из вывода, которые создаются в результате ошибок кода XHTML. Если указана переменная _sessionUtils, то строковый аргумент обрабатывается и XHTML очищается с удалением лишних пробелов из вывода.

    Пример: _sessionUtils.tidyXHTML(текст);

    В случае применения переменной _sessionUtils выберите параметры Ввод XHTML и Вывод XHTML на вкладке Выражение сценария.
    Прим.: Шаблоны, содержащие эту переменную, можно загрузить в предыдущие версии Rational Publishing Engine, однако возможны ошибки обработки сценариев.

Процедура

  1. В представлении Схема выберите Переменные > Вставить > Создать переменную. Откроется окно Создать переменную.
  2. Введите сведения о переменной в следующих полях:
    1. Имя: введите имя переменной. Имя переменной должно использовать допустимые идентификаторы Java™ или JavaScript, поскольку они применяются в сценариях. Правила для идентификаторов JavaScript:
      • Должен начинаться с буквы, символа подчеркивания (_) и знака доллара ($)
      • Затем могут следовать цифры (0-9)
      • В буквах учитывается регистр символов
      • Допустимо применение символов ISO 8859-1 и Unicode, таких как å и ü
      • Допустимо применение escape-последовательностей Unicode \uXXXX в качестве символов
    2. Описание: введите описание переменной.
    3. Значение по умолчанию: введите значение переменной.
    4. Доступ: выберите (в списке), должна переменная быть внутренней или внешней.
      • Внутренние переменные не отображаются в спецификации документа, поэтому им нельзя присваивать значения.
      • Внешние переменные отображаются в спецификации документа и им можно присваивать значения.
  3. Для присваивания переменной элементу выполните следующие действия:
    Совет: Присвойте переменные элементам контейнера, если возможно. Переменная будет применена к элементам в элементе контейнера. Например может потребоваться использовать переменную в таблице для создания новой строки для каждой переменной. Если присвоить переменную элементу таблицы, то для каждой переменной может быть создана таблица. Иногда эти последовательные таблицы объединены, а иногда они отображаются как отдельные таблицы. При добавлении элемента контейнера в таблицу и перетаскивании строки в элемент контейнера выполняется присваивание переменной элементу контейнера, при этом создается одна таблица со строками для каждой переменной.
    Элемент таблицы с элементом контейнера. В элементе контейнера находится элемент строки с тремя элементами ячеек.
    1. Щелкните правой кнопкой мыши на элементе и выберите Данные > Изменить присваивания. Откроется окно Редактор присваиваний.
    2. Выберите Добавить. Откроется окно Выбрать переменную.
    3. Введите имя переменной и нажмите кнопку OK.
    4. Нажмите кнопку OK в окне Редактор присваиваний.

Результаты

Выбранная переменная будет определена и присвоена текущему элементу.

При присваивании переменной элементу он отображает значок Значок Присваивание переменной в редакторе материалов шаблона.

Элемент Абзац с запросом и присваиванием переменной

Дальнейшие действия

Совет: Для поиска списка присваиваний переменных, используемых в элементе, щелкните правой кнопкой мыши на элементе переменной и выберите Поиск > Указатели на переменные в элементе. Откроется представление Поиск и будет показан список присваиваний переменных. Для изменения присваивания переменной дважды щелкните на нем в результатах.

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


Комментарии