First 50 of 199 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 1Fundamentals of OutSystems web app development
In OutSystems, what is a Screen primarily used for in a Reactive Web App?
- Storing persistent business data in the database
- Configuring the deployment pipeline between environments
- Scheduling background jobs at fixed intervals
- Defining the visual layout and UI that end users interact with Correct answer.
Explanation
A Screen represents a user interface page rendered in the browser and is where you place widgets to build the UI. Data storage, background processing, and deployment are handled by other elements such as Entities, Timers, and LifeTime.
Question 2Fundamentals of OutSystems web app development
Which OutSystems element is used to model a database table that persists data?
- A Server Action
- A Screen
- A Local Variable
- An Entity Correct answer.
Explanation
An Entity maps to a database table and stores persistent records. Local Variables and Server Actions are runtime logic constructs, and Screens are UI pages.
Question 3Fundamentals of OutSystems web app development
Which type of variable is scoped to a single Screen and can hold values while that Screen is active?
- An Entity Attribute
- A Site Property
- A Session Variable
- A Local Variable Correct answer.
Explanation
A Local Variable belongs to the Screen or Action where it is declared and exists only during that scope's execution. Site Properties and Session Variables have broader scopes, and Entity Attributes are part of the data model.
Question 4Fundamentals of OutSystems web app development
What does a Server Action in OutSystems run on?
- A separate mobile device
- The OutSystems server Correct answer.
- The database engine directly
- The end user's browser only
Explanation
Server Actions execute on the OutSystems server, so their logic runs remotely from the browser. Client Actions, by contrast, run in the browser.
Question 5Fundamentals of OutSystems web app development
Which widget would you use to display a list of records from an Entity on a Screen?
- A List widget Correct answer.
- An If widget
- An Input widget
- A Container widget
Explanation
The List widget iterates over a record set and renders each record, making it suitable for showing multiple Entity records. Containers handle layout, If handles conditional display, and Input collects user data.
Question 6Fundamentals of OutSystems web app development
In OutSystems, what is the purpose of an Aggregate?
- To define the visual theme of the app
- To create user roles and permissions
- To query and combine data from Entities Correct answer.
- To publish the application to production
Explanation
Aggregates are used to fetch data from the database by selecting, filtering, and joining Entities. Theming, deployment, and security are handled by other platform features.
Question 7Fundamentals of OutSystems web app development
What does the TrueChange feature in Service Studio do?
- Generates database backups on a schedule
- Continuously validates the model and reports errors and warnings Correct answer.
- Compiles the app into native mobile binaries
- Automatically translates the app into multiple languages
Explanation
TrueChange continuously checks the application model and surfaces errors and warnings in the TrueChange tab. It does not handle translation, backups, or native compilation.
Question 8Fundamentals of OutSystems web app development
Which element is used to group reusable UI and logic so it can be used across multiple Screens?
- A Block Correct answer.
- A Static Entity
- A Timer
- A Site Property
Explanation
A Block encapsulates a reusable piece of UI plus its logic and can be placed on multiple Screens. Timers schedule logic, Site Properties store configuration, and Static Entities hold fixed reference data.
Question 9Fundamentals of OutSystems web app development
You need a Screen to show different content depending on whether the logged-in user is an administrator. Which approach fits best?
- Store the role in a Static Entity and rebuild the app
- Create a separate Entity for each user type
- Use an If widget driven by a check of the user's role Correct answer.
- Add a Timer that rewrites the Screen at runtime
Explanation
The If widget conditionally renders content based on a Boolean expression, and role checks can drive that expression. Creating Entities or Timers does not address conditional UI rendering.
Question 10Fundamentals of OutSystems web app development
A developer wants a Server Action to return a success flag to the Screen. What should be configured on the Server Action?
- A Session Variable
- A Site Property
- An Output Parameter Correct answer.
- A Static Entity
Explanation
Output Parameters carry values back from an Action to its caller. Session Variables, Site Properties, and Static Entities serve different purposes and are not the mechanism for returning a value from an Action.
Question 11Fundamentals of OutSystems web app development
Which statement correctly distinguishes a Client Action from a Server Action?
- Client Actions always require a database connection
- Client Actions run in the browser, while Server Actions run on the server Correct answer.
- Client Actions cannot call Server Actions
- Server Actions cannot accept input parameters
Explanation
Client Actions execute in the user's browser, whereas Server Actions execute on the server. Client Actions can invoke Server Actions, and Server Actions can accept input parameters.
Question 12Fundamentals of OutSystems web app development
What is the primary role of a Static Entity?
- To define the app's navigation menu
- To run scheduled background logic
- To store records that change frequently per user
- To hold a fixed set of reference values defined at design time Correct answer.
Explanation
Static Entities store a predefined, fixed set of records that are created at design time and are useful for reference lists. They are not for frequently changing data, scheduling, or navigation.
Question 13Fundamentals of OutSystems web app development
A Screen needs to filter a list based on a value the user types into an Input widget. What is the most appropriate first step?
- Convert the Screen into a Block
- Bind the Input to a Local Variable and use it in the Aggregate filter Correct answer.
- Create a new Entity to store the typed value
- Add a Timer to refresh the list every minute
Explanation
Binding the Input to a Local Variable lets the typed value be referenced, and the Aggregate filter can use that variable to restrict results. Timers, new Entities, or Blocks do not directly implement input-driven filtering.
Question 14Fundamentals of OutSystems web app development
Which construct is best for iterating over a list of records and rendering a row for each one with a repeated layout?
- A List widget with a List Item Correct answer.
- A Container with a single child
- A Button widget
- An If widget
Explanation
A List widget with a List Item repeats its content for each record in the source. If, Container, and Button do not provide record iteration.
Question 15Fundamentals of OutSystems web app development
What is the effect of setting an Aggregate's 'Max Records' property to a small number?
- It encrypts the returned data
- It changes the data type of the output
- It restricts which users can run the query
- It limits how many rows the query returns Correct answer.
Explanation
Max Records caps the number of rows the Aggregate retrieves from the database. It does not affect permissions, encryption, or data types.
Question 16Fundamentals of OutSystems web app development
Which OutSystems feature lets you define reusable CSS styling applied across many Screens?
- An Entity
- A Theme Correct answer.
- A Timer
- A Server Action
Explanation
Themes centralize styling so consistent CSS is applied across Screens. Timers, Server Actions, and Entities do not manage visual styling.
Question 17Fundamentals of OutSystems web app development
A developer needs to pass a value from one Screen to another during navigation. Which mechanism is designed for this?
- A Site Property
- A Timer schedule
- A Static Entity record
- An Input Parameter on the target Screen Correct answer.
Explanation
Input Parameters on a Screen receive values passed during navigation. Static Entities, Timers, and Site Properties are not the mechanism for passing values between Screens.
Question 18Fundamentals of OutSystems web app development
In a Reactive Web App, where does a Client Action execute?
- In the deployment controller
- On the OutSystems server
- Inside the database engine
- In the end user's browser Correct answer.
Explanation
Client Actions run in the browser, which is why they are suited to UI behavior that should not require a server round trip. Server-side execution applies to Server Actions.
Question 19Fundamentals of OutSystems web app development
Which is the correct way to make a Screen's displayed data refresh after a user submits a form?
- Restart the OutSystems server
- Call the action that re-runs the Aggregate and refresh the data source Correct answer.
- Delete and recreate the Entity
- Rely on the browser to reload automatically without any logic
Explanation
Re-running the data-fetching action and refreshing the data source updates the Screen with new data. Automatic reloads, server restarts, and Entity recreation are not appropriate refresh mechanisms.
Question 20Fundamentals of OutSystems web app development
A developer wants to ensure a value entered on one Screen is still available after navigating to another Screen for the same user. Which variable scope is appropriate?
- An Output Parameter of a Client Action
- A Local Variable on the first Screen
- A Static Entity
- A Session Variable Correct answer.
Explanation
Session Variables persist for the duration of a user's session across Screens, so the value remains available after navigation. Local Variables and action outputs are scoped more narrowly, and Static Entities are fixed reference data.
Question 21Fundamentals of OutSystems web app development
An Aggregate joins two Entities and returns duplicate rows because of the join. Which approach best removes the duplicates while keeping valid results?
- Increase Max Records so duplicates are diluted
- Convert the Aggregate into a Static Entity
- Add a Timer to delete duplicate rows at runtime
- Set the Aggregate to return only distinct records and verify the join conditions Correct answer.
Explanation
Applying distinct output and verifying the join conditions addresses duplicated rows at the query level. Increasing Max Records, converting to a Static Entity, or using a Timer does not fix the root cause.
Question 22Fundamentals of OutSystems web app development
A developer places a Block on two different Screens and wants each Screen to pass different data into it. What should the Block expose?
- A Site Property
- An Input Parameter Correct answer.
- A Session Variable
- A Timer
Explanation
Input Parameters let each Screen supply different values to the same Block instance. Site Properties, Timers, and Session Variables are not the mechanism for per-placement inputs.
Question 23Fundamentals of OutSystems web app development
A Screen shows stale data because its Aggregate runs only once when the Screen loads. What is the most appropriate fix when the underlying data changes on the server?
- Move the Aggregate into a Static Entity
- Disable TrueChange validation
- Convert the Aggregate into a Local Variable
- Trigger a refresh of the data source after the change occurs Correct answer.
Explanation
Refreshing the data source after the change re-executes the query and updates the UI. Converting to a Local Variable, using a Static Entity, or disabling validation does not cause the query to re-run.
Question 24Fundamentals of OutSystems web app development
A developer needs a Server Action to validate input and, on failure, prevent navigation while showing an error message. Which combination best supports this?
- A Timer that checks the input every minute
- An Output Parameter for the result plus an If widget to display the message Correct answer.
- A Static Entity that stores error text
- A Site Property that blocks all navigation
Explanation
Returning a result via an Output Parameter lets the Screen decide whether to proceed, and an If widget can conditionally show the error. Timers, Static Entities, and Site Properties do not provide this control flow.
Question 25Fundamentals of OutSystems web app development
Which statement best explains why Client Actions are preferred for simple UI interactions such as toggling a panel?
- They avoid a server round trip by running in the browser Correct answer.
- They automatically persist data to the database
- They eliminate the need for any Screen variables
- They run faster because they execute on the server
Explanation
Client Actions run in the browser, so simple UI changes happen without a server call. They do not persist data, they do not run on the server, and they do not remove the need for variables.
Question 26Fundamentals of OutSystems web app development
In a Reactive Web App, which element is used to display a list of records from an Aggregate on a Screen?
- List Records widget Correct answer.
- Container widget
- Table widget
- Form widget
Explanation
The List Records widget is the dedicated UI element for iterating over a record list and rendering each item; it supports inline row templates and is commonly bound to an Aggregate or a variable of a list type.
Question 27Fundamentals of OutSystems web app development
Which OutSystems element is used to define a custom data type with attributes that can be used across Screens and Actions?
- Entity
- Session Variable
- Static Entity
- Structure Correct answer.
Explanation
A Structure is a composite data type that groups related attributes; it is not persisted to the database and is typically used to pass complex data between Screens and Actions.
Question 28Fundamentals of OutSystems web app development
What is the purpose of a Screen in an OutSystems web application?
- To define the user interface and its associated logic for a web page Correct answer.
- To store persistent business data in the database
- To schedule background jobs at fixed intervals
- To expose REST APIs to external systems
Explanation
A Screen represents a web page in the application, containing the UI layout, widgets, and the client- and server-side logic needed to present and process data for that page.
Question 29Fundamentals of OutSystems web app development
Which OutSystems element is used to store a value that is shared across all users of the application and persists for the lifetime of the application?
- Local Variable
- Session Variable
- Site Property Correct answer.
- Input Parameter
Explanation
A Site Property is an application-level setting whose value is shared by all users and can be changed at runtime without redeploying the application.
Question 30Fundamentals of OutSystems web app development
Which widget is used to capture free-text input from a user on a Screen?
- Expression
- Link
- Input Correct answer.
- Button
Explanation
The Input widget renders a text field bound to a variable, allowing the user to enter and edit text that is then available to the Screen's logic.
Question 31Fundamentals of OutSystems web app development
What does the 'On Click' event of a Button widget allow a developer to do?
- Execute a Client Action or Screen Action when the button is pressed Correct answer.
- Style the button with a custom CSS class
- Bind the button to an Aggregate for data retrieval
- Set the button's label dynamically from a variable
Explanation
The On Click event is the handler that runs when the user presses the button; it typically calls a Client Action or a Screen Action to perform the desired behavior.
Question 32Fundamentals of OutSystems web app development
Which type of variable is automatically available in every Screen and holds information about the currently logged-in user?
- Site Property
- Session.UserId Correct answer.
- Local Variable
- Input Parameter
Explanation
Session variables such as Session.UserId are built-in and populated by the platform for the current session, giving every Screen access to the logged-in user's identity.
Question 33Fundamentals of OutSystems web app development
In OutSystems, what is the main purpose of a Theme?
- To manage database migrations between environments
- To define the overall visual style and CSS of the application Correct answer.
- To configure the application's deployment target
- To define the application's business logic layer
Explanation
A Theme centralizes the application's visual styling-such as colors, typography, and widget styles-so that the look and feel can be managed consistently across all Screens.
Question 34Fundamentals of OutSystems web app development
A developer needs to show a confirmation dialog before deleting a record. Which approach is most appropriate?
- Delete the record immediately and show a success message afterward
- Disable the delete button until the user refreshes the page
- Log the deletion and rely on the user to undo it manually
- Use a Confirmation Message or a modal Dialog and proceed only if the user confirms Correct answer.
Explanation
A confirmation step ensures the user explicitly approves the destructive action before it executes, preventing accidental data loss; OutSystems provides built-in confirmation messages and modal dialogs for this purpose.
Question 35Fundamentals of OutSystems web app development
A developer wants to display a computed value, such as the total of a list, directly on a Screen without writing a Client Action. Which widget should be used?
- Button
- Expression Correct answer.
- Image
- Input
Explanation
The Expression widget evaluates an expression at render time and displays the result, making it ideal for computed values like totals or formatted text.
Question 36Fundamentals of OutSystems web app development
Which OutSystems element is used to define a reusable piece of server-side logic that can be called from multiple Screens and other Actions?
- Screen
- Client Action
- Server Action Correct answer.
- Block
Explanation
A Server Action encapsulates logic that runs on the server and can be reused by any Screen or other Action that needs it, promoting separation of concerns and reuse.
Question 37Fundamentals of OutSystems web app development
A developer needs to ensure that a Screen is only accessible to authenticated users. What is the most appropriate configuration?
- Add a Client Action that checks Session.UserId on load
- Set the Screen's 'Cache' property to 'No'
- Set the Screen's 'Authentication' property to 'Yes' Correct answer.
- Place the Screen inside a Block
Explanation
The Screen's Authentication property enforces access control at the platform level, redirecting unauthenticated users to the login page before the Screen is rendered.
Question 38Fundamentals of OutSystems web app development
Which OutSystems feature allows a developer to define a reusable UI component with its own inputs and internal logic?
- Timer
- Block Correct answer.
- Entity
- Screen
Explanation
A Block is a reusable UI component that can expose input parameters and contain its own widgets and logic, and it can be placed on multiple Screens.
Question 39Fundamentals of OutSystems web app development
A developer wants to display a message to the user after a successful form submission without navigating away. Which mechanism is most appropriate?
- Log the message to the server and instruct the user to check logs
- Navigate to a new Screen that shows the message
- Use a JavaScript alert via a Client Action
- Use a Feedback Message with the desired severity Correct answer.
Explanation
Feedback Messages are the platform's built-in mechanism for showing success, warning, or error messages on the current Screen without a full page navigation.
Question 40Fundamentals of OutSystems web app development
What is the effect of setting a Screen's 'Cache' property to 'Yes'?
- The Screen's data is stored permanently in the database
- The Screen's Client Actions are disabled
- The Screen becomes accessible only to anonymous users
- The Screen's rendered output may be cached and served without re-executing its logic on every request Correct answer.
Explanation
Caching a Screen allows the platform to reuse previously rendered output, reducing server processing for Screens whose content does not change frequently.
Question 41Fundamentals of OutSystems web app development
A developer needs to show a list of records and allow the user to select one to edit. Which combination is most appropriate?
- A single Input widget bound to the first record of the list
- A List Records widget bound to an Aggregate, with a Link or Button that navigates to an Edit Screen passing the selected record's identifier Correct answer.
- A Timer that reloads the list every second
- A Form widget bound to an Aggregate, with no navigation
Explanation
A List Records widget displays the records, and a per-row Link or Button can navigate to an Edit Screen while passing the selected record's identifier as an input parameter.
Question 42Fundamentals of OutSystems web app development
Which OutSystems element is used to define a reusable set of client-side logic that can be called from multiple Screens?
- Client Action Correct answer.
- Entity
- Screen
- Server Action
Explanation
A Client Action contains logic that runs in the browser and can be called from any Screen or other Client Action, making it the reusable unit for client-side behavior.
Question 43Fundamentals of OutSystems web app development
A developer wants to display a warning icon next to an Input when validation fails. Which approach is most appropriate?
- Replace the Input with an Expression widget
- Hide the Input entirely when validation fails
- Use the Input's built-in validation properties and style the invalid state via CSS Correct answer.
- Show a JavaScript alert on every keystroke
Explanation
Input widgets support validation properties that mark the field as invalid and apply the theme's invalid styling, providing consistent visual feedback without custom scripting.
Question 44Fundamentals of OutSystems web app development
Which statement best describes the role of a Screen Action in OutSystems?
- It exposes the Screen's data as a REST API
- It handles events and logic that run on the server in the context of a specific Screen Correct answer.
- It schedules recurring background jobs
- It defines the database schema for the Screen's data
Explanation
A Screen Action is server-side logic attached to a Screen; it can access the Screen's inputs and local variables and is triggered by Screen events or widget actions.
Question 45Fundamentals of OutSystems web app development
A developer needs to display a formatted date on a Screen, such as 'January 5, 2024'. Which widget is most appropriate?
- Input with a date type
- Button with a label
- Expression with a date-formatting function Correct answer.
- Image with an alt text
Explanation
An Expression widget can evaluate a formatting function and display the resulting string, making it suitable for presenting dates in a specific format.
Question 46Fundamentals of OutSystems web app development
Which OutSystems element is used to define a reusable piece of UI that can accept input parameters and be placed on multiple Screens?
- Block Correct answer.
- Entity
- Screen
- Server Action
Explanation
A Block is a reusable UI component that exposes input parameters and can be embedded on any Screen, promoting UI reuse.
Question 47Fundamentals of OutSystems web app development
A developer wants to ensure that a Screen's Aggregate only returns records matching a filter that the user selects from a Dropdown. What is the most appropriate approach?
- Create a separate Screen for each possible filter value
- Use a Client Action to hide rows that do not match
- Bind the Aggregate's filter to the Dropdown's variable and refresh the Aggregate when the selection changes Correct answer.
- Set the Aggregate's Max Records to 1
Explanation
Binding the Aggregate filter to the Dropdown variable and refreshing the Aggregate on change ensures the query returns only matching records efficiently.
Question 48Fundamentals of OutSystems web app development
A developer needs to show a list of records where each row has an 'Edit' link that navigates to an Edit Screen with the selected record's identifier. Which mechanism should be used to pass the identifier?
- Site Property updated before navigation
- Local Variable on the list Screen
- Input Parameter on the Edit Screen Correct answer.
- Session Variable set before navigation
Explanation
Input Parameters are the designed mechanism for passing values to a Screen during navigation, and they keep the data scoped to that navigation.
Question 49Fundamentals of OutSystems web app development
A developer wants to display a success message after a Server Action completes and then refresh the list on the Screen. Which sequence is most appropriate?
- Refresh the Aggregate first, then call the Server Action
- Call the Server Action, show a Feedback Message on success, then refresh the Aggregate Correct answer.
- Show the Feedback Message before calling the Server Action
- Call the Server Action and rely on the user to refresh the page manually
Explanation
The Server Action should complete first so its result is known; then the success message can be shown and the Aggregate refreshed to reflect the new data.
Question 50Fundamentals of OutSystems web app development
A developer needs to conditionally show a section of a Screen based on a variable. Which approach is most appropriate?
- Use a Client Action to navigate away when the condition is false
- Set the Screen's Cache property to 'No'
- Place the section inside a Block and always show it
- Set the widget's 'Visible' property to an expression that evaluates the variable Correct answer.
Explanation
The Visible property accepts a Boolean expression and controls whether the widget is rendered, which is the standard way to conditionally show UI.