Your Asset Maintenance Data Template
Your Asset Maintenance Data Template
- Process specific data fields for maintenance tracking
- Key milestones for work order lifecycle analysis
- Detailed extraction guidance for Infor EAM users
Asset Maintenance Attributes
| Name | Description | ||
|---|---|---|---|
| Activity EventName | The specific step or status change occurring within the maintenance lifecycle. | ||
| Description This attribute captures the name of the event or status change, such as Work Order Generated, Material Issued, or Work Order Closed. It is derived from the history of status changes or specific transaction types recorded against the work order. By following the sequence of these values, the process mining tool reconstructs the workflow path. This enables the analysis of process variants, rework loops, and the order of operations. Why it matters It defines the nodes in the process map and is required to understand what happened at each step. Where to get R5EVENTSTATUS table (field EVS_STATUS) or R5TRANSACTIONS (field TRA_DESC) Examples Work Order GeneratedMaterial IssuedWork Order ClosedResources Scheduled | |||
| Maintenance Work Order WorkOrderNumber | The unique identifier for the maintenance work order. | ||
| Description This attribute serves as the central case identifier for the process analysis. It represents the specific maintenance job, whether preventive or corrective, and links all subsequent activities, costs, and labor records together. In Infor EAM, this is typically the Event Code found in the main event tables. Analysts use this field to distinguish individual process instances. It allows for the aggregation of all events belonging to a single maintenance request to calculate cycle times and costs per job. Why it matters It is the fundamental key for reconstructing the process flow and uniquely identifying every maintenance case. Where to get R5EVENTS table, field EVT_CODE Examples 10023456WO-2023-88910023457PM-55421 | |||
| Timestamp EventTimestamp | The date and time when the activity occurred. | ||
| Description This attribute records the precise moment an activity took place. It is used to sequence events chronologically and calculate the duration between steps. Accurate timestamping is critical for identifying bottlenecks, measuring lead times, and calculating SLA compliance. In Infor EAM, this usually comes from the transaction date or the status change date. Why it matters It provides the temporal dimension necessary for all time-based analysis and sequencing. Where to get R5EVENTSTATUS table (field EVS_DATE) or R5TRANSACTIONS (field TRA_DATE) Examples 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-14T09:00:00Z | |||
| Last Data Update LastDataUpdate | The timestamp when the data was extracted or last refreshed. | ||
| Description This field indicates when the record was last processed or extracted for the process mining model. It helps users understand the freshness of the data they are analyzing. It is often generated during the ETL process rather than existing in the source system itself, ensuring that analysts know if they are looking at real-time or historical snapshots. Why it matters It validates data currency and helps identifying stale datasets. Where to get System time at extraction Examples 2023-10-25T12:00:00Z | |||
| Source System SourceSystem | The name of the system where the data originated. | ||
| Description This attribute identifies the origin of the data record, which is particularly important in multi-system environments. For this view, it serves as a static identifier for the Infor EAM instance. It helps in data lineage and troubleshooting if multiple data sources are merged into a single process mining data model. Why it matters It ensures traceability of data back to the Infor EAM environment. Where to get Hardcoded during extraction Examples Infor EAMDatastream 7i | |||
| Asset Code AssetCode | The unique identifier of the equipment or asset being maintained. | ||
| Description This attribute identifies the physical object that is the subject of the maintenance work order. It enables the aggregation of maintenance history per machine or facility. Analyzing process performance by asset code helps identify 'bad actors'—equipment that breaks down frequently or takes longer than average to repair. Why it matters Essential for linking process performance to physical infrastructure. Where to get R5EVENTS table, field EVT_OBJECT Examples PUMP-001HVAC-N-22CONVEYOR-05 | |||
| Department DepartmentCode | The maintenance department or crew responsible for the work. | ||
| Description This attribute indicates which internal department or cost center owns the work order. It allows for performance benchmarking between different maintenance teams (e.g., Electrical vs. Mechanical). In Infor EAM, this is often referred to as the MRC (Maintenance Repair Center). Why it matters Supports resource planning and departmental performance analysis. Where to get R5EVENTS table, field EVT_MRC Examples MECHELECFACILITIES | |||
| Estimated Cost EstimatedCost | The planned budget for the work order. | ||
| Description This attribute holds the cost estimated during the planning phase. By comparing this against the actual cost, analysts can assess the accuracy of the planning department. Large variances between estimated and actual costs signal a need to review the estimation process or the execution efficiency. Why it matters Supports the Estimated vs Actual Cost Analysis dashboard. Where to get R5EVENTS table, field EVT_ESTCOST Examples 500.001200.500.00 | |||
| Maintenance Type MaintenanceType | Categorizes the work order as Preventive, Corrective, or Predictive. | ||
| Description This attribute classifies the nature of the maintenance work. It allows analysts to split the process view to compare planned preventive maintenance cycles against unplanned reactive repairs. Optimizing the ratio of preventive to reactive work is a key goal for maintenance managers. This field is typically found in the event type column. Why it matters Critical for the Maintenance Type Distribution dashboard and analyzing reliability strategy. Where to get R5EVENTS table, field EVT_TYPE Examples PreventiveCorrectiveBreakdownInspection | |||
| Priority WorkOrderPriority | The urgency level assigned to the maintenance work order. | ||
| Description This attribute indicates the importance of the work order, typically on a scale (e.g., High, Medium, Low). It is used to filter analysis to ensure that critical work is being prioritized correctly in the queue. Analyzing process flow by priority helps confirm if high-priority items are actually moving faster than low-priority ones. Why it matters Critical for validating that emergency work receives appropriate attention. Where to get R5EVENTS table, field EVT_PRIORITY Examples 1-Emergency2-High3-Routine | |||
| SLA Target Date SlaTargetDate | The deadline by which the work order must be completed. | ||
| Description This attribute stores the target completion date, often determined by the asset criticality and work priority. It serves as the baseline for calculating schedule adherence. Comparing the actual completion timestamp against this date determines if the organization is meeting its service level agreements. Why it matters Required for the SLA Performance for Critical Assets dashboard. Where to get R5EVENTS table, field EVT_TARGET Examples 2023-11-01T17:00:00Z | |||
| Technician TechnicianName | The specific individual or resource assigned to execute the task. | ||
| Description This attribute captures the user or technician performing the specific activity. It is used to analyze labor productivity and identify training needs or scheduling inefficiencies. Depending on the system configuration, this may be found in the booked hours table or the person responsible field on the event. Why it matters Enables the Labor Productivity and Scheduling dashboard analysis. Where to get R5BOOKEDHOURS table (field BOO_PERSON) or R5EVENTS (field EVT_PERSON) Examples J. SmithM. DoeContractor-A | |||
| Total Actual Cost ActualTotalCost | The final sum of labor, material, and service costs. | ||
| Description This attribute represents the total financial impact of the maintenance task. It is updated as labor is booked and materials are issued. It acts as the primary financial metric for the process, allowing for cost-driver analysis and budget reporting. Why it matters Core metric for financial settlement and efficiency analysis. Where to get R5EVENTS table, field EVT_ACTCOST (or summation of transactions) Examples 450.251500.0075.50 | |||
| Asset Criticality AssetCriticality | A score or rating indicating the operational importance of the asset. | ||
| Description This attribute categorizes assets based on how critical they are to production or safety (e.g., A, B, C). It helps analysts segment the process to see if high-value assets are being treated with appropriate urgency. This data is typically pulled from the asset master record associated with the work order. Why it matters Allows for risk-based analysis of maintenance delays. Where to get R5OBJECTS table (field OBJ_CRITICALITY), linked via EVT_OBJECT Examples A - CriticalB - ImportantC - Run to Failure | |||
| Description WorkOrderDescription | Text description of the issue or work required. | ||
| Description This attribute contains the free-text summary entered by the requestor or planner. It provides qualitative context that explains outliers or specific process behaviors. Text mining can be applied here to categorize common failure modes that aren't captured in structured fields. Why it matters Provides context for root cause analysis. Where to get R5EVENTS table, field EVT_DESC Examples Pump vibration highReplace seal on valve 2Quarterly inspection | |||
| Is Rework IsRework | Flag indicating if the work order involved repeated execution steps. | ||
| Description This boolean attribute identifies whether the process flow contained loops, specifically returning to execution after quality control. It is calculated during data transformation by checking for repeated 'Maintenance Task Executed' activities. High rework rates are a primary indicator of quality issues or inadequate training. Why it matters Directly supports the Maintenance Rework and Quality Audit dashboard. Where to get Calculated in ETL/Process Mining tool Examples truefalse | |||
| Is SLA Breached IsSlaBreached | Flag indicating if the completion time exceeded the target date. | ||
| Description This boolean attribute compares the 'Work Order Completed' timestamp with the 'SLA Target Date'. If the completion is later than the target, the flag is set to true. This simplifies reporting by creating a binary dimension for filtering compliant vs. non-compliant cases. Why it matters Simplifies SLA compliance reporting. Where to get Calculated in ETL/Process Mining tool Examples truefalse | |||
| Labor Hours LaborHoursUsed | The actual number of man-hours spent on the work order. | ||
| Description This attribute sums up the time booked by technicians against the work order. It is crucial for calculating workforce productivity and technician utilization. It is distinct from the elapsed duration of the work order, as it reflects actual effort rather than calendar time. Why it matters Key for the Labor Productivity and Scheduling dashboard. Where to get Sum of hours in R5BOOKEDHOURS for the event Examples 2.58.00.5 | |||
| Material Cost MaterialCost | The cost of spare parts issued to the work order. | ||
| Description This attribute isolates the cost of materials from the total cost. It helps identifying supply chain expenses versus labor expenses. Tracking this separately supports decisions regarding spare part pricing and inventory management. Why it matters Detail required for comprehensive financial analysis. Where to get Calculated from R5TRANSACTIONS where type is issue Examples 150.0020.00 | |||
| Organization OrganizationCode | The business unit or site the asset belongs to. | ||
| Description In multi-site implementations, this attribute defines the specific facility or business unit. It enables high-level comparisons between different plants or geographic regions. It is essential for global dashboarding where processes may differ slightly between locations. Why it matters Supports the Business Unit view for cross-site benchmarking. Where to get R5EVENTS table, field EVT_ORG Examples NYC-PLANTLON-HQMFG-01 | |||
Asset Maintenance Activities
| Activity | Description | ||
|---|---|---|---|
| Maintenance Request Received | Marks the initial entry of a maintenance demand into the system, often originating from a service portal or call center interface. In Infor EAM, this is typically captured when a record is created in the Call or Request entities before conversion to a formal work order. | ||
| Why it matters Establishes the starting point for calculating the Maintenance Backlog Growth Rate and total resolution time. Essential for identifying the true demand placed on the maintenance department. Where to get Query the R5EVENTS table where EVT_TYPE is set to 'R' (Request) or 'C' (Call). Use EVT_CREATED logs. Capture Logged when a request record is inserted Event type explicit | |||
| Maintenance Task Executed | Represents the ongoing execution of maintenance work, captured via labor hours booked by technicians. This activity may repeat multiple times for a single work order. | ||
| Why it matters Feeds the Technician Utilization Efficiency KPI and Labor Estimation Accuracy. High frequency without completion may indicate difficult repairs. Where to get Extract individual entries from the R5BOOKEDHOURS table associated with the Work Order. Capture Logged when transaction X executed Event type explicit | |||
| Work Commenced | Indicates the actual start of physical work on the asset. This is often inferred from the first labor booking timestamp or a specific mobile status update. | ||
| Why it matters Crucial for calculating Material Requisition Lead Time and Technician Utilization Efficiency. Differentiates between 'Scheduled' time and 'Working' time. Where to get Derive from the earliest Start Date in R5BOOKEDHOURS or a status change to 'In Progress' in R5EVENTSTATUS. Capture Derive from comparing field X to Y Event type inferred | |||
| Work Order Closed | The final administrative step where the work order is archived and no further costs can be booked. This concludes the lifecycle of the case. | ||
| Why it matters Terminates the Administrative Closure Efficiency measurement. Essential for clean data and preventing 'zombie' open orders. Where to get Query R5EVENTSTATUS for the transition to 'Close' status. This sets the EVT_STATUS field to 'C'. Capture Logged when status changes to Closed Event type explicit | |||
| Work Order Completed | Marks the technical completion of the maintenance job. The asset is restored to service, although financial and administrative tasks may remain. | ||
| Why it matters The endpoint for SLA Performance for Critical Assets. Differentiates between 'Job Done' and 'Paperwork Done'. Where to get Track status change to 'C' (Complete) or 'J' (Job Complete) in R5EVENTSTATUS. Check EVT_DATECOMPLETED. Capture Logged when status changes to Complete Event type explicit | |||
| Work Order Generated | Represents the formal creation of a work order object, either converted from a request or created directly. This event initiates the tracking of costs, resources, and status history for the maintenance case. | ||
| Why it matters Primary case creation event for the Backlog and Throughput Monitor. Differentiates between the request phase and the actual maintenance management workflow. Where to get Query the R5EVENTS table for new records where EVT_TYPE is 'JOB' or 'PPM'. Alternatively, track status changes to the initial 'Open' status in R5EVENTSTATUS. Capture Logged when transaction creates a WO record Event type explicit | |||
| Financial Settlement Processed | Represents the final calculation and posting of costs associated with the work order. This ensures all labor and materials are accounted for against the budget. | ||
| Why it matters Supports Estimated vs Actual Cost Analysis. Delays here affect financial reporting accuracy. Where to get Often inferred from the date the Work Order is locked for editing or when the final cost update transaction occurs in the transaction log. Capture Derive from comparing field X to Y Event type calculated | |||
| Maintenance Records Updated | Captures the enrichment of the work order with technical notes, failure codes, or condition monitoring data. This often happens near the end of the physical work. | ||
| Why it matters Supports Technical Documentation Compliance monitoring. Ensures data quality for future reliability analysis. Where to get Track updates to the R5COMMENTS table or updates to 'Problem/Failure/Cause' fields in R5EVENTS. Capture Logged when record is updated Event type explicit | |||
| Material Issued | Records the physical issuance of spare parts from inventory to the work order. This step confirms that materials are available for use. | ||
| Why it matters Closing event for supply chain delay analysis. Validates that parts constraints have been resolved. Where to get Query R5TRANSACTIONS for transaction type 'I' (Issue) linked to the Work Order. Capture Logged when transaction X executed Event type explicit | |||
| Material Requisition Submitted | Records the specific request for spare parts required to perform the maintenance task. This event is vital for linking supply chain processes with maintenance execution. | ||
| Why it matters The starting point for the Material Supply Delay Analysis dashboard. Identifies if parts procurement is the root cause of maintenance delays. Where to get Query the R5REQUISITIONS or R5MATLIST tables for creation timestamps linked to the Work Order ID. Capture Logged when transaction X executed Event type explicit | |||
| Planning and Estimating Finished | Indicates that the work order has been scoped, costs have been estimated, and the job plan is ready for approval. This is often inferred when the status moves from a planning state to an approval-ready state. | ||
| Why it matters Critical for measuring Work Order Approval Cycle Time and identifying administrative bottlenecks before execution. Supports analysis of planning lead times. Where to get Infer from R5EVENTSTATUS when status changes from 'Planning' to 'Request Approval' or 'Released'. Capture Compare status field before/after Event type inferred | |||
| Quality Control Testing Performed | Indicates a specific verification step where the repair is inspected before final sign-off. If this fails, the process loops back to execution. | ||
| Why it matters Essential for the Maintenance Rework and Quality Audit dashboard. Identifies quality issues and rework loops. Where to get Identify specific checklist completion in R5CHECKLISTS or a status transition to a 'Review' state in R5EVENTSTATUS. Capture Compare status field before/after Event type inferred | |||
| Resources Scheduled | Captures the assignment of specific technicians or crews to the work order. This marks the transition from planning to resource allocation. | ||
| Why it matters Supports the Labor Productivity and Scheduling dashboard. Helps identify gaps between approval and actual resource availability. Where to get Track changes in the R5ACTIVITIES table for labor assignments or status changes to 'Scheduled' in R5EVENTSTATUS. Capture Logged when resource assignment occurs Event type explicit | |||
| Work Order Approved | Signifies that the maintenance work has been authorized by the necessary management level. This step releases the work order for scheduling and material requisition. | ||
| Why it matters Marks the end of the approval cycle and the start of actionable maintenance. Delays here directly impact the responsiveness to critical asset failures. Where to get Track the insertion of an 'A' (Approved) or 'R' (Released) status code in the R5EVENTSTATUS history table. Capture Logged when status changes to Approved Event type explicit | |||
Extraction Guides
Steps
Verify Databridge Module Availability: Log in to Infor EAM as an administrator. Navigate to the Administration menu and ensure the Databridge module is active and you have access to the Partner and Document configuration screens.
Define Export Partner: Create a new Partner in Databridge specifically for ProcessMind (e.g., partner code
PMIND). Configure the Communication method toFILEorFTPdepending on where you want the XML/CSV files to land. Set the output format to XML for maximum data fidelity.Configure Business Objects (Documents): You must subscribe to specific Infor EAM Business Objects (BODs) to capture the required activities. Add the following Documents to your Partner configuration:
MP0094_SyncWorkOrder: Captures creation, status changes, updates, and closure.MP0024_SyncBookedHours: Captures labor booking (Execution).MP3036_SyncTransaction: Captures material issues and returns.MP0026_SyncRequisition: Captures material requests.MP0098_SyncWorkOrderActivity: Captures scheduling and planning details.
Set Filter Configurations: For each Document, apply filters to exclude irrelevant data. For
SyncWorkOrder, filter byOrganizationand ensureWork Order Typeis not null. Set theDatefilter to encompass your analysis period (e.g., last 12 months).Enable Event Triggers: In the Event Configuration screen, ensure the
On Save,On Update, andOn Status Changetriggers are enabled for the entities corresponding to the selected Documents. This ensures data is pushed out immediately when a user interacts with the system.Map Data Elements: Configure the Databridge XML template to include the specific columns required. Ensure
EVT_CODEmaps toWorkOrderNumber,EVT_STATUSis included for status tracking, andEVT_DAT_CREATEDis available.Execute Initial Load: Databridge is primarily event-driven, but for historical analysis, you must run a Batch Export. Navigate to the Databridge Export screen, select the
PMINDpartner, choose theSyncWorkOrderdocument, define the date range, and clickSubmitto generate the historical backlog.Standardize Output: The export will produce hierarchical XML files. Use a scripting tool (like Python, PowerShell, or an ETL middleware) to flatten these XMLs. The logic is: One XML node = One Event Row. Use the mapping rules defined in the Query section below.
Derive Activity Names: In your transformation script, use the conditional logic provided in the Query section to translate system codes (e.g., Status
RtoWork Order Generated, StatusCtoWork Order Completed) into the human-readable Activity names.Format Timestamp: Infor EAM exports timestamps in ISO 8601 format. Ensure these are converted to a standard
YYYY-MM-DD HH:MM:SSformat compatible with ProcessMind.Compile Event Log: Merge the outputs from the different Business Objects (Work Orders, Booked Hours, Transactions) into a single CSV file, sorting by
WorkOrderNumberandEventTimestamp.Final Validation: Load the resulting CSV into ProcessMind and verify that the Case Count matches the number of unique Work Orders exported from Infor EAM.
Configuration
- Export Format: XML is recommended over flat text for handling special characters in comments and ensuring schema enforcement.
- Trigger Mode: Set to Asynchronous to prevent Databridge processing from slowing down the user interface during peak hours.
- Granularity: Ensure Include Update Details is checked in the Document configuration so you can detect field-level changes (like Priority updates or Department changes).
- Date Range: For the initial batch load, standard practice is 12-24 months of history. For ongoing delta loads, the system will push data real-time.
- Organization Filter: Always filter by
EVT_ORG(Organization) to avoid extracting multi-tenant data if your EAM instance is shared. - Status Configuration: Verify which user-defined statuses map to the system statuses (R, A, C, etc.) to ensure accurate Activity mapping.
a Sample Query 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"
}
}
]
}
} Steps
Database Access Setup Establish a direct database connection (ODBC/JDBC) to your Infor EAM database (Oracle or SQL Server). Ensure you have read-only permissions on the following tables: R5EVENTS (Work Orders), R5STATUS (Status History), R5BOOKEDHOURS (Labor), R5TRANSACTIONS (Materials), R5ACTIVITIES (Tasks), and R5TESTRESULTS (Quality).
Define Scope and Filters Determine the extraction window. Typically, a rolling window of the last 12 to 24 months is sufficient for process mining. Identify your Organization Code (ORG) to filter relevant data if you run a multi-site instance.
Configure Status Mappings Infor EAM allows user-defined statuses. Review the SQL script provided and replace placeholders like 'A' (Approved) or 'C' (Closed) with the actual status codes used in your specific EAM configuration. You can find these in the R5STATUS_CODES table if unsure.
Prepare the SQL Script Copy the SQL provided in the Query section. Replace the [StartDate] and [EndDate] placeholders with your desired date range (e.g., '2023-01-01'). Replace [Your Organization Code] with your specific business unit filter.
Execute the Extraction Run the query in your SQL client (SQL Developer, SSMS, or DBeaver). The query uses UNION ALL to combine header events, status changes, labor bookings, and material transactions into a single standardized event log format.
Data Validation Check the output for NULL timestamps in the EventTimestamp column. Ensure that the WorkOrderNumber is populated for every row. Verify that the EventName column contains a healthy mix of the 14 activities defined.
Data Transformation (Optional) If your timestamps contain timezone offsets that differ from your analysis requirements, apply a conversion function (like AT TIME ZONE) within the query or during post-processing.
Export to CSV Export the query results to a flat CSV file. Ensure the delimiter is set to comma or semicolon and that text qualifiers (double quotes) are used to handle any commas within descriptions.
Import to ProcessMind Upload the CSV file to ProcessMind. Map the columns as follows: WorkOrderNumber to Case ID, EventName to Activity, and EventTimestamp to Timestamp. Map the remaining columns as case or event attributes.
Configuration
- Date Range: Recommended extraction window is 12-24 months. Ensure the filter applies to the EVT_DATE (Creation Date) or the specific transaction dates to capture running open cases.
- Organization Filter: Use the EVT_ORG or common Organization column to separate data by plant or facility, as processes often differ by site.
- Status Codes: This query relies on standard status codes (A, C, R, etc.). You must verify these against your system configuration in the Administration menu under Screen Setup or Status setup.
- Performance: The query hits heavy transaction tables (R5TRANSACTIONS). Ensure appropriate non-clustered indexes exist on EVT_CODE and TRN_DATE if querying large datasets (>1 million rows).
- Timezones: Infor EAM stores dates in the database server time. Ensure you account for any offset if your users operate in a different timezone.
a Sample Query 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]'