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 內容與原始內容相同,系統就會套用下列規則:
  • 如果維護物件有主要資料表,系統就會把記錄插入與該記錄相對應的 XML 解析資料表中,且 XML 儲存欄位中不會有任何值。

  • 如果維護物件有下階資料表,系統就不會把任何記錄插入與該記錄相對應的 XML 解析資料表中。

已回報的錯誤

系統會把在 XML 解析期間碰到的錯誤,都記錄在轉換「驗證錯誤」(CI_​VAL_​ERR) 資料表中。請注意,當您開始執行此工作時,處理維護物件之轉換錯誤資料表中的所有資料列都會遭到刪除。

您可以使用「驗證錯誤摘要」頁面,檢視由 XML 解析處理所反白標示出的錯誤。