Извлечение данных с помощью внутренних фильтров

Внутренние фильтры можно использовать со всеми поддерживаемыми источниками данных. Внутренние фильтры, который интерпретируются адаптерами Reporting Data Services, позволяют указывать фильтры в формате источника данных. Внутренние фильтры обрабатываются адаптерами Reporting Data Services, а не Rational Publishing Engine. Такой подход позволяет повысить производительность Rational Publishing Engine.

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

В случае интеграции Rational Publishing Engine с продуктом, который не поддерживает источники данных REST для создания отчетов, извлекается полный набор данных без возможности фильтрации. Для того чтобы убедиться в том, что продукт поддерживает источники данных Reportable REST, условие фильтра можно выполнить во внутреннем источнике данных перед применением в Rational Publishing Engine.

Дополнительная информация о требованиях к службам Reportable REST v1 приведена документе Reportable Rest v1.

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

Источники данных Reportable REST поддерживают внутренние фильтры, обеспечивающие фильтрацию, сортировку и выборку свойств. Внутренний фильтр запрашивает набор данных из источника данных, затем фильтрует и уточняет данные для вывода из шаблона Rational Publishing Engine. Фильтры необязательно создавать в продукте, из которого получены данные, если не требуется проверка точности фильтров, однако можно создать фильтры исключительно для применения в шаблонах Rational Publishing Engine из Rational Publishing Engine.

В предыдущих версиях Rational Publishing Engine можно было создавать только статические фильтры. В процессе создания шаблона требовалось обращаться к полному списку фильтров, которые нельзя было изменить во время выполнения.

