从 CSV 文件中导入分类结构
要导入分类结构,必须在 XML 文件中概要显示分类结构。您可以在导入前修改 XML 文件,但如果您的结构复杂,完成该操作并不轻松。
相反,管理 CSV 文件更为容易。当您准备导入结构时,可使用 CSVToXMLGenerator 实用程序将 CSV 文件转换为可导入 XML 文件。
* 
PTC 建议您在创建初始分类结构时使用此实用程序。不应使用此实用程序更新现有结构。将覆盖并移除所有未在 CSV 文件中表示的现有结构中的数据。
要将 CSV 文件转换为 XML 文件,请完成以下步骤:
1. 创建一个包含名称空间、节点和属性值的 CSV 文件。
2. Windchill shell 中执行以下命令:
Windchill com.ptc.windchill.csm.csvtoxml.CSVToXMLGenerator <指向 CSV 文件的路径> -verbose
其中:
<CSV 文件的路径> 为您本地计算机上 CSV 文件的路径。
verbose 参数为可选参数,用于进行调试。
生成的 XML 文件与 CSV 文件的名称和位置相同。
3. 将该 XML 文件添加至 ZIP 文件。
4. “分类管理” 上下文导入 ZIP 文件。
事前准备
使用 CSVToXMLGenerator 实用程序无需运行 Windchill 服务器。
导入的 CSV 文件格式必须唯一。此格式和使用“分类树”表格中“导出为 CSV”操作生成的 CSV 文件格式不相同。
在加载生成的 XML 文件之前,Windchill 中应已存在以下内容。(导入导出的 ZIP 或 JAR 文件时不适用。)
全局枚举
可复用属性
测量数量
要导入生成的 XML 文件,请将其压缩为 ZIP 文件。从“分类树”中选择“操作” > “导入”


导入错误和支持的值
将文件导入至 Windchill 时将对数据进行验证。如果 XML 文件中包含无效数据或值,则在导入操作期间您将收到一个错误。
尽管使用 CSV 文件更容易,但 CSVToXMLGenerator 实用程序所接受的格式包括多个限制。例如,您无法导入示意图或图像。您也无法指定自动命名规则。
如果属性或限制未在下表中列出,则表示该属性或限制不受支持,导入期间将产生错误。


CSV 格式规则
如果单个值包含逗号,必须使用双引号将其括起。例如:
Hong Kong, Berlin, "New York, NY", London
使用双引号转义双引号。例如:
Parts available in the ""Drive System"" catalog


