Graphical Data Mapping 資料倉儲範例的詳細說明
有關範例工作方式的說明著重於圖形資料對映。
- 輸入 XML 訊息 LoyaltySalesData 包含唯一的客戶號碼。此項作為 LOYALTY 表格中的主要索引鍵,用於使用 Select 轉換在資料庫上建立選取。
- 此 Select 轉換的結果可使用 XPath 表示式 fn:count() 查詢。它會對選取的列進行計數。如果在 LOYALTY 表格中未發現任何記錄,則計數轉換返回 0,並繼續處理 Else 巢狀轉換。在此實例中,會有一條新記錄插入資料庫。
- Insert 轉換包含在 Else 巢狀轉換中。如需將資料插入資料庫的相關資訊,請參閱 IBM Integration Bus 資訊中心內的將資料插入表格。
- 在 Insert 巢狀轉換中,必須在每一個種類內從 Item 元素建立所有項目的總計,然後再插入資料庫。
此動作使用 Sum 轉換實作。
- 您必須提供表示式來選取要使用轉換的一般內容累積的項目元素。
若要提供要求和的參數,您可以在 $Items 上使用方括弧來實作過濾器,因為它是一個陣列。在此範例中,所有糖果都有一個範圍從 1-10 的項目碼,因此使用此條件作為過濾器。如需協助填寫該資訊,可以使用「內容輔助」(Ctrl+Space)。
- Return 轉換給出 XML 輸出作為 LoyaltySalesDataOut 訊息。此訊息放在訊息流程的 LOYALTYDATA.OUT 輸出佇列內,以分析資料庫中順利完成的插入項目。該訊息包含的資料與輸入訊息相同,但還包含一個 DatabaseReturn 元素和一個 Action 元素。
Action 元素包含一個簡式訊息,用於陳述插入成功。
各項目使用 For Each 轉換對映,因為項目是重複元素。
- 當插入和更新資料庫時可以使用 Failure 轉換來選擇處理失敗。若要新增一個 Failure 轉換給插入或更新,請對轉換按一下滑鼠右鍵,然後選取「資料庫 > 處理失敗」。接著,您可以將 SQL 失敗訊息遞送給此轉換中的輸出訊息。
- Failure 轉換使用輸出訊息 LoyaltySalesDataOut。當插入失敗時,SQL 程式碼和失敗狀態將被對映至 DatabaseReturn 元素。所有其他欄位都將如同 Insert 轉換中一樣對映。如需 Failure 轉換的相關資訊,請參閱 IBM Integration Bus 資訊中心內的失敗。
- 如果 Select 陳述式發現相符的記錄,則 fn:count() 將返回列數,並繼續 If 轉換。如果資料庫中存在該客戶,則結果集計數為 1,且該記錄應該更新為訊息中的新資料。您無法選取多個記錄,因為客戶號碼為主要索引鍵。
- Update 轉換包含在 If 巢狀轉換中。如需將資料更新到資料庫的相關資訊,請參閱 IBM Integration Bus 資訊中心內的更新表格中的資料。
- 對於 Update 轉換,必須在每一個種類中建立所有項目的總計。該項包含資料庫中的現行值與來自輸入訊息的項目。您必須為 Sum 轉換提供某個種類的一組項目及現有資料庫欄位,方法是在一般內容上使用表示式從 Select 選取。
- Update 與 Failure 轉換和 Insert 轉換的實作方式相同。
回到範例首頁