99 lines
8.3 KiB
Markdown
99 lines
8.3 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/TestObjectFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/CustomDirectionFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/CustomFinLoc2Fields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/CustomFinLoc1Fields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/CustomFinLoc3Fields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/CustomFilterFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/PositionFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/MainLocationFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/PhysicalDimensionFields.cs
|
||
|
|
- Common/DTS.CommonCore/Enums/DBExport/TopLevelFields.cs
|
||
|
|
generated_at: "2026-04-16T02:43:28.798360+00:00"
|
||
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "fd04c3848328d69e"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: DBExport Enumerations
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines a set of strongly-typed enumerations used to represent field names (tags) for various database-exported objects in XML or structured data formats. These enums serve as canonical identifiers for fields associated with core domain entities—such as test objects, locations (fine and main), filters, positions, physical dimensions, and directions—within the DTS (Data Transfer System) ecosystem. They ensure consistency across serialization/deserialization logic, mapping XML element names or database column aliases to compile-time-safe identifiers, and are likely consumed by data export/import modules (e.g., XML exporters, database mappers, or UI binding layers).
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
All public members are `public enum` types in the `DTS.Common.Enums.DBExport` namespace.
|
||
|
|
|
||
|
|
### `TestObjectFields`
|
||
|
|
- **Members**: `s_GUID`, `TEST_OBJECT`, `TEXT_L1`, `TEXT_L2`, `VERSION`, `DATE`, `REMARKS`, `EXPIRED`, `SORTKEY`, `LAST_CHANGE`, `LAST_CHANGE_TEXT`, `HISTORY`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.TestObject` entities.
|
||
|
|
|
||
|
|
### `CustomDirectionFields`
|
||
|
|
- **Members**: `Direction`, `Expired`, `History`, `Last_Change`, `Last_Change_Text`, `Remarks`, `GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MMEDirection` entities.
|
||
|
|
|
||
|
|
### `CustomFinLoc1Fields`
|
||
|
|
- **Members**: `Date`, `Expired`, `Fine_Loc_1`, `History`, `Last_Change`, `Last_Change_Text`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.FineLocation1` entities.
|
||
|
|
|
||
|
|
### `CustomFinLoc2Fields`
|
||
|
|
- **Members**: `Date`, `Expired`, `Fine_Loc_2`, `History`, `Last_Change`, `Last_Change_Text`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.FineLocation2` entities.
|
||
|
|
|
||
|
|
### `CustomFinLoc3Fields`
|
||
|
|
- **Members**: `Date`, `Expired`, `Fine_Loc_3`, `History`, `Last_Change`, `Last_Change_Text`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MMEFineLocation3` entities.
|
||
|
|
|
||
|
|
### `CustomFilterFields`
|
||
|
|
- **Members**: `Date`, `Expired`, `Filter_Class`, `History`, `Last_Change`, `Last_Change_Text`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MME_FilterClass` entities.
|
||
|
|
|
||
|
|
### `PositionFields`
|
||
|
|
- **Members**: `Date`, `Expired`, `History`, `Last_Change`, `Last_Change_Text`, `Position`, `RecordType`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MMEPositions` entities.
|
||
|
|
|
||
|
|
### `MainLocationFields`
|
||
|
|
- **Members**: `Date`, `Expired`, `History`, `Last_Change`, `Last_Change_Text`, `Picture_ShortName`, `Remarks`, `S_GUID`, `SortKey`, `Text_L1`, `Text_L2`, `Trans_Main_Loc`, `Type`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MMETransducerMainLocation` entities.
|
||
|
|
|
||
|
|
### `PhysicalDimensionFields`
|
||
|
|
- **Members**: `Amount_Of_Substance_EXP`, `Date`, `Default_Unit`, `Electric_Current_EXP`, `Expired`, `History`, `Last_Change`, `Last_Change_Text`, `Length_EXP`, `Luminous_Intensity_Exp`, `Mass_EXP`, `Physical_Dimension`, `RecordType`, `Remarks`, `S_GUID`, `SortKey`, `Temperature_EXP`, `Text_L1`, `Text_L2`, `Time_EXP`, `Version`
|
||
|
|
- **Purpose**: Represents field names for `ISODll.MMEPhysicalDimension` entities.
|
||
|
|
|
||
|
|
### `TopLevelFields`
|
||
|
|
- **Members**: `CustomerDetails`, `TestEngineerDetails`, `LabDetails`, `DASList`, `SensorModels`, `Sensors`, `Calibrations`, `CustomDirections`, `CustomFilterClasses`, `CustomTestObjects`, `CustomFinLoc1s`, `CustomFinLoc2s`, `CustomFinLoc3s`, `CustomMainLocs`, `CustomPhysicalDimensions`, `CustomPositions`, `CustomChannels`, `GroupTemplates`, `Groups`, `TestSetups`, `Users`, `GlobalSettings`, `SensorChangeHistory`
|
||
|
|
- **Purpose**: Represents top-level XML element names (root tags) in exported data structures. Includes a comment indicating `SensorChangeHistory` was introduced in version 7.
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- **Consistent casing and naming**: All enum members use `PascalCase` for multi-word identifiers (e.g., `Last_Change`, `Fine_Loc_1`, `Amount_Of_Substance_EXP`). Underscores are used to separate words or components (e.g., `Last_Change_Text`, `Electric_Current_EXP`).
|
||
|
|
- **Field name alignment**: For most entity-specific enums, the following fields appear consistently: `S_GUID`/`GUID`, `DATE`, `VERSION`, `EXPIRED`, `HISTORY`, `LAST_CHANGE`, `LAST_CHANGE_TEXT`, `REMARKS`, `SORTKEY`, `TEXT_L1`, `TEXT_L2`. Notable exceptions:
|
||
|
|
- `TestObjectFields` uses `s_GUID` (lowercase `s`) instead of `S_GUID`.
|
||
|
|
- `MainLocationFields` includes `Picture_ShortName`, `Trans_Main_Loc`, and `Type` instead of `Fine_Loc_*` fields.
|
||
|
|
- `PhysicalDimensionFields` includes SI base unit exponent fields (`Length_EXP`, `Mass_EXP`, etc.) and `Default_Unit`, `RecordType`.
|
||
|
|
- `PositionFields` includes `RecordType` and `Position`.
|
||
|
|
- **Top-level enum scope**: `TopLevelFields` enumerates *only* root-level XML elements, not nested fields. Its values map to container elements in the XML schema.
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
- **Namespace usage**: All enums reside in `DTS.Common.Enums.DBExport`, implying they are part of a shared `DTS.CommonCore` library.
|
||
|
|
- **External references (inferred)**: Each enum is explicitly documented as mapping to an `ISODll.*` type (e.g., `ISODll.FineLocation1`, `ISODll.MME_FilterClass`). This suggests a dependency on the `ISODll` native or interop library (likely containing COM or P/Invoke definitions).
|
||
|
|
- **Consumers (inferred)**: These enums are likely used by:
|
||
|
|
- XML serialization/deserialization logic (e.g., custom `XmlSerializer`-based exporters/importers).
|
||
|
|
- Database export modules (e.g., `DTS.Export` or `DTS.DataExport`).
|
||
|
|
- UI components that bind to field names (e.g., grid column headers, filter builders).
|
||
|
|
- Code generators or template engines that produce XML schemas or data contracts.
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
|
||
|
|
- **Inconsistent GUID field naming**: `TestObjectFields` uses `s_GUID`, while all other location/filter enums use `S_GUID` or `GUID`. This may cause mismatches if logic assumes uniformity (e.g., case-insensitive matching or pattern-based field resolution).
|
||
|
|
- **Mixed underscore usage**: Some fields use underscores in the middle (`Last_Change`, `Fine_Loc_1`), while others do not (`Date`, `Version`). This is likely intentional but may confuse developers expecting consistent naming.
|
||
|
|
- **`S_GUID` vs `GUID`**: `CustomDirectionFields` uses `GUID`, while others use `S_GUID`. This inconsistency could lead to bugs if field resolution is case- or prefix-sensitive.
|
||
|
|
- **`PhysicalDimensionFields` exponent naming**: Exponent fields use inconsistent casing (`Length_EXP`, `Luminous_Intensity_Exp`, `Electric_Current_EXP`). The last two differ in suffix casing (`_Exp` vs `_EXP`). This may reflect legacy naming or external schema requirements but is error-prone.
|
||
|
|
- **`TopLevelFields` includes `CustomTestObjects` but no corresponding `TestObjectFields` enum member is named `CustomTestObjects`**: This enum is for *root tags*, not field names, but the naming similarity could cause confusion.
|
||
|
|
- **No documentation for field semantics**: The enums define *names*, not meanings. For example, `Expired` likely indicates soft-deletion status, but this is not stated. Consumers must infer or reference external documentation.
|
||
|
|
- **`SensorChangeHistory` comment**: The inline comment `//introduce in V7,` and `//15390 Store the ZMO in EU in the DataPRO DB` suggest a version-specific addition. Developers working with older versions may encounter missing support or unexpected behavior if this enum value is used unconditionally.
|
||
|
|
|
||
|
|
None identified beyond the above.
|