This guide explains how the DDEC Web application communicates with backend systems and the DRS (Dealer Readiness System) client for engine programming operations.
The DDEC system consists of several interconnected components:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ DRS Client │────▶│ DDEC Web │────▶│ Batch Server │
│ (C++ App) │ │ (Java/Spring) │ │ (File Server) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ SQL Server │ │ Legacy Scripts │
│ Database │ │ (KSH Jobs) │
└─────────────────┘ └─────────────────┘
The DRS (Dealer Readiness System) client performs four main operations:
What it does: Retrieves calibration data for a specific engine based on its serial number or 06N04 code.
How it works:
Use case: Technician needs to read or backup an engine's current calibration.
What it does: Uploads the engine's programming history file (DDECHIST.DAT) to track changes.
How it works:
Use case: Maintaining records of all calibration changes made to an engine.
What it does: Downloads and processes a "base" (production) calibration for an engine type.
Calibration Types:
| Code | Type | Description |
|---|---|---|
| 100 | Test | Test/development calibration |
| 200 | Base | Production calibration (no history) |
| 600 | Base + History | Production calibration with history |
Use case: Programming a new engine or resetting to factory calibration.
What it does: Handles test/experimental calibrations used during development.
Use case: Engineering testing new calibration parameters before production release.
The DDEC system runs several automated jobs on schedules:
Purpose: Receives and processes Unix transactions from external systems
Trigger: Auto-triggered when file arrives at PDDAD.R51AT.UNIXTXNS
Frequency: Any time a file is received (can happen multiple times in succession)
What it does:
Purpose: Updates engine database with Freightliner VEPS (Vehicle Electronic Programming System) parameters
Schedule: Monday-Friday at 4:00 AM Eastern Time
What it does:
PDDAD.r24AT.VEPSNote: Job will fail if no input files are received (expected behavior when no updates).
Purpose: Extracts and distributes factory passwords for DDEC III and IV engines
Schedule: First Saturday of each month at 10:00 AM
Cron Pattern: 0 10 * * 6 with condition for days 1-7
What it does:
R24PASSWORD.LST on DDCPRODRelated Files:
/pddad/syscm/prod/sysin/ddcprod.file/pddad/syscm/prod/sysin/path.file/pddad/syscm/prod/sysin/r24i0028.file/pddad/syscm/prod/sysin/close.file┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ DRS Client │ │ DDEC Web │ │Batch Server │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
│ 1. POST /basecal/process │ │
│ (calibrationName, type) │ │
│─────────────────────────────────▶│ │
│ │ │
│ │ 2. Create request files │
│ │ (DDECREQ0.DAT, history) │
│ │ │
│ │ 3. SFTP Upload files │
│ │─────────────────────────────────▶│
│ │ │
│ │ 4. Execute KSH 500 job │
│ │─────────────────────────────────▶│
│ │ │
│ │ 5. Job runs... │
│ │ │
│ │ 6. Poll for completion │
│ │◀─────────────────────────────────│
│ │ │
│ │ 7. SFTP Download result │
│ │◀─────────────────────────────────│
│ │ │
│ │ 8. Parse, decompress, decrypt │
│ │ Create ZIP file │
│ │ │
│ 9. Return archiveFileName │ │
│◀─────────────────────────────────│ │
│ │ │
│ 10. GET /basecal?archiveFileName │ │
│─────────────────────────────────▶│ │
│ │ │
│ 11. Return ZIP binary │ │
│◀─────────────────────────────────│ │
│ │ │
| Path | Purpose |
|---|---|
/opt/qte/data/r24at/ |
Working directory for request/response files |
/opt/qte/scripts/batch/drs/ |
Batch job scripts (KSH) |
| File | Description |
|---|---|
request0.file |
Calibration request (DDECREQ0.DAT equivalent) |
history.file |
History records (DDECHIST.DAT equivalent) |
download.file |
Output from batch job (calibration data) |
{userId}500.sh |
Generated download job script |
{userId}505.sh |
Generated release job script |