Перейти к основному содержимому
Версия: 1.21.3

Трансформация данных при импорте

В SimpleOne данные из источника импорта можно преобразовать перед записью в поля целевой таблицы.

Например, максимальная длина поля типа Phone составляет 15 символов, а данные из источника импорта содержат значение +7 (495)-181-85-20, что превышает максимально допустимую длину. Эти данные необходимо преобразовать, чтобы сохранить только числа в целевом значении.

Чтобы настроить преобразование и заполнить поле Телефон, в соответствующей записи таблица Соотношения полей укажите следующий скрипт для фильтрации значения номера телефона:

answer = (function transformEntry(source) {
const parsedDigits = source.imp_telephonenumber.match(/\d/g);
return parsedDigits ? `+${parsedDigits.join("")}` : null; // формат E.164 ИЛИ null
})(source);

imp_telephonenumber– имя колонки, содержащей номер телефона во временной _imp_ таблице. Эта таблица содержит данные из источника импорта.

Трансформация для полей типа Reference


Перед трансформацией сначала необходимо импортировать таблицы ссылочных полей.

Например, вам нужно преобразовать список компаний, в записях которых есть генеральные директора. На экземпляре поле CEO в целевой таблице Компания имеет тип Reference. Значения, хранящиеся в поле, представляют собой ID записей из таблицы Пользователей.

Для выполнения преобразования выполните следующие шаги:

  1. Импортируйте список пользователей. Этот список должен содержать пользователей, указанных в поле Генеральный директор.
  2. Импортируйте список компаний. В источнике импорта поле Генеральный директор содержит полное имя пользователя.
  3. Чтобы заполнить поле Генеральный директор, в связанной записи соотношения полей укажите следующий скрипт. Он преобразует полное имя пользователя в соответствующий ID записи пользователя из таблицы Пользователей.
answer = (function transformEntry(source) {
const user = new SimpleRecord('user');
user.get('display_name', source.imp_ceo);
return user.sys_id;
})(source);

  • user – системное имя существующей на экземпляре таблицы.
  • display_name – системное имя колонки, которая содержит полное имя пользователя (эта колонка существует в таблице Пользователи).
  • imp_ceo – системное имя колонки, которая содержит полное имя пользователя (эта колонка существует во временной _imp_ таблице).

Трансформация для полей типа Choice


Чтобы заполнить поля типа Choice при импорте данных, сначала необходимо создать опцию выбора в целевой колонке типа Choice.

Например, новая запись опции для колонки Статус занятости в таблице Сотрудники имеет следующее значение:

{instance address}/record/sys_choice?field_table_id=156873090301469473&field_language=en&field_column_id=156873090304832536&field_title=Worker&field_value=worker&field_order=100

В процессе импорта соответствующее значение data_value должно быть найдено с помощью импортированного отображаемого значения display_value.

Следующий скрипт преобразует отображаемое значение типа занятости в соответствующую опцию выбора в базе данных:

answer = (function transformEntry(source) {

// import source value : sys_choice value
const employeeTypeDict = {
"Worker": "worker",
"Employee": "employee",
"Self-employed": "self_employed",
"Director": "director",
"Contractor": "contractor"
}
return employeeTypeDict[source.imp_status] || source.imp_status
})(source);

imp_status – системное имя колонки, которая содержит тип занятости сотрудника во временной _imp_ таблице.