Generated from analysis of Java programs, JSP files, and screen models
The DDEC application is built on a legacy IMS-based transaction system converted to Java/Spring. It supports three main DDEC versions:
- DDEC II (D2) - Older system (R19 package)
- DDEC III (D3) - Primary system (R24 package)
- DDEC V (D5) - Newer system (R24 package with "5" prefix)
¶ Main Menu Structure
Entry Point: R24PMENU.java (Transaction: R24PMENU)
The main menu provides access to three system levels with PFkey routing:
- PF1 -> POWERNET_MENU (R33POEMN) - External system
- PF3 -> EBOM_HISTORY (R19PBMHI) - Bill of Materials history
- PF7 -> DDEC II MENU (R19PD2MU) - Legacy system
Program Array (tDdecIiiProgram):
- R24PADUN - Add Unit
- R24PCHUN - Change Unit (DDEC III)
- R24PDSUN - Display Unit
- R24PDLUN - Delete Unit
- R24PSLHP - Select Horsepower
- R24PDSCH - Display Search
- R24PDSRH - Display Search History
- R24PCHAP - Change Application
- R24PSLOG - Search Log
- R24PUPFI - Upload File
- R24PCHDP - Change Date/Password
- R24PSHIP - Shipping
- R24PENGT - Engineering
Menu Program: R19PD2MU.java
Provides switching between DDEC II operations.
D2U1/D2U2/D2U3/D2U4/D2U5 - Change Unit (By Application)
- Program: R19PD2U1 through R19PD2U5
- JSP: D2u102Form.jsp - D2u502Form.jsp
- Database: SDD2UNIT (unit information)
- Function: Display/update units by application type:
- D2u1 = On-Highway
- D2u2 = Coach
- D2u3 = On-Highway (variant)
- D2u4 = Fire Truck
- D2u5 = Marine
D2AD - Add Unit
- Program: R19PD2AD
- JSP: D2ad02Form.jsp - D2ad05Form.jsp (4 screens)
- Function: Add new DDEC II units to database
D2CA - Change Application
- Program: R19PD2CA
- JSP: D2ca02Form.jsp
- Function: Change engine application
D2DU - Delete Unit
- Program: R19PD2DU
- JSP: D2du02Form.jsp
- Function: Remove units from DDEC II database
D2PB - Password Reset
- Program: R19PD2PB
- JSP: D2pb02Form.jsp
- Function: Reset password flag for ECM reprogramming
D213 - Uprate/Derate
- Program: R19PD213
- JSP: D21302Form.jsp, D21303Form.jsp
- Function: Change horsepower group on SDD2UNIT
D214 - History Display
- Program: R19PD214
- JSP: D21402Form.jsp - D21405Form.jsp, D214slForm.jsp
- Function: Display unit history (SDD2HIST segments)
D2AU - Additional/Upgrade
- Program: R19PD2AU
- JSP: D2au02Form.jsp
- Function: Additional updates/upgrades
D2DR - Additional Functions
- JSP: D2d102Form.jsp - D2d502Form.jsp
- Function: Display only (protected) screens for unit data
D2MU - Menu
- Program: R19PD2MU
- JSP: D2mu01Form.jsp, D2mu04Form.jsp
- Function: DDEC II menu navigation
Menu Program: R24PMENU.java (Transaction: R24PMENU)
- Program: R24PCHUN
- JSP Files: D3cu01Form.jsp - D3cu06Form.jsp, D3cu11Form.jsp - D3cu16Form.jsp
- Screen Count: 12 screens (numbered 01-06 and 11-16)
- Database Tables Accessed:
- R24YUNIT (DDEC III unit master)
- R24YRECV (receiving/inventory)
- R24YSPPM (special parameters)
- R24YICHA (input change audit)
- R24YOCHA (output change audit)
- R24YACSW (application control switch)
- R24YACSL (application code list)
Data Flow:
- D3cu01 - Unit identification (modl, cust, order, build date)
- D3cu02 - Application and horsepower info (applcd, basecd, hpcode)
- D3cu03 - Engine configuration (transmission, RPM settings)
- D3cu04 - Derate/shutdown parameters (maxdrp, idlsht, etc.)
- D3cu05 - Temperature management (min/max temps)
- D3cu06 - Serial numbers and flags (ECM serial, test flag, etc.)
- D3cu11-D3cu16 - Additional detail screens
Validation:
- Each field pair has error flag (mfld + "e" suffix for attribute)
- PFkey actions route to R24PDSUN for next screen
- All screens use message area for errors
- Program: R24PCHUN (invoked with history flag)
- JSP Files: D3ch00Form.jsp - D3ch06Form.jsp, D3ch10Form.jsp - D3ch16Form.jsp
- Screen Count: 14 screens
- Function: Display change history audit trail
- Database: R24YICHA, R24YOCHA (change audit segments)
Screen Structure:
- D3ch00 - Header/search criteria
- D3ch01-D3ch06 - Change records 1-6 (detail)
- D3ch10-D3ch16 - Change records 10-16 (additional detail)
- Program: R24PALHP
- JSP Files: D3fd01Form.jsp, D3fd02Form.jsp, D3fd05Form.jsp, D3fd11Form.jsp, D3fd12Form.jsp, D3fd15Form.jsp
- Screen Count: 6 screens
- Database: R24YUNIT (search by unit number/criteria)
Workflow:
- D3fd01 - Initial search screen
- D3fd02 - Search results list
- D3fd05 - Select unit from list
- D3fd11 - Horsepower search
- D3fd12 - Group selection
- D3fd15 - Results display
- Program: R24PSLHP
- JSP Files: D3hp01Form.jsp - D3hp05Form.jsp, D3hp08Form.jsp - D3hp09Form.jsp, D3hp11Form.jsp - D3hp15Form.jsp
- Screen Count: 12 screens
- Function: Select new horsepower family (6N4D/6N4M group)
- Databases Accessed:
- EBOM primary database (R19DPBM) - groups/horsepower
- SPA database (R19DSPS) - group configurations
- DDEC III database (R19DPD3) - unit updates
Screen Sequence:
- D3hp01 - Notice/introduction
- D3hp02 - Multiple unit entry (batch uprate)
- D3hp03-D3hp05 - Horsepower group selection
- D3hp08-D3hp09 - Confirmation screens
- D3hp11-D3hp15 - Detail screens for group info
- D3hp14-D3hp15 - Final confirmation
- Program: R24PADUN
- JSP Files: D3au01Form.jsp - D3au04Form.jsp
- Function: Additional unit entry/validation
- Program: Engineering support
- JSP Files: D3ca01Form.jsp, D3ca05Form.jsp, D3cd01Form.jsp, D3cd05Form.jsp
- Function: Calibration storage/management
- JSP Files: D3dl01Form.jsp, D3dl11Form.jsp
- Function: Delete units from DDEC III
- JSP Files: D3dm01Form.jsp
- Function: Duplicate screen error display
- JSP Files: D3et01Form.jsp, D3et11Form.jsp
- Function: Engineering special functions
- JSP Files: D3ic01Form.jsp, D3ic05Form.jsp
- Function: Integration control screens
Entry via: R24PMENU with DDEC5 flag check
- Program: R24P5CHN
- JSP Files: D3cu11Form.jsp - D3cu16Form.jsp
- Screen Count: 6 screens (reuses D3cu naming but different processing)
- Database: R24Y5UNT (DDEC V unit), R24Y5SSA (DDEC V SSA)
- Function: Display/update DDEC V units
Change Unit Modes:
- Display Unit - All fields protected
- Change Unit - Selected fields updateable
- Add Unit - All fields updateable (via R24P5CHN from R24PADUN)
- Upgrade Unit - Special processing for D3->D5 upgrade
- R24P5CAP - Change Application (D5)
- R24P5CDP - Change Date/Password (D5)
- R24P5DLN - Delete Unit (D5)
- R24P5DSN - Display Unit (D5)
- R24P5ENG - Engineering (D5)
- R24P5PFI - Upload File (D5)
- R24P5PWD - Password (D5)
- R24P5SCH - Search (D5)
- R24P5SHP - Shipping (D5)
- R24P5SIP - Shipping Info (D5)
Controller: EngineeringController.java (REST-based, not IMS)
Functions:
- Download Calibration (basecal/process)
- Release Calibration
- Batch job execution (r24kd500.sh, r24kd505.sh)
- File splitting/decompression/decryption
JSP Files:
- engineering/engineering-main.jsp
- engineering/download-calibration.jsp
- engineering/release-calibration.jsp
Data Sources:
- V2DdecCalibrationSplitter - DAT file parsing
- R24kd500shDownloadRequestBuilder - Download requests
- R24kd505shReleaseRequestBuilder - Release requests
¶ Path 1: Search and Display Unit (Read-Only)
R24PMENU (Main Menu)
-> R24PALHP (Find) [D3fd01Form]
-> D3fd02Form (Results)
-> D3fd05Form (Select Unit)
-> R24PDSUN (Display) [D3cu01Form - Protected]
-> Navigation: PF1-PF16 through D3cu01-D3cu16
-> R24PMENU (Return to menu)
¶ Path 2: Search and Change Unit
R24PMENU
-> R24PALHP (Find) [D3fd01Form]
-> D3fd02Form (Results)
-> D3fd05Form (Select)
-> R24PCHUN (Change) [D3cu01Form - Editable]
-> Navigate: D3cu01 -> D3cu02 -> ... -> D3cu06
-> Change screens: D3cu11 -> D3cu12 -> ... -> D3cu16
-> Validation against ACS (Application Control Switch)
-> Update database: R24YUNIT, R24YICHA (history)
-> R24PMENU (Return)
R24PMENU
-> R24PSLHP (Select HP) [D3hp01Form]
-> D3hp02Form (Enter unit numbers)
-> D3hp03-D3hp05 (Select new group)
-> Query EBOM database (groups/horsepower)
-> D3hp08-D3hp09 (Confirm)
-> R24PCFHP (Confirm HP) [For DDEC III]
-> Update SDD3UNIT (group field)
-> Insert SDD3HIST (old group)
-> R24PMENU
R24PMENU
-> R24PADUN (Add Unit) [D3au01Form - D3au04Form]
-> Enter model/application
-> Validate against EBOM
-> R24PCHUN (Change/Complete) [D3cu01-D3cu16 - Editable]
-> Fill in all unit details
-> Insert to R24YUNIT
-> Insert to R24YRECV
-> R24PMENU ("Add Successful")
R24PMENU [D5 check enabled]
-> R24P5CHN (DDEC V Change Unit) [D3cu11-D3cu16 - Different tables]
-> Display/Change R24Y5UNT (D5 unit)
-> R24PMENU
R24PMENU (PF7)
-> R19PD2MU (DDEC II Menu) [D2mu01Form]
-> Select operation:
-> R19PD2U1-R19PD2U5 (Change Unit by App) [D2u1-D2u5]
-> R19PD2AD (Add Unit) [D2ad02-D2ad05]
-> R19PD213 (Uprate) [D21302-D21303]
-> R19PD214 (History) [D21402-D21405]
-> Operate on SDD2UNIT, SDD2HIST
-> Return to menu
Display Screens (Read-Only):
- D3cu*/D3ch* with all fields protected
- D2u*/D2d* numbered 02, 03, 04 (display variants)
- D3fd* (search/selection)
Entry/Update Screens (Editable):
- D3cu* (when in change mode)
- D3au* (add unit)
- D3ch* (change history tracking)
- D2u*, D2ad*, D2ca* (DDEC II changes)
Navigation Screens:
- D3hp* (horsepower selection flow)
- D3fd* (search/find results)
- D2mu* (DDEC II menu)
- R24YUNIT - Unit master record -> SDD3UNIT
- R24YRECV - Receiving inventory -> SDD3RECV
- R24YSPPM - Special parameters -> SDD3PROG
- R24YICHA - Input change history -> SDD3HIST
- R24YOCHA - Output change history -> SDD3HIST
- R24YACSW - Application control switch -> R24NA7US
- R24YACSL - Application code list -> R24NA9US
- R24YSSAS - SSA status area
- R24YPCB - DDEC III database PCB
- R24Y5UNT - D5 unit record -> SDD5UNIT
- R24Y5SSA - D5 SSA area
- R24Y5PCB - D5 database PCB
- SDD2UNIT - D2 unit master
- SDD2HIST - D2 unit history
- R19YBSSA - D2 SSA area
- R19YD204, R19YD213 - D2 PCBs
- Mgaprgra - Model year program -> MGAPROOT
- Cmpntseg - Component segment -> CMPNTSEG
- Ppi19100, Ppi19106, Ppi19112 - Program information
Screen model files use IMS MFS naming:
- MOD (Message Output Descriptor) - Server sends to browser
- MID (Message Input Descriptor) - Browser sends to server
- Fields use 8-character names (e.g., UNIT, MODL, CUST)
- Error fields: field name + "E" suffix (e.g., UNITE, MODLE)
Example from D3cu01moScreenVars.java:
USERID, LTERM, TDATE, TTIME (header info)
UNIT, MODL, CUST, BLDDT, ORDER (unit data)
APPLCD, APPL, BASECD, BASEDS (application)
HPCODE, HPDESC (horsepower)
TRANS, MAXRPM, HOTIDL, CRUISE, etc. (engine parameters)
PGMMSG, TITLE, HWRKPR (control fields)
Terminal Properties Files:
/config/terminals-master.properties - Master terminals
/config/terminals-general.properties - General terminals (~700 allocations)
/config/terminals-netmenu.properties - Network menu
/config/terminals-pdc.properties - PDC terminals (~100 allocations)
Each maps terminal IDs to transaction codes (e.g., R24PMENU, R24PCHUN, etc.)
- COBOL-to-Java Conversion: All R24 programs are converted COBOL (via DXC 2023) with IMS DLI calls translated to Java framework calls
- Three-Version Support: System maintains backward compatibility with DDEC II while supporting DDEC III primary and DDEC V new systems
- Change Audit Trail: All updates create history records (YICHA/YOCHA) for audit purposes
- Application Control System (ACS): Field updateability determined by model and application code, not just user role
- Horsepower Management: Separate workflow through EBOM database for group selection and confirmation
- Engineering Functions: Modern REST-based controller separate from legacy IMS transactions
- Screen Numbering: 01-06 for primary 6-screen sets; 10-16 for alternate/detail views
- PFKEY Navigation: 24 function keys per screen for inter-screen navigation