跳轉到

程式資訊

  • 程式 IDRTM
  • 所屬子系統:Other
  • 狀態:stable

客戶 RTM 退貨匯入匯出

功能簡介

「客戶 RTM 退貨匯入匯出」是一支搭配 RMA(退貨單) 使用的小工具視窗,標題為 Customer Rtm Import。它專門處理 Lowes 客戶的 RTM(Return To Merchandise)退貨資料,提供兩個分頁:

  • Import:把客戶下載下來的 RTM 檔案(一個資料夾內的多個 Excel 檔)一次匯入。
  • Export:依日期區間,把系統內的 RTM 退貨資料匯出成一份 Excel(Customer_RTM.xlsx)。

這支表單不是主選單上的獨立程式,而是從 退貨單 RMA 表單的擴充功能(工具列 ExtendedFunction1)開啟的彈出視窗。負責對接客戶退貨檔案的人員會用它,把外部 RTM 檔轉進系統,或把系統內的退貨明細轉出給客戶/內部對帳。

適用對象很窄

本工具是針對特定客戶(Lowes)的 RTM 檔案格式設計的專用匯入匯出口,並非通用退貨匯入。一般退貨請直接在 退貨單 RMA 上建立。

前置需求

  • 開啟方式:在 退貨單 RMA 表單上,透過工具列擴充功能(ExtendedFunction1)開啟本視窗。它沒有獨立的選單權限碼,權限隨 RMA 表單一併控管。
  • 匯出所需的後端Export 功能呼叫 SP PRIME_QRY_RTM 取資料。若該 SP 未在資料庫部署或未登錄 proc_param,匯出會取不到資料。
  • 匯入所需的檔案準備
