Дополнительные возможности Windchill > Windchill PartsLink > Администрирование классификаторов > Классификационная структура > Импорт классификационной структуры из CSV-файла
  
Импорт классификационной структуры из CSV-файла
Чтобы можно было импортировать классификационную структуру, она должна быть представлена в формате XML-файла. Перед импортом можно изменить XML-файл, но для сложной структуры сделать это нелегко.
Вместо этого намного проще управлять CSV-файлом. Если структура готова к импорту, можно использовать утилиту CSVToXMLGenerator для преобразования CSV-файла в пригодный для импорта XML-файл.
* 
PTC рекомендует использовать эту утилиту при создании начальной классификационной структуры. Не следует использовать эту утилиту для обновления существующей структуры. Любые данные в существующей структуре, которые не представлены в CSV-файле, перезаписываются и, следовательно, удаляются.
Чтобы преобразовать CSV-файл в XML, выполните следующую команду оболочки Windchill:
Windchill com.ptc.windchill.csm.csvtoxml.CSVToXMLGenerator <путь к CSV-файлу> -verbose
где:
<путь к CSV-файлу> - это путь к CSV-файлу на локальном компьютере.
Параметр verbose не является обязательным, и его следует использовать для отладки.
XML-файл создается с тем же наименованием и в том же расположении, что и CSV-файл.


Перед началом работы
Для использования утилиты CSVToXMLGenerator не требуется работающий сервер Windchill.
Импортированный CSV-файл должен иметь уникальный формат. Это не тот же формат CSV-файла, который создается с помощью действия Экспорт в CSV-файл, доступного в таблице Дерево классификации.
Перед загрузкой результирующего XML-файла в Windchill уже должно существовать следующее. (Это не относится к случаю, когда импортируется экспортированный ZIP- или JAR-файл.)
Глобальные перечисления
Повторно используемые атрибуты
Единицы измерения
Чтобы импортировать созданный XML-файл, упакуйте его в ZIP-файл. В меню таблицы Дерево классификации выберите Действия > Импорт.


Ошибки импорта и поддерживаемые значения
При импорте файла в Windchill выполняется проверка правильности данных. Если XML-файл содержит недопустимые данные или значения, в процессе импорта выдается ошибка.
Хотя работать с CSV-файлом проще, формат, воспринимаемый утилитой CSVToXMLGenerator, включает несколько ограничений. Например, нельзя импортировать схемы или изображения. Нельзя также указывать правила автоименования.
Отсутствующие в приведенных ниже таблицах атрибуты или ограничения не поддерживаются и при импорте приводят к ошибке.


Правила форматирования CSV
Одиночные значения, содержащие запятую, должны быть заключены в двойные кавычки. Например:
Гонконг, Берлин, "Нью-Йорк, США", Лондон
Если в тексте есть двойные кавычки, добавляйте к каждой из них еще по одной двойной кавычке. Например:
Доступные детали в каталоге ""Система привода""


