OutSystems Delivery Specialist study materials
OutSystems Delivery Specialist study resources

OutSystems Delivery Specialist practice questions

One question at a time. Build your OutSystems Delivery Specialist understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Exam content domain 1 (not enumerated in source)

In the OutSystems platform, which construct is the recommended way to expose reusable server-side business logic that can be called from multiple screens and other server actions within the same module?

  1. A Client Action
  2. A Screen Action
  3. A Server Action Correct answer.
  4. A Preparation

Explanation

Server Actions run on the server and can be reused across screens, other server actions, and service actions within a module, making them the standard place for shared business logic. Screen Actions and Preparations are bound to a specific screen, and Client Actions run in the browser without server-side execution.

Question 2Exam content domain 1 (not enumerated in source)

A developer wants to store a reference to a single Customer record inside an Order entity so the order is linked to that customer. Which attribute data type should be used?

  1. Customer Identifier Correct answer.
  2. Customer Integer
  3. Customer Binary Data
  4. Customer Text

Explanation

An Entity Identifier data type creates a foreign-key reference to another entity, which is exactly how OutSystems models a relationship between Order and Customer. A Text or Integer attribute would store a raw value without enforcing referential integrity to the Customer entity.

Question 3Exam content domain 1 (not enumerated in source)

Which OutSystems screen lifecycle action is executed before the screen renders and is the standard place to aggregate data for display?

  1. On Initialize
  2. Preparation Correct answer.
  3. On Ready
  4. On Render

Explanation

The Preparation runs before the screen is rendered and is the recommended place to fetch and aggregate data into screen variables and aggregates. On Ready and On Render run later in the lifecycle, and On Initialize is a client-side event that fires when the screen is first created.

Question 4Exam content domain 1 (not enumerated in source)

A developer needs to publish a REST API from an OutSystems module so external systems can create orders. Which element should be created to define the exposed endpoint?

  1. A REST API with a method mapped to a Server Action Correct answer.
  2. A Client Action published as a REST endpoint
  3. A Timer that calls the order creation logic
  4. A Server Action exposed as a Screen Action

Explanation

Exposing a REST API in OutSystems involves creating a REST API element and defining methods that are implemented by Server Actions, which external callers invoke over HTTP. Client Actions, Screen Actions, and Timers cannot serve as REST endpoints.

Question 5Exam content domain 1 (not enumerated in source)

Which OutSystems feature provides a visual, drag-and-drop representation of a business process with human activities, automatic activities, and decision flows?

  1. Structures
  2. Processes (BPM) Correct answer.
  3. Aggregates
  4. Themes

Explanation

OutSystems Processes implement business process modeling with human and automatic activities connected by flows and decisions. Aggregates query data, Structures define in-memory data shapes, and Themes control styling.

Question 6Exam content domain 1 (not enumerated in source)

A developer needs to add a reusable UI component that can be dropped onto multiple screens and configured with input parameters. Which element type should be used?

  1. A Screen
  2. A Web Flow
  3. A Module
  4. A Block Correct answer.

Explanation

Blocks are reusable UI components with their own inputs and logic that can be placed on multiple screens. Screens are full pages, Web Flows group screens, and Modules are deployment containers.

Question 7Exam content domain 1 (not enumerated in source)

Which OutSystems tool is used to promote an application through environments such as Development, Quality, and Production?

  1. LifeTime Correct answer.
  2. Service Studio
  3. The Debugger
  4. Integration Studio

Explanation

LifeTime is the platform console used to manage environments, deploy applications between them, and monitor running applications. Service Studio is the development IDE, Integration Studio extends the platform with custom extensions, and the Debugger is a runtime inspection tool.

Question 8Exam content domain 1 (not enumerated in source)

In OutSystems, which construct is the correct place to validate that a mandatory input field was filled before saving a record?

  1. A CSS style applied to the input field
  2. A comment in the Preparation
  3. A Timer scheduled to check the record later
  4. A validation in the Screen Action before the CreateOrUpdate call Correct answer.

Explanation

Input validation belongs in the logic that handles the save, so the Screen Action should check the input and return an error message before calling CreateOrUpdate. Comments, Timers, and CSS do not enforce data validation.

Question 9Exam content domain 1 (not enumerated in source)

