擷取記錄處理

選取記錄並產生每筆記錄的輸出以寫入檔案,與外部系統進行整合的處理稱為「擷取處理」。基準批次控制「外掛導向的擷取範本」 (F1-PDBEX) 可作為範本。

快速路徑:請閱讀主題特設處理。主題中有關「選取記錄」外掛的資訊和「處理記錄」外掛的部分相關資訊適用於擷取處理。本主題著重於擷取處理的獨特層面。
系統提供的處理包含用於設定所建立檔案之檔案路徑和檔案名稱的參數。檔案路徑支援主題參考 URI 中描述的所有功能。檔案名稱支援系統替代變數,例如執行編號、執行緒編號、使用者及日期/時間。如果使用適當的副檔名,此處理也支援壓縮。如需詳細資訊,請參考批次控制中的「檔案名稱」參數描述。
備註:如需有關支援將業務值替代為檔案名稱的資訊,請參考彈性檔案名稱/寫入多個檔案

對於擷取處理,「處理記錄」演算法負責傳回應該寫入一或多個 XML 實例中檔案的資料,以及描述 XML 實例的結構名稱。程式將按照「檔案格式」批次參數中所指示的格式將資料寫入檔案。服務預設會針對日期與時間使用 OUAF 格式。若要置換此格式並使用 XSD 格式,請將「日期時間格式」批次參數設定為 'XSD''。

如果現有結構符合輸出要求,就可以使用該結構。否則,您應該定義資料區域,以視需要指出記錄的輸出格式。請注意,您必須為結構中的每個元素定義適當的欄位。這對固定位置檔案格式來說是必要的,但對任何輸出格式而言,都是不錯的做法。如需其中包含為每個結構元素定義之欄位的資料區域範例,請參閱 F1-PDBGenProcExtractRecord

設計與設定「處理記錄」演算法有兩個選項:

  • 建立特定處理記錄演算法類型以封裝擷取邏輯。本產品提供基準演算法類型,說明要遵循的基本技術。如需詳細資訊,請參閱「一般處理 - 範例處理記錄擷取」(F1-GENPROCEX) 演算法類型。

  • 建立檔案整合類型以定義要包含在擷取中的記錄,並設定參考該整合類型的外掛導向批次控制。如需實作此類型功能的相關詳細資訊,請參考使用檔案整合進行擷取

您的特定邊緣產品可能提供其他立即可用的「處理記錄」演算法類型。請使用演算法類型查詢,並搜尋此演算法實體的記錄。

依記錄 XML 節點分組

設定應產生 XML 格式輸出的擷取處理時,「處理記錄」外掛傳回的多個結構可能包含全都屬於同一筆整體記錄的資訊。例如,輸出可能包含帳戶資訊和相關服務協議明細:
<account type="group"
    <accountId>1234567890</accountId>
    ...
</account>
<sa type="group"
    <saId>123457665</saId>
    ...
</sa>
<sa type="group"
    <saId>1234588913</saId>
    ...
</sa>
在此案例中,可能需要將該資訊全部包裹在一個分組 XML 標記中,讓一筆記錄的所有資訊能群組在一起。由於「處理記錄」外掛可能傳回不屬於指定所選記錄擷取資訊的標頭或標尾記錄,因此批次處理不知道「處理記錄」外掛所傳回的結構在邏輯上屬於何種結構。此時應使用結構集合中的輸出參數 'record XML node',指出要用來將相關資訊群組在一起的外部 XML 節點。例如:
<SchemaInstance>
<recordXMLNode>record</recordXMLNode>
<schemaName>CM-AccountRecord</schemaName>
<schemaType>F1DA</schemaType>
<data><account><accountId>1234567890</accountId>...</data>
</SchemaInstance>
<SchemaInstance>
<recordXMLNode>record</recordXMLNode>
<schemaName>CM-SAInfo</schemaName>
<schemaType>F1DA</schemaType>
<data><sa><saId>123457665</saId>... </data>
</SchemaInstance>
<SchemaInstance>
<recordXMLNode>record</recordXMLNode>
<schemaName>CM-SAInfo</schemaName>
<schemaType>F1DA</schemaType>
<data><sa><saId>1234588913</saId>... </data>
</SchemaInstance>
從「處理記錄」外掛的單一呼叫所傳回具有相同記錄 XML 節點的所有結構,將會依照下方範例分組在該 XML 標記內的寫入輸出中:
<root>
<record>
<account>
    <accountId>1234567890</accountId>
    ...
</account>
<sa>
    <saId>123457665</saId>
    ...
</sa>
<sa>
    <saId>1234588913</saId>
    ...
</sa>
</record>
<record>
<account>
    <accountId>987654320</accountId>
    ...
</account>
<sa>
    ...
</sa>
</record>
</root>

多執行緒擷取

擷取資料時,有可能會因資料量的緣故,而必須以多執行緒的方式執行工作。在此情況下,系統會使用檔案名稱中所含的執行緒編號來產生個別的檔案。在指示檔案名稱時,您可以主動包含執行緒編號作為替代變數。如果沒有這麼做,系統會附加執行緒編號。

基於方便性,系統支援在最後將各種執行緒產生的擷取檔案串連起來。系統執行此作業的方式是尋找檔案名稱相符的檔案 (不含執行緒編號)。因此,如果串連參數為 true,檔案名稱不得包含日期或時間。請注意下列有關串連功能的事項:

  • 每個檔案的內容會依「原樣」串連在一起。個別檔案如果有標頭、標尾或摘要資訊,則將該資訊合併在串連的檔案中會不合邏輯。如果想要單一標頭、標尾或摘要,必須以單一執行緒執行擷取。
  • 若檔案名稱指示應使用 Zip 壓縮,則不支援串連。
  • 會保留個別執行緒檔案。
  • 請注意,如果檔案格式為 XML,針對個別執行緒所寫入檔案的寫入副檔名將會是 ".tmp"。

略過記錄

依預設,擷取處理預期每次呼叫「處理記錄」外掛都會傳回一或多個結構。(通常在設計任何處理時,「選取記錄」演算法只選取應該處理的記錄,而「處理記錄」演算法不需要確認記錄是否應為處理的一部分。)不過,如果需要檢查「處理記錄」外掛中的條件,並且發現不需要對此記錄擷取任何資料,則處理記錄演算法應將「已略過」輸出參數傳回 true,程式才不會寫入空白資料列。

請注意,如果檔案整合記錄擷取記錄演算法未傳回資料,檔案整合類型的基準處理記錄演算法 (F1-FILEX-PR) 會將「已略過」參數設為 true

設定新的處理

「選取記錄」演算法的相關設定新的特設處理主題中說明的幾點適用於擷取處理。

就「處理記錄」演算法而言,它負責傳回一或多個結構實例,這些實例中會植入應該要寫入檔案的資訊。如果您的邊緣產品未提供適合的外掛,請建立演算法實體為批次控制 - 處理記錄外掛指令檔。請注意,外掛會接收在「選取記錄」外掛定義之 SQL 中選取的所有資訊。

請參考設定使用檔案整合類型的擷取處理,以取得設計使用此組態之擷取的資訊。

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