Файл конфигурации импорта. Тег <...-searcher>
Тег <...object-searcher> позволяет найти уже существующий объект SMP, соответствующий строке импортируемых данных из источника импорта.
Вложен в <class>.
Источник импорта — это размеченный ресурс, из которого в SMP импортируются данные. Источником может быть xls-файл, xml-файл, таблица или другой файл, размеченный в формате ключ-значение, см. Источники данных.
Уникальные ключи для импортируемых объектов содержатся в столбце id-column. В источнике импорта id-column должен быть заполнен для всех объектов, иначе возможно дублирование объектов, см. Файл конфигурации импорта. Тег <...-data-source>.
Используется только для режима UPDATE. При создании объектов задавать этот тег не обязательно.
<object-searcher>
Описание
Тег <object-searcher> задает простое правило поиска объекта по значению атрибута объекта. Объекты ищутся среди объектов с заданным классом/типом.
Параметры
-
attr — атрибут, по которому осуществляется поиск объекта.
Тип: Строка. Обязательный. По умолчанию ${idHolder}.
-
metaclass — тип объектов, среди которых осуществляется поиск.
Тип: Строка. Обязательный. По умолчанию ${metaClass}.
Пример
<object-searcher attr="idHolder" metaclass="ou$forTest"/>
<complex-object-searcher>
Описание
Тег <complex-object-searcher> задает последовательность поиска объекта по нескольким атрибутам объекта или поиск по различным классам/типам.
Параметров нет.
Пример
<complex-object-searcher> <object-converter attr="idHolder" metaclass="ou$forTest"/> <object-converter attr="title" metaclass="ou"/> <script-converter>a + b</script-converter> </complex-object-searcher>
<script-object-searcher>
Описание
Тег <script-object-searcher> позволяет находить объект по сложной логике поиска.
Содержимое тега
Внутри тега задается содержание скрипта.
В скрипте доступны контекстные переменные:
- parameters — параметры импорта;
- ctx — контекст импорта, получение значений выражений ctx.evaluate(expr);
- item — строка импортируемых данных.
Параметр
-
mime-type — тип скрипта.
Тип: Строка. Необязательный. По умолчанию "application/x-groovy".
Пример 1
<script-object-searcher mime-type="application/x-groovy"> a + b </script-object-searcher>
Пример 2. Поиск объекта по сложной логике
Пример поиска, происходящего по разным типам, в зависимости от значения type:
<script-object-searcher mime-type="application/x-groovy">
<![CDATA[
def mc
def type = item.properties.type
if (type == 'принтер')
{
mc = 'objectBase$Printer'
}
if (type == 'монитор')
{
mc = 'objectBase$Monitor'
}
utils.findFirst(mc, ['serialNumber': item.properties.serialNumber])
]]>
</script-object-searcher>