A developer needs an Aggregate that returns only customers whose name starts with a value entered by the user at runtime. Which approach implements this correctly?

  1. Sort the Aggregate by Name and read the first row
  2. Add a filter on the Name attribute using a parameter and the StartsWith function Correct answer.
  3. Create a new Aggregate for each possible prefix
  4. Hard-code the prefix in the Aggregate filter

Explanation

Aggregates support filters that reference input parameters, so a StartsWith filter using a screen input parameter lets the query adapt to user input at runtime. Hard-coding, duplicating aggregates, or sorting alone cannot filter by a dynamic prefix.

Question 10Exam content domain 1 (not enumerated in source)

An application must notify a user by email whenever a new order is created, and the notification must happen reliably even if the user is offline. Where should this logic be placed?

  1. In a Server Action that sends the email and is called after the order is saved Correct answer.
  2. In a Client Action that uses a local variable
  3. In the On Click event of the save button on the client
  4. In the screen Preparation

Explanation

Sending email is server-side logic that must run regardless of the user's browser state, so it belongs in a Server Action invoked after the order is persisted. Client-side actions depend on the user's session, and the Preparation runs before the save occurs.

Question 11Exam content domain 1 (not enumerated in source)

A developer wants to expose only specific attributes of the Customer entity through a REST API without exposing the full entity. What is the recommended approach?

  1. Create a second entity with the same attributes
  2. Expose the entity directly and rely on client filtering
  3. Define a Structure with the desired attributes and map the entity to it in the exposed action Correct answer.
  4. Expose the entity and hide fields in the UI

Explanation

Exposing a dedicated Structure lets you control exactly which attributes leave the module and decouples the API contract from the internal entity. Exposing the entity directly leaks internal fields, and UI-level hiding has no effect on an API response.

Question 12Exam content domain 1 (not enumerated in source)

Which OutSystems mechanism should be used to run a scheduled batch job every night at 02:00 that processes pending invoices?

  1. A Web Block rendered on a page
  2. A Client Action on the home screen
  3. A Screen Action triggered by the user
  4. A Timer with a schedule set to run daily at 02:00 Correct answer.

Explanation

Timers are the platform mechanism for scheduled server-side work and can be configured to run on a recurring schedule such as daily at a fixed time. Screen Actions, Client Actions, and Web Blocks require a user session or page render to execute.

Question 13Exam content domain 1 (not enumerated in source)

A developer needs to call an external SOAP web service that requires authentication credentials stored securely. Which approach is appropriate in OutSystems?

  1. Embed the credentials in a comment in the module
  2. Reference the SOAP web service and configure the authentication in the service definition or via a setting Correct answer.
  3. Hard-code the credentials in a Client Action
  4. Store the credentials in a Text attribute of a public entity

Explanation

OutSystems lets you reference a SOAP web service and configure its authentication, such as basic authentication, in the service definition or through a secure setting rather than in code. Hard-coding or exposing credentials in client logic or public data is insecure.

Question 14Exam content domain 1 (not enumerated in source)

An Aggregate on a screen returns a list of Products. A developer needs to show the total price of all products in the list. Which approach is most appropriate?

  1. Loop over the list in a Client Action and accumulate the total
  2. Add a new entity to store the total
  3. Use the Aggregate's built-in aggregate functions such as Sum on the Price attribute Correct answer.
  4. Create a Timer to compute the total each hour

Explanation

Aggregates can compute aggregate functions like Sum, Count, and Average directly in the query, which is efficient and avoids extra client-side logic. Client-side looping, extra entities, and Timers add unnecessary complexity for a derived value.

Question 15Exam content domain 1 (not enumerated in source)

A developer wants to reuse a set of input parameters and validation logic across several screens without duplicating code. Which OutSystems element best supports this?

  1. A copied Screen Action on each screen
  2. A global CSS class
  3. A separate Web Flow for each screen
  4. A Block with input parameters and its own logic Correct answer.

Explanation

Blocks encapsulate UI and logic with defined inputs, so shared parameters and validation can be defined once and reused across screens. Duplicating Screen Actions or creating separate flows increases maintenance, and CSS cannot carry logic.

Question 16Exam content domain 1 (not enumerated in source)

During a deployment, LifeTime reports that a module has a dependency on another module that is not yet deployed in the target environment. What is the correct action?

  1. Deploy the dependent module first, then deploy the module that references it Correct answer.
  2. Delete the dependency from the module
  3. Recreate the module in the target environment
  4. Ignore the warning and deploy anyway