資料 影響的結果
客戶 RTM 檔案(*.xls,集中放在同一個資料夾) Import 讀取來源;匯入前須先把檔案全部下載到同一資料夾
RTM 退貨資料(系統內) Export 的內容;無資料則匯出空白
Excel 輸出目錄(ERPIO.ExcelDirectory Export 產生的 Customer_RTM.xlsx 存放位置

Import 目前尚未完成

程式碼中的 Import 只做到「跳出選擇資料夾、列出該資料夾的 *.xls 檔」,實際寫入資料庫的處理尚未實作(原始碼僅列檔、未解析也未存檔,且註解標示「資料只有 2015 年以前的」)。請把 Import 視為規劃中/尚未提供的功能,目前實際可用的是 Export

操作步驟

匯出 RTM 資料(Export 分頁)

  1. 退貨單 RMA 上開啟本視窗,切到 Export 分頁。
  2. 設定 Date(起始日)與 TO(截止日)。兩欄預設都帶今天,日期格式為短日期(ShortDate)。
  3. Export。系統呼叫後端取資料,先刪除舊的 Customer_RTM 檔,再寫出新的 Customer_RTM.xlsx 到 Excel 輸出目錄。
  4. 完成後跳出提示 Open RTM file at c:\temps\Customer_RTM.xlsx,詢問是否開啟()。檔案此時已寫入 Excel 輸出目錄;若要自動開檔,目前需手動到該目錄打開(見下方提示)。
  5. 完成後按 Exit 關閉視窗。

匯出分頁

提示訊息中的路徑僅供參考

提示文字寫的是 c:\temps\Customer_RTM.xlsx,但實際輸出位置由系統的 Excel 輸出目錄(ERPIO.ExcelDirectory)決定,不一定是 c:\temps

按 是 目前不會自動開檔

這個提示用的是「是/否」兩個按鈕,但程式判斷自動開檔時比對的是 OK(與「是/否」按鈕不相符),因此 目前不會真的用 Excel 把檔案打開。檔案本身已正常匯出到 Excel 輸出目錄,需自行到該目錄手動開啟。此為已知程式缺陷,待後續修正。

匯入 RTM 檔案(Import 分頁,規劃中)

尚未提供

以下為規劃中的操作流程,目前 Import 按鈕按下後僅會跳出 Empty 訊息並列出資料夾內的 *.xls 檔,不會真的寫入資料。請等功能完成後再使用。

  1. 先把客戶提供的所有 RTM 檔案下載到同一個資料夾(畫面提示:Please download all RTM files into one single folder. Empty the folder by moving out after each import.)。
  2. 切到 Import 分頁,按 Import,在跳出的視窗選擇放置 RTM 檔的資料夾。
  3. 每次匯入完成後,把該資料夾清空(把檔案搬走),避免下次重複匯入。
  4. Exit 關閉視窗。

欄位說明

欄位 必填 說明/格式/預設
Date(起始日,BeginningDate 匯出資料的區間起始日;短日期格式;預設今天
TO(截止日,EndingDate 匯出資料的區間截止日;短日期格式;預設今天

兩個日期都預設今天

視窗開啟時,BeginningDateEndingDate 都由 DateTimeWrapper.TodayYYYYMMDD() 帶入今天的日期。若要匯出一段期間,記得把起始日往前調。

欄位連動與附加功能

這一節整理「按下哪個按鈕會發生什麼」,內容全部來自實際程式碼。

  • 視窗開啟時(建構子):自動把 DateTO 兩個日期欄都設成今天,並建立 ImportExport 兩個命令。本視窗不載入任何主檔資料,屬純工具型彈窗。

  • Export(Export 分頁):依序執行——

    1. DateTO 為參數,呼叫後端 SP PRIME_QRY_RTM(固定帶第一參數 "1",第二、三參數為起、訖日期)取得退貨資料。
    2. 若有資料,先呼叫 DeleteExcelFile("Customer_RTM") 刪掉輸出目錄中既有的 *Customer_RTM*.xlsx,再把查詢結果寫成新的 Customer_RTM.xlsx
    3. 跳出「是/否」提示詢問是否開啟。程式原意是選 時用系統內建的 Excel 開檔服務開檔,但因比對值寫成 OK(非 ),實際上按任一鈕都不會自動開檔(已知缺陷)。
    4. 若查詢無資料(資料表數為 0,或回傳為 null),則不會刪檔也不會產生檔案。
  • Import(Import 分頁):先跳出 Empty 訊息,接著呼叫匯入處理——目前該處理只會跳出選擇資料夾的視窗、列出資料夾內的 *.xls 檔,未做任何解析或寫入(屬規劃中,見上方警告)。過程中若發生例外,會寫入除錯記錄並以錯誤訊息框提示。

  • Exit(兩個分頁都有):把視窗的 DialogResult 設為 false,關閉本視窗,回到 退貨單 RMA

匯出欄位由後端 SP 決定

匯出 Excel 的欄位(如 CUSTOMERRTMNUMBERRTMDATECUSTOMERSKUOURSKUQTYUNITCOSTEXTENDEDCOST 等 RTM 欄位)來自 SP PRIME_QRY_RTM 的回傳結果,直接原樣寫入 Excel,並非在程式內逐欄組裝。

常見問題

按 Export 之後沒有產生 Excel 檔?

Export 只有在 SP PRIME_QRY_RTM 回傳到資料時才會寫檔。請確認:(1) 選的 DateTO 區間內確實有 RTM 退貨資料;(2) 後端 SP PRIME_QRY_RTM 已部署並登錄 proc_param。若區間內無資料,系統不會建立檔案。

提示說檔案在 c:\temps\Customer_RTM.xlsx,但那邊找不到?

提示訊息中的路徑是寫死的範例文字,實際輸出位置以系統的 Excel 輸出目錄(ERPIO.ExcelDirectory)為準,不一定是 c:\temps。請到該輸出目錄找 Customer_RTM.xlsx

按了 卻沒有自動打開 Excel?

這是已知缺陷:提示框是「是/否」按鈕,但程式判斷自動開檔時比對的是 OK,兩者不相符,所以按 不會觸發開檔。檔案本身已成功匯出,請直接到 Excel 輸出目錄手動開啟。

Import 按了只跳出 Empty,資料沒進系統?

Import 的實際匯入邏輯尚未實作,目前按下後只會列出資料夾內的 *.xls 檔、不會寫入資料庫。這是已知的未完成功能,請改用 退貨單 RMA 直接建立退貨,或等本功能完成。

為什麼主選單找不到這支「RTM」程式?

本視窗沒有獨立的選單入口,只能從 退貨單 RMA 的擴充功能開啟。它是 RMA 的附屬工具,不會單獨出現在功能選單裡。

匯出時跳出「請先關閉相同名稱的 Excel」?

寫檔前系統會先刪除舊的 Customer_RTM*.xlsx。若該檔正被 Excel 開著而無法刪除/覆寫,就會出現此提示。請先關閉已開啟的 Customer_RTM.xlsx 再重新匯出。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/Other/images/):

  1. rtm-step1.pngExport 分頁全貌(含 Date~TO 與 Export 按鈕)
  2. (選配)rtm-step2.pngImport 分頁與資料夾選擇視窗(待 Import 功能完成後再補)