發表文章

🐬Spotfire Automation Services 排程怎麼確認真的有跑?從 Scheduled Jobs 到 Script 流程一次看懂(新手也能懂)

前言:為什麼「排程顯示 Completed」不代表你想要的流程都成功? 很多人第一次使用 Spotfire Automation Services ,會以為: Scheduled jobs 顯示 COMPLETED 就代表「資料有更新、腳本有跑、PDF 有輸出」✅ 但實務上常遇到的狀況是: 排程顯示 COMPLETED,但匯出的檔案是舊資料 手動跑 OK,自動排程卻失敗 明明設定了 Script,卻不知道它到底有沒有被執行 看得到 Job name,但找不到「到底跑了哪些步驟」 這篇文章會用「完全沒接觸過的人也能懂」的方式,帶你把整個執行流程拆開來看。 一句話先懂:Scheduled Jobs 只是「外殼」,真正流程在 Library Spotfire Automation Services 的概念可以用一句話理解: Scheduled Jobs :排程表(像 Windows 工作排程器的清單) Library 裡的 Job 定義 :真正的流程腳本(像 .bat / pipeline / workflow) 所以你在 Scheduled Jobs 看到的資訊,通常只有: Job 名稱 Job path(例如 /DEV/FT Auto ) 最後狀態(Completed / Failed) 下次執行時間 但你想看的這些, 不會出現在 Scheduled Jobs: 用哪個 .dxp 跑了哪些 Script Script 做了哪些事(刷新資料、換頁、匯出、存檔) 匯出 PDF / Excel 到哪裡 1)如何找到「真正的執行流程」:跟著 Job path 走 你會在 Scheduled Jobs 看到一個 Job path ,例如: /DEV/CP Auto /DEV/FT Auto 這個 path 就像「資料夾路徑」,代表真正的 Job 定義放在哪。 正確操作 ...

🍀Windows 工作排程顯示成功卻沒有產檔?一次搞懂 RC=-1073741819 與系統層級崩潰的真相

🧩 前言:為什麼「排程成功」卻什麼都沒有? 在企業系統中,我們常會用 Windows 工作排程器(Task Scheduler) 來自動執行報表、資料匯出或後端程式。 但你是否遇過這種情況: 排程顯示「執行成功」 紀錄也顯示「工作完成」 使用者也確實按了「執行」 結果:沒有任何檔案產生 對非工程背景的人來說,這非常困惑: 「不是顯示成功了嗎?那檔案去哪了?」 事實上,這類問題 往往不是排程問題,也不是資料夾路徑錯誤 ,而是 系統層級的程式崩潰 。 🧠 一個關鍵觀念:排程「成功」≠ 程式「正常完成」 Windows 工作排程器只負責一件事: 👉 是否成功「啟動」某個程式 它 不會知道 : 程式內部是否出錯 程式是否被系統強制中止 程式是否真的跑完商業流程 因此,只要程式「有被叫起來」,排程就可能顯示成功。 🚨 關鍵錯誤碼:RC = -1073741819 是什麼? 在實務除錯中,工程師最終發現排程回傳了這個值: RC = -1073741819 這不是一般的應用程式錯誤碼。 🔍 換算後的真正意義 -1073741819(十進位) = 0xC0000005(十六進位) 在 Windows 系統中, 0xC0000005 代表: Access Violation(存取違規) 白話翻譯是: 程式在執行時,嘗試存取「不被允許的系統記憶體或資源」, Windows 判定風險過高,直接強制終止程式。 ⚠️ 這是作業系統層級的「殺程序」行為 ❌ 為什麼這不是一般的程式錯誤? 一般程式錯誤 系統層級錯誤(本案例) 有錯誤訊息 沒有錯誤訊息 ...

🧩 為什麼系統會一直印訊息?新手也能懂的「程式 Log 設定」完整教學

