Import MJO / LTO / RJO File and Reference File Download Link
https://eu2.contabostorage.com/00f3241116844f24b628f46d81abb929:st1/folder7/7358/1656292861_worksheet_in_presentation_in_must_read_process_guide_for_igts_mur_file_processing_tool_v3_2_-_Standar_Format.xls
2026-05-31 02:10:08 - Admin
<style> body { font-family: Arial, Helvetica, sans-serif; line-height: 1.6; margin: 0; padding: 0 20px; background-color: #f9f9f9; color: #333; } h1, h2, h3 { color: #2c3e50; } pre { background:#eee; padding:10px; overflow:auto; } table { width:100%; border-collapse:collapse; margin:20px 0; } th, td { border:1px solid #ccc; padding:8px; text-align:left; } th { background:#e2e2e2; } a { color:#2980b9; } </style> <h1>Import MJO / LTO / RJO Files A Practical Guide</h1> <p>Many enterprise systems rely on filebased data exchange to move large volumes of information between applications. Three of the most common proprietary formats you will encounter are <strong>MJO</strong>, <strong>LTO</strong> and <strong>RJO</strong>. Although they serve different business domainsmaintenance job orders, logistics transport orders, and resource job ordersthey share a similar structure and typical import workflow. This page explains what each file type is, how to recognise them, the steps required to import them safely, and some bestpractice tips to avoid common pitfalls.</p> <h2>1. What Are MJO, LTO and RJO Files?</h2> <h3>1.1 MJO Maintenance Job Order</h3> <p>An MJO file contains a list of scheduled maintenance tasks for equipment or facilities. It is generated by Computerised Maintenance Management Systems (CMMS) and usually includes:</p> <ul> <li>Job identifier and description</li> <li>Asset reference (equipment tag, location)</li> <li>Planned start and finish dates</li> <li>Required labour hours, parts, and tools</li> <li>Priority and safety instructions</li> </ul> <h3>1.2 LTO Logistics Transport Order</h3> <p>LTO files are exchanged between Warehouse Management Systems (WMS) and Transportation Management Systems (TMS). The file holds data for a single or batch of shipments, such as:</p> <ul> <li>Consignment number</li> <li>Origin and destination addresses</li> <li>Carrier details</li> <li>Weight, volume and product codes</li> <li>Special handling requirements</li> </ul> <h3>1.3 RJO Resource Job Order</h3> <p>RJO files are used in projectbased environments where resources (people, machines, licences) are allocated to tasks. Typical fields include:</p> <ul> <li>Resource ID and skill set</li> <li>Task ID and description</li> <li>Allocation dates and durations</li> <li>Cost centre and budget codes</li> <li>Utilisation percentages</li> </ul> <h2>2. Common File Characteristics</h2> <p>Although the business purpose differs, MJO, LTO and RJO files usually share these technical traits:</p> <table> <tr><th>Characteristic</th><th>Typical Value</th></tr> <tr><td>File extension</td><td>.mjo, .lto, .rjo</td></tr> <tr><td>Encoding</td><td>UTF8 or ISO88591</td></tr> <tr><td>Delimiter</td><td>Comma (CSV) or pipe (|) rarely tabdelimited</td></tr> <tr><td>Header row</td><td>Present column names in upper case</td></tr> <tr><td>Record separator</td><td>CRLF (Windows) or LF (Unix)</td></tr> </table> <h2>3. Import Workflow Overview</h2> <ol> <li><strong>Receive the file</strong> via SFTP, shared folder, or API endpoint.</li> <li><strong>Validate format</strong> check delimiter, encoding, mandatory columns, and file size.</li> <li><strong>Run business rules</strong> verify that referenced assets, locations or resources exist in the target system.</li> <li><strong>Transform if needed</strong> map external codes to internal ones, convert dates to ISO8601, or split combined fields.</li> <li><strong>Load into staging tables</strong> use bulkinsert utilities (e.g., SQL Server BCP, PostgreSQL COPY) to minimise transaction time.</li> <li><strong>Process into production tables</strong> execute stored procedures or ETL scripts that move data, apply defaults and generate audit logs.</li> <li><strong>Generate a report</strong> success count, rejected rows, and any warnings.</li> <li><strong>Archive the source file</strong> move to a readonly folder with a timestamped name for audit purposes.</li> </ol> <h2>4. Detailed Steps for Each File Type</h2> <h3>4.1 Importing MJO Files</h3> <p><strong>Key validation rules</strong></p> <ul> <li>Job ID must be unique within the import batch.</li> <li>Asset tag must exist in the Asset Master table.</li> <li>Planned dates cannot be in the past unless the job status is Reopened.</li> <li>Labour hours must be a positive decimal.</li> </ul> <p><strong>Sample SQL staging table</strong></p> <pre>CREATE TABLE dbo.Stg_MJO ( JobID varchar(20) NOT NULL, Description varchar(250), AssetTag varchar(30) NOT NULL, PlannedStart datetime NOT NULL, PlannedFinish datetime NOT NULL, LabourHours decimal(6,2) NOT NULL, PriorityCode char(1), SourceFile varchar(100) NOT NULL, ImportDateTime datetime DEFAULT GETDATE()); </pre> <p>After loading the staging table, call a procedure such as <code>sp_ProcessMJOImport</code> that performs the business logic and moves validated rows to <code>dbo.MaintenanceJobs</code>.</p> <h3>4.2 Importing LTO Files</h3> <p><strong>Typical pitfalls</strong></p> <ul> <li>Inconsistent carrier codes maintain a mapping table.</li> <li>Weight expressed in pounds while the system expects kilograms.</li> <li>Missing destination postcode leading to failed address validation.</li> </ul> <p><strong>Sample transformation using Python (optional)</strong></p> <pre>import pandas as pddf = pd.read_csv('incoming.lto', delimiter='|')df['WeightKg'] = df['Weight'].apply(lambda x: round(float(x) * 0.453592, 2))df['CarrierID'] = df['CarrierCode'].map(carrier_map)df.to_sql('Stg_LTO', con=engine, if_exists='append', index=False)</pre> <h3>4.3 Importing RJO Files</h3> <p>RJO imports tend to be the most complex because they involve manytomany relationships (resources tasks). A common approach is to split the file into two staging tables:</p> <ul> <li><code>Stg_RJO_Tasks</code> one row per task.</li> <li><code>Stg_RJO_Allocations</code> one row per resourcetask allocation.</li> </ul> <p>Business rule examples:</p> <ul> <li>Allocation percentage for a task must sum to 100%.</li> <li>Resource must be active and have the required skill level.</li> <li>Budget code must be valid for the projects fiscal year.</li> </ul> <h2>5. Error Handling & Logging</h2> <p>Implement a central ImportLog table that captures:</p> <ul> <li>File name and type</li> <li>Start and end timestamps</li> <li>Total rows processed</li> <li>Number of successful inserts</li> <li>Number of rejected rows with error codes</li> </ul> <p>Example:</p> <pre>CREATE TABLE dbo.ImportLog ( LogID int IDENTITY PRIMARY KEY, FileName varchar(200), FileType char(3), -- MJO/LTO/RJO StartedAt datetime, CompletedAt datetime, TotalRows int, SuccessRows int, ErrorRows int, Remarks varchar(500));</pre> <h2>6. Security Considerations</h2> <ul> <li>Transfer files over SFTP or HTTPS; never use plain FTP.</li> <li>Validate the files digital signature or checksum (MD5/SHA256) before processing.</li> <li>Run import jobs under a leastprivilege service account that only has write access to staging tables.</li> <li>Sanitise all string fields to prevent SQL injection when constructing dynamic queries.</li> </ul> <h2>7. Automation Tips</h2> <p>Most organisations schedule imports during lowtraffic windows. Tools you might use:</p> <ul> <li>Windows Task Scheduler or cron for script execution.</li> <li>SQL Server Integration Services (SSIS) or Apache NiFi for visual data flows.</li> <li>Docker containers that encapsulate the import logic, making it easy to move between environments.</li> </ul> <h2>8. Frequently Asked Questions</h2> <dl> <dt>Q: Can I import a mixedtype file (e.g., MJO and LTO together)?</dt> <dd>A: Not recommended. Keep each file type separate to maintain clear validation rules and audit trails.</dd> <dt>Q: What size limit should I expect?</dt> <dd>A: Most modern databases can handle millions of rows per batch, but practical limits are defined by network bandwidth and stagingtable indexes. Split files larger than 200MB.</dd> <dt>Q: How do I handle duplicate records?</dt> <dd>A: Use a MERGE statement (SQL Server) or ON CONFLICT clause (PostgreSQL) to upsert based on the natural key (e.g., JobID for MJO).</dd> </dl> <h2>9. Sample EndtoEnd Workflow (Shell Script)</h2> <pre>#!/bin/bash# Simple import orchestrator for MJO/LTO/RJO filesIN_DIR="/data/incoming"ARCHIVE_DIR="/data/archive"LOG_DIR="/data/logs"for file in "$IN_DIR"/*.{mjo,lto,rjo}; do [ -e "$file" ] || continue TYPE=$(echo "${file##*.}" | tr '[:lower:]' '[:upper:]') echo "$(date +%F%T) Starting $TYPE import: $file" >> "$LOG_DIR/import.log" # Validate checksum (assumes .sha256 file exists) sha256sum -c "${file}.sha256" >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "Checksum failed for $file" >> "$LOG_DIR/error.log" continue fi # Call the appropriate Python/SQL script case $TYPE in MJO) python3 import_mjo.py "$file" ;; LTO) python3 import_lto.py "$file" ;; RJO) python3 import_rjo.py "$file" ;; esac rc=$? if [ $rc -eq 0 ]; then mv "$file" "$ARCHIVE_DIR/$(basename "$file").$(date +%Y%m%d%H%M%S)" echo "$(date +%F%T) Completed $TYPE import successfully." >> "$LOG_DIR/import.log" else echo "$(date +%F%T) $TYPE import failed with code $rc." >> "$LOG_DIR/error.log" fidone </pre> <h2>10. Conclusion</h2> <p>Importing MJO, LTO, and RJO files follows a repeatable pattern: receive, validate, transform, stage, process, and archive. By standardising each stage, using staging tables, and maintaining detailed logs, organisations can minimise errors, keep audit trails, and ensure that critical maintenance, logistics and resource data flow smoothly into their enterprise systems.</p> <p>For deeper technical references, consult the integration guides of your specific CMMS, WMS, or ERP platform, and always test new import logic in a sandbox before promoting to production.</p>