Структура переноса (Transfer Structure) в PaPM

Posted under PaPM (FS-PER), PaPM: Функции обработки данных On By Plank

Структура переноса (Transfer Structure) в PaPM – это функция обогащения данных, которая может использоваться для переноса данных в соответствии с предопределенными полями условий и настройками. Если эти условия не выполняются, функция Структуры переноса сохраняет исходные данные.

Структура переноса (Transfer Structure) в PaPM: Заголовок функции

Многие поля заголовка аналогичны по смыслу полям функции Распределение (Allocation), которая рассматривалась тут и в принципе относятся к Функциональным строительным блокам и не являются специфичными для определенной функции.

Тип структуры переноса (Transfer Structure Type)

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

Стандартная структура переноса

Перенос значений из строк в столбцы.

Обратная структура переноса

Обратное действие, перенос из столбцов в строки.

Использовать исходные данные (Include original Input Data)

Значение: Да/Нет.

Если выбрать Да, система добавит исходные входные данные (записи) к выходным данным (записям) вместе с полученными результатами или при отсутствии результатов.

Поле Использовать исходные данные = Да. В данном случае в поле Обработка результата = Включить обогащённые данные (см. ниже) и была ошибка обогащения данных (правило не выполнено), но исходные данные отражены в результатах функции.

Поле Использовать исходные данные = Да. В данном случае поле Обработка результата = Включить все данные (см. ниже), но правило не выполнено. В результате отражены исходные данные и в последних трех строках результат применения агрегации к исходным данным согласно настроек функции (поле Результат агрегации = Группирование по признакам).

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

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

Нужно учитывать следующий момент: если используются исходные данные (значение в поле Использовать исходные данные = Да), и при этом в исходных данных есть поля с NULL (не с пустыми значениями, а именно с NULL)

(тут ? обозначает NULL)

то будет ошибка:

Для исключения ошибки, данные поля (с NULL) необходимо исключить из вывода, то есть в поле Сохранить поля выбрать Все поля кроме полей ‘Выбор операции &’->’Источник’ (All Fields except Selection & Action->Source Fields) и на вкладке Ключи (Signature) в разделе Выбор (Selection) указать поля для исключения.

Либо обеспечить заполнение полей значениями, пусть даже и пустыми на предыдущих этапах обработки данных.

Также такие поля можно обработать на вкладке Ввод. Например, указав для нужного поля формулу, с использованием функции обработки NULL: IFNULL (SGTXT, ‘Почему NULL???’)

Тогда ошибок не будет, а будет вопрос: Почему NULL???

Обработка результата (Result Handling)

Значение: Включить обогащенные данные/Включить все данные/Ошибка в необогащенных данных/Прерывание в случае необогащенных данных

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

Пример с пустым списком результатов.

Включите все данные — включает все записи данных в результат, независимо от того, применялось ли правило или нет.

Пример с результатом применения агрегации к исходным данным, согласно настроек функции. Правила функции не применялись.

Ошибка в необогащенных данных — работает так же, как и для включения обогащенных данных. Однако для необогащенных данных подготавливается сообщение об ошибке. Дальнейшая обработка выполняется на основе настройки типа события функции:

  • Запись в журнал — ошибка записывается в журнал сообщений.
  • Управление — ошибка записывается в журнал сообщений и регистрируется Business event. Бизнес-пользователь может работать с исключительной ситуацией и исправить ее.

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

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

В данном случае было Прерывание.

Скрыть промежуточные результаты (Suppress initial Results)

(Некорректный перевод, причем тут промежуточные результаты!?)

Значение: Да/Нет.

Если выбрать “Да”, результаты, которые содержат только начальные значения в полях Действие (см. вкладку Ключи), например, значение показателя 0 или значение признака ”, будут исключены из выходных данных. Если «пустые» записи результатов не влияют на итоговый результат расчетов, это может уменьшить объем данных и обработку ненужных записей.

Использовать уникальные значения (Ensure Distinct Result)

Если значение Нет, то при наличии нескольких правил

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

В данном случае сработали 3 правила и одна строка превратилась в 3 строки с разным заполнением полей, согласно правил.

Если значение Да, то будет выведена одна строка для первого правила.

Итоговая таблица данных (Result Model Table)

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

Сохранить поля (Retain Fields)

Если в поле Сохранить поля выбрать Все поля кроме полей ‘Выбор операции &’->’Источник’ (All Fields except Selection & Action->Source Fields) то будут сохранены все поля, используемые в этой функции, за исключением полей, определенных на вкладке “Правила” > “Правило” > “Выбор”, и полей источника, используемых в разделе “Действие”.

Если в поле Сохранить поля выбрать Все поля (All Fields), то система использует все поля.

Результат агрегации (Aggregate Result)

Группирование по признакам: показатели автоматически агрегируются с использованием всех входных признаков (за исключением полей в разделе Выбор на вкладке Ключи) в качестве полей группировки.

В хранимой процедуре, которую генерит функция при активации, GROUP BY будет по всем полям-признакам (кроме исключаемых).

Группирование по признакам и показателям: показатели автоматически агрегируются с использованием всех исходных признаков и показателей в качестве полей группировки (за исключением полей в разделе Выбор на вкладке Ключи).

В хранимой процедуре, которую генерит функция при активации, GROUP BY будет по всем полям (кроме исключаемых), в том числе по показателям (HSL).

Без группирования: агрегирование не происходит.

Структура переноса (Transfer Structure) в PaPM: Вкладки

Правила

Каждое правило структуры переноса семантически определяет оператор if-then. Часть if выбирает, к какому подмножеству входных данных относится правило. Затем часть представляет собой действие и содержит список полей и значений, которые необходимо назначить.

В данном случае поле ZCOUNT участвует в агрегации, так как не находится в разделе Выбор.

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

Если правило не будет применено к какой-то записи и в заголовке функции Обработка результата = Ошибка в необогащенных данных, то будет ошибка:

Leave a comment

Ваш адрес email не будет опубликован.