Обычно импорт из csv используют в user view таблица.
Рассмотрим пример импорта выписок из тинькофф эквайринга в таблицу транзакции.
Создадим user view "tinkoff_shop_import".
В выписке из tinkoff эквайринга есть следующие поля:
В сущности транзакция обычно у нас уже есть поле "Сумма", создадим остальные поля для таблицы и выведем их в наш user view для импорта.
Теперь подпишем к каждому полю атрибут csv_column_name
. Пропишем имя строки в стандартном csv файле, которых выгружается из эквайринга.
Обратите внимание, что при вставке данных в поле с типом reference(...) исходные данные для этого поля в файле должны быть валидным ID, а не строками
Раньше
csv_column_name
называлсяcsv_import_column
. Второй вариант всё ещё работает, но лучше использовать первый, так как он также поддерживает экспорт в csv по такому же названию.
Получим примерно такой код user view:
SELECT
@title = 'Импорт: Tinkoff эквайринг',
@create_link = &fin.transaction_form,
@row_link = &fin.transaction_form,
tks_state @{
csv_column_name = 'Статус операции',
},
tks_date_time @{
csv_column_name = 'Дата, время',
},
tks_order_id @{
csv_column_name = '№ заказа',
},
"amount" @{
csv_column_name = 'Сумма',
},
tks_phone @{
csv_column_name = 'Телефон',
},
tks_shop @{
csv_column_name = 'Магазин',
},
[...]
Атрибуты можно прописать напрямую в свойствах поля, а не в user view
Можно добавить BEFORE/AFTER INSERT триггеры, чтобы обработать вставляемые данные (например, установить знак "-" в поле "Сумма" для исходящих транзакций или связать вставленную трнзакцию с заказом клиента по его номеру телефона.)