📌 前言: 你是否曾經遇過這種情況? 系統一啟動,畫面就一直跳出一堆英文訊息 有時訊息多到根本找不到錯誤 有時卻什麼都沒顯示,明明系統壞了 其實,這些問題大多來自一個關鍵設定: 👉 Logging(系統紀錄訊息的規則) 這篇文章會用 完全不需要程式背景 的方式,帶你一步步理解: 什麼是 Logging? 為什麼要分等級? 為什麼「開發中」跟「正式上線」要用不同設定? 工程師實際是怎麼設計 Logging 的? 🧠 一句話先懂什麼是 Logging Logging 就像是系統在寫日記 系統會把「發生了什麼事」記錄下來,例如: 我現在啟動了 有人連進來了 這個功能出錯了 系統快要當掉了 工程師就是靠這些「日記」來: 找 Bug 查錯誤 確認系統是否正常 📊 為什麼 Log 要分「等級」? 想像你在寫日記,有不同重要程度: 等級 白話意思 Trace 超級瑣碎(幾乎不用) Debug 給工程師除錯用 Info 一般狀態說明 Warning 有點怪,但還能跑 Error 出錯了 Critical 快掛...

🐬Spotfire SQL 條件邏輯教學:如何依據不同廠商資料動態交換欄位

Spotfire SQL 條件邏輯教學:如何依據不同廠商資料動態交換欄位 在半導體資料分析、製程資料整合或測試資料系統中,不同廠商(Vendor)提供的資料格式常常 並不一致 。 例如: 廠商 VendorLot FabLot A 廠商 VendorLot FabLot B 廠商 FabLot VendorLot C 廠商 VendorLot CustomLot 這種情況在 BI 系統(例如 Spotfire、Power BI) 或 資料倉儲 SQL 查詢 中非常常見。 如果不處理,畫面上就會出現: VendorLot 顯示錯誤 FabLot 顯示錯誤 不同廠商資料混亂 因此我們通常會透過 SQL 條件邏輯(CASE WHEN) 來統一資料。 本文將用 簡單易懂的方式 介紹: 為什麼需要這種邏輯 如何在 SQL 中動態切換欄位 如何在 Spotfire 查詢中實作 一、為什麼不同廠商資料需要特殊處理? 在半導體製造流程中,不同 OSAT 或測試廠商使用的命名方式不同。 例如: 廠商 A 資料格式 VendorLot FabLot V12345...

【新手也能懂】HTTP 404 Not Found 是什麼?為什麼系統明明在跑卻一直出錯?

圖片
前言: 「我什麼都沒改,為什麼系統突然不能用?」 如果你曾在系統畫面、程式錯誤訊息、或自動化流程中看到一大串英文,裡面寫著: 404 Not Found 恭喜你,你遇到的是 所有工程師一生一定會遇到的經典錯誤之一 。 這篇文章會用 完全不需要寫程式、也不需要懂電腦架構 的方式,帶你理解: 404 錯誤到底在說什麼 為什麼它「看起來很嚴重,其實很單純」 工程師實際是怎麼判斷問題在哪一層 一句話先講結論 404 Not Found 的意思是:你有敲門,但門後面什麼都沒有。 不是當機、不是系統壞掉,而是—— 👉 你找的那個東西,本來就不在那裡 HTTP 404 到底是什麼? 我們把這個名詞拆開來看: HTTP :電腦彼此「溝通用的語言」 404 :一個編號,代表「找不到」 Not Found :翻成白話就是「不存在」 📌 意思是 : 系統有收到你的請求,但它找不到你要的東西。 用生活例子解釋(完全不懂電腦也能懂) 想像你去一棟辦公大樓: 你走進大樓(請求送到了) 你按了 7 樓(路徑) 電梯到了,但 7 樓根本不存在 結果櫃檯跟你說: 「不好意思,沒有這一層樓」 這就是 404 Not Found 。 為什麼畫面會跑出一大串 HTML? 很多人會被這一點嚇到,其實原因很簡單: 你本來是要「資料」 但系統回你的是「錯誤說明頁」 這個錯誤頁是 給人看的網頁格式 所以你看到的不是亂碼,而是: 「網站很有禮貌地跟你說:這個東西不存在」 ...

