OERA Class Reference
OERA Class Reference
This section provides detailed reference documentation for the key classes, interfaces, and enumerations in the Consultingwerk.OERA package and its sub-packages.
Package Structure
The Consultingwerk.OERA package is organised into the following areas:
Area | Description |
|---|---|
Core Interfaces | Fundamental contracts ( |
Business Entity & Business Task Base Classes | Abstract base classes for the server-side OERA layer |
Data Access Layer |
|
Dataset Model & Table Model | Client-side ORM wrappers ( |
Request & Parameter Objects |
|
Context & Session Management |
|
Service Interface & Service Manager |
|
Business Entity Descriptor | Annotation-driven metadata service for Business Entities |
Dynamic Business Entity | Runtime-generated Business Entities driven by model definitions |
CCS Query Integration |
|
Enumerations & Support Types | All OERA-specific enumerations |
Architecture Overview
The SmartComponent Library OERA layer follows a strict three-tier pattern:
┌─────────────────────────────┐
│ Client (UI / Custom Code) │
│ DatasetModel / TableModel │
└─────────────┬───────────────┘
│ FetchData / SaveChanges
▼
┌─────────────────────────────┐
│ ServiceInterface / Adapter │
│ IServiceManager │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ Business Entity (server) │
│ IBusinessEntity │
└─────────────┬───────────────┘
│ FetchData / SaveChanges
▼
┌─────────────────────────────┐
│ Data Access (IDataAccess) │
│ BufferDataSource / DataSrc │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ OpenEdge Database │
└─────────────────────────────┘Key Design Principles
ProDataset-centric: all data transport between layers uses OpenEdge ProDatasets (handle-based or strongly-typed).
Interface-driven: every layer is coded against an interface, making layers independently testable and replaceable.
Singleton services: Business Entities and Business Tasks retrieved via
ServiceManager/get-businessserviceare session singletons managed by the framework — callers must not delete them.Fluent API:
DatasetModelandFetchDataRequestboth support method-chaining for compact, readable client code.Transport transparency:
DatasetModelautomatically switches between directServiceInterface(same session, databases connected) and remoteServiceAdapter(AppServer/PASOE) based onNUM-DBSor explicit configuration.