一表無涯:AI自動並聯服務元件
為什麼企業報表總是難產?因為資料被切得太碎(正規化過頭)。未來的資訊系統不再是鐵板一塊,而是由一萬多個像「電子零件」一樣的 SOA 服務元件(軟體 IC) 組成。CIO 不需要再逼工程師寫複雜的 SQL 連結,只要用自然語言「提示」AI,它就能自動把庫存、價格、件號等元件「並聯」在一起。
文/葉宏謨
「企業協作平台」(NEO)由「企業統一資料架構」(EUDA)資料庫和一萬多個鬆散耦合(Loosely Coupled)的 SOA 服務元件組成。EUDA 包含各行各業、各種規模組織需要的資料,每一個SOA 服務元件可完成一件獨立的任務,較複雜的任務則可以串聯或並聯多個服務元件,如同串聯或並聯電子元件一樣。企業主管為了能隨時掌握企業的動態資料,可以用自然語言詢問 AI 取得需要的報表。如果一個服務元件生成的報表資訊不能滿足需求,則 AI 可以找到能滿足需求的多個服務元件,並且自動並聯起來。本文介紹數個並聯元件的範例,包括 AI 並聯查詢庫存和查詢品項(Item)的服務元件,找出庫存低於安全存量的品項,可再串聯新增採購單元件主動發出採購單。只要存在於 EUDA 資料庫的任何資料,AI 都能「並聯」在一個報表中,沒有界限,一表無涯。
一、人與 AI 協作確保資料正確
因為 AI 可能會有幻覺(Hallucination),也可能會計算錯誤,人不應把工作完全交給 AI,應該和 AI 協同合作。人撰寫 APP 程式,透過 APP 下指令給 AI,量多繁雜、但不會出錯的部分由 AI 做,AI 可能出錯的部分由 APP(也就是人)做,人與 AI 協同合作,才能確保使用者能獲得正確的資訊,如下圖:

由於是人透過 APP 和 AI 協作,故使用者給 AI 提示時只需要知道特定語法,就能避免 AI 犯錯。例如提示 AI「請查詢銷售訂單,訂單日期從 20240101 至 20241231,回傳訂單年月、訂單金額,加總每個月的訂單金額」。AI 的回應資料中,訂單數很多的月份有時會統計錯誤。如果把「加總每個月的訂單金額」改成「加總第 2 欄」就不會錯了。因為 APP 程式會判斷「加總」二字之後如果有數字,就會把 AI 回傳的資料交給 APP 來加總,因此資料再多也不會加錯。「加總第 n 欄」就是人和 AI 協作的特定語法。早期 AI 出錯率較高,提示詞的特定語法較多,不太自然。現在的 AI 較聰明,AI 搭配 SOA 服務元件,幾乎可以完全用自然語言讓 AI 處理企業的機敏資料了,就好像 AI 是企業使用者的人類助理一樣,甚至比人類助理更快、更不會出錯。
本文實作了幾個案例,包括(1)並聯查詢產品主資料、銷售單價、採購單價,並計算單位毛利;(2)查詢某年的數百張銷售訂單和採購訂單,統計每個月的銷售金額和採購金額,並計算每個月的銷售和採購金額差異;(3)並聯查詢產品主資料和現有庫存,當現有庫存低於某水準時,AI 根據產品主資料自動在本公司 ERP 系統生成給廠商的採購單,同時在廠商的 ERP 系統生成給本公司的銷售訂單;(4)廠商出貨人員要出貨給本公司時,要求 AI 把他的銷售訂單轉成出貨單,並自動完成出貨作業;(5)當廠商的貨抵達本公司時,收貨人員從手機找到對應的採購單,要求 AI 把採購單轉成進貨單,並自動完成進貨作業。
二、AI 並聯銷售採購價格表元件和件號主檔元件
為了正規化(Normalization),資料庫被切成無數資料表,一個主資料的屬性欄位只會出現在一個主資料表,關聯到該主資料的其他資料表則只有該主資料的系統代號(System ID),沒有其他屬性。SOA 服務元件沒有正規化的問題,服務元件的輸入和輸出欄位可以重複,元件可以串聯及並聯,元件要切大切小視使用者需求而定,不像資料表必須切到最小。所以,組裝服務元件開發應用程式比直接用資料庫的 SQL 語言開發應用程式效率高出很多。使用者想看的輸出欄位很多時,也不需要做一個大的服務元件,只要並聯多個服務元件即可。對人類程式開發者如此,對 AI 也是如此。
AI 可以並聯服務元件,不必寫程式。例如,R14 公司向廠商 005 採購各種產品銷售給消費者,其單價都定在採購價格表和銷售價格表中,使用者想比較銷售和採購價格,同時顯示各產品的主資料,並計算毛利。這時使用者只需給 AI 如下的提示:
「請查詢件號主檔、銷售價格表價格、採購價格表價格,件號代號從 0001 至 0010、價格表代號 R14、幣別為 NTD。請依件號合併以上3個回傳資料,並以表格呈現件號代號、件號名稱、英文名稱、件號規格、銷售計量單位代號、銷售單價、採購計量單位代號、採購單價、單位毛利=銷售單價-採購單價。」
AI 立刻生成報表如下:

