發表文章

🧾SQL Server 日期轉換錯誤 (241) + Loader 檔名解析失敗?一次搞懂半導體資料載入常見陷阱與解法

🔍 問題背景:Loader 為什麼突然壞掉? 在實務中,我們常會遇到這種情況: Loader 原本正常運作 某一天突然: ❌ 資料全部進不去 ❌ log 出現錯誤 ❌ 檔案被丟到 fail 資料夾 這篇文章用一個真實案例帶你理解: 👉 其實問題不是一個,而是兩個「時間相關」問題同時發生 🚨 問題一:SQL Server Error 241(日期轉換失敗) 📌 錯誤訊息長這樣 DataError: ('22007', 'SQL Server 無法將字串轉換成 datetime (241)') 🧠 問題原因(白話版) 你的程式做了這件事: 👉 把「不存在的時間」當成字串寫進資料庫 例如: END_TIME = 'NaT' 但 SQL Server 看到會說: 👉「這不是日期,我不認識」 所以直接報錯。 🧩 為什麼會出現 NaT? 在 Python(特別是 pandas)裡: 值 意義 NaT Not a Time(時間版的空值) 當 Loader 解析不到時間,就會產生這個值。 ❌ 常見錯誤寫法(示意) # ❌ 錯誤:直接轉字串 sql = f"UPDATE table SET end_time = ' { time_value } '" 當 time_value = NaT 時: 'end_time = 'NaT'' 👉 SQL Server 爆炸 💥 ✅ 正確作法 ✔ 方法一:改成 NULL if time_value i...

🧠 Spotfire Filter 改欄位後資料消失?從零搞懂 Property Control 與 Script 關係

📌 問題情境(很多人都會遇到) 你在 Spotfire 裡有一個篩選面板(Filter), 例如: OSAT PO_No Product No LOT_ID 某一天你做了一個小改動: 👉 把篩選欄位從 Job No 改成 PO_No 結果發生了: ❌ CPK Summary(報表)突然沒資料 ❌ 明明有選值,但畫面是空的 ❌ 沒有 error,看起來「壞掉但沒報錯」 🎯 這篇文章會幫你搞懂三件事 Spotfire 的 Filter 到底怎麼運作 為什麼改欄位會讓資料消失 如何快速找到是哪段 Script 造成問題 🧩 一、Spotfire Filter 其實不是你想的那樣 很多人以為: 👉 Filter = 資料庫直接篩選 但其實你現在用的是: 👉 Property Control(文件屬性控制) 簡單講: 元件 真正用途 Filter UI 只是畫面上的選單 Document Property 真正儲存選到的值 Script / SQL 根據 Property 去查資料 🧠 白話比喻(超重要) 想像你在點飲料: UI = 點餐機 Property = 你選的飲料名稱 Script = 店員拿去做飲料 👉 如果你點「紅茶」,但店員只認「GreenTea」 ...

🌐Vue 表格篩選視窗被遮住怎麼辦?一次看懂表格空白列高度、下拉篩選框顯示問題與修正方式

Vue 表格篩選視窗被遮住怎麼辦?新手也能看懂的完整教學 在做後台系統、報表頁面或資料查詢頁時,最常見的一種畫面就是「大表格」。 像是生產資料、訂單資料、客戶資料、排程結果,通常都會做成可以搜尋、可以篩選、可以匯出的表格。 但很多人在實作這種功能時,常常會遇到兩個很煩的問題: 點開欄位篩選時,下拉視窗被切掉,看不到完整內容 當篩選後沒有資料時,提示訊息那一列太矮,看起來很空、很怪 這篇文章會用 完全新手也能理解 的方式,帶你一步一步看懂: 為什麼表格篩選框會被遮住 為什麼「查無資料」那一列看起來很醜 怎麼用 Vue + CSS 修正 怎麼讓畫面更像正式商業系統 一、什麼是「表格篩選框被遮住」? 想像你在 Excel 裡面按欄位篩選,會跳出一個可以勾選資料的清單。 在網頁中,我們也常常會做類似的功能,例如: 點「客戶」欄位的小按鈕 跳出所有客戶名稱 勾選你想保留的資料 表格只顯示符合條件的列 問題是,很多人把這個篩選框放在表格容器裡後,因為外層區塊設定了 overflow ,所以超出邊界的部分就直接被裁掉了。 你看到的現象通常會像這樣: 篩選框明明有打開 但只露出一小部分 想看完整內容還要拖旁邊的捲軸 使用者會以為功能壞掉 這其實不是 Vue 壞掉,也不是資料沒出來,通常只是 CSS 顯示層級與容器裁切設定 的問題。 二、另一個常見問題:篩選後沒資料,提示列太矮 很多頁面在篩選之後,如果沒有符合條件的資料,會顯示一行字,例如: 符合篩選的資料為空 但是如果這一列只是普通 <td> ,就會變成: 高度很小 只有一條細細的訊息 下方大片空白 看起來不像完整介面 對使用者來說,這種畫面很容易造成誤解,會以為: 是資料沒載入完成 是頁面壞掉 是自己操作錯誤 所以實務上,我們通常會把這一列做成 比較高的提示區塊 ,讓使用者一眼就知道: 「不是壞掉,是目前篩選條件下沒有資料。」 三、先用白話文理解問題本質 這類問題,核心其實只有兩件事。 ...

🐬Spotfire Automation 排程失敗怎麼查?從 Log、Web Player 到 SQL Server 網路限制的完整排錯教學

Spotfire Automation 排程突然失敗,第一步到底該看哪裡? 很多公司會用 Spotfire 做報表自動化,像是每天定時產出分析圖、Excel、PDF,或自動寄送結果。 表面上看起來只是「排程失敗」,但實際上背後可能不是報表本身有問題,而是整個系統環境出了狀況。 最常見的情況是這樣: 排程頁面顯示 FAILED 但點進去看,沒有明顯的報表錯誤 使用者以為是 DXP 壞了、腳本壞了、SQL 寫錯了 結果最後真正原因其實是: Spotfire 伺服器根本連不到資料庫 這篇文章會用最白話的方式,帶你一步一步理解: 排程失敗時,應該先看哪裡 Spotfire 的 log 要怎麼看 Web Player 為什麼會影響排程 怎麼判斷是不是 SQL Server 網路連線被擋 什麼是來源 IP 白名單 要怎麼跟 IT、DBA、網管正確溝通 如果你是初學者,或是剛好在公司碰到類似問題,這篇可以直接當作排錯筆記使用。 一、看到 FAILED,不代表一定是報表內容有錯 很多人一看到 Spotfire Automation 失敗,第一個反應會是: 是不是報表打不開? 是不是資料表 SQL 寫錯? 是不是 IronPython 腳本失敗? 是不是輸出 PDF 權限不夠? 這些都有可能,但有一種狀況更常被忽略: 排程根本還沒真正執行,就先失敗了。 這就像你想開車出門,但車子根本沒發動,不是導航有問題,也不是目的地有問題,而是引擎根本沒啟動。 在 Spotfire 裡,這種情況常常會出現在: Automation Services 沒有可用節點 Web Player 狀態異常 Node Manager 掛掉 Spotfire Server 連不到後端資料庫 也就是說, 問題不是報表本身,而是系統底層環境 。 二、Spotfire 排程失敗時,正確的 log 查法是什麼? 1. 不要只看 Scheduled Jobs 很多人會停留在排程列表頁,只看到狀態是 FAILED。 但那個地方通...