Files
Joseph Doherty 604bfe919c refactor: address code review findings across all projects
Apply comprehensive fixes from code reviews including:
- Extract shared utilities (SqlFormatHelper, CellValueConverter, DbDestinationBase)
- Add interface abstractions (IAuthenticationService, IDatabaseMigrator, IMisQueryBuilder)
- Implement SecureStore for encrypted secrets storage
- Fix error handling with proper HTTP status codes and logging
- Optimize double enumeration in DevEtlRegistry
- Add DataSync.Dev README for developer onboarding
- Extract filter panel base classes to reduce duplication
- Update code review docs to mark all issues as fixed
2026-01-19 11:05:36 -05:00

5.0 KiB

Database Status Codes and Enums

This document provides centralized documentation for all status codes and enums used in the JDE Scoping Tool database and application.

Search Status (SearchStatus Enum)

The SearchStatus enum tracks the lifecycle of a search request.

Source: JdeScoping.Core/Models/Enums/SearchStatus.cs

Value Name Description
0 New Search created but not submitted
1 Queued Search submitted, waiting for processing
2 Running Search actively processing
3 Ended Search completed successfully
4 Error Search processing failed

State Transitions

┌─────────┐    submit    ┌─────────┐   picked up   ┌─────────┐
│   New   │ ───────────> │ Queued  │ ────────────> │ Running │
└─────────┘              └─────────┘               └────┬────┘
                                                        │
                                             ┌──────────┴──────────┐
                                             │                     │
                                        success                  failure
                                             │                     │
                                             v                     v
                                       ┌─────────┐           ┌─────────┐
                                       │  Ended  │           │  Error  │
                                       └─────────┘           └─────────┘

Transitions

From To Trigger
New Queued User clicks "Run Search"
Queued Running Worker service picks up search
Running Ended Search completes successfully, results stored
Running Error Exception during processing

Notes

  • Status stored in Search.Status column (tinyint)
  • SignalR hub broadcasts status changes in real-time
  • Error details stored in Search.ErrorMessage when status = Error

Data Update Types (UpdateTypes Enum)

The UpdateTypes enum categorizes data synchronization jobs.

Source: JdeScoping.Core/Models/Enums/UpdateTypes.cs

Value Name Description Typical Schedule
1 Hourly Incremental delta sync Every hour
2 Daily Daily refresh Once per day (overnight)
3 Mass Full table refresh Weekly or on-demand

Usage

The DataUpdate table tracks the last sync time for each entity and update type:

SELECT EntityName, UpdateType, LastUpdateDt
FROM DataUpdate
WHERE UpdateType = 1  -- Hourly updates
ORDER BY LastUpdateDt DESC

Notes

  • Value 0 is not defined (avoids default int confusion)
  • Mass updates typically run during maintenance windows
  • Hourly updates capture recent work order completions

JDE Status Codes (StatusCode Lookup Table)

Work order status codes synchronized from JD Edwards (JDE) system.

Entity: JdeScoping.Core/Models/Lookup/StatusCode.cs Table: StatusCode

Table Structure

Column Type Description
Code varchar(10) Status code identifier
Description varchar(100) Human-readable description
LastUpdateDate int JDE Julian date of last update
LastUpdateTime int JDE time of last update

Common JDE Status Codes

Code Description
10 Work Order Created
20 Parts Issued
40 Work In Progress
90 Closed
95 Cancelled
99 Purged

Note: Actual codes vary by JDE configuration. The values above are examples; refer to your JDE system administrator for the authoritative list.

Synchronization

  • Source: JDE F0004 / F0005 User Defined Codes tables
  • Sync frequency: Daily
  • Pipeline: StatusCodePipeline in DataSync project

Database Column Mappings

Search Table Status Column

CREATE TABLE Search (
    Id INT PRIMARY KEY,
    Status TINYINT NOT NULL DEFAULT 0,  -- Maps to SearchStatus enum
    -- ... other columns
);

DataUpdate Table Type Column

CREATE TABLE DataUpdate (
    Id INT PRIMARY KEY,
    EntityName VARCHAR(100) NOT NULL,
    UpdateType TINYINT NOT NULL,  -- Maps to UpdateTypes enum
    LastUpdateDt DATETIME2 NOT NULL,
    -- ... other columns
);

See Also