用途:解决 MaintainX 与外部系统之间的数据同步、ETL 与导出需求,适用于把工单、资产等数据迁移到数据库或数据仓库,或从旧 CMMS 导入工单。
主要能力:
- 增量同步:用 updatedAtGte 加游标分页,按上次同步时间拉取工单与资产,并把同步状态写入 .maintainx-sync-state.json 以便断点续传。
- CSV 导出:分页读取工单并流式写入 CSV,对标题中的引号做转义,字段含 id、标题、状态、优先级、指派人、资产、位置、创建与完成时间。
- BigQuery 导出:分批收集工单并插入表,字段含 asset_id、location_id、created_at、completed_at、synced_at。
- 数据对账:对比远端与本地记录,报告本地缺失、本地过期、本地孤儿三类记录。
- 定时同步:可用 node-cron 按 */15 * * * * 周期运行增量同步;也可用 csv-parse 解析旧 CMMS 导出的 CSV,再调用 createWorkOrder 导入。
前置条件:已配置 MaintainX API 访问,Node.js 18+ 与 axios,具备目标数据库或数据仓库。
使用方式:按文档步骤组合客户端调用与本地写入函数(如 upsertWorkOrder、upsertAsset)。运行命令可写为: node incremental-sync.js
错误处理:429 限流可在分页间加延迟或用 p-queue;分页中途失败可保存游标后从上次位置续跑;BigQuery 重复行需按 (id, updated_at) 去重或 MERGE;本地数据过期先做全量对账再增量。
限制:文档未说明价格、配额上限、各 API 端点速率或字段完整清单;示例中的数据库写入与对账查询需自行实现。企业访问控制可参考 maintainx-enterprise-rbac。