Файл конфигурации импорта. Тег <...-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:

Copy
<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.find(mc, ['serialNumber':item.properties.serialNumber])[0] 
]]> 
</script-object-searcher>