- Создатель Васильев Антон, отредактировано 16.07.2024
Краткое описание
В коннекторе может быть задана дополнительная (необязательная) конфигурация для представления. Она позволяет поддержать функционал, неподдерживаемый AF5. Конфигурация представляет собой обыкновенный Spring-бин, являющийся экземпляром класса CollectionMetadataNew.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" default-lazy-init="true"> <bean id="{Collection Name}Metadata" class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:searchArea="{search_area}"> <constructor-arg> <list value-type="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.TnUnidVirtualField"> <property name="realFields"> <list> <value>open_id_tag</value> <value>module</value> <value>separate</value> <value>id</value> <value>created_date</value> <value>close_id_tag</value> </list> </property> <property name="separator" value=""/> <property name="emptySeparator" value="true"/> </bean> </property> </bean> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="fullname" p:filter="fullname_partial" p:sortOrder="ASCENDING"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField" p:name="fullname"> <property name="realFields"> <list> <value>fullname</value> </list> </property> </bean> </property> </bean> </list> </constructor-arg> </bean> </beans>
bean. collection
attributes
Описание атрибутов коллекции
Параметры | Описание |
---|---|
id | Идентификатор формата <Collection Name>Metadata, где <Collection Name> - значение атрибута name элемента collection в конфигурационном файле AF5. |
class | ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew |
searchArea | Область поиска при полнотекстовом поиске |
caseSensitiveFieldNames | Если указан, имена полей при сортировке будут взяты в двойные кавычки. Важно: имя элемента противоречит его функции. |
constructor-arg
Описание агрументов бина коллекции
list
Список объектов
Параметры | Описание |
---|---|
value-type | Тип объекта. Часто используемый тип: ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field |
bean. field
attributes
Одним из аргументов конструктора является список объектов типа Field (поле представления), которые делают определения бинов более удобными для чтения и написания и преобразуются во внутренний формат внутри конструктора.
Параметры | Описание |
---|---|
class | ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field |
name | Имя поля. Будет использовано во всех словарях |
sortOrder | Направление сортировки по умолчанию ASCENDING - по возрастанию DESCENDING - по убыванию Сортировка <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="subject" p:sortOrder="ASCENDING" p:sortPriority="0"/> |
sortPriority | Приоритет сортировки. Чем ниже значение, тем выше приоритет Приоритет <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="subject" p:sortOrder="ASCENDING" p:sortPriority="0"/> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleStr" p:sortOrder="ASCENDING" p:sortPriority="1"/> |
categorized | Флаг категоризации |
filter | Имя фильтра (name), который будет использован при поиске |
<property name>
Параметры | Описание |
---|---|
virtualField | Обработчик вычисляемого поля bean.<virtualField> |
bean. <virtualField>
Описание часто используемых классов для преобразования данных.
UnidVirtualField
Используется для преобразований (Id, Date) <-> Unid.
При поиске по unid’у он будет преобразован в Id, который будет передан в качестве единственного параметра.
property
Значения | Описание |
---|---|
realFields | Объединяет SQL-поля в одно значение. SQL-поле - название колонки, которое возвращает SQL-запрос из коллекции. Параметры:
|
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="rkkDocId"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.UnidVirtualField"> <property name="realFields"> <list> <value>id</value> <value>created_date</value> </list> </property> </bean> </property> </bean>
Результат
5CA9BAC26131452C432588A8004D98FB
BuildVirtualField
Используется для преобразований (String | Id [, Date]), … <-> String.
При поиске по строке, если указан шаблон поиска (свойство pattern), из всех найденных по шаблону строк формируется массив, в противном случае, если указан разделитель (свойство separator), строка разрезается на массив строк по этому разделителю. После этого, каждая строка из массива проверяется на соответствие шаблону. Если строка – 16-разрядное десятичное число или 32-разрядное шестнадцатеричное число, ее значение преобразуется в Id AF5. Несколько следующих друг за другом строковых значений (которые не были преобразованы) склеиваются вместе c добавлением разделителя между ними (т.е. cтрока вида 1015000000000001%abc%xyz c разделителем % будет преобразована в список значений {Id{1015, 1}, abc%xyz}, а не {Id{1015, 1}, abc, xyz}). После этого все значения передаются как параметры фильтра.
При вычислении значения идет считывание значений полей из выборки, заданных в свойстве realFields. После этого к временному значению вычисляемого поля, если оно не пустое, приклеивается значение разделителя. После этого к нему приклеивается преобразованное значение текущего поля из списка realFields. Если значение строковое, оно не меняется. Если значение является Id, а следующее значение является датой, эти два значения преобразуются в unid, дата после этого отдельно не обрабатывается. Если значение является Id, а следующее значение не является датой, значение преобразуется в ReplicaId.
property
Значения | Описание |
---|---|
realFields | Объединяет SQL-поля в одно значение. SQL-поле - название колонки, которое возвращает SQL-запрос из коллекции. Параметры:
|
pattern | Regexp-выражение для конвертации ключа поиска в параметры фильтра |
separator | Разделитель, используемый при объединении значений полей из SQL-запроса |
emptySeparator | Отключает применение разделителя по-умолчанию "%" |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField"> <property name="realFields"> <list> <value>open_id_tag</value> <value>module</value> <value>separate</value> <value>id</value> <value>created_date</value> <value>close_id_tag</value> </list> </property> <property name="pattern" value="<id>([0-9]{16}):([0-9A-F]{32})</>"/> <property name="separator" value=""/> <property name="emptySeparator" value="true"/> </bean> </property> </bean>
Результат
<id>4325826D00274C26:5CA9BAC26131452C432588A8004D98FB</>
TnUnidVirtualField
Наследник BuildVirtualField.
Виртуальное поле для обработки unid для НР объектов.
property
Значения | Описание |
---|---|
realFields | Объединяет SQL-поля в одно значение. SQL-поле - названияе колонки, которое возвращает SQL-запрос из коллекции. Параметры:
|
pattern | Regexp-выражение для конвертации ключа поиска в параметры фильтра |
separator | Разделитель, используемый при объединении значений полей из SQL-запроса |
emptySeparator | Отключает применение разделителя по-умолчанию "%" |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.TnUnidVirtualField"> <property name="realFields"> <list> <value>open_id_tag</value> <value>module</value> <value>separate</value> <value>id</value> <value>created_date</value> <value>close_id_tag</value> </list> </property> <property name="pattern" value="<id>([0-9]{16}):([0-9A-F]{32})</>"/> <property name="separator" value=""/> </bean> </property> </bean>
Результат
<id>4325826D00274C26-TN:5CA9BAC26131452C432588A8004D98FB</>
MultiValuedVirtualField
Используется для преобразований (String[{Separator}, …]) <-> Array[String]
Преобразовывает строку в массив строк, разрезая ее по разделителю.
attributes
Параметры | Описание |
---|---|
realFields | Название SQL-поля. |
elementSeparator | Разделитель, используемый при объединении значений SQL-полей. |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleActor"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.MultiValuedVirtualField" p:realFields="exampleActor" p:elementSeparator=";"/> </property> </bean>
Результат
На входе | На выходе |
---|---|
Иванов А.В.; Петров В.Н. | Иванов А.В. |
Петров В.Н |
DateTimeFormattedVirtualField
Используется для преобразования даты и время к заданному формату
property
Значения | Описание |
---|---|
pattern | Формат отображения даты и время |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleDate"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.DateTimeFormattedVirtualField" p:realFields="exampleDate"> <property name="pattern" value="dd.MM.yyyy" /> </bean> </property> </bean>
Результат
На входе | На выходе |
---|---|
12.12.2022 14:18:30 | 12.12.2022 |
DecimalFormattedVirtualField
Используется для преобразования числа, с плавающей запятой, к заданному формату
property
Значения | Описание |
---|---|
pattern | Формат отображение чисел с плавающей запятой |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleDbl"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.DecimalFormattedVirtualField" p:realFields="exampleDbl"> <property name="pattern" value="#,##0.00" /> </bean> </property> </bean>
Результат
На входе | На выходе |
---|---|
1233423,3343 | 1 233 423,33 |
InputOutDateVirtualField
Адаптер вычисляемого поля, который пропускает значения без изменений, за исключением преобразования null - "б/д". Используется для коллекций InputDocs_(*) поля OutDate(ForeignRegDate у ДОПа)
attributes
Параметры | Описание |
---|---|
realFields | Название колонки |
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleDate"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.InputOutDateVirtualField" p:realFields="exampleDate"/> </property> </bean>
Результат
На входе | На выходе |
---|---|
12.12.2022 | 12.12.2022 |
null | б/д |
IconVirtualField
Используется для форимирования кастомной иконки
property
Значения | Описание |
---|---|
realFields | Объединяет SQL-поля в одно значение. SQL-поле - названияе колонки, которое возвращает SQL-запрос из коллекции. Параметры:
|
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="exampleIcon"> <property name="virtualField"> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.IconVirtualField" p:name="exampleIcon"> <property name="realFields"> <list> <value>exampleIconID</value> <value>exampleIconHint</value> </list> </property> </bean> </property> </bean>
Результат
<iconId>31</><iconHint>Пример иконки</>
Статус | ГОТОВО |
---|---|
Комментарий |
Теги и атрибуты: