XML 解析
大多數由系統產生的外來索引鍵是存放在實體欄位和特性資料表中,因此在插入至生產處理的執行過程中,舊有的外來索引鍵會被取代成其相對應的新索引鍵。在很罕見的情況下,維護物件會將系統產生的外來索引鍵存放在 XML 儲存欄位 (也就是資料類型定義為 CLOB 或 XML 的欄位) 中。此步驟只適用於這種維護物件。
在此步驟的執行過程中,系統會解析位於您已載入暫存資料表之 XML 儲存欄位中,可轉換之系統產生的外來索引鍵。本小節將提供有關 XML 解析處理的高層次討論。
XML 解析資料表
您必須要瞭解,系統不會覆寫暫存資料庫中 XML 儲存欄位上的主索引鍵,因為這是非常昂貴的 IO 交易。更確切地說,會定義 XML 解析欄位的每個資料表都有相對應的 XML 解析資料表,以便擷取每個資料列的已解析 XML 儲存內容,也就是其舊索引鍵全被取代成新指派索引鍵的內容。
系統會使用慣例「<擁有者標誌的第一個字母>R_<table_name>」來表示 XML 解析資料表的名稱。
將資料列轉移至生產資料庫的插入批次處理,會將每個 XML 儲存欄位取代成它在相對應 XML 解析資料表中的解析值。
每個維護物件一個批次處理
系統會為適用於轉換,且支援 XML 儲存欄位的每個維護物件,提供一個 XML 解析批次處理。系統必須執行這些批次處理,以便解析位於這些 XML 儲存欄位中的外來索引鍵。
這些處理能夠以多執行緒的方式來執行,且執行的時機必須在索引鍵指派步驟完成之後,並在將資料插入生產之前。
XML 解析適用性
並非所有支援 XML 儲存欄位之維護物件的 XML 儲存欄位中,都真的有可轉換之系統產生的外來索引鍵。如果在與該維護物件相關聯的業務物件中,沒有任何一個業務物件需要將這種外來索引鍵對應到某個 XML 儲存欄位,則該維護物件中的所有資料列就都不需要 XML 解析。XML 解析批次處理會偵測到這種狀況,並會在沒有將任何資料列儲存在該維護物件之 XML 解析資料表中的情況下,立刻執行完畢。
只會擷取解析值
XML 儲存欄位通常會儲存大量的資料。為避免擷取到太多相同的 XML 內容,系統只會在解析值與原始值不同的情況下 (也就是系統至少已解析一個索引鍵),才會將該值存放在已解析的 XML 儲存欄位中。
-
如果維護物件有主要資料表,系統就會把記錄插入與該記錄相對應的 XML 解析資料表中,且 XML 儲存欄位中不會有任何值。
-
如果維護物件有下階資料表,系統就不會把任何記錄插入與該記錄相對應的 XML 解析資料表中。
已回報的錯誤
系統會把在 XML 解析期間碰到的錯誤,都記錄在轉換「驗證錯誤」(CI_VAL_ERR) 資料表中。請注意,當您開始執行此工作時,處理維護物件之轉換錯誤資料表中的所有資料列都會遭到刪除。
您可以使用「驗證錯誤摘要」頁面,檢視由 XML 解析處理所反白標示出的錯誤。