BlogGitHub
Start Here Key Concepts Learn the package layout, singleton facades, typed interfaces, fluent APIs, immutability, and exception model.

Package Layout

The root package /ORK/CORE contains base runtime objects, exceptions, UUIDs, semantic version helpers, and package-level infrastructure.

Feature packages group larger domains: /ork/json, /ork/date_time, /ork/io, /ork/formatting, /ork/collections, and /ork/dev.

Facades And Factories

The library favors small public facades with static creation methods.

JSON exposes singleton references through /ork/cl_json=>new and /ork/cl_json=>parse; date/time, duration, UUID, and SemVer APIs use similar s_new, s_parse, or s_get factory naming.

DATA(json_factory) = /ork/cl_json=>new.
DATA(version) = /ork/cl_semver=>s_parse( `1.2.3` ).
DATA(uuid) = /ork/cl_uuid=>s_new( ).

Runtime Version

Use /ork/core=>version to inspect the ORK core version currently active in the ABAP system.

The value is a shared /ork/cl_semver instance, so you can render it as text or inspect its SemVer components.

DATA(version) = /ork/core=>version->to_string( ).

For release notes and migration context, read the Changelog.

Typed Interfaces

Most behavior is consumed through interfaces. Classes provide creation and infrastructure; interfaces describe the stable shape of the returned objects.

This keeps calling code focused on capabilities like /ork/if_json_node, /ork/if_date_time, /ork/if_logger, or /ork/if_io_stream.

Fluent And Immutable APIs

Where it improves composition, methods return a new value or the current interface so calls can be chained.

Logger instances are immutable, so contextual methods return a logger with additional scope instead of mutating the existing logger.

Exceptions

Library-specific failures use /ork/cx_exception.

Let those exceptions surface when the caller can handle the domain failure, and wrap them only when your application boundary needs a different error contract.