OutSystems Professional Developer study materials
OutSystems Professional Developer study resources

OutSystems Professional Developer flashcards

OutSystems Professional Developer · Build recall with a focused review session.

34 cards. Read the term and the definition here. The deck at the top of this page is optional.

Module Layers
OutSystems organizes modules into layers: End-User, Core, Foundation, Library. A module may reference only its own layer or the layer directly below, preventing upward dependencies.
Strong vs Weak Reference
A strong reference creates a compile-time dependency and propagates impact analysis. A weak reference resolves at runtime and breaks circular dependencies between modules.
Entity vs Structure
An Entity is a persisted database table with CRUD actions. A Structure is an in-memory composite type with no persistence, used for parameters and complex data.
Expose Read Only
An entity property that lets consumer modules read records but blocks Create, Update, and Delete actions from those consumers, enforcing data ownership in the producer.
Multi-Tenant Module
A module with 'Is Multi-Tenant' enabled. The platform automatically filters exposed entity data by the current TenantId, isolating each tenant's records.
Service Module Purpose
A Service Module exposes server actions, entities, and structures to other modules. It contains business logic and is typically referenced by Core or End-User modules.
Architecture Canvas
A Service Studio/Service Center view that visualizes module dependencies and layer placement, helping detect circular references and layer violations across the application.
Screen Lifecycle Order
Reactive Web screen events fire OnInitialize, then OnReady, then OnRender (possibly multiple times), then OnDestroy when the screen is left.
Screen Aggregate
A server-side query bound to a screen or block. It runs automatically on screen load; Max Records and Start Index control paging and result size.
Data Action
A server-side action callable from client-side logic. It accepts and returns only serializable types, not entity references or binary data.
Exception Handler Element
A flow element that catches errors by type. 'All Exceptions' catches unhandled types; LogMessage records details to the platform log.
Commit Property
An entity action setting that persists changes immediately rather than at the end of the request, useful when later logic depends on the saved record.
Registered and Anonymous Roles
Two built-in roles. 'Registered' applies to authenticated users; 'Anonymous' applies to unauthenticated visitors. Screen Roles property enforces access before render.
Client Action vs Server Action
Client Actions run in the browser and cannot call Server Actions directly. Server Actions run on the server and can read session and local variables.
Aggregate Fetch
The Fetch action runs an aggregate manually when it is not auto-executed, such as inside a Client Action or after a conditional branch.
MABS Runtime
Mobile Application Backend Services. The runtime that builds and serves native mobile apps, hosting the JavaScript/Reactive UI inside a native shell.
Offline Entity
An entity marked 'Offline' in a Mobile module. It is cached in the device SQLite database and synced incrementally when connectivity returns.
Offline Sync Conflict
When local and server records diverge, the default resolution is last-write-wins based on Last Modified timestamp. Custom logic can override this behavior.
Mobile Plugin
A compiled native extension (Cordova/Capacitor wrapper) referenced by a Mobile module. It exposes Client Actions to access device capabilities.
MAB and MIP Packages
Build outputs for mobile apps: MAB for Android, MIP for iOS. Generated via MABS build; required to install on a device or emulator.
Network Status Check
A built-in check (CheckNetworkStatus or NetworkStatus variable) that reports connectivity so logic can branch between offline and online behavior.
Navigate Client Action
A client-side action that routes to another screen programmatically, optionally passing input parameters and controlling transition animation.
Reactive Virtual DOM
Reactive Web renders via a virtual DOM and updates only bound variables that change. Direct DOM manipulation bypasses this and can cause inconsistent UI.
Block Widget
A reusable UI component with input parameters, events, and placeholders. It encapsulates markup and CSS for reuse across screens.
CSS Cascade Order
Styles cascade Theme, then Layout, then Screen, then Block. An inline Style attribute on a widget has the highest specificity and overrides all.
Ajax Refresh
Re-runs an aggregate and refreshes a bound widget without a full page reload. 'Refresh Data' instead re-runs all screen data sources.
OutSystems UI Patterns
A library of prebuilt UI patterns (Card, List, Tabs, Carousel) and utility classes. Use them before writing custom CSS for consistency.
Client vs Local Variable
Client Variables persist in browser storage and are shared across screens. Local Variables are scoped to a single screen or action.
Sensitive Attribute
An entity attribute marked 'Sensitive' is encrypted at rest. Use it for personal or confidential data that must not be stored in plaintext.
CheckUserRole Action
An auto-generated system action per entity that enforces CRUD permissions based on the current user's roles before allowing the operation.
SQL Injection Defense
OutSystems parameterizes aggregates and SQL widgets automatically. Never concatenate user input into the SQL widget property, which would bypass this protection.
CSRF Token
Reactive Web screens include an anti-CSRF token automatically. Custom AJAX endpoints must validate it to prevent cross-site request forgery.
Session Timeout Setting
Configured in Service Center. It defines how long an idle session stays valid; InvalidateSession on logout clears it immediately.
Entity Audit
An entity option that logs Create, Update, and Delete operations with user and timestamp. Logs are viewed in Service Center under Monitoring.