Browse documentation

Custom Actions

Use typed actions and table customizers to add application behavior.

Choose the extension point

Use a BackendStep for process business logic. Use the table customizer interfaces for behavior around CRUD operations. Use a backend module when the storage operation itself changes. Ordinary application services can remain ordinary Java classes.

Table customizers

The extension template demonstrates registration around table behavior. For an insert customizer, inspect AbstractPreInsertCustomizer and its preInsert method, which receives the insert input and record list. Validation errors should follow the action's record/error contract; test both accepted and rejected records.

Start with qbit-template-extension. Its example is a scaffold: implement the intended behavior, register it on the target tables, and verify the resulting action pipeline in the host application.

Context and safety

QQQ action input/output classes are operation-specific. Read the actual interface before overriding a method, and ensure QContext contains the intended instance/session. Preserve permissions, audit behavior, transactions, and error propagation when wrapping existing actions.

See processes, testing, and the 4.0 migration guide.

Powered by qqq