FSTS 資料轉檔測試紀錄
舊 FSTS COBOL FD 檔 → 新系統 DB 的實測結果紀錄,涵蓋 13 張表的筆數、耗時、人工檢核備註。回到 KM 總覽;轉檔架構背景見 COBOL FD 檔案盤點。
一句話
此紀錄是一批 13 張基本/歷史檔從舊 COBOL FD 轉入新系統的實測結果,全部 13/13 成功(共 73,389 筆),但其中 EXRT / FHIO / FSIO 三張在「日期欄位長度」上發現 FD 宣告與實際資料不一致,處理共識是「把 TMMDD 從長度 4 改為長度 8,資料就看起來正常」。12
一、總表(13 張)
13 張表的轉檔實測全部成功,合計 73,389 筆,耗時約 42 秒。三張表的人工檢核備註指出 FD 宣告 vs. 實際資料的不一致(見下方「格式怪怪的」欄):1
| # | 表名 | 結果 | 筆數 | 成功 | 失敗 | 耗時 | 人工確認 | 備註(日期/文字欄位異常) |
|---|---|---|---|---|---|---|---|---|
| 1 | CTRY | ✅ | 59 | 59 | 0 | 1.2s | PASS | — |
| 2 | CUS2 | ✅ | 2 | 2 | 0 | 1.3s | PASS | — |
| 3 | CUST | ✅ | 2 | 2 | 0 | 1.3s | PASS | — |
| 4 | EXMB | ✅ | 86 | 86 | 0 | 1.4s | PASS | — |
| 5 | EXRT | ✅ | 4,367 | 4,367 | 0 | 2.3s | ⚠️ TMMDD_EXRT 應該是 8 位但 FD 只有 4 位數 | 範例:20251203 AUD EUR 000000000000 000000565600 01141204 082020 |
| 6 | FHIO | ✅ | 275 | 275 | 0 | 1.5s | ⚠️ 格式怪怪的 | 先把 TMMDD_FHIO 從 4 改成長度 8,資料看起來比較正常 |
| 7 | FSIO | ✅ | 350 | 350 | 0 | 1.6s | ⚠️ 格式怪怪的 | 先把 TMMDD_FHIO 從 4 改成長度 8,資料看起來比較正常(備註重用 FHIO 的描述) |
| 8 | FSMB | ✅ | 47,843 | 47,843 | 0 | 19.9s | PASS | — |
| 9 | FSMB1 | ✅ | 19,927 | 19,927 | 0 | 8.4s | PASS | — |
| 10 | FUMB | ✅ | 2 | 2 | 0 | 1.2s | PASS | — |
| 11 | UNIT | ✅ | 28 | 28 | 0 | 1.3s | PASS | — |
| 12 | UPMB | ✅ | 280 | 280 | 0 | 1.5s | PASS | — |
| 13 | UPPM | ✅ | 168 | 168 | 0 | 1.2s | PASS | — |
二、FHIO 實測細節
轉檔紀錄.md §FHIO 段落收錄了實際 FHIO 原始資料一筆、人工判讀結論、以及完整的 FHIOF.CPY FD 宣告(含欄位註解)。2
2.1 原始資料範例
2026020301150203966390001000141720BTUSNASDNVDA USD0000000500000190000000BLDN000000000950000000000010000000000000100000USA 020J089591403010115020401150204YY 0000001000000USD 01150204
對應 FHIO-REC 的 512 bytes 固定長度欄位拆解。2
2.2 人工判讀結論(重點)
「TMMDD 改成長度 8」:原本
TMMDD-FHIO PIC 9(04)只容納 4 位數,但實測資料前 8 個字元是20260203(YYYYMMDD 完整年月日),因此將TMMDD從PIC 9(04)改為PIC 9(08)後,資料對位才對齊。2
2.3 FD 宣告摘要(512 bytes)
FHIOF.CPY 的 FHIO-REC 主要欄位(raw 收錄完整宣告):2
TMMDD-FHIO— 成交日(實測需 PIC 9(08),而非 FD 原本的 PIC 9(04))ODATE-FHIO— 委託日期(PIC 9(08)= YY/MM/DD)BHNO-FHIO— 下單分公司代號(PIC X(04))SHEET-FHIO— 櫃號 + 序號(REDEFINES 為TERM+DSEQ)DNO-FHIO— 分單號碼(PIC 9(02))CSEQ-FHIO— 客戶帳號(PIC 9(06))TTYPE-FHIO— 交易方式(0:現股 1:融資 2:融券,初期一律現股)UPNO-FHIO/EXNO-FHIO— 上手代號 / 交易所別STOCK-FHIO— 股票代號(PIC X(12))UNIT-FHIO— 幣別、QTY / PRICE— 成交數量 / 單價BS-FHIO— 買賣別(B/S 條件)TYPE-FHIO— 下單方式(REDEFINES 為 TYPE1/TYPE2/TYPE3)AMT / NAMT / LAMT— 成交價金 / 淨收付 / 圈存金額COUNTRY,EMNO,TSALE,TLNO,TTIME— 國別、介紹員工、營業員、櫃員、成交時間PCDATE / PSDATE— 保證金 / 股票交割日期PCFLAG / PSFLAG— 保證金 / 股票入帳註記EXECID— FIX EXECIDTKIND— 來源註記EXRATE,PUNIT,BET— 匯率、交割幣別、折扣點數DCCTRY,SSI,CSALE— 投信國別、SSI 類別(0:一般 1:特殊 2:金資代碼...)、共耕營業員FEE-FHIOOCCURS 12 TIMES — 12 種手續費(手續費 / 處理費 / 交易所費 / 結算費 / 匯款手續費 / 交易稅 / 印花稅 / PTP 交易稅 / 4 個保留)UPFEE-FHIOOCCURS 12 TIMES — 上手側的 12 種費用(手續費 / 處理費 / 交易所費 / 結算費 / 匯款手續費 / 交易稅 / 印花稅 / 股票服務費 / 營業稅 / 保管費 / 營業成本 / 交割費用)FHIO-KEY— RENAMESTMMDDTHRUDNO(複合 key)2
三、對照 UPPM 費用代碼
FEE-FHIO 的 12 個 OCCURS 欄位與 UPFEE-FHIO 的 12 個對應大致符合 UPPM 費用類型 14 類,但兩邊順序略有不同,且 FEE-FHIO 把索引 8 放給了 PTP 交易稅(UPPM §參數則為「股票服務費」)。2
[推論] 這代表 FD 宣告的
FEEOCCURS 不是 UPPM 的子集或對應 key-value,而是 FHIO 自己定義的 12 欄位順序;若新系統要整合到 UPPM 統一費用模型,需要 mapping 表,不能直接 1:1。2
四、對新系統的啟示
- 靜態 FD 宣告與實際資料可能不一致:
TMMDD被宣告為 4 bytes 但實際為 8 bytes,代表舊 COBOL FD 可能已過時或從未完整更新;新系統的 INI Layout 需要以實際資料為準再對位。- 「成功但格式怪」不可直接視為 PASS:即使轉檔程式 0 失敗,仍需人工抽樣驗證日期 / 文字欄位;本紀錄的人工檢核流程應作為新系統轉檔的 SOP。
- OCCURS 費用欄位需要對照表:
FEE/UPFEE的 12 欄位語意與 UPPM 不完全一致,整合到新系統統一費用模型前需先建立 mapping。
相關頁面
- COBOL FD 檔案盤點 — 875+ CPY 索引;FD 命名慣例(REDEFINES / OCCURS / RENAMES)
- 舊 FSTS 系統參數代碼 — UPPM 費用類型 14 類
- SUV 轉檔說明 — TMP / TxOnline / TxDaily
- FSTS 核心業務流程 — FD 轉檔流程
- FSTS 術語表 — INI Layout / INI Mapping
補充資訊
(未來 ingest 新來源會在此追加段落)