明道云应用搭建进阶实战

复杂工作流 · 聚合表 · 数据工厂 · 代码块 · 性能优化 · 大数据量

工作流 聚合表 数据工厂 代码块 性能 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
  • 自定义页面懒加载组件

延伸资源