Explanation

OutSystems enforces module dependencies, so a module cannot be deployed before the modules it references exist in the target environment. Deploying the dependency first resolves the ordering problem. Ignoring, deleting, or recreating does not satisfy the dependency.

Question 17Exam content domain 1 (not enumerated in source)

A developer needs to ensure that a Process activity waits for a human approval before continuing. Which Process element should be used?

  1. A Conditional Start
  2. A Wait with a timeout only
  3. A Human Activity assigned to a role or user Correct answer.
  4. An Automatic Activity

Explanation

Human Activities in an OutSystems Process pause execution until an assigned user or role completes the task. Automatic Activities run without human input, Conditional Start controls when a process instance begins, and a timeout alone does not assign work.

Question 18Exam content domain 1 (not enumerated in source)

A screen must display a list of orders that the current user is allowed to see, based on a role. Which approach best implements this?

  1. Store the role in a local variable on the client
  2. Return all orders and hide rows in the UI with CSS
  3. Filter the Aggregate using the current user's role or identifier from the session Correct answer.
  4. Rely on the user to select only their orders

Explanation

Security filtering should happen server-side in the query, using the session's user identity or role so unauthorized records are never returned. UI hiding, user selection, and client-side variables can be bypassed and do not enforce access control.

Question 19Exam content domain 1 (not enumerated in source)

A developer is troubleshooting an error that occurs only when a specific input is submitted. Which OutSystems capability allows inspecting variable values and stepping through the logic at runtime?

  1. The Publish button
  2. The Theme Editor
  3. The Module dependency graph
  4. The Debugger in Service Studio Correct answer.

Explanation

The Debugger lets you set breakpoints, step through actions, and inspect variable values at runtime, which is ideal for input-specific errors. Publishing, theming, and dependency graphs do not provide runtime inspection.

Question 20Exam content domain 1 (not enumerated in source)

An application needs to store a large file uploaded by a user. Which OutSystems data type is appropriate for the file content?

  1. Integer
  2. Text
  3. Date Time
  4. Binary Data Correct answer.

Explanation

Binary Data is designed to store files and binary content such as uploaded documents. Text, Integer, and Date Time are primitive types that cannot hold arbitrary file bytes.

Question 21Exam content domain 1 (not enumerated in source)

A developer needs to return a list of records from a Server Action to the calling screen. Which approach is correct?

  1. Use a Client Action to query the database directly
  2. Store the records in a Timer for the screen to read
  3. Define an output parameter of a List type based on a Structure or Entity and assign the Aggregate result to it Correct answer.
  4. Return the records by writing them to a Text variable

Explanation

Server Actions communicate results through output parameters, and a List type output can carry multiple records back to the caller. Text variables, client-side database access, and Timers cannot return a typed list synchronously.

Question 22Exam content domain 1 (not enumerated in source)

A developer must ensure that a REST API exposed by the module rejects requests that do not include a valid authentication token. Which OutSystems capability supports this?

  1. Configuring authentication on the exposed REST API Correct answer.
  2. Relying on the client to send the token
  3. Adding a comment to the API method
  4. Setting the API method to run as a Timer

Explanation

Exposed REST APIs in OutSystems support authentication configuration so the platform validates credentials before invoking the method. Comments, client-side trust, and Timers do not enforce authentication.

Question 23Exam content domain 1 (not enumerated in source)

A developer needs to prevent a Process from starting a second instance for the same order while one is already active. Which approach is most appropriate?

  1. Add a comment to the Process
  2. Create a second Process with the same logic
  3. Use an Automatic Activity to check the order
  4. Route all starts through launch logic that atomically checks and reserves the order until its Process instance finishes Correct answer.

Explanation

Before launching, atomically check that the order has no active or reserved instance and reserve it for the new instance. Route all starts through this guard and release the reservation when that instance ends. Conditional Start reacts to events within an existing process, so it cannot prevent another instance from being created.

Question 24Exam content domain 1 (not enumerated in source)

An Aggregate joins Orders and Customers and returns duplicate order rows because a customer has multiple addresses. What is the most appropriate fix?

  1. Convert the Aggregate to a Client Action
  2. Sort the Aggregate by order identifier
  3. Add a filter that removes all customers with multiple addresses
  4. Adjust the join or use a distinct/grouped query so each order appears once Correct answer.

