明道云应用搭建进阶实战
复杂工作流 · 聚合表 · 数据工厂 · 代码块 · 性能优化 · 大数据量
工作流
聚合表
数据工厂
代码块
性能
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
- 自定义页面懒加载组件