Процедура

  1. В Document Studio выберите элемент шаблона, содержащий запрос для фильтрации.
  2. На панели Свойства перейдите на вкладку Данные.
  3. В поле Фильтр щелкните на значке многоточия.
  4. На вкладке Внутренний фильтр разверните раздел Переменные.
    Прим.: Переменные, применяемые в фильтрах, можно изменить перед выполнением первого запроса в источнике данных.
  5. Выберите переменную для фильтрации.
  6. Введите синтаксис ${}, описывающий фильтрацию запроса. Например, можно настроить фильтрацию по имени продукта. Шаблон могут использовать разные коллективы, указывая имя продукта в спецификации документа во время выполнения.
    cq:Product{cq:Product"${productName}"
    Прим.:
    • Пользовательские атрибуты не могут быть использованы во внутренних фильтрах.
    • При переименовании переменной это имя не изменяется в выражении сценария или внутреннем фильтре и приводит к возникновению ошибки указателя. При переименовании переменной не забудьте исправить его и в выражениях сценария и внутренних фильтрах.
    • Для извлечения данных Rational DOORS укажите сценарий DXL в качестве условия внутреннего фильтра. Для извлечения данных REST укажите условие фильтра XPath.
  7. Нажмите кнопку OK.

Источники данных, поддерживающие синтаксис Reportable Rest v1

Встроенные фильтры Reportable Rest v1 требуются только для вводе текста между квадратных скобок []. Остальной фильтр создается Rational Publishing Engine.

Design Management

Design Management поддерживает внутреннюю фильтрацию источников данных Reportable Rest v1. Дополнительная информация приведена в разделе Reportable Rest v1.

IBM® Rational ClearCase

Адаптер Rational ClearCase поддерживает внутреннюю фильтрацию источников данных Reportable Rest v1. Дополнительная информация приведена в разделе Reportable Rest v1.

IBM Rational ClearQuest

Адаптер Rational ClearQuest поддерживает внутреннюю фильтрацию источников данных Reportable Rest v1. Дополнительная информация приведена в разделе Reportable Rest v1.

IBM Rational RequisitePro

Следующий пример внутреннего фильтра Reportable Rest v1 извлекает схему Rational RequisitePro PRRequirements с помощью Stability='High'.

Пример

Добавьте выражение фильтра в узел из категории Устройства, чтобы разрешить выбор только устройств конкретного производителя.
fields=Project/Requirements/PRRequirement[Stability = 'High']/(Stability|FullTag|Priority|Status)

IBM Rational Rhapsody

Rational Rhapsody поддерживает источники данных Reportable Rest v1 во внутренних фильтрах. Дополнительная информация приведена в разделе Reportable Rest v1.

IBM Rational Team Concert

Rational Team Concert поддерживает источники данных Reportable Rest v1 во внутренних фильтрах. Дополнительная информация приведена в разделе API Reportable REST на сайте Jazz.net.

Пример

projectArea/name="Rational Publishing Engine"  and target/name="1.2.1"
Обработанный запрос:
fields=workitem/workItem[projectArea/name="Rational Publishing Engine" и target.name="1.2.1"]/(@href|summary)

Источники данных, поддерживающие синтаксис Reportable Rest v2

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

Прим.:
  • Запросы выполняются к источнику данных только при необходимости. Например, можно использовать условия для показа элемента в выводе, только когда он содержит данные. Условием для элемента контейнера может быть переменная == "true". Если это условие не выполнено, и никакие данные не удовлетворяют условию переменной, запросы к источнику данных не выполняются.
  • Можно вычислить внутренние фильтры перед выполнением запроса. Внутренний фильтр вычисляется в той точке, где встречен запрос, и использует значения переменных в этой точке. Таким образом, можно выполнить вычисления в шаблоне, которые влияют на внутренние фильтры.

IBM Rational ClearQuest

Rational ClearQuest версии 8 поддерживает внутреннюю фильтрацию источников данных Reportable Rest v2. Дополнительная информация приведена в разделе API REST Rational ClearQuest OSLC CM .

Пример

Пример фильтра переменной:
cq:Product{cq:Product="${productName}") 
Пример обработанного фильтра, где productName - это Rational Publishing Engine:
cq:Product{cq:Product="Rational Publishing Engine")

Источники данных, поддерживающие синтаксис закрытых API

IBM Rational DOORS

Rational DOORS поддерживает закрытый API и фильтр описывается с помощью синтаксиса представления Rational DOORS.

Пример

Следующий пример внутреннего фильтра Rational DOORS позволяет отфильтровать объекты, содержащие слово "Documentation" в атрибуте Текст объекта.
Attribute 'Object Text' contains 'Documentation'
(с учетом регистра символов)
Для создания текста внутреннего фильтра для источника данных Rational DOORS выполните следующие действия:
  1. Откройте модуль Rational DOORS и выберите Инструменты > Фильтр > Задать пункт меню.
  2. Создайте синтаксис фильтра:
    1. Перейдите на вкладку Атрибуты.
    2. В поле Атрибут выберите Текст объекта.
    3. В поле Условие выберите Содержит.
    4. В поле Значение введите конкретное значение для фильтрации. Например для фильтрации только объектов, содержащих слово Documentation в атрибуте Текст объекта, введите следующее значение: Documentation
    5. Нажмите кнопку Добавить. В разделе Дополнительные опции создается синтаксис правила.
  3. Выберите Описание и скопируйте полное описание. Создан фильтр Rational DOORS, который представляет собой сценарий DXL.
Для добавления фильтра Rational DOORS в элемент шаблона Rational Publishing Engine выполните следующие действия:
  1. Выберите элемент шаблона, содержащий запрос для фильтрации.
  2. На вкладке Свойства разверните раздел Данные.
  3. В поле Фильтр щелкните на значке многоточия. Откроется окно Редактор фильтра.
  4. На вкладке Внутренний фильтр вставьте фильтр Rational DOORS (сценарий DXL) и нажмите кнопку OK.

IBM Rational Tau

Rational Tau поддерживает закрытый API и фильтр описывается в виде запроса OCL.

Пример

Следующий пример внутреннего фильтра Rational Tau позволяет отфильтровать пакеты, содержащие стандартные имена:
  • model.predefinedPackage представляет текущий элемент схемы.
  • GetEntities(“predefinedPackage”).select(IsKindOf(“Package”) представляет связанный запрос Rational Tau.
  • select(HasPropertyWithValue("Name", "Predefined")) представляет условие внутреннего фильтра.
Обработчик запросов Rational Tau выполняет следующий запрос:
GetEntities(“predefinedPackage”). select(IsKindOf(“Package”))
select(HasPropertyWithValue("Name", "Predefined"))

Комментарии