Создание условий в элементах шаблона

В редакторе условий можно определить выражение JavaScript с атрибутами данных и переменными, доступными в текущем контексте.

Процедура

  1. Щелкните правой кнопкой мыши на элементе и выберите Данные > Изменить условие.
  2. В окне Установить условие для текущего элемента разверните Переменные и Атрибуты.
    Совет: В качестве доступных отображаются запросы первого уровня и атрибуты запросов. Для вспомогательных уровней в элемент необходимо добавить другой запрос и условие.
  3. Введите исходный код JavaScript, используя один из следующих способов:
    • Запишите сценарий вручную в это окно
    • Скопируйте и вставьте сценарий из внешнего редактора в это окно
    • Выберите Включить сценарий, затем выберите файл в локальной системе, на удаленном сервере или в компоненте Централизованное управление.
    • Редактор условий:
      1. Выберите атрибут или переменную для Левого операнда.
        Прим.: При использовании инструментов в окне Установить условие для текущего элемента любой используемый атрибут или переменная автоматически выбирается в иерархическом списке. Если вы вводите условие вручную, необходимо вручную выбрать атрибут данных или переменную.
      2. Выберите оператор.
      3. Выберите атрибут или переменную для Правого операнда из выпадающего списка.
        Прим.: Когда левый и правый операнды условия имеют одно и то же имя атрибута, но принадлежат к двум различным запросам, условие не работает. Необходимо установить различные псевдонимы для двух атрибутов, чтобы условие работало.
      4. Нажмите Добавить. Выбранное условие добавляется в текстовое поле.
  4. Необязательно: Включите переключатель Ввод XHTML, чтобы разрешить изменение тегов XHTML в сценарии. В случае копирования отформатированного текста или его применения в условиях, необходимо выбрать параметр Ввод XHTML.
    Важное замечание: Недопустимый код XHTML вызывает ошибки создания документов. Перед указанием внесенных изменений проверьте правильность текста XHTML.
  5. Необязательно: Нажмите Проверить и Запустить для тестирования условия перед применением его к текущему элементу. В случае правильного выполнения сценария отображается значение true. Значение false указывает, что в ходе выполнения сценария произошли ошибки.
  6. Нажмите OK.

Результаты

При применении условия к элементу он показывает значок Значок условия в редакторе содержимого шаблона:

Значок Условия в элементе Абзац

Примеры: создания условий с помощью редактора условий

Следующие примеры помогают создавать собственные условия в редакторе условий.

Объекты с заголовками в схеме Rational DOORS:
  • Разверните Атрибуты > запрос.
  • Выберите [Заголовок объекта] Object_Heading.
  • В качестве левого операнда выберите [Заголовок объекта] Object_Heading.
  • В качестве оператора выберите Не равно.
  • Правый операнд оставьте пустым.
  • Нажмите кнопку Добавить. JavaScript выглядит следующим образом: Object_Heading != "".
Требования с высоким приоритетом в схеме REST:
  1. Разверните Атрибуты > запрос.
  2. Выберите Приоритет.
  3. В качестве левого операнда выберите Приоритет.
  4. В качестве оператора выберите Равно.
  5. В качестве правого операнда выберите Высокий.
  6. Нажмите Добавить. JavaScript выглядит следующим образом: Priority == "High".
Удалите совпадающие значения из атрибута путем создания переменной и указания этого условия для элемента:
  1. Разверните Переменные > переменная.
  2. Выберите переменная.
  3. В качестве левого операнда выберите переменная.
  4. В качестве оператора выберите Равно.
  5. Правый операнд оставьте пустым.
  6. Нажмите Добавить. JavaScript выглядит следующим образом: переменная == "".

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

Если переменная вычисляется неправильным образом, проверьте, содержит ли она литеральную строку true или false, например: переменная == "true".

В отдельных случаях значение переменной представляет собой булевское значение, а не литеральную строку. Пример: variable == "true" incorrectly evaluates to false if variable is the boolean true and not the string "true". Вместо проверки значения слово true не может быть найдено в данных в качестве значения. Такая ситуация возникает, если переменная поступает в результате вычисления, а не из спецификации документа, в которой оно было предоставлено в ходе настройки отчета, или из шаблона, в котором оно было указано в качестве значения переменной по умолчанию.

Для того чтобы обеспечить правильное вычисление переменной, проверьте условие одним из следующих способов:
  • Вариант 1: настройте условие для обработки литеральных строк и булевских значений.

    (переменная == true-или-false) || ( переменная == "строка")

    Пример: (variable == true) || ( variable == "true")

  • Вариант 2: если заранее известно, что переменная будет содержать булевское или строковое значение, то его можно создать с учетом значения этого типа.
    • Булевское значение: variable == boolean_true_or_false

      Пример: variable == true

    • Строковое значение: переменная == "строка"

      Пример: variable == "true"

Создание псевдонимов для атрибутов с одинаковыми именами

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

Прежде чем начать

Измените параметры Document Studio:
  1. В Rational Publishing Engine Document Studio выберите Окно > Параметры.
  2. Разверните RPE и выберите Эскиз документа.
  3. В поле Использовать аннотации схемы для показа выберите Нет и нажмите OK.

Процедура

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

Результаты

Теперь атрибут Query/Object/Object Text известен как $1_Object Text и условие может работать правильно.

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

Совет: Для того чтобы проверить, как условие применяется к данным, нажмите Проверить. В окне Проверка нажмите Выполнить.

Комментарии