您的资产维护数据模板
您的资产维护数据模板
- 维护属性详表
- 需追踪的关键流程里程碑
- 详细的技术提取指南
资产维护属性
| 名称 | 描述 | ||
|---|---|---|---|
| 事件timestamp EventTimestamp | 活动发生的具体日期和时间。 | ||
| 描述 此属性记录事件发生的确切时刻,例如状态更改或人工记录的时间。它为所有绩效分析(包括提前期和时长计算)提供必要的时间维度。 准确的时间戳对于计算“平均计划与审批提前期”以及确保事件顺序正确至关重要。在 Maximo 中,这通常是状态记录的变更日期。 为何重要 用于按时间顺序排列事件并计算所有基于时间的 KPI。 获取方式 表:WOSTATUS,列:CHANGEDATE 示例 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| 活动 Activity | 工单生命周期中发生的特定事件或状态变更。 | ||
| 描述 此属性代表维修流程中执行的步骤,例如“工单已批准”或“人工已记录”。在 IBM Maximo 中,这通常源自历史表中的状态更改或特定事务日志(如人工报告)。 它构成了流程图的节点,实现了步骤顺序的可视化。通过分析这些值,企业可以识别流程变体、循环以及偏离标准运维程序的情况。 为何重要 它定义了流程中的“具体内容”,对于构建流程图和理解工作流执行情况至关重要。 获取方式 表:WOSTATUS (Column: STATUS) 或 WOLOG 示例 APPRINPRGCOMPCLOSEWMATL | |||
| 维修工单 WorkOrderNumber | 维修工单的唯一字母数字标识符。 | ||
| 描述 此属性作为运维流程的核心 在流程挖掘分析中,此 ID 用于将离散事件归组为一个完整的 为何重要 它是重构流程流向的基础主键,支持跨部门追踪特定的任务。 获取方式 表:WORKORDER,列:WONUM 示例 WO100234WO100235CM-99281PM-11002 | |||
| 最后数据更新 LastDataUpdate | 数据提取或上次刷新的时间戳。 | ||
| 描述 指示该记录最后一次为 Process Mining 进行处理或提取的时间。这有助于评估 data 的新鲜度和可靠性,确保分析结果反映了维护运营的最新状态。 该属性对于增量 data 加载以及验证仪表板是否显示工单状态和积压情况的最新信息至关重要。 为何重要 对于理解 data 延迟和新鲜度至关重要。 获取方式 提取时的系统时间 示例 2023-11-01T00:00:00Z2023-11-01T12:00:00Z | |||
| 源系统 SourceSystem | 数据来源系统的名称。 | ||
| 描述 标识 data 记录的源应用。在此场景下,通常为 'IBM Maximo'。当合并多个维护系统的 data 或与 ERP data 集成时,此字段特别有用。 如果 Process Mining 项目涉及包含多个 CMMS 实例的复杂系统架构,分析师可以通过该字段按源系统进行视图筛选。 为何重要 确保多系统环境下的 data 血缘和可追溯性。 获取方式 数据提取期间硬编码 示例 IBM MaximoMaximo 生产环境Maximo 旧系统 | |||
| 优先级 Priority | 分配给工单的紧急程度。 | ||
| 描述 代表工单重要性和紧急程度的数值或类别。在 Maximo 中,这通常是一个数字,数字越小通常紧急程度越高(如 1 代表紧急)。 该属性用于对积压工单进行优先级排序,对“关键资产 SLA 绩效”仪表板非常重要。它有助于分析高优先级任务是否真正得到了比低优先级任务更快的响应处理。 为何重要 用于分析组织资源是否真正集中在最紧急的任务上。 获取方式 表:WORKORDER,列:WOPRIORITY 示例 1234 | |||
| 实际人工工时 ActualLaborHours | 所有技术员在工单上花费的总实际小时数。 | ||
| 描述 工单上记录的所有人工时间总和。该指标是资源利用率的真实写照,用于支持“技术员利用率偏差”KPI。 它用于计算人工成本,并通过提供特定任务实际执行时长的历史数据来优化未来的工作计划。 为何重要 人工成本和效率分析的核心指标。 获取方式 表:WORKORDER,列:ACTLABHRS 示例 2.55.012.0 | |||
| 实际完成日期 ActualFinishDate | 物理工作完成的日期和时间。 | ||
| 描述 记录运维任务在技术上完成的时间。这与行政上的结单不同。将此日期与“目标完成日期”进行对比,可以计算 SLA 合规率。 它被用于“工单行政提前期”仪表板,以衡量完成工作与在系统中完成结单之间的时间差。 为何重要 标志着技术执行阶段的结束。 获取方式 表:WORKORDER,列:ACTFINISH 示例 2023-10-15T16:00:00Z2023-10-16T10:30:00Z | |||
| 工单类型 WorkType | 将工单分类为预防性 (PM)、纠正性 (CM) 或紧急 (EM)。 | ||
| 描述 该属性对维修任务的性质进行分类。Maximo 中的常用值包括 PM(预防性维护)、CM(纠正性维护)和 EM(紧急维护)。此分类是“主动与响应式维护”仪表板的基础。 通过对此属性进行过滤,分析师可以计算“紧急维护率”KPI,并识别运维策略是否正从“灭火式”的响应工作转向计划性的可靠性工作。 为何重要 区分计划内与计划外工作,这是衡量维护成熟度的关键指标。 获取方式 表:WORKORDER,列:WORKTYPE 示例 预防性维护 (PM)CMEMCPMOD | |||
| 当前状态 Status | 工单当前的生命周期状态。 | ||
| 描述 工单当前的行政状态(如 'APPR', 'WAPPR', 'COMP')。虽然 它常用于过滤数据集以区分“未结”与“已结”工单,支持“运维工作量分布”分析。 为何重要 提供当前工作量和积压工作的概览。 获取方式 表:WORKORDER,列:STATUS 示例 APPRCLOSEINPRG | |||
| 指派技术人员 AssignedResource | 负责执行工作的特定人员或首席技术员。 | ||
| 描述 标识负责工单的个人或首席技术人员。该信息可从“负责人”字段获取或从人工分配中得出,支持“资源与承包商生产力”仪表板。 分析此属性有助于在“维护工作量分布”视图中识别负载不均,并对比不同技术人员或班组之间的效率。 为何重要 分析劳动力生产力和平衡工作负荷的关键。 获取方式 表:WORKORDER,列:LEAD(或来自 ASSIGNMENT 表) 示例 JSMITHBPATELMRODRIGUEZ | |||
| 目标完成日期 TargetCompletionDate | 工单的计划或要求的截止日期。 | ||
| 描述 工单预期完成的日期。通常基于优先级和生成日期计算。它是“关键资产 SLA 绩效”仪表板的基准。 通过对比此字段与“实际完成日期”,分析师可以确定按时完成率,并识别哪些资产类别经常错过其维修窗口。 为何重要 衡量 SLA 达成率和计划合规性的基准。 获取方式 表:WORKORDER,列:TARGCOMPDATE 示例 2023-10-20T17:00:00Z2023-10-25T08:00:00Z | |||
| 资产关键度 AssetCriticality | 衡量资产对业务运营重要程度的分数。 | ||
| 描述 记录在资产档案中的分类(通常为 1-10 或 A/B/C),代表故障后果。该字段必须关联到工单视图中。 此属性对于“关键资产 SLA 绩效”仪表板至关重要。它能确保分析重点集中在核心资产上——例如,关键发电机的延迟维修权重将远高于休息室咖啡机的延迟。 为何重要 支持按业务风险对流程绩效进行细分分析。 获取方式 表:ASSET,列:PRIORITY(通过 ASSETNUM 关联) 示例 1510 | |||
| 资产编号 AssetNumber | 受维护设备或资产的唯一标识符。 | ||
| 描述 作为维修对象特定的机器、车辆或设施组件。这平衡了流程数据与物理资产层级的关系。它对于识别“常坏设备”(频繁发生故障的资产)至关重要。 用于“运维质量与返工率”分析,该属性允许按资产汇总工单,以计算平均故障间隔时间(MTBF)并识别长期的可靠性问题。 为何重要 将流程执行与物理基础设施性能关联。 获取方式 表:WORKORDER,列:ASSETNUM 示例 PUMP-101HVAC-02FLEET-99 | |||
| 供应商 Vendor | 分配给工单的第三方承包商(如果适用)。 | ||
| 描述 标识负责维护任务的外部公司。该字段在工作外包时填充,对于“承包商执行效率”KPI 至关重要。 通过分析此属性,维护组织可以对比不同供应商之间以及供应商与内部团队之间的表现(成本、速度、质量)。 为何重要 支持供应商管理和外包绩效分析。 获取方式 表:WORKORDER,列:VENDOR 示例 ACME SERVICESSIEMENSFAST REPAIR INC | |||
| 地点 Location | 执行工作的职能位置或物理站点。 | ||
| 描述 指定资产所在的物理区域或职能位置代码。这比具体的资产编号更广,有助于进行地理或区域分析。 用于“维修工作量分布”仪表板,以可视化维修活动的热点,并为跨站点移动的技术人员规划物流。 为何重要 为物流和资源分配提供地理空间上下文。 获取方式 表:WORKORDER,列:LOCATION 示例 BRILER-RMPLANT-AOFFICE-1 | |||
| 实际总成本 TotalActualCost | 工单的人工、物料、服务和工具成本之和。 | ||
| 描述 代表维修任务的总财务影响。在 Maximo 中,这是各种成本组件(人工 + 物料 + 服务 + 工具)的总和。 该属性支持基于成本的流程挖掘,将流程低效(如延迟或返工)与财务损失直接挂钩。它有助于识别成本最高的维修类型或资产类别。 为何重要 将业务活动与财务成果挂钩。 获取方式 表:WORKORDER,列:ACTMATCOST + ACTLABCOST + ACTSERVCOST + ACTTOOLCOST 示例 150.002500.500.00 | |||
| 报告日期 ReportedDate | 首次报告问题或创建申请的日期和时间。 | ||
| 描述 表示运维需求首次被识别并录入系统的时间戳。这被视为客户体验时间轴的真正起点。 它用于通过衡量从报告日期到实际开工持续时长,来计算“平均计划与审批提前期”。它有助于评估运维组织的响应速度。 为何重要 为整个维护生命周期的响应能力划定起始线。 获取方式 表:WORKORDER,列:REPORTDATE 示例 2023-10-10T08:00:00Z2023-10-10T09:15:00Z | |||
| 故障代码 FailureCode | 描述资产故障原因的标准代码。 | ||
| 描述 由技术人员选择的结构化代码,用于对故障原因进行分类(如“磨损”、“电气故障”、“操作失误”)。这是进行根本原因分析 (RCA) 的核心数据。 汇总这些代码有助于工程团队识别资产库中的系统性问题,驱动“维护质量与返工率”分析,并为预防性维护策略的调整提供依据。 为何重要 可靠性工程和故障分析的核心数据点。 获取方式 表:WORKORDER,列:FAILURECODE 示例 LEAK过热振动 | |||
| 是否发生SLA违约 IsSlaBreached | 指示实际完成日期是否超过目标日期的标志。 | ||
| 描述 这是一个布尔型计算字段,用于对比“实际完成日期”与“目标完成日期”。如果“实际日期”晚于“目标日期”,则值为 true。 该预计算指标简化了“关键资产 SLA 绩效”仪表板,无需实时进行日期运算即可快速统计未达成 SLA 的数量。 为何重要 即时洞察绩效合规情况。 获取方式 根据 ACTFINISH 和 TARGCOMPDATE 计算 示例 truefalse | |||
| 是否紧急 IsEmergency | 指示该工单是否为紧急任务的标志。 | ||
| 描述 根据工单类型或优先级计算出的布尔标志。如果工单类型为 'EM'(紧急)或优先级为 1,则该值为 true。 这个简化的属性便于在仪表板中进行筛选,无需在可视化层编写复杂逻辑即可提取“紧急维护比例”。 为何重要 简化响应式维修分析的过滤。 获取方式 根据 WORKTYPE 计算 示例 truefalse | |||
| 站点 ID SiteId | 多站点 Maximo 实施中的高级站点标识符。 | ||
| 描述 在大型组织中,Maximo 通常按“站点”进行划分。该属性在数据库层面区分不同的工厂或设施。 这对于在“标准维护流程合规性”分析中开展跨业务单元的基准测试至关重要,确保对比是在正确的运营背景下进行的。 为何重要 对于多站点部署中的 data 范围划定至关重要。 获取方式 表:WORKORDER,列:SITEID 示例 BEDFORDNASHUATEXAS | |||
| 预估人工工时 EstimatedLaborHours | 工单所需的计划人工时间量。 | ||
| 描述 计划阶段预估完成任务所需的总小时数。在“人工预估准确性仪表板”中,它会与“实际工时”进行对比。 该值与实际值之间的巨大偏差通常意味着计划不周、缺乏标准操作程序(SOP),或资产状况超出预期需要额外的工作量。 为何重要 对于评估计划准确性和资源预测至关重要。 获取方式 表:WORKORDER,列:ESTLABHRS 示例 2.04.58.0 | |||
资产维护活动
| 活动 | 描述 | ||
|---|---|---|---|
| 工作已开始 | 标志着技术人员实际工作的开始。当用户将状态更改为“正在进行”时,系统会明确记录。 | ||
| 为何重要 区分计划时间与执行时间的枢纽里程碑。用于计算“平均计划与审批提前期”。 获取方式 STATUS = 'INPRG' 的 WOSTATUS 表 捕获 当事务状态更改为 INPRG 时记录 事件类型 explicit | |||
| 工单已关闭 | 工单生命周期的最终事件,此时工单进行财务结算并变为只读,不能再产生进一步的费用。 | ||
| 为何重要 标志着行政提前期的结束。此环节的延迟会影响财务报表。 获取方式 STATUS = 'CLOSE' 的 WOSTATUS 表 捕获 当事务状态更改为 CLOSE 时记录 事件类型 explicit | |||
| 工单已取消 | 由于工作被视为不必要、重复或不可能完成,流程提前结束。这是一个终态。 | ||
| 为何重要 为“工单撤销分析”仪表板提供支持。高撤销率通常意味着上游的申请生成流程存在缺陷。 获取方式 STATUS = 'CAN' 的 WOSTATUS 表 捕获 当事务状态更改为 CAN 时记录 事件类型 explicit | |||
| 工单已完工 | 技术员签核确认物理工作已完成。此状态更改将停止计算执行时间相关的 KPI。 | ||
| 为何重要 技术执行的核心结束时间戳。用于计算 SLA 合规率和技术员利用率。 获取方式 STATUS = 'COMP' 的 WOSTATUS 表 捕获 当事务状态更改为 COMP 时记录 事件类型 explicit | |||
| 工单已批准 | 指示工单已通过必要的计划和财务授权核查。该信息源自系统历史记录中的状态变更。 | ||
| 为何重要 对于计算计划和审批提前期 KPI 至关重要。此环节的延迟通常意味着行政流程瓶颈。 获取方式 STATUS = 'APPR' 的 WOSTATUS 表 捕获 对比状态字段的前后值,以识别 APPR 转换 事件类型 explicit | |||
| 维修申请已创建 | 工单在系统中生成的初始事件,通常源自服务请求或自动计划。这明确捕捉自 WORKORDER 表中的创建时间戳或 WOSTATUS 历史记录中的初始条目。 | ||
| 为何重要 标志着流程实例的开始,并为衡量总解决时间和初始响应速度设定了基准。 获取方式 WORKORDER.REPORTDATE 或 WOSTATUS 表中的初始条目(通常为 WAPPR 状态) 捕获 当事务创建工单记录时记录 事件类型 explicit | |||
| 工时已记录 | 代表技术人员在特定工单上花费的实际时间记录。由于多名技术人员参与,单个工单可能会产生多个条目。 | ||
| 为何重要 通过提供实际值与预估值的对比,为“人工估算准确性”仪表板提供数据支持。 获取方式 链接到工单的 LABTRANS 表条目 捕获 当事务发生在 LABTRANS 中时记录 事件类型 explicit | |||
| 检查已完成 | 指示在生命周期内执行了安全或技术检查。通常对应于状态变更或核查清单测量值的填报完成。 | ||
| 为何重要 “安全与合规文档”仪表板的关键指标,确保监管步骤未被跳过。 获取方式 WOSTATUS 更改为 'INSP' 或类似的自定义状态,或 MEASUREMENT 条目已完成 捕获 比较状态字段的前后变化 事件类型 inferred | |||
| 物料已发放 | 记录从库存到工单的零件物理消耗或发放。这确认了零件已到位且正在被使用。 | ||
| 为何重要 验证供应链流程,并影响维修干预的总成本分析。 获取方式 ISSUETYPE = 'ISSUE' 的 MATUSETRANS 表 捕获 当事务发生在 MATUSETRANS 中时记录 事件类型 explicit | |||
| 目标日期已更新 | 记录计划完成日期或 SLA 目标的变化。这有助于识别何时为了适应延迟而调整了预期。 | ||
| 为何重要 对于分析“关键资产 SLA 绩效”非常重要,有助于识别为了避免 SLA 违约而私自篡改日期的“作弊”行为。 获取方式 针对 TARGETCOMPDATE 或 SCHEDFINISH 字段的审计追踪 捕获 当事务更新日期字段时记录 事件类型 explicit | |||
| 质量检查失败 | 当已完成的工作在审核期间被拒绝时发生,通常状态会回滚到“进行中”。这代表了返工循环。 | ||
| 为何重要 通过突出显示流程失效情况,直接为“维护质量与返工率”仪表板提供支持。 获取方式 从 WOSTATUS 从 COMP 回退到 INPRG 或 WAPPR 的转换推导得出 捕获 通过对比 WOSTATUS 历史中的回退转换得出 事件类型 inferred | |||
| 资源已调度 | 将特定人工或班组分配给工单的节点。当生成分配或状态转为“等待计划”时进行追踪。 | ||
| 为何重要 通过分离寻找可用技术人员所需的时间,为“计划与审批周期分析”仪表板提供支持。 获取方式 在 ASSIGNMENT 表中创建行或 WOSTATUS 变更为 'WSCH' 捕获 通过创建与工单关联的指派记录得出 事件类型 inferred | |||
| 领料申请已提交 | 表示已为维修任务申请了备件或消耗品。这可以从状态更改为“等待物料”或物料需求行的创建中推断出来。 | ||
| 为何重要 对于“物料就绪”仪表板至关重要,有助于识别阻碍执行的供应链延迟。 获取方式 STATUS = 'WMATL' 的 WOSTATUS 表,或 WPMATERIAL 表中创建了条目 捕获 从状态变更为 WMATL 推导得出 事件类型 inferred | |||
提取指南
步骤
制定数据库视图策略:ProcessMind 需要扁平化的事件日志,而 Maximo 采用层级化存储(WORKORDER 为表头,WOSTATUS 为历史,WOLABTRANS 为成本)。最稳健的方法是先在 Maximo 数据库中创建数据库视图,作为集成框架的数据源。
创建 SQL 视图:在数据库管理工具(如 SQL Developer, SSMS)中执行“查询”部分提供的 SQL。这将把
WORKORDER、WOSTATUS、WOLABTRANS、MATUSETRANS以及A_WORKORDER(审计)整合进一个扁平结构中。在 Maximo 中注册视图:以管理员身份登录 Maximo。前往“系统配置” > “平台配置” > “数据库配置”。创建一个名为
PM_WO_EVENTLOG的新对象,并将其映射到上一步创建的数据库视图。运行ConfigDB完成注册(视图操作通常无需停机,但请遵循您的操作流程)。创建对象结构:前往“集成” > “对象结构”。新建名为
MX_PM_EVENTS的对象结构,将PM_WO_EVENTLOG设为源对象。如果可用,请勾选“支持扁平结构”。配置发布渠道:前往“集成” > “发布渠道”。新建一个关联至
MX_PM_EVENTS对象结构的渠道PC_PM_EVENTS。如有需要,可在此定义处理规则。设置外部系统:前往“集成” > “外部系统”。选择您的目标系统(或创建一个通用的 EXTSYS)。将
PC_PM_EVENTS发布渠道添加至该系统。启用数据导出:在“外部系统”应用中,使用“数据导出”页签。选择
PC_PM_EVENTS渠道。您可以在此处指定 SQL Where 子句(例如EVENTTIMESTAMP >= '2023-01-01')以限制导出范围。执行导出:点击“导出”。系统将生成文件(根据端点配置可能是 XML 或 CSV)。对于 ProcessMind,CSV 是首选格式。请确保您的端点(如
MXFLATFILE)已配置为输出 CSV。验证输出结果:打开生成的 CSV 文件。确保表头与查询中定义的属性(WorkOrderNumber, Activity 等)一致,且不含有层级化的 XML 标签。
最终格式化:如果 Maximo 导出的 CSV 包含标准系统元数据列(如
OWNER1,ORGID),可根据需要将其剔除。最后将清理干净的 CSV 加载到 ProcessMind。
配置
- Maximo 状态别名:Maximo 支持自定义状态代码(如 APPR, WAPPR)。此查询假设使用的是标准内部值。请检查系统中的
SYNONYMDOMAIN表(针对WOSTATUS域),以正确映射自定义状态。 - 审计表:提取“目标日期更新”需依赖
A_WORKORDER审计表。如果尚未对WORKORDER对象启用审计功能,该特定活动将无法返回任何行。如需此数据,请在“数据库配置”中启用审计。 - 日期范围:首次加载时,建议筛选过去 6-12 个月的
EVENTTIMESTAMP。如果数据集超过 5 万行,通过集成框架 Web 界面进行大规模历史数据加载可能会超时,建议使用后台处理方式。 - 站点/组织筛选:Maximo 支持多站点模式。如果流程分析仅针对特定工厂,务必通过
SITEID进行筛选。 - 性能考量:
UNION ALL查询较为消耗资源。请确保在WOSTATUS.WONUM、WOLABTRANS.REFWO和MATUSETRANS.REFWO上已建立数据库索引。
a 查询示例 config
/* Create a Database View or Run directly to extract Event Log */
/* 1. Maintenance Request Created */
SELECT
W.WONUM AS WorkOrderNumber,
'Maintenance Request Created' AS Activity,
W.REPORTDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
W.LEAD AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
0 AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM WORKORDER W
WHERE W.REPORTDATE IS NOT NULL
UNION ALL
/* 2. Status Driven Activities (Approved, Scheduled, Commenced, Completed, Closed, Cancelled, etc.) */
SELECT
S.WONUM AS WorkOrderNumber,
CASE
WHEN S.STATUS = 'APPR' THEN 'Work Order Approved'
WHEN S.STATUS = 'WMATL' THEN 'Material Requisition Submitted'
WHEN S.STATUS = 'WSCH' THEN 'Resources Scheduled'
WHEN S.STATUS = 'INPRG' THEN 'Work Commenced'
WHEN S.STATUS = 'INSP' THEN 'Inspection Completed' /* Verify Synonym */
WHEN S.STATUS = 'COMP' THEN 'Work Order Completed'
WHEN S.STATUS = 'REJECT' THEN 'Quality Check Failed' /* Verify Synonym */
WHEN S.STATUS = 'CLOSE' THEN 'Work Order Closed'
WHEN S.STATUS = 'CAN' THEN 'Work Order Cancelled'
ELSE 'Status Change: ' || S.STATUS
END AS Activity,
S.CHANGEDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
S.CHANGEBY AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
0 AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
S.STATUS AS Status
FROM WOSTATUS S
JOIN WORKORDER W ON S.WONUM = W.WONUM AND S.SITEID = W.SITEID
WHERE S.STATUS IN ('APPR', 'WMATL', 'WSCH', 'INPRG', 'INSP', 'COMP', 'REJECT', 'CLOSE', 'CAN')
UNION ALL
/* 3. Labor Hours Recorded */
SELECT
L.REFWO AS WorkOrderNumber,
'Labor Hours Recorded' AS Activity,
L.STARTDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
L.LABORCODE AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
L.REGULARHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM WOLABTRANS L
JOIN WORKORDER W ON L.REFWO = W.WONUM AND L.SITEID = W.SITEID
UNION ALL
/* 4. Material Issued */
SELECT
M.REFWO AS WorkOrderNumber,
'Material Issued' AS Activity,
M.TRANSDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
M.ISSUETO AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
0 AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM MATUSETRANS M
JOIN WORKORDER W ON M.REFWO = W.WONUM AND M.SITEID = W.SITEID
WHERE M.ISSUETYPE = 'ISSUE'
UNION ALL
/* 5. Target Date Updated (Requires Audit Table) */
SELECT
A.WONUM AS WorkOrderNumber,
'Target Date Updated' AS Activity,
A.AUDITSTAMP AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
A.AUDITUSER AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
A.TARGCOMPDATE AS TargetCompletionDate,
0 AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM A_WORKORDER A
JOIN WORKORDER W ON A.WONUM = W.WONUM AND A.SITEID = W.SITEID
WHERE A.TARGCOMPDATE IS NOT NULL
AND A.TARGCOMPDATE <> COALESCE((SELECT TOP 1 PREV.TARGCOMPDATE FROM A_WORKORDER PREV WHERE PREV.WONUM = A.WONUM AND PREV.AUDITSTAMP < A.AUDITSTAMP ORDER BY PREV.AUDITSTAMP DESC), '1900-01-01') 步骤
建立数据库连接:建立指向 IBM Maximo 后端数据库(通常为 DB2、Oracle 或 SQL Server)的只读 JDBC 或 ODBC 连接。确保该用户对 WORKORDER、WOSTATUS、LABTRANS 和 MATUSETRANS 表拥有 SELECT 权限。
明确范围:确定需要提取的特定站点 (SITE) 或组织 (ORGID)。Maximo 是一个多站点系统,工单号 (WONUM) 只有在结合 SITEID 时才具有唯一性。确定日期范围,通常根据 REPORTDATE(创建日期)或 STATUSDATE 进行筛选。
理解 data 模型:WORKORDER 表作为主表头。WOSTATUS 表包含生命周期变更的历史记录。LABTRANS 表记录详细的人工分录,MATUSETRANS 则记录物料异动。必须使用 UNION ALL 将这些表组合成单一的 event 流。
处理同义词状态:Maximo 对状态使用内部值 (MAXVALUE) 和显示值 (VALUE)。查询时最好针对内部 MAXVALUE 进行筛选,以确保在不同站点使用不同显示标签的情况下,逻辑状态保持一致。
准备查询语句:复制“查询”部分提供的 SQL。将 [Your Database Schema] 和 [Start Date] 等占位符替换为实际值。如果您在环境中使用特定的自定义状态代码进行“检查”或“质量核查”,请更新对应部分的 WHERE 子句。
执行提取:运行查询。根据 data 量大小,您可能需要分批执行(例如按月提取),以避免数据库超时。
验证 data:检查每个工单是否都生成了“维护请求已创建” event。确保 timestamp 格式符合 ProcessMind 要求(推荐 ISO 8601)。
后处理:Maximo 的 timestamp 通常包含毫秒。请务必保留毫秒数,以确保快速连续发生的 event 能保持正确的排序。
导出文件:将结果保存为 CSV 或 Parquet 文件。列标题必须与查询输出中定义的属性完全匹配。
上传至 ProcessMind:将文件导入 ProcessMind。将“WorkOrderNumber”映射为 Case ID,“Activity”映射为 Activity Name,“EventTimestamp”映射为 Timestamp。
配置
- 数据库平台:Maximo 通常运行在 IBM DB2、Oracle 或 SQL Server 上。此处提供的语法为标准 SQL,但根据具体平台,可能需要对日期函数进行微调(如 TO_DATE 与 CAST 的转换)。
- 日期筛选:使用 WORKORDER 表中的 REPORTDATE 列来界定流程实例的范围。通常建议选取过去 12 个月的滚动窗口数据。
- 站点 ID (Site ID) 的重要性:切勿仅依赖 WONUM(工单号)作为唯一标识。在分析多个站点时,务必将 WONUM 和 SITEID 进行拼接,或将 SITEID 作为 case 属性。
- 状态逻辑:Maximo 支持自定义状态。如果 WMATL 或 COMP 等标准状态未返回预期结果,请检查 SYNONYMDOMAIN 表。
- 性能优化:LABTRANS 和 MATUSETRANS 表的数据量可能非常庞大。请确保在 REFWO 和 SITEID 列上建立了索引。
a 查询示例 sql
SELECT
W.WONUM AS WorkOrderNumber,
'Maintenance Request Created' AS Activity,
W.REPORTDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
W.LEAD AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
W.ACTLABHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM
WORKORDER W
WHERE
W.REPORTDATE >= '2023-01-01'
UNION ALL
SELECT
WS.WONUM AS WorkOrderNumber,
CASE
WHEN WS.STATUS = 'APPR' THEN 'Work Order Approved'
WHEN WS.STATUS = 'WMATL' THEN 'Material Requisition Submitted'
WHEN WS.STATUS = 'WSCH' THEN 'Resources Scheduled'
WHEN WS.STATUS = 'INPRG' THEN 'Work Commenced'
WHEN WS.STATUS = 'INSP' THEN 'Inspection Completed'
WHEN WS.STATUS = 'COMP' THEN 'Work Order Completed'
WHEN WS.STATUS = 'REJECT' THEN 'Quality Check Failed'
WHEN WS.STATUS = 'CLOSE' THEN 'Work Order Closed'
WHEN WS.STATUS = 'CAN' THEN 'Work Order Cancelled'
ELSE 'Status Change: ' || WS.STATUS
END AS Activity,
WS.CHANGEDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
WS.CHANGEBY AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
W.ACTLABHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
WS.STATUS AS Status
FROM
WOSTATUS WS
JOIN
WORKORDER W ON WS.WONUM = W.WONUM AND WS.SITEID = W.SITEID
WHERE
W.REPORTDATE >= '2023-01-01'
AND WS.STATUS IN ('APPR', 'WMATL', 'WSCH', 'INPRG', 'INSP', 'COMP', 'REJECT', 'CLOSE', 'CAN')
UNION ALL
SELECT
L.REFWO AS WorkOrderNumber,
'Labor Hours Recorded' AS Activity,
L.STARTDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
L.LABORCODE AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
W.ACTLABHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM
LABTRANS L
JOIN
WORKORDER W ON L.REFWO = W.WONUM AND L.SITEID = W.SITEID
WHERE
W.REPORTDATE >= '2023-01-01'
UNION ALL
SELECT
M.REFWO AS WorkOrderNumber,
'Material Issued' AS Activity,
M.TRANSDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
M.ENTERBY AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
W.ACTLABHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM
MATUSETRANS M
JOIN
WORKORDER W ON M.REFWO = W.WONUM AND M.SITEID = W.SITEID
WHERE
W.REPORTDATE >= '2023-01-01'
AND M.ISSUETYPE = 'ISSUE'
UNION ALL
SELECT
WC.WONUM AS WorkOrderNumber,
'Target Date Updated' AS Activity,
WC.CHANGEDATE AS EventTimestamp,
'Maximo' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
W.WORKTYPE AS WorkType,
W.WOPRIORITY AS Priority,
W.ASSETNUM AS AssetNumber,
WC.CHANGEBY AS AssignedResource,
W.ACTFINISH AS ActualFinishDate,
W.TARGCOMPDATE AS TargetCompletionDate,
W.ACTLABHRS AS ActualLaborHours,
W.ASSETLOCPRIORITY AS AssetCriticality,
W.STATUS AS Status
FROM
WOCHANGE WC
JOIN
WORKORDER W ON WC.WONUM = W.WONUM AND WC.SITEID = W.SITEID
WHERE
W.REPORTDATE >= '2023-01-01'
AND (WC.MODIFIEDATTRIBUTE = 'TARGCOMPDATE' OR WC.MODIFIEDATTRIBUTE = 'SCHEDFINISH')