簽核作業
用途:審核 iDempiere ERP 工作流程(Workflow)中的待辦事項。
操作步驟
- 從首頁點擊「簽核作業」卡片(紅色)
- 系統載入所有待簽核的流程活動
- 點擊任一項目查看詳細資訊
- 選擇「核准」或「駁回」
- 操作成功後顯示綠色確認動畫
工作流程圖(視覺化)
從簽核詳情畫面可開啟該流程的工作流程圖,以視覺化方式呈現所有節點與連線:
- 節點顏色依動作類型區分(Doc Action、User Choice、Process、Email 等)
- 即時狀態:綠色=已完成、琥珀色=進行中、紅色=已中止
- 「即時」按鈕:點擊後畫面平滑動畫捲動至目前進行中的節點
- 支援手勢縮放與拖曳平移
歷史追蹤
右上角歷史圖示可查看已處理的簽核紀錄。支援 UserChoice 節點和標準 Approval 節點兩種類型。
資料維護(Window 模組)
用途:瀏覽及管理 iDempiere ERP 視窗資料,支援角色權限、我的最愛、搜尋、CRUD 操作、文件動作及附件。
功能特色
| 功能 | 說明 |
|---|---|
| 視窗列表 | 顯示當前角色可存取的所有 ERP 視窗 |
| 權限標示 | R(唯讀)/ R/W(可讀寫)依 AD_Window_Access 判斷 |
| 我的最愛 | 點擊星號加入最愛,最愛視窗排序在最前面 |
| 關鍵字搜尋 | 依視窗名稱或描述即時篩選 |
| 記錄列表 | 分頁載入視窗記錄,支援下拉更新 |
| 子標籤 | 支援 Parent/Child Tab 瀏覽,分頁載入(每頁 20 筆) |
| 新增/編輯/刪除 | R/W 視窗支援完整 CRUD 操作 |
| 文件動作 | 完成、作廢、關閉、沖銷等文件處理 |
| 附件 | 檢視及下載記錄附件 |
CRUD 操作
僅在 R/W(可讀寫)權限的視窗中顯示 CRUD 相關按鈕。
| 操作 | 入口 | 說明 |
|---|---|---|
| 新增 | 記錄列表右下角 + 浮動按鈕 | 開啟空白表單,填寫後送出建立新記錄 |
| 編輯 | 記錄詳情右上角鉛筆圖示 | 載入現有資料至表單,修改後儲存 |
| 刪除 | 編輯表單右上角紅色垃圾桶圖示 | 彈出確認對話框,確認後刪除記錄 |
預設值解析
新增或複製記錄時,系統自動解析 AD_Column.DefaultValue 定義的預設值:
- SQL 預設值(
@SQL=SELECT...):由伺服器端即時查詢並回填 - Context 變數(
@#Date@、@AD_Org_ID@等):自動替換為目前登入環境的值 - 全欄位解析:表單開啟時一次解析所有欄位的預設值,減少使用者手動輸入
文件動作
記錄詳情頁面,若記錄含 DocStatus 欄位且為 R/W 視窗,右上角會出現播放圖示按鈕:
| 目前狀態 | 可用動作 |
|---|---|
| DR(草稿)/ IP(進行中) | 完成 (CO)、作廢 (VO) |
| CO(已完成) | 關閉 (CL)、沖銷 (RC) |
附件
記錄詳情頁面底部顯示附件列表(若有),顯示附件數量標題及每個附件的檔案名稱和圖示。支援一鍵下載所有附件為 ZIP 壓縮檔。
顯示邏輯(DisplayLogic)
欄位根據 iDempiere DisplayLogic 表達式動態顯示或隱藏,記錄詳情及編輯表單均套用:
- 格式:
@ColumnName@='value' - 運算子:
=(等於)、!=(不等於)、^(開頭符合) - 邏輯連接:
&(AND)和|(OR)
當欄位值變更時,表單會即時重新評估所有顯示邏輯,自動顯示或隱藏相關欄位。
記錄列表搜尋與排序
| 功能 | 說明 |
|---|---|
| 即時搜尋 | 輸入關鍵字後 500ms 自動搜尋(OData contains 過濾),按 Enter 可立即搜尋 |
| 動態排序 | 依欄位元資料動態產生排序選項,支援遞增/遞減,預設「最新優先」 |
| 空狀態區分 | 無記錄時顯示新增按鈕(R/W);搜尋無結果時顯示清除篩選按鈕 |
表單保護
| 功能 | 說明 |
|---|---|
| 未儲存變更警示 | 返回鍵觸發確認對話框,避免意外遺失編輯 |
| 儲存中鎖定 | 儲存期間表單灰化禁用,防止重複提交 |
| 操作回饋 | 儲存/刪除成功後顯示綠色提示訊息 |
| 數字驗證 | 整數/金額欄位即時驗證輸入格式 |
參考欄位搜尋
Table / TableDir 型別的欄位(18/19/30)在編輯表單中以可搜尋查詢元件呈現:
- 點擊欄位或搜尋圖示,開啟底部搜尋面板
- 在搜尋欄輸入關鍵字即時篩選參考值(超過 100 筆時自動切換為伺服器端搜尋)
- 點選結果自動填入欄位
- 可點擊清除按鈕移除已選值
- 搜尋時自動傳送表單資料,確保驗證規則正確解析
跨視窗導覽
記錄詳情中的 Table / TableDir 欄位(18/19/30)顯示為可點擊連結,點擊後自動解析對應視窗並跳轉至該記錄的詳情頁面。
欄位型別對應
| 型別 | 顯示方式 |
|---|---|
| 文字 (10/14) | 可選取文字 |
| 整數 (11) | 千分位格式 |
| 金額/數字 (12/22) | 千分位 + 小數 |
| 日期 (15) | yyyy-MM-dd |
| 日期時間 (16) | yyyy-MM-dd HH:mm |
| 清單/資料表 (17/18/19/30) | 顯示識別名稱 |
| 是否 (20) | 是/否 標籤 |
| 帳戶 (25) | 帳戶圖示 + 文字 |
| 網址 (29) | 可點擊連結 |
| 圖片 (32/33) | 支援 base64 圖片預覽、點擊全螢幕檢視、雙指縮放 |
| 儲位 (39) | 定位圖示 + 文字 |
資料表名稱解析
系統透過查詢 AD_Table 取得正確的 SQL TableName,避免 REST API identifier 欄位(顯示名稱)與實際資料表名稱不一致的問題。查詢結果快取於本次連線期間,不會重複查詢。
若 iDempiere REST 插件的 Window 端點回傳錯誤,系統會自動改用 Model API 取得資料,使用者無需額外操作。
進階功能(通用視窗模組 V2)
- 進階篩選晶片(FilterChipBar):可依欄位類型(文字/數字/日期/布林/清單/查詢)選擇運算子與值,多條件 AND 組合篩選
- 篩選預設:可儲存常用篩選組合為預設,快速載入;長按可刪除
- 骨架載入器:以 Shimmer 動畫骨架取代傳統圈圈載入,提升感知效能
- 欄位顯示切換:點擊 App Bar 欄位設定圖示,可勾選要顯示的欄位,設定持久化
- 子記錄內嵌編輯:點擊子記錄行可展開內嵌編輯表單,單行展開、即時儲存
- 多選模式:長按記錄進入多選模式,支援全選、批次刪除、批次匯出(CSV)
- 表單驗證:內嵌編輯新增 Form 驗證,必填欄位不可空白提交
- ReadOnly 邏輯:依記錄狀態自動判斷欄位是否唯讀(如已完成單據不可編輯)
- 數字欄位修正:修正輸入時可混用逗號/小數點的問題,統一為小數點輸入
入庫操作
用途:依據入庫路徑,將物品從來源倉庫移入目的倉庫貨架。
操作步驟
選擇移動路徑
若系統中有多條入庫路徑,會先進入路徑選擇畫面。若僅有一條,則自動使用。
第一步:選擇來源倉庫物品
- 下拉選單列出路徑來源倉庫中所有有庫存的物品
- 每個選項顯示:物品名稱、批號、可用庫存數量
- 可點擊掃描圖示,使用條碼掃描自動選取
第二步:選擇目的倉庫儲位
下拉選單列出路徑目的倉庫中所有儲位,選擇物品要放置的目標貨架位置。
第三步:輸入數量
在數量欄位輸入要移入的數量。右側顯示「可用: X」提示最大可入庫量。數量不可超過來源倉庫的可用庫存。
確認送出
點擊「確認入庫」按鈕,系統在 iDempiere 建立 M_Movement 單據並自動完成。成功後顯示綠色提示及單據編號。
批次入庫
- 點擊入庫畫面右上角的批次圖示進入批次模式
- 可連續加入多筆物品(選擇物品 → 選擇儲位 → 輸入數量 → 按「加入」)
- 點擊「送出全部」一次處理所有入庫作業
- 每筆項目顯示即時狀態:待處理 → 成功 / 失敗
出庫操作
用途:依據出庫路徑,從來源倉庫領取物品。
操作步驟
第一步:選擇來源倉庫物品
下拉選單列出路徑來源倉庫中所有有庫存的物品,顯示名稱、儲位、批號、可用庫存。
第二步:輸入領料數量
輸入本次需要的用量,右側顯示可用庫存量。
第三步:實驗備註(選填)
可輸入本次領料的用途說明,例如「生產線 A-03 用料」。備註內容完整記錄在 ERP 系統中。
確認送出
點擊「確認領料」,系統建立移動單並完成。
批次出庫
操作方式與批次入庫相同:點擊批次圖示 → 加入多筆 → 一次送出。
庫存查詢
用途:查看移動路徑相關倉庫的所有庫存狀態。
操作方式
- 進入「庫存查詢」頁面
- 頂部倉庫選擇器可切換查看不同倉庫的庫存
- 系統自動載入所選倉庫的庫存項目(分頁載入,每頁 50 筆)
- 滑動至底部自動載入更多資料
搜尋功能
- 在頂部搜尋欄輸入物品名稱關鍵字
- 按 Enter 鍵執行伺服器端搜尋(使用 OData
contains()過濾) - 搜尋結果支援分頁載入
庫存清單欄位
| 欄位 | 說明 |
|---|---|
| 物品名稱 | 產品 identifier |
| 儲位 | 存放的貨架位置 |
| 批號 | 物料批次號碼(若有) |
| 庫存量 | 當前數量(綠色=有庫存,紅色=零或負) |
| 低庫存 | 庫存低於門檻值時顯示橘色「庫存偏低」標籤 |
| QR Code | 點擊 QR 圖示可產生該物品的 QR Code 標籤 |
QR Code 標籤產生
- 在庫存清單中,點擊任一項目右側的 QR Code 圖示
- 系統產生包含品號的 QR Code,並顯示物品名稱、儲位、批號
- 可截圖或長按儲存後用於標籤列印
組織庫存查詢
用途:快速查詢整個組織(所有倉庫和儲位)的即時庫存,並顯示 Production (DR/IP) 保留量。
操作方式
- 從首頁點擊「組織庫存查詢」卡片
- 在搜尋欄輸入料號(品號)或批號
- 按 Enter 或點擊送出圖示進行搜尋(搜尋不分大小寫)
查詢結果
結果按產品分組,每張卡片顯示:
| 欄位 | 說明 |
|---|---|
| 料號 / 品名 | 產品 Value + Name |
| Production 保留量 | DR/IP 狀態的生產單保留消耗量(橘色標示) |
| 倉庫 / 儲位 / 批號 / 在庫 | 各倉庫/儲位的即時庫存明細 |
| 合計 | 該產品所有倉庫的總在庫量 |
- 庫存數量的小數部分以深灰色顯示,方便區分整數與小數
- 庫存為零的記錄不顯示,負數保留(方便排查異常)
- 支援分頁載入(每頁 50 筆)和下拉刷新
工作請求
用途:管理 iDempiere R_Request 工作票務,追蹤狀態、指派負責人、新增備註。
首頁 TODO 面板
打開 App 即在首頁上方看到工作請求面板:
- 預設展開顯示 ChoiceChip 狀態標籤(待辦事項/處理中/待驗收/問題/已結案)
- 每個標籤顯示該狀態下的請求數量,例如
待辦事項 (8) - 只顯示指派給自己(負責人)或自己提出的工作請求
- 點擊標題列的箭頭圖示可收合/展開面板
- 點擊 [+] 圖示新增工作請求
查看全部(Tab 頁面)
點擊面板底部「查看全部」進入完整的 Tab 頁面:
- 每個 Tab 對應一個狀態,顯示該狀態下所有請求卡片
- 卡片顯示:摘要、優先級(色點)、單號、負責人、日期
- 點擊卡片進入詳情頁
看板拖放操作
在 Tab 頁面中,卡片支援跨狀態拖放,直接變更工作請求狀態:
- 長按卡片開始拖曳(卡片浮起並帶有陰影效果)
- 拖曳至目標狀態欄位 — 欄位邊框與背景會高亮提示
- 放開卡片 — 系統自動呼叫 API 更新
R_Status_ID - 成功後顯示綠色提示訊息,所有欄位自動刷新
- 不可拖放至相同狀態欄位(系統會自動拒絕)
- 拖放期間目標欄位會顯示載入指示器
詳情頁面
- 顯示完整資訊:單號、類型、提出者、負責人、建立日期、優先級
- ChoiceChip 狀態切換 — 點擊任一狀態即可變更
- 備註功能 — 輸入文字後點擊送出,新增 R_RequestUpdate 紀錄
- 下方顯示完整的更新紀錄列表
新增請求
- 從首頁面板 [+] 或完整頁面 FAB 按鈕進入
- 填寫:標題(必填)、優先級(高/中/低)、說明(選填)
- 送出後自動返回列表
掃碼查詢
用途:使用手機相機掃描產品上的條碼或 QR Code,快速查看產品資訊。
操作方式
- 點擊底部導覽列的「掃碼」或首頁的掃碼卡片
- 將相機對準產品上的條碼或 QR Code
- 系統自動辨識並查詢 iDempiere 產品資料
查詢結果
掃描成功後彈出對話框,顯示:
- 產品名稱
- 品號 (Value)
- 說明 (Description,若有)
- 類別 (Product Category,若有)
- 單位 (UOM,若有)
後續操作
| 按鈕 | 動作 |
|---|---|
| 繼續掃描 | 關閉對話框,恢復掃描 |
| 查看庫存 | 跳轉至庫存查詢頁面 |
手動輸入
- 點擊右上角鍵盤圖示或底部「手動輸入品號」按鈕
- 可直接輸入品號或條碼數值查詢
即時通訊
用途:系統內建即時通訊功能,支援一對一及群組聊天,資料完全儲存在 iDempiere ERP 伺服器。
架構
- 訊息儲存:iDempiere 自訂表 (TW_ChatConversation, TW_ChatMember, TW_ChatMessage)
- 即時推送:WebSocket (iDempiere Jetty 內建支援)
- 檔案傳送:iDempiere 附件系統
- 額外費用:零 — 所有資料在使用者自己的 ERP 伺服器上
iDempiere 設定
- 執行
idempiere-plugin/sql/create_tables.sql建立自訂表 - 編譯並部署
idempiere-plugin/com.idempiere.chat/OSGi 插件 - 重啟 iDempiere 伺服器
畫面流程
| 畫面 | 說明 |
|---|---|
| 對話列表 | 顯示所有參與的對話,依最新訊息排序,支援搜尋,顯示未讀數 |
| 聊天畫面 | 訊息泡泡、傳送文字/圖片/檔案 |
| 新增對話 | 從 iDempiere 使用者目錄選人,支援多選建立群組 |
| 群組資訊 | 檢視成員清單、離開群組 |
Big Five 人格測驗
用途:整合 iDempiere HR 模組的 Big Five 五大人格特質測驗功能。
功能特色
- 多語系題目:依 App 語系自動載入對應語言的題目(繁中/英文)
- 雷達圖結果:完成測驗後以雷達圖呈現五大維度分數(開放性、嚴謹性、外向性、親和性、神經質),分數範圍 4–20
- 歷史紀錄:可查看過往測驗紀錄與分數趨勢
掃描統一發票建立供應商發票
用途:掃描台灣政府統一發票 QR Code,一鍵建立 iDempiere 供應商發票。
功能特色
- QR Code 掃描:掃描統一發票上的左方/右方 QR Code,自動解析發票字軌號碼、日期、金額、統一編號及商品明細
- 一鍵建立:掃描後自動比對賣方統一編號與 iDempiere 業務夥伴(C_BPartner),預填供應商發票表單,審核後存為草稿
- 拍照附件:建立發票後可直接拍攝紙本發票照片,自動上傳為發票附件
- MOF 規格:依財政部電子發票證明聯二維條碼規格解析(左方 77 固定字元 + 右方商品明細)
四步驟流程
- 掃描 QR Code
- 審核預填資料
- 拍照(可略過)
- 完成
雙入口
可從儀表板快速動作按鈕或供應商發票列表進入。
欄位變更觸發(Callouts)
資料維護模組新增即時欄位變更觸發功能,與 iDempiere WebUI 的 Callout 行為一致。當使用者修改表單欄位時,App 會即時呼叫伺服器端的 Callout 邏輯,自動計算並回填相關欄位值。
使用情境
| 情境 | 說明 |
|---|---|
| 選擇客戶 | 在銷售訂單中選擇 Business Partner 後,自動帶入付款條件、價格表、送貨地址等 |
| 選擇產品 | 選擇產品後自動帶入單價、稅率、計量單位 |
| 修改數量 | 修改數量後自動重算行金額 |
| 自訂 Callout | 支援 AD_Column.Callout 及 IColumnCalloutFactory 兩種 iDempiere Callout 機制 |
操作方式
- 在任何資料維護視窗開啟記錄(新增或編輯模式)
- 修改任一欄位值(下拉選單、數字輸入、勾選框等)
- 離開該欄位後,App 自動送出變更至伺服器
- 伺服器執行 Callout 邏輯,回傳需更新的欄位
- 表單自動更新受影響的欄位值
注意事項
- 需要網路連線:Callout 邏輯在伺服器端執行,離線時不觸發。
- 不會自動儲存:Callout 僅計算欄位值,不會儲存記錄。使用者仍需手動按「儲存」。
- 所有可編輯欄位均觸發:App 對每個欄位變更都發送 Callout 請求,由伺服器判斷是否有對應的 Callout 需執行。
- 錯誤處理:若 Callout 請求失敗(網路問題等),不影響表單編輯,使用者可繼續操作。
🌐 English Version
Approval Workflow
Review and approve/reject iDempiere ERP workflow activities. Features include a visual workflow diagram with color-coded nodes (completed=green, in-progress=amber, aborted=red), a “Live” button to scroll to the current node, and gesture zoom/pan support.
Data Maintenance (Window Module)
Browse and manage iDempiere ERP window data with full CRUD operations. Features:
- Permission indicators: R (read-only) / R/W (read-write)
- Favorites, keyword search, paginated records
- Parent/Child tab browsing with nested sub-tabs
- Document actions: Complete, Void, Close, Reverse
- Attachments: view, download, ZIP batch download
- Display logic: fields show/hide based on iDempiere DisplayLogic expressions
- Default value resolution: auto-resolves SQL defaults and context variables when creating records
- Image fields (32/33): base64 preview with fullscreen view and pinch-to-zoom
- Reference field search: auto-sends form data for correct validation rule resolution
Inbound Transfer
Three-step form: select source warehouse product → select destination locator → enter quantity → confirm. Supports batch mode for multiple items at once.
Outbound Transfer
Similar to inbound, with an optional experiment note field. Supports batch mode.
Inventory Query
View inventory for route-related warehouses. Features warehouse selector, server-side search (OData contains()), pagination (50 per page), low-stock indicators (orange tag), and QR code label generation.
Field Change Triggers (Callouts)
The data maintenance module now supports real-time field change triggers, consistent with iDempiere WebUI Callout behavior. When a user modifies a form field, the app instantly calls server-side Callout logic to auto-calculate and populate related field values.
Use Cases
| Scenario | Description |
|---|---|
| Select Customer | After selecting a Business Partner in a sales order, auto-fills payment terms, price list, delivery address, etc. |
| Select Product | After selecting a product, auto-fills unit price, tax rate, UOM |
| Change Quantity | After changing quantity, auto-recalculates line amount |
| Custom Callouts | Supports both AD_Column.Callout and IColumnCalloutFactory mechanisms |
How It Works
- Open a record in any data maintenance window (create or edit mode)
- Modify any field value (dropdown, number input, checkbox, etc.)
- After leaving the field, the app automatically sends the change to the server
- The server executes Callout logic and returns fields that need updating
- The form automatically updates the affected field values
Notes
- Requires network connection: Callout logic runs server-side; won’t trigger offline.
- Does not auto-save: Callouts only calculate field values; the user must manually tap “Save”.
- All editable fields trigger: The app sends a Callout request for every field change; the server decides whether a Callout applies.
- Error handling: If the Callout request fails (network issues, etc.), form editing is not affected.
🇯🇵 日本語版
承認ワークフロー
iDempiere ERP ワークフローの承認・却下を行います。色分けされたノード(完了=緑、進行中=琥珀色、中止=赤)によるワークフロー図の視覚表示、現在のノードへスクロールする「ライブ」ボタン、ピンチズーム・パン操作に対応しています。
データ保守(ウィンドウモジュール)
iDempiere ERP ウィンドウデータの閲覧・管理を、完全な CRUD 操作で行えます。主な機能:
- 権限表示:R(読み取り専用)/ R/W(読み書き可能)
- お気に入り、キーワード検索、ページ分割されたレコード
- 親子タブのブラウジングとネストされたサブタブ
- 伝票アクション:完了、無効、クローズ、逆仕訳
- 添付ファイル:表示、ダウンロード、ZIP 一括ダウンロード
- 表示ロジック:iDempiere DisplayLogic 式に基づくフィールドの動的表示/非表示
- デフォルト値解決:レコード作成時に SQL デフォルト値とコンテキスト変数を自動解決
- 画像フィールド(32/33):base64 プレビュー、フルスクリーン表示、ピンチズーム対応
- 参照フィールド検索:バリデーションルールの正確な解決のため、フォームデータを自動送信
入庫操作
3 ステップフォーム:出庫元倉庫の製品を選択 → 入庫先ロケーターを選択 → 数量を入力 → 確認。複数品目の一括処理に対応するバッチモードも利用できます。
出庫操作
入庫と同様の操作で、任意の実験メモフィールドが追加されています。バッチモードにも対応しています。
在庫照会
移動ルートに関連する倉庫の在庫を確認できます。倉庫セレクター、サーバーサイド検索(OData contains())、ページ分割(50 件/ページ)、低在庫インジケーター(オレンジタグ)、QR コードラベル生成に対応しています。
フィールド変更トリガー(Callouts)
データ保守モジュールにリアルタイムフィールド変更トリガー機能を追加。iDempiere WebUI の Callout 動作と一致します。ユーザーがフォームフィールドを変更すると、アプリはサーバー側の Callout ロジックを即座に呼び出し、関連フィールドの値を自動計算・反映します。
利用シーン
| シーン | 説明 |
|---|---|
| 取引先選択 | 受注で取引先を選択後、支払条件・価格表・納品先住所などを自動セット |
| 製品選択 | 製品選択後、単価・税率・単位を自動セット |
| 数量変更 | 数量変更後、明細金額を自動再計算 |
| カスタム Callout | AD_Column.Callout および IColumnCalloutFactory の両メカニズムに対応 |
操作方法
- 任意のデータ保守ウィンドウでレコードを開く(新規または編集モード)
- 任意のフィールド値を変更(ドロップダウン、数値入力、チェックボックスなど)
- フィールドを離れると、アプリが自動的にサーバーへ変更を送信
- サーバーが Callout ロジックを実行し、更新が必要なフィールドを返却
- フォームが影響を受けるフィールドの値を自動更新
注意事項
- ネットワーク接続が必要:Callout ロジックはサーバー側で実行されるため、オフライン時は発動しません。
- 自動保存なし:Callout はフィールド値の計算のみ行い、レコードは保存しません。「保存」ボタンの手動操作が必要です。
- 全編集可能フィールドがトリガー:アプリは各フィールド変更ごとに Callout リクエストを送信し、サーバーが対応する Callout の有無を判断します。
- エラー処理:Callout リクエストが失敗しても(ネットワーク問題等)、フォーム編集には影響しません。