OutSystems Associate Developer study materials
OutSystems Associate Developer study resources

OutSystems Associate Developer cheat sheet

OutSystems Associate Developer · Keep the key ideas within reach.

Quick reference

Fundamentals of OutSystems Web App Development

  • A web app is composed of modules; a module holds the screens, logic, data entities, and UI flows for one functional area.

  • Screen lifecycle events run in order: Initialize, Prepare, Render; Ready fires on the client after the screen is displayed.

  • Aggregate fetches data from the database and exposes it as a Record List; its Output must be assigned to a screen variable to persist.

  • A Server Action runs on the server and can query the database; a Client Action runs in the browser and cannot directly access the database.

  • Input Parameters pass data into a Screen or Action; Output Parameters return data from an Action to its caller.

  • A Session Variable persists for the user's session and is shared across screens; a Screen Variable is scoped to one screen instance.

  • A Site Property is a runtime-configurable value editable in Service Center without redeploying the module.

  • Roles and their permissions are defined per module; screen access is granted by adding the Role to the screen's Roles property.

  • The Web Blocks are reusable UI components; a Block has its own scope and communicates via Input and Event parameters.

Quick reference

Fundamentals of OutSystems Mobile App Development

  • A mobile app module produces a native shell that renders screens locally; offline behavior depends on local storage entities.

  • Mobile screens use the same lifecycle order (Initialize, Prepare, Render, Ready) but Prepare runs on the device, not the server.

  • Offline Data Sync synchronizes local entities with the server; entities are marked with the appropriate sync behavior in the data model.

  • Client Variables persist on the device across app restarts; Screen Variables live only while the screen instance exists.

  • Navigation in mobile apps uses the destination Screen plus optional Input Parameters; back-stack behavior is platform-managed.

  • Mobile apps cannot use server-side Screen Aggregates in offline mode; use local entities and client-side logic instead.

  • The Mobile UI patterns (List, Detail, Edit) map to standard screen templates that pre-wire navigation and data binding.

  • Plugins expose device capabilities (camera, GPS, notifications); each requires a plugin reference and a build that includes it.

  • A mobile module must be generated and installed on a device or emulator; the preview in the browser does not reflect native behavior.

Quick reference

ODC Development Basics for New Developers

  • OutSystems Developer Cloud (ODC) organizes work into Apps, each containing one or more Modules of type Web, Mobile, or Library.

  • ODC uses a stage-based deployment pipeline: Development, Test, and Production stages are separate environments.

  • A Library module exposes reusable Actions and Entities but has no screens; it is referenced by other modules.

  • Public Elements (Actions, Entities, Structures) must be exposed in the Producer module before a Consumer module can reference them.

  • ODC uses OIDC-based authentication; end users are managed in the identity provider configured for the organization.

  • Deployments in ODC are triggered per app and promote the whole app's modules together through the pipeline stages.

  • The ODC Portal manages users, roles, apps, and environments; the ODC Studio is the IDE used to build modules.

  • Entity attributes have data types; the Identifier attribute is auto-generated and uniquely identifies each record.

  • Server Actions in ODC run in the app's runtime; long-running logic should avoid holding database transactions open.

Quick reference

Building Simple Web and Mobile Apps

  • Start a new app from a template (e.g., Reactive Web or Mobile) to pre-generate screens, theme, and navigation.

  • Create Entities first, then Aggregates to read them, then Screens that bind Aggregate outputs to widgets.

  • Use a Form with an Entity input to create or update records; the Save action persists the record and returns the identifier.

  • A List widget bound to a Record List renders one row per record; use List Item for the row template.

  • Validation: set Mandatory and data-type constraints on inputs; server-side validation runs in the Save action.

  • For delete flows, pass the record Identifier as an Input Parameter and call the Delete Entity action.

  • Use If widgets for conditional rendering and the built-in feedback messages for success and error states.

  • Reuse UI via Blocks; pass data with Input Parameters and raise Events to notify the parent screen.

  • Test by publishing the module, then use the generated screens in the browser or device; check the debugger for runtime errors.