驗證「GF 發動 → LDS 查找/建檔(importer 5106)→ 帶入 Customs Entry → 送件 → CBP 回覆」與全程稽核 log 的端到端正確性。對應規格 03_GF_LDS_TP_Master_Mapping.html。
範圍:P0 Trade Partner 同步(company / importer / shipper)與其與 Customs Filing(Type 01 為主)的整合,含統一稽核 log 與獨立稽核頁。
不在此範圍:各 Entry Type 的完整報關規則測試(另計)、LDS→GF 主檔回寫。
ExternalId。| 元件 | 環境 | 備註 |
|---|---|---|
| GoFreight | Staging / API sandbox | TP 詳細 endpoint(含 IRS/地址)需可用;否則走缺欄位路徑 |
| GF→LDS Adapter | Test | WCF proxy 指向 LDS test;ClientContext 測試帳號 |
| LDS SMS | Test / Cert | IContactManager、5106(ImporterConsigneeCreate)可送 ACE Cert |
| CBP ABI/ACE | Certification | 5106、SE/AE 在 ACE cert 環境 |
| 稽核 log / 頁面 | Test | append-only store;遮罩 IRS/SSN |
| 代號 | TP | 角色 | 關鍵欄位 | 用於 |
|---|---|---|---|---|
| TP-A | 已存在 LDS 的進口商 | Importer | IRS 95-1234567(LDS 已有) | TC-01 |
| TP-B | 新進口商(GF 欄位齊全) | Importer | IRS 45-9988776 + 地址 + ImporterType | TC-02 |
| TP-C | 已存在的 shipper(GF ref=TP-204) | Shipper | ExternalId=TP-204 | TC-03 |
| TP-D | 新 consignee(GF 缺地址) | Consignee | 僅 name + ref,缺 address/type | TC-05 |
| TP-E | 疑似重複(同名近似地址) | Importer | 近似 TP-A | TC-06 |
| TP-F | IRS 格式錯誤 | Importer | IRS 含連字號/長度錯 | TC-13 |
| AC(03 文件 I 節) | 對應測試案例 |
|---|---|
| AC1 查找(IRS/ref) | TC-01, TC-03 |
| AC2 查無→建檔(+5106) | TC-02, TC-04 |
| AC3 寫 ExternalId + 帶入 Entry | TC-02, TC-08 |
| AC4 缺欄位→Pending | TC-05, TC-13 |
| AC5 全程寫 log(含 filing) | TC-09, TC-11 |
| AC6 稽核頁篩選/匯出 | TC-10 |
| AC7 重複建檔防呆 | TC-06 |
| ID | 優先 | 情境 | 步驟 | 預期結果 |
|---|---|---|---|---|
| TC-01 | High | Importer 已存在(IRS 比對) | 建 Entry 指定 TP-A → 系統查找 | GetByNumber(IRS) 命中;狀態 ✓ Linked;不重建;log 一筆 TP_LOOKUP=SUCCESS |
| TC-02 | High | Importer 不存在 → 建檔 + 5106 | 指定 TP-B → 查無 → Create in LDS | Contact 建立、ExternalId=GF ref;送 ImporterConsigneeCreate;5106 PENDING→收 CBP 回覆後 SUCCESS;log 3 筆(CREATE/5106/LINK) |
| TC-03 | High | 其他 TP 已存在(ref 比對) | 指定 TP-C(shipper) | GetByExternalId(TP-204) 命中;✓ Linked;帶入 Shipment.Seller_Id |
| TC-04 | Med | 其他 TP 不存在 → 建檔(無 5106) | 指定新 shipper → Create | Contact 建立、RolesIsShipper/Seller=true;不送 5106;log CREATE+LINK |
| TC-05 | High | GF 缺必要欄位 → Pending | 指定 TP-D(缺地址)→ Create | 自動 5106 被攔;狀態 ⚠ Pending;列缺漏(mailing_address/address_type);log CREATE=PENDING + 缺漏 |
| TC-06 | Med | 重複建檔防呆 | 指定 TP-E(近似 TP-A)→ Create | GetByCandidate 提示疑似重複;需人工確認;不自動建第二筆 |
| TC-07 | Med | 5106 非同步退件 | 送 5106,CBP 回 reject(如 address type 無效) | 狀態轉 FAILED;反序列化 EntryValidationFault 顯示原因;可更正重送 |
| TC-08 | High | 帶入 Customs Entry | TP linked 後檢查 entry 關聯 | importer→Importer_Id、consignee→Consignee_Id、shipper→Seller_Id 正確 |
| TC-09 | High | Logging 完整性 | 完成 TC-02 全流程 | 每動作各一筆 log,含 time/user/action/tp name·code·type/IRS(遮罩)/gf_ref/lds_id/status/source_link;append-only |
| TC-10 | Med | 稽核頁篩選/匯出 | 開稽核頁,篩 type/action/status,匯出 CSV,開明細 | 篩選正確;CSV 內容相符;明細顯示 timeline + 缺漏欄位 |
| TC-11 | High | 端到端 happy path | TP 建好 → Type 01 Entry → 計稅 → 驗證 → QUE → CBP 回覆 | SO=RELEASED(98)、AX=Accepted;log 含 CUSTOMS_FILE_QUE + CBP_RESPONSE;可產生 3461/7501 |
| TC-12 | Med | 端到端 reject path | 送件得 AX Reject / SO Hold | 狀態標紅、列 condition code;log 記 PENDING/FAILED;可修正重送 |
| TC-13 | Med | IRS 格式驗證 | 指定 TP-F(IRS 格式錯) | IsIRSNumber() 判否;阻擋並提示格式(NN-NNNNNNNXX);不送 5106 |
| TC-14 | Low | 多 shipment 多 TP | 一筆 Entry 多張提單、各自 consignee/shipper | 各 TP 獨立查找/建檔/帶入;log 對應多筆 |
| ID | 項目 | 預期 |
|---|---|---|
| NFR-01 | 敏感資料遮罩 | 稽核頁與 log UI 對 IRS/SSN 遮罩;後端加密;存取留痕 |
| NFR-02 | 非同步效能 | 5106/QUE 入列後 UI 即回;輪詢回填狀態 ≤ 設定 SLA |
| NFR-03 | 重試/冪等 | 建檔/5106 重送不產生重複 Contact;以 ExternalId/IRS 冪等 |
| NFR-04 | 失敗回復 | Adapter 斷線/逾時可重試;PENDING 不遺失 |
| NFR-05 | 代碼對照 | ImporterType/AddressType/Country/ProgramCode 對照 CBP CATAIR,更新可維護 |
| 級別 | 定義 | 例 |
|---|---|---|
| S0 Blocker | 無法建檔/送件或資料外洩 | 5106 完全失敗;IRS 明碼外顯 |
| S1 Critical | 核心流程錯誤 | 帶入錯 TP;重複建檔;log 缺漏 |
| S2 Major | 次要功能/體驗 | 篩選錯、狀態顯示延遲 |
| S3 Minor | 文字/樣式 | 標籤、排版 |