Explanation

Duplicate rows arise from a one-to-many join, so the query must be reshaped, for example by grouping or selecting distinct values, to return one row per order. Removing customers, sorting, or moving logic to the client does not correct the cardinality.

Question 25Exam content domain 1 (not enumerated in source)

A developer needs to reuse server-side logic that is already implemented in another module without copying the code. Which OutSystems mechanism is appropriate?

  1. Copy the action into the consumer module
  2. Reference the producer module and call its public Server Action from the consumer module Correct answer.
  3. Duplicate the database entities in the consumer module
  4. Expose the logic only through a Screen Action

Explanation

OutSystems modules can reference a producer module and invoke its public actions, which promotes reuse without duplication. Copying code, exposing logic only through screens, or duplicating entities creates maintenance and consistency problems.

Question 26Exam content domain 1 (not enumerated in source)

In OutSystems, which element is used to group related screens and their logic into a single deployable unit that can be versioned and promoted between environments?

  1. A Module Correct answer.
  2. A Site Property
  3. A Screen
  4. An Entity

Explanation

A Module is the unit of deployment and versioning in OutSystems; it packages screens, logic, and data model together. Screens, entities, and site properties are elements contained inside a module, not deployable units themselves.

Question 27Exam content domain 1 (not enumerated in source)

A developer wants to define a data model that persists records in the database. Which OutSystems element should be used?

  1. A Local Variable
  2. A Structure
  3. A Session Variable
  4. An Entity Correct answer.

Explanation

Entities map to database tables and persist their records, so they are the correct choice for durable data. Local variables and session variables exist only at runtime, and structures are in-memory composite types with no persistence.

Question 28Exam content domain 1 (not enumerated in source)

Which OutSystems screen lifecycle event runs before the screen is rendered and is typically used to load data for display?

  1. OnRender
  2. OnParametersChanged
  3. OnDestroy
  4. OnReady Correct answer.

Explanation

OnReady fires after the screen's inputs are set and before rendering, making it the standard place to prepare aggregates and variables for display. OnParametersChanged fires when input parameters change, and OnDestroy runs when the screen is discarded.

Question 29Exam content domain 1 (not enumerated in source)

A developer needs to call a Server Action from a screen action. What is the correct way to invoke it in OutSystems?

  1. Drag the Server Action into the screen action flow and pass its input parameters Correct answer.
  2. Configure the Server Action in a Site Property
  3. Add the Server Action as an Entity attribute
  4. Reference the action in an Aggregate

Explanation

Server Actions are invoked by placing them in the action flow and binding their input parameters, then using their output. Aggregates query data, entities define the model, and site properties hold configuration values, so none of them execute server logic.

Question 30Exam content domain 1 (not enumerated in source)

A developer needs a screen to receive a value from the calling screen. Which OutSystems mechanism should be used?

  1. An Input Parameter on the screen Correct answer.
  2. A Site Property
  3. A Static Entity
  4. A Session Variable

Explanation

Input Parameters define the values a screen accepts from its caller, enabling navigation with data. Site properties are global configuration values, session variables are user-wide runtime values, and static entities hold reference records.

Question 31Exam content domain 1 (not enumerated in source)

Which OutSystems element is designed to store reference data such as a fixed list of statuses that rarely changes?

  1. An Aggregate
  2. A Static Entity Correct answer.
  3. A Session Variable
  4. A Local Variable

Explanation

Static Entities store reference records that are defined at design time and deployed with the module, ideal for fixed lists such as statuses. Session and local variables are runtime values, and aggregates query data rather than define reference records.

Question 32Exam content domain 1 (not enumerated in source)

A developer needs to add custom client-side behavior to a screen, such as showing a confirmation dialog before submitting. Which OutSystems capability is appropriate?

  1. A Server Action with a Commit
  2. A Site Property update
  3. A Process Timer
  4. A JavaScript element in a Screen Action or Client Action Correct answer.

Explanation

Client Actions and JavaScript elements run in the browser and are the appropriate way to add custom client-side behavior such as confirmation dialogs. Server Actions, site properties, and timers run server-side or asynchronously and cannot directly control browser interaction.

Question 33Exam content domain 1 (not enumerated in source)

Which OutSystems concept describes the automatic generation of CRUD screens and logic from an Entity?

  1. Refactoring
  2. Debugging
  3. Scaffolding Correct answer.
  4. Versioning

