Трансформация данных при импорте
В 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 записей из таблицы Пользователей.
Для выполнения преобразования выполните следующие шаги:
- Импортируйте список пользователей. Этот список должен содержать пользователей, указанных в поле Генеральный директор.
- Импортируйте список компаний. В источнике импорта поле Генеральный директор содержит полное имя пользователя.
- Чтобы заполнить поле Генеральный директор, в связанной записи соотношения полей укажите следующий скрипт. Он преобразует полное имя пользователя в соответствующий 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_
таблице.