Общие столбцы для узлов и атрибутов
Существует 7 столбцов, которые содержат информацию либо для узла, либо для атрибута. Эти столбцы используют следующий формат:
Node/Attribute
Заголовок до косой черты относится к классификационным узлам; заголовок после косой черты - к атрибутам классификации.
Наименование столбца
Значение узла
Значение атрибута
Node/Attribute
Этот столбец определяет строку как содержащую классификационный узел или атрибут классификации.
Введите одно из следующих значений:
Node
Attribute
ParentIntName/NodeIntName
Внутреннее наименование родительского узла.
* 
Используйте NULL, чтобы указать корневой узел.
Внутреннее наименование узла, для которого определяется атрибут.
NodeIntName/AttributeIntName
Внутреннее наименование узла.
Внутреннее наименование атрибута.
DisplayName/DisplayName
Отображаемое наименование узла.
Отображаемое наименование атрибута.
Description/IBAName
Значение для ввода в поле узла Описание.
Наименование повторно используемого атрибута.
Keywords/DataType
Значение для ввода в поле узла Ключевые слова.
Тип данных атрибута.
Принимаются следующие значения:
wt.units.FloatingPointWithUnits
java.lang.Boolean
java.sql.Timestamp
java.lang.Long
java.lang.String
com.ptc.core.meta.common.Hyperlink
com.ptc.core.meta.common.FloatingPoint
Пространство имен
Наименование, заданное для пространства имен
IsInstantiable/Description
Значение для ввода в поле узла Допускающий создание экземпляров.
Принимаются следующие значения:
TRUE
FALSE
Значение для ввода в поле атрибута Описание.
Пусть, например, создан CSV-файл со следующими значениями в строках Node:
* 
Расположение столбцов в файле CSV должно быть таким же, как показано выше на снимке экрана.
После преобразования CSV в XML и импорта результирующая структура будет такой:
В узле Threaded Insert определены следующие значения:
Столбцы атрибутов
Следующие столбцы применимы только к строкам Attribute:
Наименование столбца
Принятые значения
DefaultValue
Значение по умолчанию для атрибута.
Если значений по умолчанию несколько, используйте список значений, разделенных запятой. Например:
0.0 м, 1.5 м
http://google.com(Google), http://ptc.com(PTC)
IsSingleValued
Указывает, имеет ли атрибут единственное значение.
Допустимые значения:
TRUE
FALSE
IsRequired
Указывает, является ли атрибут обязательным.
Допустимые значения:
TRUE
FALSE
StringLength
Для строковых значений указывает ограничение длины.
Используйте следующий формат: [нижний предел, верхний предел]
Например:
[2,5] - строка должна быть длиной от 2 до 5 символов
[NULL,50] - строка не может быть длиной более 50 символов
[10,NULL] - в строке должно быть как минимум 10 символов
Нижний регистр
Преобразует символы верхнего регистра в нижний регистр.
Допустимые значения:
TRUE
FALSE
Верхний регистр
Преобразует символы нижнего регистра в символы верхнего.
Допустимые значения:
TRUE
FALSE
LegalValueList
Список принятых значений.
Разделяет значения с помощью символа вертикальной черты ("|"). Например:
1.0 м|1.5 м|2.0 м
Медь|Алюминий|Сталь
EnumeratedList
Список перечисленных значений. Можно предоставить локальный или глобальный список перечисленных значений.
Локальные ограничения перечисления используют следующий формат:
LOCAL##<sort type>##<internal name>##<display_name>~~<internal_name>##<display_name>
где:
<sort_type> - значение типа сортировки, Automatic_Sort или Manual_Sort.
<internal name>##<display name> - определяет внутреннее наименование и отображаемое наименование для записи перечисления.
~~ - для разделения множества записей используются два символа тильды.
Например:
LOCAL##Manual_Sort##red1##Light Red~~red2##Dark Red~~green1##Light Green
Глобальные ограничения перечисления используют следующий формат:
GLOBAL##<enumeration>##<parent enumeration>##<organization>##<organizer name>##/<domain>
где:
<enumeration> - внутреннее наименование перечисления.
<parent enumeration> - если перечисление является вложенным, определяет внутреннее наименование родительского перечисления. Если у перечисления нет родительского перечисления, оставьте это поле пустым.
<organization> - значение Владеющая организация для перечисления.
<organizer name> - внутреннее наименование организатора, содержащего перечисление.
/<domain> - значение Домен для перечисления.
Например:
GLOBAL##Countries##LocaleCodes##Site##Org_Locales##/System
GLOBAL##LocaleCodes####Site##Org_Locales##/System
* 
Порядок сортировки, определенный для глобального перечисления, используется по умолчанию.
Пусть, например, создан CSV-файл со следующими значениями в строках Attribute:
* 
Расположение столбцов в файле CSV должно быть таким же, как показано выше на снимке экрана.
Для узла "Threaded Insert" определены следующие атрибуты: