Appearance
Business Logic Designer
What is it?
Business logic is what your organization does with data: calculate, check, decide, notify, assign, approve. In Studio it is built from a small set of declared pieces, not code.
When to use which
| Need | Use |
|---|---|
| Reject or default a value on save | a rule (before create / update) |
| Compute a field | a computed field on the entity, or a rule that sets a value |
| Something after a save (start approval, run a service) | a rule (after create / update) |
| Reusable check | a validation in the library |
| Multi-step, multi-person | a workflow |
| On a schedule | a job |
| Anything else | a code extension |
Building blocks
- Conditions: field comparisons (
eq,ne,gt,in,is null...), combined withall/any. - Expressions: formulas over fields and variables, evaluated by the expression engine (see the reference).
- Variables and calculations: page and form variables, computed fields.
- Actions: reject, set a value, start a workflow, execute a service, call an API, send a notification, navigate, open a dialog.
- Database operations through entity records; assignments and approvals through workflows; notifications through templates.
Execution
Rules run synchronously inside the save, so a rejection cancels it. Workflows, jobs and events run asynchronously. Extension calls have a 2-second timeout and a circuit breaker.
Planned (placeholders)
- A visual logic builder with loops, variables and a data-flow canvas for reusable functions. Planned.
- Transactions, retry, timeout and compensation settings per logic block. Planned (workflows already have SLA timers and escalation).
- Python and Node.js extension hooks beyond service-mode plugins. Planned.
Example
Loan created with deposit over 500: rule after create starts loan-approval. Rule before update rejects a change of borrower once the loan is returned.
Security and testing
Rules run with the caller's tenant; authoring needs the Studio role. Test with test cases and workflow Simulate.
Troubleshooting
A rule "does nothing": wrong trigger event, or the condition compares a field name that differs. Two rules setting one field: last wins; keep one owner.
