Backend
Introduction
OERA (OpenEdge Reference Architecture) is the backbone of the SmartComponentLibrary backend. Consultingwerk delivers an object‑oriented OERA implementation (Consultingwerk\OERA) that standardizes how you define and access Business Entities and Business Tasks, and how clients talk to them via the Service Interface/Service Adapter.
In this backend model, Business Entities encapsulate data‑centric logic (datasets, CRUD, queries) and Business Tasks encapsulate process and orchestration logic. All SmartFramework UIs and integration layers – including PASOE REST handlers and JSDO/Kendo UI clients – ultimately call into these OERA services. This gives you a single, consistent backend that can be reused from desktop, web, and REST clients without duplicating business logic, and provides a clean separation between UI, service layer, and database access.
- Alternative DsQueryString implementation to simplify Data Access filtering on session values
- BY-REFERENCE Access to Business Entity FetchData
- Context Dataset and Context Wrapper
- DatasetModel QueryStyle property
- Enable and disable "Split Array Fields into separate fields"
- Enforcing an index selection for a ProDataset child tables DATA-SOURCE query
- ExcelWorksheetExporter and Importer using OpenXML Libraries
- Filtering in a Data Access class on a table that is not part of the (default) data-source
- Filtering on calculated fields
- Generic Factory Service
- How to fill a Dataset with an inner join between tables?
- Implement logical application locks
- JsonSerializable classes
- Knowing when a new record is a copy of another record while saving the new record on the backend
- Named Queries
- New API for dynamic DATA-SOURCE objects
- .NET Value object to ABL Temp-Table mapping
- Sending Emails using the EmailMessage class (Windows only)
- Strong-typed Query Support
- Switching the Buffer sequence on a DATA-SOURCE in a DataAccess class
- Telemetry Service
- Using Consultingwerk foreach includes
- Using DatasetController for developing static (client side) code accessing and manipulating ProDatasets
- Using DatasetModel classes to simplify data access from custom code
- Using Views with Model classes