特設處理

有一種處理會擷取系統中的記錄並對其執行某些動作,它需要有一個演算法選取要處理的記錄,有另一個演算法處理記錄。我們將此類型的處理稱為「特設處理」。基準批次控制「外掛導向的一般範本」 (F1-PDBG) 可作為範本。

基準處理會實作標準背景處理功能,包括平行背景處理邏輯,以及針對錯誤建立待辦事項的功能。這讓實作能夠利用預先建立的支援,並提供外掛,其中包含對特定使用案例唯一的邏輯。

下列各區段提供特設處理的相關功能詳細資訊。請注意,擷取處理會共用部分相同功能。如需擷取處理的其他特定資訊,請參考擷取記錄處理

選取記錄演算法

實作外掛導向的批次處理時,要設計的第一個重要演算法就是外掛於批次控制頁面上的「選取記錄」演算法。此演算法必須將第一個參數定義為 SQL。批次工作將會直接存取中繼資料中的 SQL 參數值 (而不是叫用演算法)。所有其他參數都可供演算法用於自己的邏輯。

此外,系統在叫用演算法時,必須傳回要使用的策略 (執行緒層級的 SQL 選取工作層級的 SQL 選取.如需有關這兩種策略以及何時使用它們的詳細資訊,請參閱平行背景處理。當您選擇執行緒層級的 SQL 選取策略時,演算法應該傳回「索引鍵欄位」參數中主索引鍵的名稱。此外,SQL 應包含納入範圍高低 ID 之繫結變數的 BETWEEN 子句。如需繫結變數語法,請參閱下方內容。

如果 SQL 陳述式包含在執行時間決定的變數,則它必須使用繫結參數。繫結變數在 SQL 陳述式中使用冒號和參數名稱參考 (例如 :parameter)。系統提供的一些變數是由批次工作在執行時間植入。這些變數具有 f1_​ 作為前綴。

系統支援下列預先定義繫結參數:

  • :f1_​lowID:f1_​highID - 這些應該用於執行緒層級的 SQL 選取策略的 BETWEEN 子句中。它們應該從「選取記錄」演算法傳回的「索引鍵欄位」中選取資料。批次工作將會視需要替代適當的 ID 範圍。

    備註:此索引鍵欄位應從 FROM 子句的第一個資料表中選取。
  • :f1_​batchCode:f1_​batchNumber - 這些是批次控制的通用屬性,它們在記錄上被參考以進行選取。請注意,批次執行編號是根據批次工作是否為前一次執行的重新執行來設定。

  • :f1_​businessDate - 批次工作將植入輸入批次業務日期,否則會植入目前日期。

請注意:系統支援 "f1." 與 "f1_​" 作為繫結變數的前綴。不過,如果開啟 SQL 安全性特性設定,則 "f1." 前綴將會導致錯誤。因此,建議使用底線語法。句點語法是保留供回溯相容性之用。

對於任何其他自訂參數,「選取記錄」演算法會傳回一或多組的欄位名稱/變數名稱/值,其中變數名稱與 SQL 中的繫結變數相符。欄位名稱提供長度的相關資訊,以協助 SQL 繫結邏輯正確地替代值。請注意,變數名稱不能以 f1. 開頭作為前綴。批次工作將會使用演算法傳回的值來設定 SQL 陳述式中的繫結參數。另請注意,邏輯會將所有變數繫結為字串,因此對於日期變數,SQL 必須包含 "TO_​DATE" 函數。

外掛點會接收批次工作的特設參數列表作為名稱/值配對。如果列表包含其值用來選取記錄的參數,則可以使用演算法來識別作為輸入傳遞的相關批次參數,並適當地植入欄位名稱和輸出繫結變數。

產品為此外掛點提供只會定義一個 SQL 參數的基準演算法類型。它也包含策略和索引鍵欄位名稱的參數。此演算法類型可供任何自訂批次處理使用,其中 SQL 不依賴必須確定的特殊繫結變數。您只要建立該演算法類型的演算法,並提供適當的 SQL 即可。如需詳細資訊,請參閱演算法類型「依預先定義的查詢選取記錄」(F1-PDB-SR)。

處理記錄演算法

實作外掛導向的批次處理時,要設計的另一個重要演算法就是外掛於批次控制頁面的「處理記錄」演算法。針對處理選取的每筆記錄都會呼叫此演算法。它會接收從「選取記錄」外掛選取的所有資訊。

對於特設處理批次處理,外掛於此點的演算法負責根據所需的邏輯來為每筆記錄執行工作。

對於擷取批次處理,外掛於此點的演算法負責傳回應寫入檔案的資料。此外掛點的許多參數僅適用於擷取處理。如需擷取處理的特定功能詳細資訊,請參考擷取記錄處理

亦請注意,將會傳送兩個布林值 (isFirst 和 isLast) 給此外掛點的演算法,以指出目前工作單位是該執行緒的第一個與/或最後一個工作單位。這可讓外掛在必要時執行其他的工作。請注意,特設和擷取批次處理都可使用 isFirst 指示。然而,isLast 指示僅適用於檔案擷取批次。對於特設批次處理,此值將一律設為。擷取將一律在單一資料庫交易中執行。在單一交易執行中,任何錯誤都會導致執行中止,以便在重新提交時從頭開始重新啟動。這麼做是為了避免將不正確的 isLast 元素設定寫入部分檔案。

設定新的處理

下列各點彙總實作新的背景處理所需的步驟,該處理使用外掛對系統中的記錄執行動作以取得特定功能。

  • 驗證背景處理應執行的 SQL。請記住,在 SQL 中選取的所有資料都可供傳送至處理記錄的外掛。如果背景處理的效能很重要,請務必在設計 SQL 時詢問 DBA。

    • 如果 SQL 在執行階段不需要任何要替代的自訂變數,請建立基準演算法類型 F1-PDB-SR 的演算法,並設定 SQL。此外,請設定策略和主索引鍵名稱 (針對執行緒層級的 SQL 選取策略)。

    • 如果 SQL 需要自訂變數,則必須設計並編寫新的外掛指令檔,以便使用演算法實體批次控制 - 選取記錄來植入變數名稱和值。除了定義變數之外,演算法也必須指出策略和主索引鍵名稱 (針對執行緒層級的 SQL 選取策略) 。請為新建立的指令檔定義演算法類型。該演算法類型的第一個參數必須是 SQL,如基準演算法類型中所述。請注意,如有必要,其他參數可供此演算法類型使用。請定義演算法,並視需要植入 SQL (使用自訂變數)。

  • 設計處理每筆記錄時所需的邏輯。如果您的邊緣產品未提供適合的外掛,請建立演算法實體為批次控制 - 處理記錄外掛指令檔。請注意,外掛會接收在「選取記錄」外掛定義之 SQL 中選取的所有資訊。對於特設處理,演算法應該根據業務使用案例,執行所需的任何處理。請注意,背景處理負責確認記錄。

    在任一情況下,如果需要新的處理指令檔,請為新建立的指令檔定義演算法類型和演算法。

  • 透過複製基準範本 F1-PDBG 建立批次控制。請外掛在上述步驟中建立的演算法,並視需要設定參數。請注意,如有必要,您可以在批次控制上設定自訂特設參數。基準和自訂批次參數值都可供「選取記錄」和「處理記錄」外掛演算法使用。