Explanation

Scaffolding generates screens and actions based on an entity's attributes, accelerating CRUD development. Refactoring restructures code, versioning tracks changes, and debugging diagnoses runtime issues, so none of them generate screens.

Question 34Exam content domain 1 (not enumerated in source)

A developer needs to filter an Aggregate based on a value the user selects at runtime. Which approach is correct?

  1. Hard-code the value in the Aggregate filter
  2. Create a new Aggregate for every possible value
  3. Use a Filter parameter bound to a screen variable Correct answer.
  4. Filter the results in a JavaScript element

Explanation

Aggregate Filter parameters accept runtime values, so binding a screen variable produces dynamic filtering without duplicating queries. Hard-coding limits the query, duplicating aggregates is unmaintainable, and client-side filtering bypasses the database query.

Question 35Exam content domain 1 (not enumerated in source)

A developer needs to combine records from two Entities in an Aggregate where matching rows must exist in both. Which Aggregate join type should be used?

  1. No Join
  2. Left Join
  3. Cross Join
  4. Inner Join Correct answer.

Explanation

An Inner Join returns only rows with matches in both entities, which matches the requirement that matching rows exist in both. A Left Join keeps unmatched rows from the first entity, and a Cross Join produces a Cartesian product.

Question 36Exam content domain 1 (not enumerated in source)

A developer needs to add a calculated column to an Aggregate that concatenates first and last name. Where should this be defined?

  1. In a Site Property
  2. In a Web Block input parameter
  3. As an Aggregate calculated attribute Correct answer.
  4. In the Entity attribute definition

Explanation

Aggregate calculated attributes define expressions computed from the query's columns, such as concatenating names. Entity attributes store data, site properties hold configuration, and Web Block inputs pass values into reusable UI.

Question 37Exam content domain 1 (not enumerated in source)

A developer needs to count how many records an Aggregate returns without retrieving all rows. Which OutSystems feature should be used?

  1. A JavaScript counter
  2. A For Each loop counting rows
  3. The Count property of the Aggregate Correct answer.
  4. The Max Records property

Explanation

The Aggregate Count property returns the number of records matching the query without loading them all. Looping through rows is inefficient, Max Records limits retrieval rather than counting, and client-side counting requires all data to be fetched.

Question 38Exam content domain 1 (not enumerated in source)

A developer needs to pass a list of records from one screen to another during navigation. What is the recommended OutSystems approach?

  1. Pass the list as an Input Parameter of the target screen Correct answer.
  2. Store the list in a Static Entity
  3. Store the list in a Site Property
  4. Encode the list in the URL query string

Explanation

Screen Input Parameters can carry lists between screens during navigation and keep the data flow explicit. Site properties are global configuration, static entities hold reference data, and URL encoding is unsuitable for complex lists.

Question 39Exam content domain 1 (not enumerated in source)

A developer needs to reuse a UI pattern that includes a header and a list across multiple screens. Which OutSystems element is designed for this?

  1. A Web Block Correct answer.
  2. A Server Action
  3. A Screen
  4. An Entity

Explanation

Web Blocks are reusable UI components with their own inputs and logic that can be placed on multiple screens. Screens are full pages, entities define data, and server actions contain logic without a UI.

Question 40Exam content domain 1 (not enumerated in source)

A developer needs to ensure that a set of database changes either all succeed or none are applied. Which OutSystems mechanism should be used?

  1. A Site Property update
  2. A Transaction with commits inside it Correct answer.
  3. A Static Entity
  4. A Timer

Explanation

Transactions group database operations so they commit or roll back together, providing atomicity. Site properties are configuration, timers schedule execution, and static entities hold reference data, none of which provide transactional grouping.

Question 41Exam content domain 1 (not enumerated in source)

A developer needs to handle an exception raised by an external integration inside a Server Action. Which OutSystems construct should be used?

  1. A Screen Input Parameter
  2. An Exception Handler flow element Correct answer.
  3. A Site Property
  4. An Aggregate

Explanation

Exception Handlers catch exceptions within an action flow and allow custom recovery or logging. Site properties, aggregates, and input parameters do not intercept runtime exceptions.

Question 42Exam content domain 1 (not enumerated in source)

A developer needs to log the details of an unexpected error so it can be investigated later. Which OutSystems capability is appropriate?

  1. A Site Property
  2. A Web Block
  3. A Static Entity
  4. The LogMessage action Correct answer.

