История изменения актуальных значений атрибутов связи
Для получения истории изменений исторических значений атрибутов связи, следует использовать следующие view с объединением через union all:
rpt_last_created_actual_aggregation – в данной view содержаться записи действующих актуальных значений атрибутов, которые первоначально были введены пользователем взамен пустого значения в единичном атрибуте или добавлены в множественном атрибуте;
rpt_last_changed_actual_aggregation – в данной view содержаться записи действующих актуальных значений атрибутов, в которых отражено последнее выполненное изменение значения атрибута;
rpt_obsolete_created_aggregation – в данной view содержаться записи архивных актуальных и исторических значений, которые были впервые добавлены пользователем. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (new_validthru is null);
rpt_obsolete_changed_values – в данной view содержатся записи архивных актуальных и исторических значений, которые появились в результате изменения одного значения атрибута на другое. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (old_validthru is null);
rpt_obsolete_deleted_values – в данной view содержатся записи архивных актуальных и исторических значений, которые были удалены пользователем. Чтобы получить только актуальные значения, требуется наложить фильтр на записи: (old_validthru is null);
Для получения консолидированного представления по истории значений атрибута связи, необходимо выполнить запрос:
select *, 1 as action_type -- создание значения
from rpt_last_created_actual_aggregation
union all
select *, 1 as action_type -- создание значения
from rpt_obsolete_created_aggregation where (new_validthru is null)
union all
select *, 2 as action_type -- изменение значения
from rpt_last_changed_actual_aggregation
union all
select *, 2 as action_type -- изменение значения
from rpt_obsolete_changed_aggregation where (old_validthru is null)
union all
select *, 3 as action_type -- удаление значения
from rpt_obsolete_deleted_aggregation where (old_validthru is null)
Для получения информации о значениях атрибута связи, которые были после создания позиции, необходимо использовать следующие view: rpt_initial_actual_aggregation и rpt_obsolete_initial_aggregation.
Поля для всех перечисленных выше view полностью идентичны и описаны в таблице ниже.
Наименование поля
Тип данных
Описание поля
Ссылка на таблицу
descriptor
bigint
Дескриптор поизции
item_id
bigint
Идентификатор позиции, для которой было изменено значение атрибута связи
rpt_m2_item.id
propertyid
bigint
Идентификатор атрибута связи, для которого было изменено значение
rpt_m2_aggregation.id
transactionid
bigint
Идентификатор транзакции, в рамках которой было изменено значение атрибута связи
rpt_m2_transaction.id
old_part_id
bigint
Старое значение атрибута связи (ссылка на позицию)
rpt_m2_item.id
new_part_id
bigint
Новое значение атрибута связи (ссылка на позицию)
rpt_m2_item.id
changedate
bigint
Дата изменения значения атрибута связи
account_id
bigint
Идентификатор пользователя, который изменил значение