🐬Spotfire Automation Services 匯出報表卻出現舊年份資料?用「快取/未刷新」思維一次查清楚(含可套用範例)

前言:明明今天資料庫沒資料,為什麼匯出還是 2022? 你可能遇過這種情境: 今天日期是 2026/01/15 你用排程(Automation Services)跑 Spotfire Script 匯出 CSV / PDF 你確定資料庫在這段期間 沒有任何資料 但匯出的檔案打開一看,竟然還有 2022 年 的內容 第一直覺通常會想:「是不是 SQL 日期條件寫錯?」 但實務上更常見的真相其實是: Spotfire 沒有真的重新查資料庫,而是沿用資料表(Data Table)裡的舊資料(快取/Stored Data)。 本文會用「完全不懂 Spotfire / SQL 的人也聽得懂」的方式,帶你一步一步定位原因,並提供可直接套用的修法。 一、先建立正確觀念:Spotfire 匯出時匯的是「畫面上的資料」 很多人以為「匯出 CSV」等於「直接把 SQL 撈出來寫成檔案」,但 Spotfire 常見流程是: Script 先嘗試把某個資料表(Data Table)改成新的 SQL Spotfire 可能 不會立刻重查資料庫 (尤其是 Stored Data、Cache、排程環境) 你的視覺化(TablePlot)仍顯示舊資料 Export 指令把「視覺化目前呈現的資料」輸出成 CSV 所以: ✅ 只要資料表沒刷新,匯出就會是舊資料 即使資料庫早就空了也一樣。 二、怎麼判斷是不是「沒刷新」而不是「SQL 撈錯」? 最有效的方法是做三個檢查,全部都可以放在腳本裡印 log。 檢查 1:把日期區間印出來(避免日期格式錯誤) 很多腳本會手動拼字串日期,最常犯的錯是少了 - 或沒補零,導致日期變成像 2026-115 這種「看起來像日期但其實不標準」的格式。 ✅ 建議做法:一定印出 start/end,並用固定格式 YYYY-MM-DD 。 # 假設你要抓近 7 天(含今天) from datetime import datetime, timedelta today = datetime.today() start_dt = today - timedelta(days...

🧠【完整教學】Spotfire 資料庫備份與還原(遠端 → 本機)|SQL Server 實戰搬家指南

📌 前言:為什麼你會需要搬 Spotfire 資料庫? 在實務上,你很常會遇到這種情境: 想在本機測試 Spotfire Automation 客戶環境不能亂動 → 要複製一份到自己電腦 Server 壞掉 → 要快速復原 想分析 Job / 排程 / Routing 設定 👉 這時候你要做的其實只有一件事: 把 Spotfire 的資料庫從遠端搬到本機 但問題是… ❌ 很多人不知道該備哪個 DB ❌ 還原後連不起來 ❌ Job 查不到資料 這篇會帶你「一步一步」搞懂 👇 🧩 一、Spotfire 架構(新手一定要懂) Spotfire Server 的「核心其實是資料庫」 通常會有兩個關鍵 DB: 資料庫名稱 功能 Spotfire_DB 存設定、Automation Job、排程 Spotfire_Config 存 Server 設定、帳號、節點 👉 這兩個缺一不可! 🧠 二、你現在在做的事情(白話版) 你可以想成: 把「公司電腦的設定」複製到「你自己的電腦」 流程其實只有 3 步: 遠端 Server → 備份 → 搬檔案 → 本機還原 🛠️ 三、Step 1:從遠端 Server 做備份 📍 目標:把資料庫變成一個 .bak 檔 你可以在 SQL Server 裡執行類似這種指令(⚠️已改寫): BACKUP DATABASE Spotfire_DB TO D...