从 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 | 父节点的内部名称。 | 正在为其定义属性的节点的内部名称。 |
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_Sort 或 Manual_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" 定义有以下属性: