Что делает скрипт:
Заполняет поля
1 Container
2 Attribute Type
3 Title
4 Attribute Name
Если attribute type === 8 //reference
то заполняем
reference_id
Если attribute type === 2 // choice
то заполняем
default_value
const record = new SimpleRecord("sys_db_column");
const arrId = [];
record.addQuery('table_id', '')// Вставляем сюда нашу таблицу, пример 168726229224896075
record.addQuery('column_name', '!=', 'sys_updated_by'); // Системные поля нам не нужны
record.addQuery('column_name', '!=', 'sys_created_by');
record.addQuery('column_name', '!=', 'sys_updated_at');
record.addQuery('column_name', '!=', 'sys_created_at');
record.addQuery('column_name', '!=', 'sys_id');
record.query()
while (record.next()) {
arrId.push(record.sys_id);
}
ss.info(arrId)
for ( let i = 0 ; i < arrId.length; i++) {
let columns = record.get( arrId[i])// Колонки
getColumn();
function getColumn() {
const attributes = new SimpleRecord("sys_re_attribute");
attributes.re_container_id = ''// Вставляем сюда наш контейнер, пример 168752958821816852
attributes.column_type_id = columns.column_type_id.sys_id
attributes.title = columns.title
attributes.column_name = 'rem_' + columns.column_name
if (attributes.column_type_id.sys_id === 8) {
attributes.reference_id = columns.reference_id.sys_id
}
if (attributes.column_type_id.sys_id === 2) {
attributes.choice_type = 2
attributes.default_value = columns.default_value
}
attributes.insert();// Делаем из данной колонки атрибут
}
}
Есть одно отличие от результата выполнения изначального скрипта: дублируются колонки в таблице, дубликаты имеют название ‘rem_[название дублируемой колонки]’ :