您的资产维护数据模板
您的资产维护数据模板
- 用于维护跟踪的流程特定数据字段
- 工单生命周期分析的关键节点
- 针对 Infor EAM 用户的详细提取指南
资产维护属性
| 名称 | 描述 | ||
|---|---|---|---|
| Timestamp EventTimestamp | 活动发生的日期和时间。 | ||
| 描述 此属性记录活动发生的精确时刻。它用于按时间顺序排列事件并计算步骤之间的时长。 准确的时间戳对于识别瓶颈、衡量前置时间以及计算 SLA 合规性至关重要。在 Infor EAM 中,这通常来自交易日期或状态变更日期。 为何重要 它为所有基于时间的分析和排序提供了必要的时间维度。 获取方式 R5EVENTSTATUS 表(EVS_DATE 字段)或 R5TRANSACTIONS(TRA_DATE 字段) 示例 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-14T09:00:00Z | |||
| 活动 EventName | 维护生命周期中发生的具体步骤或状态变更。 | ||
| 描述 此属性捕获事件或状态变更的名称,例如“已生成工单”、“已发放物料”或“已关闭工单”。它源自针对工单记录的状态变更历史或特定交易类型。 通过遵循这些值的顺序,流程挖掘工具可以重建工作流路径。从而实现对流程变体、返工循环和操作顺序的分析。 为何重要 它定义了流程图中的节点,是理解每个步骤发生情况的必要基础。 获取方式 R5EVENTSTATUS 表(EVS_STATUS 字段)或 R5TRANSACTIONS(TRA_DESC 字段) 示例 工单已生成物料已发放工单已关闭资源已排程 | |||
| 维护工单 WorkOrderNumber | 维护工单的唯一标识符。 | ||
| 描述 此属性作为流程分析的核心案例标识符。它代表特定的维护工作(无论是预防性的还是纠正性的),并将所有后续活动、成本和人工记录关联在一起。在 Infor EAM 中,这通常是主事件表中的“事件代码”。 分析师使用此字段来区分单个流程实例。它允许汇总属于单个维护请求的所有事件,以计算每个作业的周期时间和成本。 为何重要 它是重建流程流向和唯一标识每个维护案例的基础主键。 获取方式 R5EVENTS 表,EVT_CODE 字段 示例 10023456WO-2023-88910023457PM-55421 | |||
| 最后数据更新 LastDataUpdate | 数据提取或上次刷新的时间戳。 | ||
| 描述 此字段指示记录上次为流程挖掘模型处理或提取的时间。它有助于用户了解其所分析数据的时效性。 它通常在 ETL 过程中生成,而不是存在于源系统本身,从而确保分析师知道他们查看的是实时快照还是历史快照。 为何重要 它能验证数据的时效性,并帮助识别陈旧的数据集。 获取方式 提取时的系统时间 示例 2023-10-25T12:00:00Z | |||
| 源系统 SourceSystem | 数据来源系统的名称。 | ||
| 描述 此属性标识数据记录的来源,这在多系统环境中尤为重要。在此视图中,它作为 Infor EAM 实例的静态标识符。 如果将多个数据源合并到单个流程挖掘数据模型中,它有助于进行数据溯源和故障排除。 为何重要 它确保了数据可以溯源至 Infor EAM 环境。 获取方式 数据提取期间硬编码 示例 Infor EAMDatastream 7i | |||
| SLA 目标日期 SlaTargetDate | 工单必须完成的最后期限。 | ||
| 描述 此属性存储目标完成日期,通常由资产关键性和工作优先级决定。它作为计算排程合规性的基准。 通过将实际完成时间戳与此日期进行比较,可以确定组织是否满足其服务水平协议 (SLA)。 为何重要 关键资产 SLA 绩效仪表板所需。 获取方式 R5EVENTS 表,EVT_TARGET 字段 示例 2023-11-01T17:00:00Z | |||
| 优先级 WorkOrderPriority | 分配给维护工单的紧急程度。 | ||
| 描述 此属性表示工单的重要性,通常采用等级制(如高、中、低)。它用于过滤分析,以确保队列中的关键工作得到正确的优先级处理。 按优先级分析流程流向有助于确认高优先级项目是否确实比低优先级项目处理得更快。 为何重要 对验证紧急工作是否得到适当关注至关重要。 获取方式 R5EVENTS 表,EVT_PRIORITY 字段 示例 1-紧急2-高3-常规 | |||
| 实际总成本 ActualTotalCost | 人工、物料和服务成本的最终总和。 | ||
| 描述 此属性代表维护任务的总财务影响。它会随着人工登记和物料发放而更新。 它作为流程的主要财务指标,支持成本驱动因素分析和预算报告。 为何重要 财务结算和效率分析的核心指标。 获取方式 R5EVENTS 表,EVT_ACTCOST 字段(或交易总额) 示例 450.251500.0075.50 | |||
| 技术人员 TechnicianName | 分配执行任务的具体人员或资源。 | ||
| 描述 此属性捕获执行特定活动的用户或技术人员。它用于分析劳动生产率,并识别培训需求或排程效率低下的问题。 根据系统配置,这可能出现在已登记工时表或事件的负责人字段中。 为何重要 支持“劳动生产率与排程”仪表板分析。 获取方式 R5BOOKEDHOURS 表(BOO_PERSON 字段)或 R5EVENTS(EVT_PERSON 字段) 示例 J. SmithM. Doe承包商-A | |||
| 维护类型 MaintenanceType | 将工单分类为预防性、纠正性或预测性维护。 | ||
| 描述 此属性对维护工作的性质进行分类。它允许分析师拆分流程视图,以比较计划内的预防性维护周期与计划外的反应式维修。 优化预防性工作与反应性工作的比例是维护经理的一个关键目标。该字段通常位于事件类型列中。 为何重要 对“维护类型分布”仪表板和分析可靠性战略至关重要。 获取方式 R5EVENTS 表,EVT_TYPE 字段 示例 预防性纠正性故障检查 | |||
| 资产代码 AssetCode | 正在维护的设备或资产的唯一标识符。 | ||
| 描述 此属性标识作为维护工单主体的物理对象。它可以汇总每台机器或每个设施的维护历史。 按资产代码分析流程绩效有助于识别“坏分子”——即那些故障频繁或维修时间超出平均水平的设备。 为何重要 对于将流程绩效与物理基础设施关联至关重要。 获取方式 R5EVENTS 表,EVT_OBJECT 字段 示例 泵-001HVAC-N-22输送机-05 | |||
| 部门 DepartmentCode | 负责该工作的维护部门或班组。 | ||
| 描述 此属性表示哪个内部部门或成本中心拥有该工单。它允许在不同的维护团队(如电气团队与机械团队)之间进行绩效基准测试。 在 Infor EAM 中,这通常被称为 MRC(维护维修中心)。 为何重要 支持资源规划和部门绩效分析。 获取方式 R5EVENTS 表,EVT_MRC 字段 示例 机械电力设施 | |||
| 预计成本 EstimatedCost | 工单的计划预算。 | ||
| 描述 此属性记录计划阶段估算的成本。通过将其与实际成本进行比较,分析师可以评估计划部门的准确性。 估算成本与实际成本之间的巨大差异表明需要审查估算流程或执行效率。 为何重要 支持预估成本与实际成本分析仪表板。 获取方式 R5EVENTS 表,EVT_ESTCOST 字段 示例 500.001200.500.00 | |||
| 劳动工时 LaborHoursUsed | 工单实际花费的工时数。 | ||
| 描述 此属性汇总了技术人员针对该工单登记的时间。这对于计算劳动力生产率和技术人员利用率至关重要。 它与工单的持续时长不同,因为它反映的是实际投入的努力而非自然时间。 为何重要 “劳动生产率与排程”仪表板的关键指标。 获取方式 该事件在 R5BOOKEDHOURS 中的工时总计 示例 2.58.00.5 | |||
| 描述 WorkOrderDescription | 关于问题或所需工作的文字描述。 | ||
| 描述 此属性包含请求者或计划员输入的自由文本摘要。它提供了定性背景,用于解释异常值或特定的流程行为。 此处可应用文本挖掘,对结构化字段中未捕获的常见故障模式进行分类。 为何重要 为根本原因分析提供背景。 获取方式 R5EVENTS 表,EVT_DESC 字段 示例 泵振动过大更换 2 号阀门密封件季度检查 | |||
| 是否发生SLA违约 IsSlaBreached | 标识完成时间是否超过了目标日期。 | ||
| 描述 此布尔属性将“工单已完成”时间戳与“SLA 目标日期”进行比较。如果完成时间晚于目标,则该标志设置为 true。 这通过创建一个二元维度来筛选合规与不合规案例,从而简化了报告。 为何重要 简化 SLA 合规性报告。 获取方式 在 ETL/流程挖掘工具中计算 示例 truefalse | |||
| 是否返工 IsRework | 标识工单是否包含重复执行的步骤。 | ||
| 描述 此布尔属性标识流程流向中是否包含循环,特别是质量控制后返回执行的情况。它在数据转换期间通过检查重复的“已执行维护任务”活动来计算。 高返工率是质量问题或培训不足的主要指标。 为何重要 直接支持“维护返工与质量审计”仪表板。 获取方式 在 ETL/流程挖掘工具中计算 示例 truefalse | |||
| 物料成本 MaterialCost | 发放至工单的备件成本。 | ||
| 描述 此属性将物料成本从总成本中分离出来。它有助于区分供应链支出与人工支出。 单独跟踪此类数据可支持有关备件定价和库存决策的管理。 为何重要 全面财务分析所需的细节。 获取方式 根据 R5TRANSACTIONS 中类型为“发放”的数据计算 示例 150.0020.00 | |||
| 组织机构 OrganizationCode | 资产所属的业务单元或站点。 | ||
| 描述 在多站点部署中,此属性定义了特定的设施或业务单元。它支持对不同工厂或地理区域进行高层级对比。 对于不同地点流程可能略有差异的全球化仪表板分析而言,这是必不可少的。 为何重要 支持业务部门视图,用于跨站点基准测试。 获取方式 R5EVENTS 表,EVT_ORG 字段 示例 纽约工厂伦敦总部制造-01 | |||
| 资产关键性 AssetCriticality | 表示资产操作重要性的分数或评级。 | ||
| 描述 此属性根据资产对生产或安全的重要性对资产进行分类(例如 A、B、C)。它有助于分析师细分流程,以观察高价值资产是否得到了适当的紧急处理。 此类数据通常从与工单关联的资产主记录中提取。 为何重要 支持对维护延迟进行基于风险的分析。 获取方式 R5OBJECTS 表(OBJ_CRITICALITY 字段),通过 EVT_OBJECT 关联 示例 A - 极高B - 重要C - 运行至故障(事后维修) | |||
资产维护活动
| 活动 | 描述 | ||
|---|---|---|---|
| 工作已开始 | 表示对资产开始进行实体工作的实际时间。通常根据第一个人工预订时间戳或特定的移动端状态更新来推断。 | ||
| 为何重要 对计算物料申领提前期和技术人员利用效率至关重要。区分“排程时间”和“工作时间”。 获取方式 源自 R5BOOKEDHOURS 中的最早开始日期,或 R5EVENTSTATUS 中状态变更为“进行中”的时间。 捕获 通过比较字段 X 和 Y 派生 事件类型 inferred | |||
| 工单已关闭 | 最终的行政步骤,此时工单被归档,不能再记入任何成本。这标志着案例生命周期的结束。 | ||
| 为何重要 终止行政关闭效率衡量。这对于保持数据整洁并防止出现“僵尸”待办工单至关重要。 获取方式 查询 R5EVENTSTATUS 中向“关闭”状态的转换。这会将 EVT_STATUS 字段设为 'C'。 捕获 状态变为“已关闭”时记录 事件类型 explicit | |||
| 工单已完成 | 标志着维护任务在技术层面的完成。资产恢复使用,尽管可能仍需处理财务和行政后续任务。 | ||
| 为何重要 关键资产 SLA 绩效的终点。区分“工作完成”与“文书处理完成”。 获取方式 在 R5EVENTSTATUS 中跟踪状态向 'C'(完成)或 'J'(作业完成)的变更。检查 EVT_DATECOMPLETED。 捕获 状态变为“完成”时记录 事件类型 explicit | |||
| 工单已生成 | 代表正式创建工单对象(无论是从请求转换而来还是直接创建)。此事件开始跟踪该维护案例的成本、资源和状态历史。 | ||
| 为何重要 “积压与吞吐量监控”的主要案例创建事件。区分了请求阶段和实际的维护管理工作流。 获取方式 查询 R5EVENTS 表中 EVT_TYPE 为 'JOB' 或 'PPM' 的新记录。或者,在 R5EVENTSTATUS 中跟踪初始为“Open”的状态变更。 捕获 交易创建工单记录时记录 事件类型 explicit | |||
| 维护任务已执行 | 代表正在进行的维护工作,通过技术人员登记的工时进行捕获。单个工单可能会多次重复此活动。 | ||
| 为何重要 为“技术人员利用效率”KPI 和“人工估算准确度”提供数据。如果频率很高但未完成,可能预示维修难度大。 获取方式 从 R5BOOKEDHOURS 表中提取与该工单关联的个人分录。 捕获 在执行事务码 X 时记录 事件类型 explicit | |||
| 维护请求已收到 | 标志着维护需求首次进入系统,通常源自服务门户或呼叫中心界面。在 Infor EAM 中,这通常在转换为正式工单前,于“呼叫”或“请求”实体中创建记录时捕获。 | ||
| 为何重要 作为计算维护积压增长率和总解决时间的起点。对于识别维护部门面临的真实需求至关重要。 获取方式 查询 R5EVENTS 表中 EVT_TYPE 设置为 'R'(请求)或 'C'(呼叫)的记录。使用 EVT_CREATED 日志。 捕获 插入请求记录时记录 事件类型 explicit | |||
| 工单已批准 | 表示维护工作已获得相应管理层的授权。此步骤会将工单释放,以便进行排程和物料申请。 | ||
| 为何重要 标志着审批周期的结束和实际维护工作的开始。此处的延迟会直接影响对关键资产故障的响应速度。 获取方式 在 R5EVENTSTATUS 历史表中跟踪 'A'(批准)或 'R'(下达)状态代码的插入。 捕获 状态变为“已批准”时记录 事件类型 explicit | |||
| 物料已发放 | 记录从库存到工单的备件实际出库。此步骤确认材料已可供使用。 | ||
| 为何重要 供应链延迟分析的结束事件。验证零件约束是否已解决。 获取方式 查询与工单关联的 R5TRANSACTIONS 中交易类型为 'I'(发放)的数据。 捕获 在执行事务码 X 时记录 事件类型 explicit | |||
| 物料申领已提交 | 记录执行维护任务所需的备件具体请求。该事件对于将供应链流程与维护执行关联起来至关重要。 | ||
| 为何重要 物料供应延迟分析仪表板的起点。识别零件采购是否是维护延迟的根本原因。 获取方式 在 R5REQUISITIONS 或 R5MATLIST 表中查询与工单 ID 关联的创建时间戳。 捕获 在执行事务码 X 时记录 事件类型 explicit | |||
| 维护记录已更新 | 捕获工单中补充的技术笔记、故障代码或状态监测数据。这通常发生在实体工作接近尾声时。 | ||
| 为何重要 支持技术文档合规性监控。确保数据质量以供未来的可靠性分析。 获取方式 跟踪 R5COMMENTS 表的更新,或 R5EVENTS 中“问题/故障/原因”字段的更新。 捕获 更新记录时记录 事件类型 explicit | |||
| 计划与估算已完成 | 表示工单已确定范围、完成成本估算且作业计划已准备好等待审批。通常通过状态从“计划中”转为“待审批”来推断。 | ||
| 为何重要 对衡量工单审批周期及识别执行前的行政瓶颈至关重要。支持计划提前期分析。 获取方式 通过 R5EVENTSTATUS 中状态从“计划”变为“申请审批”或“已下达”来推断。 捕获 比较状态字段的前后变化 事件类型 inferred | |||
| 财务结算已处理 | 代表与工单相关的最终成本计算和过账。这确保了所有人工和物料都已根据预算入账。 | ||
| 为何重要 支持预估成本与实际成本分析。此处的延迟会影响财务报告的准确性。 获取方式 通常根据工单锁定编辑的日期,或交易日志中最后的成本更新交易时间来推断。 捕获 通过比较字段 X 和 Y 派生 事件类型 calculated | |||
| 质量控制测试已执行 | 表示在最终签认前检查维修情况的特定验证步骤。如果未通过,流程将返回执行阶段。 | ||
| 为何重要 对“维护返工与质量审计”仪表板至关重要。识别质量问题和返工循环。 获取方式 从 R5CHECKLISTS 中识别特定的检查单完成情况,或在 R5EVENTSTATUS 中识别状态转换为“审核”状态。 捕获 比较状态字段的前后变化 事件类型 inferred | |||
| 资源已排程 | 捕获分配给工单的特定技术人员或班组。这标志着从“计划”到“资源分配”的转变。 | ||
| 为何重要 支持劳动生产率和排程仪表板。有助于识别审批与实际资源可用性之间的差距。 获取方式 在 R5ACTIVITIES 表中跟踪人工指派的更改,或在 R5EVENTSTATUS 中跟踪状态向“Scheduled”的变更。 捕获 发生资源分配时记录 事件类型 explicit | |||
提取指南
步骤
验证 Databridge 模块可用性:以管理员身份登录 Infor EAM。导航至“管理”菜单,确保 Databridge 模块已启用,并且您可以访问“合作伙伴”和“文档”配置屏幕。
定义导出合作伙伴:在 Databridge 中专门为 ProcessMind 创建一个新的合作伙伴(例如代码为
PMIND)。根据 XML/CSV 文件的存储需求,将“通信”方式配置为FILE或FTP。为了确保数据保真度,建议将输出格式设为 XML。配置业务对象 (Documents):您需要订阅特定的 Infor EAM 业务对象 (BODs) 以获取所需的活动。在合作伙伴配置中添加以下文档:
MP0094_SyncWorkOrder:捕获工单创建、状态变更、更新及关闭。MP0024_SyncBookedHours:捕获工时预订(执行环节)。MP3036_SyncTransaction:捕获物料发放与退回。MP0026_SyncRequisition:捕获物料申领。MP0098_SyncWorkOrderActivity:捕获排程与计划详情。
设置过滤器配置:为每个文档应用过滤器以排除无关数据。对于
SyncWorkOrder,按“组织”过滤并确保“工单类型”不为空。设置日期过滤器以涵盖您的分析周期(如过去 12 个月)。启用事件触发器:在“事件配置”屏幕中,确保为所选文档对应的实体启用了“保存时”、“更新时”和“状态变更时”触发器。这能确保用户与系统交互时,数据能被立即推送。
映射数据元素:配置 Databridge XML 模板以包含所需的特定列。确保
EVT_CODE映射到WorkOrderNumber,包含EVT_STATUS用于状态跟踪,并包含EVT_DAT_CREATED。执行初始加载:Databridge 主要由事件驱动,但为了进行历史分析,您必须运行一次“批量导出”。进入“Databridge 导出”屏幕,选择
PMIND合作伙伴及SyncWorkOrder文档,定义日期范围,然后点击“提交”以生成历史存量数据。标准化输出:导出将生成层级结构的 XML 文件。使用脚本工具(如 Python、PowerShell 或 ETL 中间件)展平这些 XML。逻辑为:一个 XML 节点对应一个事件行。参考下方“查询”部分的映射规则。
推导 Activity 名称:在转换脚本中,利用“查询”部分提供的条件逻辑,将系统代码(如状态
R转换为Work Order Generated,状态C转换为Work Order Completed)转换为易于理解的 Activity 名称。格式化时间戳:Infor EAM 以 ISO 8601 格式导出时间戳。确保将其转换为 ProcessMind 兼容的标准
YYYY-MM-DD HH:MM:SS格式。编译事件日志:将来自不同业务对象(工单、工时、交易)的输出合并为一个 CSV 文件,并按
WorkOrderNumber和EventTimestamp排序。最终验证:将生成的 CSV 加载到 ProcessMind,并核实案例数是否与 Infor EAM 导出的唯一工单数量一致。
配置
- 导出格式:建议优先选择 XML 而非纯文本,以便更好地处理注释中的特殊字符并确保架构强制执行。
- 触发模式:设置为“异步”,以防止 Databridge 处理在高峰时段拖慢用户界面响应速度。
- 数据粒度:确保在文档配置中勾选“包括更新详情”,以便检测字段级变更(如优先级调整或部门变动)。
- 日期范围:初始批量加载的常规做法是提取 12-24 个月的历史数据。后续增量加载时,系统将实时推送数据。
- 组织筛选:务必通过
EVT_ORG(组织)进行过滤,以免在共享 EAM 实例中提取到多租户数据。 - 状态配置:验证用户定义状态与系统状态(R、A、C 等)的映射关系,以确保 Activity 映射的准确性。
a 查询示例 config
{
"extractionConfig": {
"sourceSystem": "Infor EAM",
"module": "Databridge",
"targetFormat": "ProcessMind_EventLog",
"globalFilters": {
"organization": "[Your Organization Code]",
"dateRangeStart": "2023-01-01",
"excludedTypes": ["Standing Work Order", "Campaign"]
},
"mappings": [
{
"activityName": "Maintenance Request Received",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_TYPE = 'R' AND EVT_DATE_CREATED IS NOT NULL",
"timestampField": "EVT_DATE_CREATED",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"MaintenanceType": "EVT_TYPE",
"AssetCode": "EVT_OBJECT",
"DepartmentCode": "EVT_MRC",
"Priority": "EVT_PRIORITY"
}
},
{
"activityName": "Work Order Generated",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "Previous_EVT_STATUS IS NULL AND EVT_STATUS = 'R'",
"timestampField": "EVT_RTYPE_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"TechnicianName": "EVT_PERSON",
"EstimatedCost": "EVT_COST_EST"
}
},
{
"activityName": "Planning and Estimating Finished",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'READY' (or system equivalent)",
"timestampField": "EVT_STATUS_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"SlaTargetDate": "EVT_TARGET"
}
},
{
"activityName": "Work Order Approved",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'A' (Approved)",
"timestampField": "EVT_STATUS_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"EstimatedCost": "EVT_COST_EST"
}
},
{
"activityName": "Material Requisition Submitted",
"sourceDocument": "MP0026_SyncRequisition",
"triggerCondition": "REQ_STATUS = 'R' AND REQ_EVT IS NOT NULL",
"timestampField": "REQ_DATE_CREATED",
"attributes": {
"WorkOrderNumber": "REQ_EVT",
"DepartmentCode": "REQ_MRC"
}
},
{
"activityName": "Resources Scheduled",
"sourceDocument": "MP0098_SyncWorkOrderActivity",
"triggerCondition": "ACT_PERSON IS NOT NULL OR ACT_TRADE IS NOT NULL",
"timestampField": "ACT_START_DATE",
"attributes": {
"WorkOrderNumber": "ACT_EVENT",
"TechnicianName": "ACT_PERSON"
}
},
{
"activityName": "Work Commenced",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'IP' (In Progress)",
"timestampField": "EVT_STATUS_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE"
}
},
{
"activityName": "Material Issued",
"sourceDocument": "MP3036_SyncTransaction",
"triggerCondition": "TRN_TYPE = 'ISSUE'",
"timestampField": "TRN_DATE",
"attributes": {
"WorkOrderNumber": "TRN_EVENT",
"ActualTotalCost": "TRN_VALUE",
"AssetCode": "TRN_PART"
}
},
{
"activityName": "Maintenance Task Executed",
"sourceDocument": "MP0024_SyncBookedHours",
"triggerCondition": "BOO_HOURS > 0",
"timestampField": "BOO_DATE",
"attributes": {
"WorkOrderNumber": "BOO_EVENT",
"TechnicianName": "BOO_PERSON",
"ActualTotalCost": "BOO_COST"
}
},
{
"activityName": "Maintenance Records Updated",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "Update to EVT_UDF_CHECKLIST OR EVT_NOTE is updated",
"timestampField": "LastUpdateTimestamp",
"attributes": {
"WorkOrderNumber": "EVT_CODE"
}
},
{
"activityName": "Quality Control Testing Performed",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'QC' or 'TEST'",
"timestampField": "EVT_STATUS_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE"
}
},
{
"activityName": "Work Order Completed",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'C' (Completed)",
"timestampField": "EVT_COMPLETED",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"SlaTargetDate": "EVT_TARGET"
}
},
{
"activityName": "Financial Settlement Processed",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_DATE_POSTED IS NOT NULL AND Previous_EVT_DATE_POSTED IS NULL",
"timestampField": "EVT_DATE_POSTED",
"attributes": {
"WorkOrderNumber": "EVT_CODE",
"ActualTotalCost": "EVT_COST_ACT"
}
},
{
"activityName": "Work Order Closed",
"sourceDocument": "MP0094_SyncWorkOrder",
"triggerCondition": "EVT_STATUS changes to 'CLOSE'",
"timestampField": "EVT_STATUS_DATE",
"attributes": {
"WorkOrderNumber": "EVT_CODE"
}
}
]
}
} 步骤
数据库访问设置 建立到 Infor EAM 数据库(Oracle 或 SQL Server)的直接数据库连接 (ODBC/JDBC)。确保您对以下表具有只读权限:R5EVENTS(工单)、R5STATUS(状态历史)、R5BOOKEDHOURS(人工)、R5TRANSACTIONS(物料)、R5ACTIVITIES(任务)和 R5TESTRESULTS(质量)。
定义范围与过滤器 确定提取窗口。通常,过去 12 到 24 个月的滚动窗口足以满足流程挖掘的需求。如果是多站点实例,请识别您的组织代码 (ORG) 以过滤相关数据。
配置状态映射 Infor EAM 支持用户自定义状态。检查提供的 SQL 脚本,并将占位符(如 'A' 代表已批准或 'C' 代表已关闭)替换为您 EAM 配置中实际使用的代码。如果不确定,可以在 R5STATUS_CODES 表中查找。
准备 SQL 脚本 复制“查询”部分提供的 SQL。将 [StartDate] 和 [EndDate] 占位符替换为您所需的日期范围(例如 '2023-01-01')。将 [Your Organization Code] 替换为您的业务单元过滤器。
执行数据提取 在您的 SQL 客户端(如 SQL Developer、SSMS 或 DBeaver)中运行查询。该查询使用 UNION ALL 将磁头事件、状态变更、工时预订和物料交易整合到统一的标准化事件日志格式中。
数据验证 检查输出中 EventTimestamp 列是否存在空值。确保每一行都有 WorkOrderNumber。验证 EventName 列是否包含所定义的 14 种活动的合理分布。
数据转换(可选) 如果您的时间戳包含与分析需求不符的时区偏移,请在查询中或后期处理阶段应用转换函数(如 AT TIME ZONE)。
导出为 CSV 将查询结果导出为 CSV 文件。确保分隔符设置为逗号或分号,并使用文本限定符(双引号)来处理描述中的逗号。
导入到 ProcessMind 将 CSV 文件上传到 ProcessMind。按以下方式映射列:WorkOrderNumber 对应 Case ID,EventName 对应 Activity,EventTimestamp 对应 Timestamp。将其余列映射为案例属性或事件属性。
配置
- 日期范围:建议提取窗口为 12-24 个月。确保筛选条件应用于 EVT_DATE(创建日期)或特定交易日期,以捕获运行中的未结案例。
- 组织筛选:使用 EVT_ORG 或通用“组织”列按工厂或设施隔离数据,因为不同地点的流程往往存在差异。
- 状态代码:此查询依赖于标准状态代码(A、C、R 等)。您必须在“管理”菜单下的“屏幕设置”或“状态设置”中核实系统配置。
- 性能优化:由于查询涉及繁重的交易表 (R5TRANSACTIONS),如果查询大数据集(超过 100 万行),请确保 EVT_CODE 和 TRN_DATE 上存在合适的非聚簇索引。
- 时区处理:Infor EAM 在数据库服务器中存储时间。如果您的用户位于不同时区,请务必考虑时差偏移。
a 查询示例 sql
/* 1. Work Order Generated (Creation) */
SELECT
EVT_CODE AS WorkOrderNumber,
'Work Order Generated' AS EventName,
EVT_DATE AS EventTimestamp,
'Infor EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
EVT_TYPE AS MaintenanceType,
EVT_OBJECT AS AssetCode,
EVT_MRC AS DepartmentCode,
NULL AS TechnicianName,
EVT_PRIORITY AS WorkOrderPriority,
NULL AS EstimatedCost,
NULL AS ActualTotalCost,
EVT_TARGET AS SlaTargetDate
FROM R5EVENTS
WHERE EVT_DATE >= '[StartDate]' AND EVT_ORG = '[Your Organization Code]'
UNION ALL
/* 2. Maintenance Request Received (If derived from origin date) */
SELECT
EVT_CODE,
'Maintenance Request Received',
EVT_CREATED,
'Infor EAM',
GETDATE(),
EVT_TYPE,
EVT_OBJECT,
EVT_MRC,
NULL,
EVT_PRIORITY,
NULL,
NULL,
EVT_TARGET
FROM R5EVENTS
WHERE EVT_CREATED < EVT_DATE /* Only if created earlier than WO generation */
AND EVT_DATE >= '[StartDate]' AND EVT_ORG = '[Your Organization Code]'
UNION ALL
/* 3. Planning and Estimating Finished (Status Change) */
SELECT
S.STA_KEYVALUE,
'Planning and Estimating Finished',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS IN ('R', 'PLANNED') /* Adjust status code */
AND E.EVT_DATE >= '[StartDate]' AND E.EVT_ORG = '[Your Organization Code]'
UNION ALL
/* 4. Work Order Approved */
SELECT
S.STA_KEYVALUE,
'Work Order Approved',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS = 'A' /* Standard Approved Code */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 5. Material Requisition Submitted */
SELECT
TRL_EVENT,
'Material Requisition Submitted',
TRL_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5TRANSLINES T
JOIN R5EVENTS E ON T.TRL_EVENT = E.EVT_CODE
WHERE T.TRL_TYPE = 'REQ' /* Requisition Line */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 6. Resources Scheduled */
SELECT
ACT_EVENT,
'Resources Scheduled',
ACT_START,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
ACT_PERSON,
E.EVT_PRIORITY,
ACT_EST_COST,
NULL,
E.EVT_TARGET
FROM R5ACTIVITIES A
JOIN R5EVENTS E ON A.ACT_EVENT = E.EVT_CODE
WHERE A.ACT_START IS NOT NULL
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 7. Work Commenced */
SELECT
S.STA_KEYVALUE,
'Work Commenced',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS IN ('SO', 'IP') /* Start Order or In Progress */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 8. Material Issued */
SELECT
TRN_EVENT,
'Material Issued',
TRN_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
TRN_VALUE,
E.EVT_TARGET
FROM R5TRANSACTIONS T
JOIN R5EVENTS E ON T.TRN_EVENT = E.EVT_CODE
WHERE T.TRN_TYPE = 'I' /* Issue Transaction */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 9. Maintenance Task Executed (Labor Booking) */
SELECT
BOO_EVENT,
'Maintenance Task Executed',
BOO_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
BOO_PERSON,
E.EVT_PRIORITY,
NULL,
BOO_VALUE,
E.EVT_TARGET
FROM R5BOOKEDHOURS B
JOIN R5EVENTS E ON B.BOO_EVENT = E.EVT_CODE
WHERE E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 10. Maintenance Records Updated (Comments) */
SELECT
COM_CODE,
'Maintenance Records Updated',
COM_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
COM_PERSON,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5COMMENTS C
JOIN R5EVENTS E ON C.COM_CODE = E.EVT_CODE
WHERE C.COM_TYPE = 'EVT' /* Linked to Event */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 11. Quality Control Testing Performed */
SELECT
TST_EVENT,
'Quality Control Testing Performed',
TST_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
TST_ENTEREDBY,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5TESTRESULTS T
JOIN R5EVENTS E ON T.TST_EVENT = E.EVT_CODE
WHERE E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 12. Work Order Completed */
SELECT
S.STA_KEYVALUE,
'Work Order Completed',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS = 'C' /* Completed/Technically Complete */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 13. Financial Settlement Processed */
SELECT
S.STA_KEYVALUE,
'Financial Settlement Processed',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
NULL,
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS = 'AC' /* Accounting Close/Review */
AND E.EVT_DATE >= '[StartDate]'
UNION ALL
/* 14. Work Order Closed */
SELECT
S.STA_KEYVALUE,
'Work Order Closed',
S.STA_DATE,
'Infor EAM',
GETDATE(),
E.EVT_TYPE,
E.EVT_OBJECT,
E.EVT_MRC,
NULL,
E.EVT_PRIORITY,
NULL,
E.EVT_COST, /* Final Cost usually captured here */
E.EVT_TARGET
FROM R5STATUS S
JOIN R5EVENTS E ON S.STA_KEYVALUE = E.EVT_CODE
WHERE S.STA_TABLE = 'EVT' AND S.STA_RSTATUS = 'CL' /* Hard Close */
AND E.EVT_DATE >= '[StartDate]'