明道雲應用搭建進階實戰

複雜工作流 · 聚合表 · 資料工廠 · 程式碼塊 · 效能最佳化 · 大資料量

工作流 聚合表 資料工廠 程式碼塊 效能 ETL

六大進階主題

① 複雜工作流編排

  • 並行分支、條件分支、迴圈節點
  • 子流程複用與錯誤補償
  • 超時回收、重試、人工干預節點
  • 非同步節點 + 佇列削峰

② 聚合表 & 跨應用聯動

  • 多工作表聯合查詢 · 去重合並
  • 按維度彙總:時間/部門/客戶等級
  • 聚合表作為 BI 資料層
  • 增量重新整理與定時快照

③ 資料工廠 ETL

  • 資料來源連線:MySQL/Oracle/API/Excel
  • 欄位對映 · 清洗規則 · 脫敏
  • 排程:定時/Cron/事件觸發
  • 失敗告警 & 斷點續跑

④ 程式碼塊 & 自定義頁面

  • JS 程式碼塊:業務計算 / 動態路由
  • 自定義頁面:Vue/React 嵌入
  • 自定義控制元件:日曆、甘特、地圖
  • 與工作表 API 雙向資料繫結

⑤ 效能最佳化

  • 欄位索引策略 · 精確檢索優先
  • 冷熱資料分層 · 歸檔歷史
  • 檢視快取 · 聚合預計算
  • ES 模糊搜尋 · 分頁 + 虛擬滾動

⑥ 大資料量處理

  • 批次匯入:分批 + 斷點續傳
  • 非同步匯出:任務佇列 + 進度通知
  • 關聯欄位大表的查詢裁剪
  • 歸檔到物件儲存 + 按需召回

程式碼塊示例:動態審批路由

根據報銷金額選擇不同審批人鏈路,金額 ≥ 50000 增加 CFO 節點。

// 明道雲工作流 · JS 程式碼塊節點
// 輸入:record(當前記錄),context(流程上下文)
// 輸出:approverIds(審批人 ID 列表)

const amount = Number(record.amount || 0);
const deptLeader = await md.getManager(record.creator, 1);   // 直屬上級
const finance   = 'user_fin_001';
const cfo       = 'user_cfo_001';

let approvers = [deptLeader, finance];
if (amount >= 50000) approvers.push(cfo);

return { approverIds: approvers.filter(Boolean) };

資料工廠參考架構

① 資料來源

  • MySQL / Oracle / PG
  • ERP / CRM API
  • Excel / CSV 上傳
  • 明道雲工作表

② 清洗層

  • 去重 / 去空
  • 欄位對映 / 格式化
  • 列舉值轉換
  • 敏感欄位脫敏

③ 聚合層

  • 維度分組 / 指標計算
  • 多表 JOIN
  • 同比 / 環比
  • 預計算檢視

④ 輸出

  • 儀表盤 / 聚合表
  • 回寫業務工作表
  • 外部 BI / 數倉
  • API 下游消費

效能最佳化 Checklist

查詢加速

  • 高頻篩選欄位建索引
  • 避免過多 JOIN,優先聚合表
  • 列表檢視預設隱藏大欄位
  • 模糊搜尋走 ES

資料瘦身

  • 歷史資料歸檔到"歸檔表"
  • 附件存 OSS,DB 只留引用
  • 工作流 done 狀態記錄定期清理
  • 大欄位拆子表按需載入

工作流

  • 高頻觸發加條件過濾
  • 長耗時節點放非同步佇列
  • 失敗節點設重試上限 3 次
  • 定時任務錯峰執行

前端體驗

  • 長列表啟用虛擬滾動
  • 分頁大小預設 20-50
  • 儀表盤限制單次資料點 < 10k
  • 自定義頁面懶載入元件