节点和属性共享列
共有 7 个包含节点或属性信息的列。这些列使用下列格式:
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
“说明”字段中输入的属性值。
例如,您使用 "Node" 行中的以下值创建 CSV 文件:
Node/Attribute,ParentIntName/NodeIntName,NodeIntName/AttributeIntName,DisplayName/DisplayName,Description/IBAName,Keywords/DataType,Namespace,IsInstantiable/Description,DefaultValue,IsSingleValued,IsRequired,StringLength,Lowercase,Uppercase,LegalValueList,EnumeratedList
Node,NULL,Part,Part,Root Node,Part,WTPart.clfNamespace,FALSE,,,,,,,,
Node,Part,MechanicalParts,MechanicalParts,Mechanical parts for reuse,Mechanical hardware,WTPart.clfNamespace,FALSE,,,,,,,,
Node,MechanicalParts,ThreadedInsert,ThreadedInsert,A helical coil that can be threaded into an existing hole to increase strength or reduce diameter.,threaded insert coil,WTPart.clfNamespace,TRUE,,,,,,,,
Node,Part,MechanicalParts_new,MechanicalParts_new,Mechanical parts for reuse MechanicalParts_new,Mechanical hardwareMechanicalParts_new,WTPart.clfNamespace,TRUE,,,,,,,,
* 
CSV 文件中的列排列必须相同,如以上屏幕截图所示。
将 CSV 转换为 XML 并导入后,会生成以下结构:
"Threaded Insert" 节点定义有以下值:
属性列
以下各列仅适用于 "Attribute" 行:
列名称
可接受的值
DefaultValue
该属性的默认值。
对于多个默认值,请使用以逗号分隔的列表。例如:
0.0 m, 1.5 m
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 m|1.5 m|2.0 m
Copper|Aluminum|Steel
EnumeratedList
枚举值列表。您可提供局部或全局枚举值列表。
局部枚举约束使用下列格式:
LOCAL##<排序类型>##<内部名称>##<显示名称>~~<内部名称>##<显示名称>
其中:
<排序类型> - 排序类型值为 Automatic_SortManual_Sort
<内部名称>##<显示名称> - 标识枚举条目的内部名称和显示名称。
~~ - 使用两个波浪线字符来分隔多个条目。
例如:
LOCAL##Manual_Sort##red1##Light Red~~red2##Dark Red~~green1##Light Green
全局枚举约束使用下列格式:
GLOBAL##<枚举>##<父枚举>##<组织>##<组织器名称>##/<域>
其中:
<枚举> - 枚举的内部名称。
<父枚举> - 如果枚举为子枚举,指定其父枚举的内部名称。如果枚举不具有父枚举,将此字段留空。
<组织> - 枚举的“所属组织”值。
<组织器名称> - 持有枚举的组织器的内部名称。
<域> - 枚举的“域”值。
例如:
GLOBAL##Countries##LocaleCodes##Site##Org_Locales##/System
GLOBAL##LocaleCodes####Site##Org_Locales##/System
* 
默认使用的排序顺序为对全局枚举指定的排序顺序。
例如,使用 "Attribute" 行中的以下值创建 CSV 文件:
Node/Attribute,ParentIntName/NodeIntName,NodeIntName/AttributeIntName,DisplayName/DisplayName,Description/IBAName,Keywords/DataType,Namespace,IsInstantiable/Description,DefaultValue,IsSingleValued,IsRequired,StringLength,Lowercase,Uppercase,LegalValueList,EnumeratedList
Node,NULL,Part,Part,Root Node,Part,WTPart.clfNamespace,FALSE,,,,,,,,
Node,Part,MechanicalParts,MechanicalParts,Mechanical parts for reuse,Mechanical hardware,WTPart.clfNamespace,FALSE,,,,,,,,
Node,MechanicalParts,ThreadedInsert,ThreadedInsert,A helical coil that can be threaded into an existing hole to increase strength or reduce diameter.,threaded insert coil,WTPart.clfNamespace,TRUE,,,,,,,,
Node,Part,MechanicalParts_new,MechanicalParts_new,Mechanical parts for reuse MechanicalParts_new,Mechanical hardwareMechanicalParts_new,WTPart.clfNamespace,TRUE,,,,,,,,
,,,,,,,,,,,,,,,
Attribute,ThreadedInsert,directionCoil,Coil Direction,directionCoil,java.lang.String,,Direction coil wraps.,Right,TRUE,TRUE,,,,Right/Left/Unknown,
Attribute,ThreadedInsert,sizeWire,Wire Gauge,sizeWire,wt.units.FloatingPointWithUnits,,Wire size,,TRUE,TRUE,,,,2.588 mm | 1.291 mm | 0.511 mm,
Attribute,ThreadedInsert,assembly,Requires Assembly,assembly,java.lang.Boolean,,,No,TRUE,TRUE,,,,Yes|No,
Attribute,MechanicalParts_new,directionCoil,Coil Direction,directionCoil,java.lang.String,,Direction coil wraps.,Right,TRUE,TRUE,,,,Right/Left/Unknown,
Attribute,MechanicalParts_new,sizeWire,Wire Gauge,sizeWire,wt.units.FloatingPointWithUnits,,Wire size,,TRUE,TRUE,,,,2.588 mm | 1.291 mm | 0.511 mm,
Attribute,MechanicalParts_new,assembly,Requires Assembly,assembly,java.lang.Boolean,,,No,TRUE,TRUE,,,,Yes|No,
* 
CSV 文件中的列排列必须相同,如以上屏幕截图所示。
"Threaded Insert" 定义有以下属性:
这对您有帮助吗?