Skip to content
EN FR

Runtime recipes

Documentation status: guide — see Maturity and evidence.

These recipes summarize recurring runtime operations while keeping implementation classes out of the public surface.

Create a conceptual object

item := ObjectsContainer.CreateObjectItem('app#work_item', 1, '');
item.Name := 'Example';
item.PostData();

The concept identifier determines what is created. The developer does not construct a historical runtime class directly.

Resolve a concept

Resolve a class/concept by its stable conceptual identifier when an action must work at type level. Keep the identifier in configuration or metadata rather than embedding implementation class names.

Work with a provider through a DataSet

items := Self.PageControler.DataSetsManager.DataSetByName('Items');
items.Refresh();

The view works through the DataSet/provider abstraction rather than owning a database, HTTP, or RPC protocol directly.

Persist through the normal object contract

item.Name := 'Updated';
item.PostData();

Page validation and model constraints should run through the normal lifecycle instead of being bypassed by a direct storage write.

Execute a process

process := ObjectsContainer.CreateObjectItem('app#approval_process', 1, '');
process.Subject := item;
process.Start();

The process owns cross-object coordination.

Build/send events

Prefer declared event mappings and PageControler/runtime event facilities. Carry semantic source, sender, and parameters explicitly; do not encode component ids or implementation classes in event names.