Экспорт
Выгрузка данных из системы
Представим ситуацию, что вам необходимо выгрузить данные из системы в excel файл. Например в такой:
Для этого нам надо взять компонент PIMInput, который позволяет выбрать объекты по заданному критерию и экспортировать их из системы.
Создадим следующую схему схему:
Для того, чтобы получить из системы колонки, которые мы хотим видеть в excel файле, в нашем случае данные о товарах, вписываем их в схему PIMInput:
Чтобы данные полетели на конкретный сервер в контексте PIMOutput пишем необходимые данные:
server
- url, путь к вашему серверу (каждой компании выдается свой путь);user
- username, имя пользователя, под которым будет производиться запись;password
-password, пароль пользователя.
Прописываем для PIMInput следующие опции:
Данные url, user и password берем из контекста.
entity
- Куда будут записываться данные. Существуют различные опции:
- Item - объект;
- Item Relation - зависимости объекта;
- Type - тип, Attribute - атрибут;
- Atribute Group - группа атрибутов;
- Relation - зависимость;
- User - пользователь;
- Role - Роль;
- List of values - список значений.
(В нашем job мы будем использовать Item
, тк. выгружаем объекты)
where
- какие именно данные вы хотите экспортировать. Формат запроса описан в разделе "Язык запросов";
Для того, чтобы вывести все данные о товарах, у которых parentIdentifier - man_t_shirt, прописываем следующее:
В разделе "Язык запросов" вы можете видеть, что в синтаксисе находимого поля используются "", но в Talend ковычки не нужны!
order
- в каком порядке делать экспорт. Например, мы можем сортировать по атрибуту id и по возрастанию:
page size
- сколько записей получать за один запрос к серверу. Это может влиять на производительность экспорта, если вы выгружаете много данных, то небольшое значение этого параметра приведет к увеличению количества запросов и соответственно к большему времени работы.
Для того, чтобы отследить ошибки можно выбрать опцию Show debug output
. Если эта опция выбрана, то система будет выводить дополнительную отладочную информацию во время работы.
Чтобы вывести данные в необходимом нам виде, для начала в схеме tJavaRow прописываем их:
А затем уже и в самом tJavaRow:
В результате работы схемы, мы получаем excel файл с данными, которые мы и прописывали в PIMInput и tJavaRow:
Нахождение файлов не связанных с товарами
Представим, что мы уже загрузили картинки в систему, но по каким-то причинам некоторые из них не связаны с товарами.
Для того, чтобы найти все картинки, не связанные с товарами, мы создадим следующую схему:
Для начала возьмем компонент PIMInput, который позволяет выбрать объекты по заданному критерию и экспортировать их из системы.
Для того, чтобы получить необходимые нам файлы, вписываем в схему PIMInput: identifier и name_en
Чтобы данные полетели на конкретный сервер в контексте PIMOutput пишем необходимые данные:
server
- url, путь к вашему серверу (каждой компании выдается свой путь);user
- username, имя пользователя, под которым будет производиться запись;password
-password, пароль пользователя.
Прописываем для PIMInput следующие опции:
Данные url, user и password берем из контекста.
entity
- Куда будут записываться данные. Существуют различные опции:
- Item - объект;
- Item Relation - зависимости объекта;
- Type - тип, Attribute - атрибут;
- Atribute Group - группа атрибутов;
- Relation - зависимость;
- User - пользователь;
- Role - Роль;
- List of values - список значений.
(В нашем job мы будем использовать Item
, тк. выгружаем объекты)
where
- какие именно данные вы хотите экспортировать. Формат запроса описан в разделе "Язык запросов";
Для того, чтобы найти файлы, прописываем в условие typeIdentifier - image:
В разделе "Язык запросов" вы можете видеть, что в синтаксисе находимого поля используются "", но в Talend ковычки не нужны!
order
- в каком порядке делать экспорт.page size
- сколько записей получать за один запрос к серверу. Это может влиять на производительность экспорта, если вы выгружаете много данных, то небольшое значение этого параметра приведет к увеличению количества запросов и соответственно к большему времени работы.
Для того, чтобы отследить ошибки можно выбрать опцию Show debug output
. Если эта опция выбрана, то система будет выводить дополнительную отладочную информацию во время работы.
На выходе в tJavaRow мы получаем идентификатор и идентификатор картинки:
А затем уже и в самом tJavaRow пишем код:
Для того чтобы найти связь между товаром и картинкой, используем компонент PIMRowInput.
PIMRowInput
- такой же компонент, как PIMInput, за исключением того, что он умеет принимать входящие колонки как параметры.
В PIMRowInput прописываем entity - Item Relation
.
в where пишем следующее условие:
Для того, чтобы отследить сколько связей между файлами и картинками не найдено, после PIMRowInput ставим два выхода FLOW
- найдено и Reject
- не найдено:
После нахождения всех файлов без связей, дальше за tLogRow вы сможете написать схему для создания связей с помощью PIMOutput.
Выгрузка файлов из системы
В случае, если вам необходимо выгрузить файлы из системы создаем следующую схему:
Чтобы получить данные из системы, для начала возьмем PIMInput, который позволяет выбрать объекты по заданному критерию и экспортировать их из системы.
Чтобы данные полетели на конкретный сервер в контексте PIMOutput пишем необходимые данные:
server
- url, путь к вашему серверу (каждой компании выдается свой путь);user
- username, имя пользователя, под которым будет производиться запись;password
-password, пароль пользователя.
Прописываем для PIMInput следующие опции:
Данные url, user и password берем из контекста.
entity
- Куда будут записываться данные. Существуют различные опции:
- Item - объект;
- Item Relation - зависимости объекта;
- Type - тип, Attribute - атрибут;
- Atribute Group - группа атрибутов;
- Relation - зависимость;
- User - пользователь;
- Role - Роль;
- List of values - список значений.
(В нашем job мы будем использовать Item
, тк. выгружаем объекты)
where
- какие именно данные вы хотите экспортировать. Формат запроса описан в разделе "Язык запросов";
Для того, чтобы выгрузить файлы, у которых загружена картинка
в where прописываем следующее:
В разделе "Язык запросов" вы можете видеть, что в синтаксисе находимого поля используются "", но в Talend ковычки не нужны!
order
- в каком порядке делать экспорт.page size
- сколько записей получать за один запрос к серверу. Это может влиять на производительность экспорта, если вы выгружаете много данных, то небольшое значение этого параметра приведет к увеличению количества запросов и соответственно к большему времени работы.
Для того, чтобы отследить ошибки можно выбрать опцию Show debug output
. Если эта опция выбрана, то система будет выводить дополнительную отладочную информацию во время работы.
В tJavaRow подготавливаем данные. Нам необходимо взять id файла и путь на файловой системе, куда будут записываться файлы.
Путь мы можем задать с помощью контекста + оригинальное имя файла.
Теперь все, что нам необходимо для того, чтобы выгрузить файлы, это добавить PIMAssetDownload - компонент, который непосредственно служит для экспорта файлов из системы.
В результате работы схемы, файлы из системы выгрузятся на указанный вами путь: