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

提示訊息中的路徑僅供參考
提示文字寫的是 c:\temps\Customer_RTM.xlsx,但實際輸出位置由系統的 Excel 輸出目錄(ERPIO.ExcelDirectory)決定,不一定是 c:\temps。
按 是 目前不會自動開檔
這個提示用的是「是/否」兩個按鈕,但程式判斷自動開檔時比對的是 OK(與「是/否」按鈕不相符),因此按 是 目前不會真的用 Excel 把檔案打開。檔案本身已正常匯出到 Excel 輸出目錄,需自行到該目錄手動開啟。此為已知程式缺陷,待後續修正。
匯入 RTM 檔案(Import 分頁,規劃中)¶
尚未提供
以下為規劃中的操作流程,目前 Import 按鈕按下後僅會跳出 Empty 訊息並列出資料夾內的 *.xls 檔,不會真的寫入資料。請等功能完成後再使用。
- 先把客戶提供的所有 RTM 檔案下載到同一個資料夾(畫面提示:
Please download all RTM files into one single folder. Empty the folder by moving out after each import.)。 - 切到
Import分頁,按Import,在跳出的視窗選擇放置 RTM 檔的資料夾。 - 每次匯入完成後,把該資料夾清空(把檔案搬走),避免下次重複匯入。
- 按
Exit關閉視窗。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
Date(起始日,BeginningDate) |
✔ | 匯出資料的區間起始日;短日期格式;預設今天 |
TO(截止日,EndingDate) |
✔ | 匯出資料的區間截止日;短日期格式;預設今天 |
兩個日期都預設今天
視窗開啟時,BeginningDate 與 EndingDate 都由 DateTimeWrapper.TodayYYYYMMDD() 帶入今天的日期。若要匯出一段期間,記得把起始日往前調。
欄位連動與附加功能¶
這一節整理「按下哪個按鈕會發生什麼」,內容全部來自實際程式碼。
-
視窗開啟時(建構子):自動把 Date、TO 兩個日期欄都設成今天,並建立
Import/Export兩個命令。本視窗不載入任何主檔資料,屬純工具型彈窗。 -
按
Export(Export 分頁):依序執行——- 以 Date、TO 為參數,呼叫後端 SP
PRIME_QRY_RTM(固定帶第一參數"1",第二、三參數為起、訖日期)取得退貨資料。 - 若有資料,先呼叫
DeleteExcelFile("Customer_RTM")刪掉輸出目錄中既有的*Customer_RTM*.xlsx,再把查詢結果寫成新的Customer_RTM.xlsx。 - 跳出「是/否」提示詢問是否開啟。程式原意是選
是時用系統內建的 Excel 開檔服務開檔,但因比對值寫成OK(非是),實際上按任一鈕都不會自動開檔(已知缺陷)。 - 若查詢無資料(資料表數為 0,或回傳為 null),則不會刪檔也不會產生檔案。
- 以 Date、TO 為參數,呼叫後端 SP
-
按
Import(Import 分頁):先跳出Empty訊息,接著呼叫匯入處理——目前該處理只會跳出選擇資料夾的視窗、列出資料夾內的*.xls檔,未做任何解析或寫入(屬規劃中,見上方警告)。過程中若發生例外,會寫入除錯記錄並以錯誤訊息框提示。 -
按
Exit(兩個分頁都有):把視窗的DialogResult設為false,關閉本視窗,回到 退貨單 RMA。
匯出欄位由後端 SP 決定
匯出 Excel 的欄位(如 CUSTOMER、RTMNUMBER、RTMDATE、CUSTOMERSKU、OURSKU、QTY、UNITCOST、EXTENDEDCOST 等 RTM 欄位)來自 SP PRIME_QRY_RTM 的回傳結果,直接原樣寫入 Excel,並非在程式內逐欄組裝。
常見問題¶
按 Export 之後沒有產生 Excel 檔?
Export 只有在 SP PRIME_QRY_RTM 回傳到資料時才會寫檔。請確認:(1) 選的 Date~TO 區間內確實有 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/):
rtm-step1.png—Export分頁全貌(含 Date~TO 與 Export 按鈕)- (選配)
rtm-step2.png—Import分頁與資料夾選擇視窗(待 Import 功能完成後再補)