上表因為銷售和採購計量單位都一樣,故計算單位毛利時相減即可。若單位不一樣,例如「打」,在提示 AI 時只要說清楚就行。只要是 EUDA 資料庫有的資料,使用者想看什麼表就能看什麼表,一表無涯。
三、AI 並聯銷售訂單和採購單統計每月金額差異
如果使用者想知道某一年每個月結案的銷售和採購金額,可查詢銷售訂單和採購單。這些交易資料都有訂單日期,但使用者要的是每個月的統計資料。使用者可以提示 AI 如下:
「請查詢 2024 年的銷售訂單,營運主體為 R14、狀態為結案,回傳訂單年月、訂單金額,請加總相同年月的訂單金額。請再查詢 2024 年的採購單,營運點為 R14、進貨廠商從 001 至 010、狀態為結案,回傳訂單年月、採購金額,請加總相同年月的採購金額。請依訂單年月合併以上 2 組回傳資料,並以表格呈現訂單年月、訂單金額、採購金額、當月毛利 = 訂單金額 – 採購金額。」
AI 立刻生成報表如下:

因為企業資料是機密、敏感的,以上實驗資料來自筆者在台大的授課內容。筆者先講解銷售流程 APP,採購流程 APP 則由學生自行開發。學生的期末專題會用到這2個APP,所以數據都集中在期末的 5, 6月和 11, 12月。
四、AI 並聯庫存和件號主檔自動生成採購單和銷售訂單
EUDA 資料庫有所有產品的庫存,若 R14 公司想了解各產品庫存的採購成本,可以並聯現有庫存(On-hand)和採購價格表的 SOA 服務元件。提示 AI 如下:
「請查倉庫 R14 的現有庫存,產品從 0001 至 0010,請查件號主檔,請再查採購價格表價格,價格表代號 R14,請顯示產品代號、產品名稱、規格、安全存量、訂購倍數、前置時間、安全時間、現有庫存、採購單價、庫存成本=現有庫存*採購單價。」
AI 生成報表如下:

R14 公司想跟廠商 005 採購庫存不足的產品,則繼續提示 AI:
「請新增採購單,廠商為 005,明細為現有庫存低於 1000 的產品,採購數量為安全存量。」
AI 回應如下:

AI 只回應採購單新增成功,沒說明內容。為了確定內容無誤,繼續問 AI:
「合併查詢採購單 PO2601000023,回傳採購單號、明細序號、件號、件號名稱、數量」
AI 回應:

R14 公司除了在自己的 ERP 系統產生給廠商 005 的採購單,也要在廠商 005 的 ERP 系統產生出貨給客戶 R14 公司的銷售訂單,則繼續提示 AI:
「請確認採購單 PO2601000023,並利用其明細資料在營運點 005 新增銷售訂單,客戶代號為 R14、所有未指定的輸入參數皆為 005。」
AI 回應如下:

以上是 R14 公司向 005 公司採購產品的 AI 應用,AI 在 R14 的 ERP 系統生成採購單並以相同明細資料在 005 的 ERP 系統生成銷售訂單。在不同公司確認採購單和新增銷售訂單是兩個獨立的任務,是交易資料作業的並聯。若採購單已確認,AI 仍可完成任務,只是 AI 會先回應:「採購單目前已是確認狀態,無法再次確認。我將利用採購單的明細資料,在營運點 005 新增銷售訂單。」
五、AI 自動生成出貨單和進貨單
當 005 公司向客戶 R14 公司出貨,產品離開倉庫送上卡車時,出貨人員要求 AI 把銷售訂單轉成出貨單。出貨人員給 AI 的提示如下:
「請執行銷售轉單,銷售訂單號為 SO2601000010、銷售訂單營運點為 005、開始站點為銷售訂單開立(SOIssue)、結束站點為出貨單出庫(SDInventoryOut)、交易日期為今天、所有是否條件為否、優先沖預收單據是 SC、沖預收排序類別是 SPNO。資料產生順序類別是 JWSNO、結帳日期計算來源是作帳日期(JournalizeDate)。」
AI 回應如下:

這個給 AI 的自然語言提示詞或許沒有那麼自然,但出貨人員只要會查服務文件,或請同事幫忙查一下,寫一次提示詞,放在手機裡面,以後每次出貨叫出來修改銷售訂單號就可以了。AI 的學習能力很強,多提示幾次,提示詞就會越來越自然了。
當卡車抵達採購方的公司 R14,收貨人員從手機找到對應的採購單,就能要求 AI 把採購單轉成進貨單。收貨人員給 AI 的提示如下:
「請執行採購轉單,採購單號為 PO2601000023、採購單營運點為 R14、開始站點為 POConfirm、結束站點為 IRInventoryIn、交易日期為今天、所有是否條件為否、優先沖預付單據是 PC、沖預付排序類別是 PPNO。資料產生順序類別是 JWSNO、結帳日期計算來源是 JournalizeDate。」
AI 回應如下:

筆者提示 AI 主動生成上述採購單和銷售訂單、以及出貨單和進貨單的時間約為2026年1月15日中午 12 點 30 分至 12 點 50 分。為了驗證 AI 有完成任務,再把驗證的工作交給 AI,筆者給 AI 如下的提示:
「查庫存交易歷程,交易日期為 20260119,以表格顯示倉庫代號、來源單據營運點、來源單據類別、來源單號、交易類別、交易類別名稱、產品代號、產品名稱、交易數量、入庫/出庫(用中文)」
AI 回應如下:

上表顯示,AI 確實有圓滿達成筆者交待的任務,0001(菠蘿麵包)和 0008(QQ 球)的庫存數量已分別增加了200個。
六、結論
NEO SOA 服務元件和電子元件一樣,可以串聯和並聯。在電子產品中,我們串聯、並聯電子元件做成積體電路(IC),再利用 IC 做成電子產品。IC 除了電源和接地這2個Pin(腳)以外,其他的 Pin 不是輸入就是輸出。學電機的都知道,設計電子產品時要查 IC 的資料手冊(Data Book),學資訊的也知道,設計應用系統時要查 SOA 服務元件的服務文件(Service Doc)。在服務文件中,每一個服務都有輸入參數(Parameter)和輸出欄位(Return),相當於 IC 的 Pin。人要查服務文件,AI 也要查服務文件,才知道滿足用戶需求要呼叫哪些服務元件。應用 AI 和 SOA 服務元件,企業流程可以非常的有彈性、有效率。SOA 服務元件可以說是一種軟體 IC,車用 IC 可以記錄並處理行車資料,SOA 服務元件可以記錄並處理企業資料。未來,說不定 SOA 服務元件也可以做成晶片(硬體 IC),植入 VR、AR 或 XR,讓企業的經營者可以隨時隨地完全掌握企業的動態。
(本文授權非營利轉載,請註明出處:CIO Taiwan)