Explanation

The LogMessage built-in action writes messages to the platform logs, making it suitable for recording error details. Site properties hold configuration, static entities hold reference data, and Web Blocks render UI.

Question 43Exam content domain 1 (not enumerated in source)

A developer needs to build a multi-step approval workflow with human tasks and conditional branches. Which OutSystems tool should be used?

  1. Service Studio's Processes Correct answer.
  2. An Aggregate
  3. A Site Property
  4. A Web Block

Explanation

Processes model workflows with human activities, conditions, and automatic steps, which fits multi-step approvals. Aggregates query data, Web Blocks render UI, and site properties hold configuration, so none of them model workflow.

Question 44Exam content domain 1 (not enumerated in source)

A developer needs to expose a Server Action so it can be consumed by another module. Which OutSystems action type should be used?

  1. A Client Action
  2. A Screen Action
  3. A Timer
  4. A Public Server Action Correct answer.

Explanation

Public Server Actions are exposed for consumption by other modules through references. Screen Actions and Client Actions are scoped to UI or browser execution, and timers schedule execution rather than expose logic.

Question 45Exam content domain 1 (not enumerated in source)

A developer needs to reference an Entity defined in another module. What must be done first in OutSystems?

  1. Copy the Entity definition into the current module
  2. Recreate the Entity as a Structure
  3. Add a reference to the producer module Correct answer.
  4. Convert the Entity into a Static Entity

Explanation

Referencing the producer module exposes its public elements, including entities, so the consumer can use them without duplication. Copying or recreating the definition creates divergence, and converting to a structure loses persistence.

Question 46Exam content domain 1 (not enumerated in source)

An Aggregate returns duplicate rows because a join to a related entity produces multiple matches. Which OutSystems approach best removes the duplicates?

  1. Increase Max Records
  2. Set the Aggregate's Distinct property to Yes Correct answer.
  3. Add an Order By clause
  4. Change the join to a Cross Join

Explanation

Enabling Distinct removes duplicate rows from the Aggregate result. Increasing Max Records or ordering rows does not eliminate duplicates, and a Cross Join would multiply rows further.

Question 47Exam content domain 1 (not enumerated in source)

A developer needs to ensure that a Process instance cannot move to the next step until an external system confirms completion. Which OutSystems design is most appropriate?

  1. A Wait activity triggered by the external system Correct answer.
  2. A Human Activity with a timeout
  3. A Screen Action that loops until confirmation
  4. A Timer that polls every second

Explanation

A Wait activity suspends the process until an external signal resumes it, which fits waiting for confirmation from another system. Human activities require a person, tight timers create load, and looping screen actions block the UI and are not reliable.

Question 48Exam content domain 1 (not enumerated in source)

A developer must ensure that sensitive configuration values differ per environment without changing code. Which OutSystems mechanism should be used?

  1. Site Properties configured per environment Correct answer.
  2. Hard-coded values in a Server Action
  3. A Local Variable
  4. A Static Entity record

Explanation

Site Properties are configured per environment in LifeTime or Service Center, letting the same code use different values without redeployment changes. Hard-coding fixes values, local variables are runtime-only, and static entity records are deployed with the module.

Question 49Exam content domain 1 (not enumerated in source)

A developer needs to optimize an Aggregate that is slow because it retrieves all columns but the screen uses only two attributes. Which change is most appropriate?

  1. Convert the Aggregate into a Static Entity
  2. Increase the Max Records value
  3. Select only the required attributes in the Aggregate Correct answer.
  4. Add more joins to the Aggregate

Explanation

Limiting the Aggregate to the attributes actually used reduces the data transferred from the database and improves performance. Adding joins increases cost, raising Max Records fetches more data, and converting to a static entity changes the data semantics.

Question 50Exam content domain 1 (not enumerated in source)

A developer needs to prevent users from directly accessing a screen unless they are authenticated. Which OutSystems approach is correct?

  1. Set the screen's role-based access to require an authenticated role Correct answer.
  2. Rename the screen to a non-guessable name
  3. Add a JavaScript check in OnReady
  4. Hide the screen's link in the menu

Explanation

Screen access is enforced by assigning roles that users must hold, so unauthenticated users are blocked at the platform level. Hiding links, client-side checks, and obscure names do not enforce access control and can be bypassed.