從 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 檔案。
事前準備
不需要執行 Windchill 伺服器便可使用 CSVToXMLGenerator 公用程式。
匯入的 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
指定屬性是否具有單一值。
接受的值:
IsRequired
指定屬性是否為必填。
接受的值:
StringLength
為字串值指定長度條件約束。
使用下列格式:[下限, 上限]
例如:
[2,5] - 字串必須介於 2 到 5 個字元之間
[NULL,50] - 字串不得超過 50 個字元
[10,NULL] - 字串至少必須有 10 個字元
小寫
將大寫字元轉換為小寫。
接受的值:
大寫
將小寫字元轉換為大寫。
接受的值:
LegalValueList
接受值的清單。
使用縱線字元 ("|") 分隔值。例如:
1.0 m|1.5 m|2.0 m
Copper|Aluminum|Steel
EnumeratedList
列舉值清單。您可以提供本機或全域列舉值清單。
本機列舉條件約束使用下列格式:
LOCAL##<sort type>##<internal name>##<display_name>~~<internal_name>##<display_name>
其中︰
<sort_type> - 排序類型值為 Automatic_SortManual_Sort
<internal name>##<display name> - 識別列舉項目的內部名稱與顯示名稱。
~~ - 使用兩個波浪符號來分隔多個項目。
例如:
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" 節點已定義下列屬性:
這是否有幫助?