Skip to main content

Which of the following statements about Entities is false?

A. Entities have attributes.
B. Entities do not require an identifier.
C. Entities are only stored in memory.
D. Entities can be created, updated, and deleted.
Answer: C.

Which of the following is not a Development Environment?

A. Service Studio
B. Integration Studio
C. Service Center
Answer:C.

One of the following Tools allows you to manage the application’s lifecycle across an infrastructure. Which one?

A. Service Center
B. LifeTime
C. Service Studio
D. Integration Studio
Answer:B.

During the 1-Click Publish, your application data model, code, and interface is compiled and generates .NET code, HTML, JavaScript and CSS.

A. True
B. False
Answer:A.

In which Service Studio layer can Screens and Blocks be found?

A. Processes
B. Interface
C. Logic
D. Data
Answer:B.

In which Service Studio layer can Entities be found?

A. Processes
B. Interface
C. Logic
D. Data
Answer:D.

Regarding Reactive Web Apps in OutSystems, which of the following options is false?

A. Reactive Web app is a cross-device app.
B. Data requests are executed synchronously.
C. The code generated by OutSystems results in a single-page application.
D. A developer builds the Reactive Web App in Service Studio.
Answer:B.

Regarding Mobile (Phone or Tablet) Apps in OutSystems, which of the following options is false?

A. Mobile Apps can run natively on iOS and Android.
B. Mobile Apps can be distributed as a PWA.
C. Mobile Apps do not have offline capabilities.
D. The programming model of Mobile Apps is similar to Reactive Web Apps.
Answer:C.

What happens when a developer publishes a module?

A. The OutSystems platform compiles it and generates the HTML, CSS, and JavaScript.
B. The browser opens.
C Nothing.
D. The code is uploaded but only compiled when a user accesses the application.
Answer:A.

Which of the following options is false regarding Modules and Applications?

A. An application is composed of a set of modules.
B. Modules can be of different types such as Reactive Web App, Blank or Extension.
C. Elements can be exposed and reused, but only within the same application.
D. A module that reuses an element from another module is called a Consumer.
Answer:C.

Business concepts that need to be stored and accessed in our applications should be modeled as…

A. Entities.
B. Entity diagrams.
C. Entity relationships.
D. Database tables.
Answer:A.

Which of the following mappings between OutSystems and the Database is NOT correct?

A. Entities – Tables.
B. Attributes – Column.
C. Reference attribute – Primary Key.
D. Index – Index.
Answer:C.

If an Entity Attribute named HouseNumber is created, what needs to happen to its Data Type?

A. It should be set to Integer.
B. It should be set to Decimal.
C. Nothing, it will automatically be set to Identifier.
D. Nothing, it will automatically be set to Integer.
Answer:D.

Which of the following is not an Entity Action of the Customer Entity?

A. CreateCustomer.
B. RetrieveCustomer.
C. UpdateCustomer.
D. DeleteCustomer.
Answer:B.

Which of the following is a characteristic of a Static Entity?

A. It can’t be changed after the first publish.
B. It contains a set of Records.
C. It has two Entity Actions.
D. It can’t be extended with any new attributes.
Answer:B.

Regarding the Records of a Static Entity, which of the following options is false?

A. The values for all 4 default attributes must be defined.
B. Records can only be added and removed during development.
C. The record identifier is the identifier of Static Entity.
D. The Identifier attribute is required for all Static Entities.
Answer:A.

Static Entities are most similar to which other programming concept?

A. Linked lists.
B. Enumeration.
C. Hash Maps.
D. Static variables.
Answer:B.

Screens can be composed of a combination of several elements called Widgets.

A. True
B. False
Answer:A.

What type of variables can be created inside a Screen?

A. Local Variables only.
B. Input Parameters only.
C. Input Parameters and Local Variables.
D. Input Parameters, Output Parameters, and Local Variables.
Answer:C.

Which of the following options is false?

A. Input Parameters allow passing data between Screens when navigating between them.
B. Local Variables from a Screen may be directly accessed from another Screen.
C. Local Variables allow temporarily storing relevant information inside a Screen.
D. When the value of a Local Variable changes, the user interface reacts immediately.
Answer:B.

The Expression widget…

A. … displays only static text.
B. … displays text calculated at runtime.
C. … displays only the result of mathematical expressions.
Answer:B.

Which of the following behaviors is true for Links and Buttons?

A. Links can only navigate to Screens.
B. Buttons can only have a Screen Action as an On Click Destination.
C. Links and Buttons can either Navigate to screens or trigger Screen Actions.
D. Only Links can navigate to external URLs.
Answer:C.

Regarding the If Widget, which of the following options is false?

A. Functions can be used inside the Condition of an If.
B. More branches may be added to an If Widget.
C. Only one of the branches is shown at runtime.
D. Multiple widgets may be added inside each branch.
Answer:B.

Regarding the Container widget, which of the following options is false?

A. Containers allow grouping several widgets.
B. By default, containers can span from 1 column up to 12 columns.
C. Containers can be placed inside other containers.
D. All containers must have at least one widget inside.
Answer:D.

Which of the following options is correct?

A. Screen Actions can call other Screen Actions from a different screen.
B. Client Actions can call Screen Actions.
C. Server Actions can call Client Actions.
D. Client Actions can call Server Actions.
Answer:D.

Client Actions and Server Actions can have the following variables:

A. Input and Output Parameters, but no Local variables.
B. Input Parameters and Local Variables, but no Output Parameters.
C. Input and Output Parameters, as well as Local Variables.
D. Output Parameters and Local Variables, but no Input Parameters.
Answer:C.

The flow of an action can have…

A. … multiple Start and End nodes.
B. … one or more Start nodes but only one End node.
C. … only one Start node but multiple End nodes.
D. … only one Start node and one End node.
Answer:C.

Regarding the If statement, which of the following options is false?

A. Both True and False branches are mandatory.
B. Only one of the branches is executed, depending on the If condition’s outcome.
C. If statements can also be used to implement ad-hoc loops.
D. More branches may be added if needed.
Answer:D.

Regarding the Switch statement, which of the following options is false?

A. The first branch that the condition evaluates to True is executed.
B. Every branch that evaluates to True is executed.
C. If no branch evaluates to True, the Otherwise branch is executed.
D. The Otherwise branch must exist.
Answer:B.

Inside an Action flow…

A. … only one Exception Handler may exist.
B. … it’s mandatory to have at least one Exception Handler.
C. … the Exception Handler flow can’t intersect other flows.
Answer:C.

If we have multiple Exception Handlers in an Action flow and an Exception is raised…

A. … the execution is always moved to the Global Exception Handler.
B. … the execution is moved to the Exception Handler that is most specific to the Exception.
C. … the execution is moved to all Exception Handlers of the Action.
D. … a Switch statement is needed to select which Exception Handler will continue the execution.
Answer:B.

In an Aggregate, the Sources section is used for…

A. Defining values for testing the Aggregate’s output records.
B. Defining the Entities we want to retrieve records from.
C. Defining conditions to get specific subsets of records.
D. Defining the order of the Aggregate’s output records.
Answer:B.

Considering that we can add several filters to an Aggregate, which of the following options is false?

A. A record is included in the output if it matches at least one of the filters.
B. Filters are concatenated with the AND operator.
C. All filters are translated to SQL and included in the WHERE clause.
D. Logical operators and some built-in functions can be used inside filters.
Answer:A.

Regarding Sorting in Aggregates, which of the following options is correct?

A. Aggregates only support one sorting criterion.
B. If more than one sorting criterion is defined, all of them must have the same direction (ascending or descending).
C. It is mandatory to set the direction for all sorting criteria (ascending or descending).
D. It is only possible to set multiple sorting criteria if duplicate records exist in the entity.
Answer:C.

In an Aggregate, the purpose of the Test Values section is…

A. To define values for testing the preview of the Aggregate’s output.
B. To set the conditions to get specific records, not all the records.
C. To define the order of its output records.
D. To define the Entities we want to get records from.
Answer:A.

Regarding Screen Aggregates, which of the following options is false?

A. Screen Aggregates run asynchronously and in parallel.
B. Screen Aggregates only exist within the scope of the Screen where they were defined.
C. Screen Aggregates can only be executed when explicitly called.
D. By default, Screen Aggregates run automatically.
Screen Aggregates can only fetch data from the database.
Answer:C.

How is the data fetched by an Aggregate bound to a Table or a List widget?

A. By setting the Source property of the widget to the output of the Aggregate.
B. The binding is done automatically since the Aggregate is in the scope of the Screen.
C. By adding an Expression inside the widget that refers to an attribute of the data fetched by the Aggregate.
D. By creating a Screen Action that programmatically assigns the widget to the data fetched by the Aggregate.
Answer:A.

Considering ListItem and List Actions, which of the following options is false?

A. List Actions can only be used inside List Items.
B. List Items can be used outside of Lists
C. When List Items have the full swiping option activated, the List Action is not necessary.
D. The List Action triggers a Screen Action that will have the logic to be executed on swipe.
Answer:C.

Regarding data relationships, which of the following options is correct?

A. An Entity must have an identifier to allow relationships.
B. A reference attribute needs to be mandatory.
C. An Entity can only have one reference attribute.
D. The Entity identifier must be an integer.
Answer:A.

Which of the following steps is necessary to create a 1-to-1 relationship between Entity A and Entity B?

A. Set the data type of the identifier attribute of Entity B to Entity A Identifier.
B. Add a new Entity C, with two reference attributes of type Entity A Identifier and Entity B Identifier.
C. Add a new reference attribute of type Entity B Identifier to Entity A.
D. Add a new Entity C, with the identifier attribute being a composition of types Entity A Identifier and Entity B Identifier.
Answer:A.

Which of the following steps is necessary to create a 1-to-many relationship between a Master Entity A and a Detail Entity B?

A. Set the data type of the identifier attribute of Entity B to Entity A Identifier.
B. Add a new Entity C, with two reference attributes of type Entity A Identifier and Entity B Identifier.
C. Entity A must have a reference attribute of type Entity B Identifier.
D. Entity B must have a reference attribute of type Entity A Identifier.
Answer:D.

Which of the following steps is necessary to create a many-to-many relationship between Entity A and Entity B?

A. Set the data type of the identifier attribute of Entity B to Entity A Identifier.
B. Add a new reference attribute of type Entity B Identifier to Entity A.
C. Add a new Entity C, with two reference attributes of type Entity A Identifier and Entity B Identifier.
D. Add a new reference attribute of type Entity B Identifier to Entity A and a new reference attribute of type Entity A Identifier to Entity B.
Answer:C.

Regarding Indexes, which of the following options is correct?

A. Custom indexes cannot be added to an Entity.
B. Indexes speed up data retrieval without any kind of impact.
C. Unique indexes help prevent data duplication.
D. Indexes over referenced attributes cannot be deleted.
Answer:C.

Regarding the Delete Rule property, which of the following options does not guarantee referential integrity?

A. Protect
B. Delete
C. Ignore
Answer:C.

Which of the following behaviors does not apply to Forms?

A. A Form groups input widgets and allows displaying and editing data.
B. A Form has a Source property that will hold the values submitted by the user.
C. Besides input widgets, a Form can hold other widgets such as Links and Buttons.
D. A Form is useful to validate data submitted by the user.
Answer:B.

Considering the Dropdown and the Button Group, which of the following options is false?

A. A Button Group needs a Button Group Item to represent each option that the user will have available to choose from.
B. The List property of the Dropdown defines the data that will appear as options to a user on a Screen.
C. Each Button Group Item within a Button Group has a Variable property to save the option chosen by the user.
D. The Variable property of the Dropdown will hold the value selected by the user. That value is defined in the Options Value property.
Answer:C.

The Checkbox or Switch Widgets are bound to a variable of which type?

A. Text
B. Integer
C. Boolean
D. Date
Answer:C.

Considering Inputs and Labels, which of the following options is correct?

A. Every input must have a Label associated with.
B. An input widget can only be used for the Text data type.
C. To access the value submitted in an Input widget, we can simply use InputName.Value.
D. Labels associated with mandatory fields will display a visual cue on the Screen.
Answer:D.

What is the Screen behavior when a widget is not valid (Valid property set to False)?

A. The Screen displays the widget greyed out, and displays the validation error message on the input.
B. The widget does not appear on the Screen and the validation message appears in its place.
C. Displays the regular widget and displays the validation error message when we hover the mouse.
D. Displays the regular widget, applies a specific styling (e.g. red border), and displays the validation error message.
Answer:D.

Which of the following options is not a built-in validation in OutSystems?

A. Mandatory Fields
B. Maximum length of text fields
C. Data types of input fields
Answer:B.

Which of the following options is correct regarding the Valid property of the Form?

A. The Valid property of the Form should be checked after the last custom validation.
B. The Valid property of the Form is automatically changed to False when all the input fields of the Form are not valid.
C. The Valid property of the Form should be explicitly set to False (e.g. with an Assign) when an input field is not valid.
D. When built-in validations are enabled, the Valid property of the Form is automatically checked before executing the client action logic.
Answer:A.

Which of the following options is correct regarding the Valid property of the Form?

A. The Valid property of the Form should be checked after the last custom validation.
B. The Valid property of the Form is automatically changed to False when all the input fields of the Form are not valid.
C. The Valid property of the Form should be explicitly set to False (e.g. with an Assign) when an input field is not valid.
D. When built-in validations are enabled, the Valid property of the Form is automatically checked before executing the client action logic.
Answer:A.

In OutSystems, how do we restrict access to a Screen?

A. Go to the Users application and associate the Screen to a specific role.
B. In the Screen Properties, untick roles to restrict their access.
C. Use the CheckRole Action.
D. We don’t. Only users with a username and password can access.
Answer:B.

Considering the built-in Role Actions, which of the following options is false?

A. The CheckRole Action checks if a user has that particular Role.
B. The GrantRole Action allows to grant a Role to a user programmatically.
C. The RevokeRole Action allows to remove a Role from a user programmatically.
D. The CreateUserWithRole Action creates an end-user and assigns it the Role.
Answer:D.

In OutSystems, where can we place breakpoints?

A. In Actions only (Client-side and Server-Side)
B. Server-side logic only
C. Client-side logic only
D. In Actions and Variables
Answer:A.

In OutSystems, it is possible to inspect the values of variables while debugging.

A. True
B. False
Answer:A.

Which of the following commands is not available in the OutSystems debugger?

A. Stop Debugging
B. Continue Request
C. Step Over
D. Restart Debugging
Answer:D.

When debugging a consumer module, how do we guarantee that the execution stops on breakpoints defined in the producer module?

A. We just need to set breakpoints in the producer module. The execution will stop on its breakpoints automatically.
B. We need to also start the debugger on the producer module.
C. Nothing, just leave Service Studio open.
D. In the producer, set the Entry Module property to the consumer module.
Answer:D.

In OutSystems, a Block is a reusable UI component. Which of the following is NOT correct?

A. A Block promotes reusability, i.e. develop once, reuse many times.
B. A Block encapsulates its own logic.
C. A Block improves maintainability, i.e., change the design or functionality, affect all usages.
D. A Block can only be reused once.
Answer:D.

A Block can be used…

A. Only inside other Screens.
B. Inside Screens and Blocks, including itself.
C. Inside Screens and Blocks, except on itself.
D. Only inside other Blocks.
Answer:C.

Regarding Placeholders, which of the following options is correct?

A. A Placeholder reserves space in the interface to be allocated when the block is instantiated.
B. When a Block with Placeholders is instantiated, it is mandatory to place at least one widget inside the placeholders.
C. Placeholders can be added to Screens and Blocks.
D. Only one placeholder may be added per Block.
Answer:A.

Regarding Block Events, which of the following options is false?

A. Events can be defined at the Block or Screen level.
B. Events allow to pass information from the Block’s scope to the parent scope.
C. Events are triggered by a Block and handled by its parent.
D. Two instances of a Block may use the same handler for the same event.
Answer:A.

In which of the following situations is it necessary to define a handler for a Block Event?

A. When the event has Input Parameters.
B. When the Block has Placeholders.
C. When the event Input Parameters are all mandatory.
D. When the Event is set to mandatory.
Answer:D.

In which of the following situations is the On Parameters Changed Event triggered?

A. If the value of a Block Input Parameters changes inside a Client Action of the Block.
B. The On Parameters Changed must be explicitly triggered by the parent of the Block
C. When the parent of the Block changes the value of at least one of the Block Input Parameters.
Answer:C.

Which of the following events is not available in Screens or Blocks?

A. Initialize
B. Ready
C. After Fetch
D. Render
Answer:C.

Considering the Initialize event of a Screen, which of the following would be the best use case for that event?

A. Retrieve data from the server database.
B. Act on data returned by a Data Action.
C. Manipulate the DOM.
D. Set the default value of a Local Variable.
Answer:D.

Which of the following is the correct order of occurrence of events in a Screen?

A. Initialize, Ready, Render, Destroy.
B. Initialize, Destroy, Ready, Render.
C. Ready, Initialize, Render, Destroy.
D. Initialize, Render, Ready, Destroy.
Answer:A.

Which of the following options is false regarding Screen Aggregates?

A. The Render Event on the Screen is triggered when an Aggregate with the Fetch property set to “only on demand” finishes its execution.
B. A Screen Aggregate can be triggered when a screen is initializing or only On Demand.
C. All Aggregates, by default, have the Fetch property set to On Demand.
D. The On After Fetch Event is triggered for every Aggregate, regardless of its Fetch property.
Answer:C.

Consider an Aggregate with the Fetch property set to Only On Demand. When does that Aggregate run?

A. Automatically, when the Screen is initializing.
B. Programmatically, using a Refresh Data node in a Screen Action.
C. Automatically, when the Aggregates set to run “At Start” finish.
D. Programmatically, using a Server Action.
Answer:B.

Which of the following options is correct regarding Client Variables?

A. The value of a Client Variable is shared among all logged-in users.
B. Lists or Binary Data can also be stored on Client Variables.
C. Client Variables should be used to store confidential information.
D. Client Variables are useful to cache frequently accessed information.
Answer:D.

Which of the following would be a good use case for a Client Variable?

A. Credit Card Number
B. Profile Picture
C. User Identifier
D. User Name
Answer:D.

The value of a Site Property can be modified in Service Center to change the application behavior at runtime.

A. True
B. False
Answer:A.

Which of the following is a good use case for a Site Property?

A. Current user ID
B. Total Stock Quantity of Products
C. REST Web Service API Key
D. Search Keyword
Answer:C.

Which of the following options is correct, when implementing pagination with Tables or Lists?

A. The Start Index property of the Pagination holds the current page number.
B. The Max Records property of the Pagination holds the number of records to show per page.
C. The Total Count input of the Pagination pattern should be set to the number of records per page.
Answer:B.

Regarding sorting in a Table, which of the following options is correct?

A. All header cells need to have the Sort Attribute property defined.
B. Only the Sort Attribute of the header cells needs to be defined. Data is refreshed automatically.
C. The On Sort event has an input parameter containing the clicked column.
Answer:C.

Regarding sorting Lists, which of the following options is correct?

A. Lists have a built-in On Sort event.
B. Sort clauses cannot be changed dynamically at runtime when using Lists.
C. Other Widgets should be used to allow the end-user to define the sort criteria.
Answer:C.

Which of the following is the correct syntax for Entities and Attributes?

A. {Entity}.[Attribute]
B. (Entity).{Attribute}
C. [Entity].{Attribute}
D. Entity.Attribute
Answer:A.

Considering Aggregates and the SQL Tool, which of the following is the correct option?

A. All queries that can be written in an SQL Tool can be defined in an Aggregate.
B. Joins between entities can only be defined in Aggregates.
C. The SQL Tool allows to write queries that contain sub-queries.
D. Attribute grouping can only be done with the SQL Tool.
Answer:C.

A developer should favor using a Structure instead of the Entity in the output of a SELECT SQL Query. Do you agree with this statement?

A. Yes, because queries become easier to maintain.
B. Yes, because queries will retrieve fewer Attributes and less data.
C. No, since it is exactly the same.
D. No, it is preferable to use the Entity instead of the Structure.
Answer:B.

Regarding non-SELECT queries, which of the following options is correct?

A. It is not possible to execute DELETE queries with the SQL Tool.
B. It is not possible to use Query Parameters in Non-SELECT queries.
C. It is mandatory to specify all Attributes in an INSERT query.
D. It is mandatory to set the Output Entity or Structure.
Answer:D.

Mobile Apps have access to local storage and can be developed to work offline, online, or in both scenarios.

A. True
B. False
C. Either
D. Neither
Answer:A.

In a ReactiveWeb App, Data is requested asynchronously, thus allowing a more fluid experience.

A. True
B. False
C. Either
D. Neither
Answer:A.

LifeTime allows you to manage IT users and teams.

A. True
B. False
C. Either
D. Neither
Answer:A.

Attributes of static entities can be mandatory or not. A value is only required to be set if the attribute is mandatory.

A. True
B. False
Answer:A.

Screens have Output Parameters.

A. True
B. False
C. It depends on the setup of the developer
D. Producer module only
Answer:B.

The scope of Input Parameters and Local Variables is limited to the Screen where they are defined.

A. True
B. False
C. Varies depending on the module setup
D. Varies when using function.
Answer:A.

Screen Actions can also call Server Actions.

A. True
B. False
C. Neither
D. Either
Answer:A.

Different Exceptions are handled by different specific Handlers.

A. True
B. False
C. Either
D. Neither
Answer:A.

The “Delete” Delete Rule property option does not ensure referential integrity in the relationship and should be used with caution.

A. True
B. False
Answer:B.

Considering Users and Roles in OutSystems, which of the following options is correct?

A. By default, end-users are managed in the built-in Users application.
B. End-users can only be created programmatically, using Actions from the Users application.
C. There are three built-in roles in OutSystems: Anonymous, AppUser and Registered.
D. All users, with or without a login, have automatically the Registered Role.
Answer:A.

Consider an Aggregate with a “With or Without” join between two entities. What is the expected output of the Aggregate?

A. All records from both Entities (FULL OUTER JOIN).
B. Only records where there is a match between the two Entities (INNER JOIN).
C. All records from the left entity even if there is no match in the right entity (LEFT JOIN).
D. All records from the right entity even if there is no match in the left entity (RIGHT JOIN).
Answer:C.

Considering that Aggregates can have hidden columns, which of the following options is correct?

A. Hiding columns in the Aggregate only affects the preview of the output.
B. Columns that are empty in the database are automatically hidden.
C. The hidden columns help optimizing the Aggregate.
D. The hidden columns are not part of the output.
Answer:A.

Which of the following elements can’t be used to create calculated attributes in an Aggregate?

A. Value of the attributes of the Source Entities.
B. Built-in Functions that can be translated to SQL (e.g. Length(), Power()).
C. Variables.
D. Server Actions using Entity Attributes.
Answer:D.

Consider that we want to apply aggregation functions in an Aggregate. Which of the following options is false?

A. We can apply multiple aggregation functions inside an Aggregate.
B. The output of the Aggregate will contain all attributes from the Source Entities plus the aggregation columns.
C. We can apply the following functions on attributes of integer data type: sum, max, min, count and average.
D. The output of the Aggregate will not include the columns at grey.
Answer:B.

The order of the Entities in the join does not matter.

A. True
B. False
Answer:B.

It is possible to translate all Server Actions into SQL.

A. True
B. False
Answer:B.

When using aggregation functions, the output of the Aggregate will not include the columns at grey.

A. True
B. False
Answer:A.

The content inside the Placeholder may be different for each instance.

A. True
B. False
Answer:A.

Recusion is allowed when using blocks.

A. True
B. False
Answer:B.

Events only allow to communicate with the parent element.

A. True
B. False
Answer:A.

When the event is mandatory, a Block event such as the Client Action must be specified to handle the event. Although it may be empty.

A. True
B. False
Answer:A.

On Parameters Change allows a Block to receive the input change from the parent screen.

A. True
B. False
Answer:A.

Event Handler can be defined at the Screen level.

A. True
B. False
Answer:B.

On Parameters Changed is from Parent to Block while Event Handler is from Block to Parent.

A. True
B. False
Answer:A.

Which event is only available in Screen Aggregates and Data Actions and acts upon data fetched from the database or server.

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:D.

Which event is used to set focus on one particular widget?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:A.

Which event is best used for adding Javascript listeners to elements that are part of the DOM?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:A.

Which event is best used to react changes in data?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer: B.

Which event is needed for very specific use cases such as removing Javascript listeners or to clean the DOM that was previously changed in the ready event?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:C.

Which event is useful when aggregates depend on each other?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:D.

Which event handler of the first aggregate can be used to refresh the query of the second aggregate?

A. On Ready
B. On After Fetch
C. On Destroy
D. After Fetch
Answer:B.

Which event is needed if we do some logic over the result such as checking if it is empty?

A. Ready
B. Render
C. Destroy
D. After Fetch
Answer:B.

For a record to be included in the output result it must be true for all filters defined.

A. True
B. False
Answer:A.

Considering the following Entities (https://drive.google.com/file/d/1WsHUUMSgcx3NbwSMrshSTKe-SqnLCcRG/view?usp=sharing), what is required to create a many-to-many relationship between them?

A. Create a third Entity that contains two attributes of types Order Identifier and Product Identifier.
B. Create a third Entity with a primary key of type Order Identifier and an attribute of type Product Identifier.
C. Create an attribute of type Order Identifier in the Product Entity and an attribute of type Product Identifier in the Order Entity.
D. Create an attribute of type Product Identifier in the Order Entity.
Answer:A.

OutSystems, an Entity Identifier …

A. … must have its Data Type set to Long Integer.
B. … must be set to Auto Number.
C. … can only be a single attribute.
D. … is created automatically and cannot be modified.
Answer:C.

Considering the following Aggregate (https://drive.google.com/file/d/11tUfXgUASyo932VISD6nB4Xmho342ZNn/view?usp=sharing), what will be the attributes of the GetOrdersShippingState.List.Current record?

A. The two aggregation attributes: ShippingState and Count.
B. The two aggregation attributes (ShippingState and Count) plus all the attributes of the Source Entity.
C. Six attributes corresponding to the six visible columns in the Aggregate: ShippingState, Count, Description, DueDate, CreatedOn and Priority.
D. The two aggregation attributes (ShippingState and Count) plus the columns used to calculate these aggregations.
Answer:A.

Considering the following Aggregate (https://drive.google.com/file/d/1IRBcUVYjDN-h0tAlOhJ4ZOL4Nm2udq86/view?usp=sharing), where the Orders are fetched with their reviewers (Employees), which of the following options is correct?

A. The Aggregate only returns Orders with Priority, Status and Employee.
B. The Aggregate returns Orders without Employee and without Status.
C. The Aggregate returns Orders with Status and at least one Employee.
D. The Aggregate returns Orders with Priority and with zero or more Employees.
Answer:D.

How would you change the following Aggregate (https://drive.google.com/file/d/1inmyBDK2wZlWDS-SzmSrzZ1B7gs6hlba/view?usp=sharing) to return the number of orders per priority?

A. Change the Join between the Order and the Priority to Only With and create a Count over the Priority.Id attribute.
B. Create a Group By over the Priority.Id attribute and a Count over the Order.Id attribute.
C. Create a GroupBy over the Order.Id attribute and a Count over the Priority.Id attribute.
D. Remove the Join between the Order and the OrderStatus and create a Count over the Priority.Id attribute.
Answer:B.

Considering the On Initialize lifecycle event, which of the following options is true?

A. The On Initialize event is triggered before the Screen or Block is rendered and before fetching any data.
B. The On Initialize event is triggered after the Screen or Block has been rendered, so you can use it to manipulate its structure.
C. The On Initialize event is triggered after an Aggregate finishes fetching data and can be used to act upon the retrieved data before it’s used in the Screen.
D. The On Initialize event is triggered after the input parameter of a Block changes.
Answer:A.

The following Screen (https://drive.google.com/file/d/1gm2xpbBQmE-KTAHtCdj4wT0jNLnpDzZX/view?usp=sharing) has two Dropdowns, one to select a Country and one to select a City. The GetCountries and GetCities Aggregates provide the countries and the cities to be displayed in the respective dropdowns and are both set to be fetched At Start. Which of the following options is not a valid step if we want to just fetch the cities for the country
selected in the respective dropdown?

A. Set the Fetch property of the GetCities Aggregate to Only On Demand.
B. Refresh the GetCities Aggregate in the OnChange Action of the Country Dropdown.
C. Filter the GetCities Aggregate by the selected country.
D. Call the GetCities Aggregate in the GetCountries’ On After Fetch Event handler.
Answer:D.

Regarding Blocks in OutSystems reactive apps, which of the following options is correct?

A. Blocks can only be instantiated on Screens.
B. Blocks can be instantiated on Screens and other Blocks.
C. Blocks can be instantiated on Client Actions on the Screen.
D. Blocks can be instantiated on Screens and external HTML pages, using a special HTML tag.
Answer:B.

Which of the following options is a valid usage of the Trigger Event node (https://drive.google.com/file/d/1R2cEa-XAB6XyZSbdHVbD8tVY_4E_h4ge/view?usp=sharing)?

A. The Trigger Event allows a Block to notify its parent (Screen or Block) that something relevant occurred in the scope of the Block.
B. The Trigger Event allows a Screen to notify its children (Blocks) that something relevant occurred in the scope of the Screen.
C. The Trigger Event allows a Block to notify its children (other Blocks) that something relevant occurred in the scope of the Block.
D. The Trigger Event allows a Screen to notify its parent (Screen or Block) that something relevant occurred in the scope of the Screen.
Answer:A.

Consider a Form with a Save button with the Built-in Validations property set to Yes. When a user clicks on the Save button, some validations over the data submitted to the Form are automatically performed by OutSystems by default. Which validations are those?

A. Check if the mandatory fields are filled in.
B. Check if the mandatory fields are filled in and if the non-mandatory fields, that are later used in the logic, are also filled in.
C. Check if the mandatory fields are filled in and if the data submitted by the user matches the data type expected in the input fields.
D. Check if the mandatory fields are filled in and if the data submitted by the user matches the data type of the Form’s data source.
Answer:C.

In the following scenario, we are implementing the ColorsDropdown widget (https://drive.google.com/file/d/109nu1A-BslkBff1G1BtfJaxnvCRkfNUA/view?usp=sharing) which will allow a user to select a color. What should be set in the Options Text property to make sure that the names of the colors appear in the dropdown?

A. Color.Id
B. GetColors.Color.Label
C. Color
D. Color.Label
Answer:D.

Considering a Button in a Screen, which of the following options cannot be set as its On Click Destination?

A. Screen.
B. Client Action.
C. Block.
D. External Site.
Answer:C.

Consider the Action called Absolute (https://drive.google.com/file/d/1whQveFFlesOJlkA1Qi4JMEV7-oUAZU1f/view?usp=sharing) which returns an absolute value (abs) of a number N passed as Input Parameter. When does the Action return 0 ?

A. Never.
B. When the input parameter (N) is less than zero.
C. When the input parameter (N) is zero.
D. When the input parameter (N) is greater than zero.
Answer:C.

Consider the following Server Action. What happens if the GetEmployeeById (https://drive.google.com/file/d/1Q5JfXEu9L5OsY017HLrMbI8ZIsRl8BJ3/view?usp=sharing) Aggregate does not return any record?

A. The DatabaseException flow is executed.
B. The RecordNotFound flow is executed.
C. No exception flow is executed.
D. The module’s global exception handler is executed.
Answer:B.

Considering the Function property in Client Actions, which of the following options is correct?

A. Setting the Function property to Yes restricts the Action to have only one Output Parameter.
B. Setting the Function property to No ensures the Action can only be used in the module where it is defined.
C. Setting the Function property to Yes is not possible, if the Action is exposed to other modules as Public.
D. Setting the Function property to No ensures the Action can only be used in Screen Expressions.
Answer:A.

Considering that Michael is a user of the Orders application, with only the OrdersAdmin Role assigned to him, which of the following options is correct?

A. Michael has access to Screens with the Registered Role checked.
B. Michael does not have access to Screens with the Anonymous Role checked.
C. Michael has access to Screens that have the OrdersAdmin Role checked, but not to Screens with the Registered Role checked.
D. Michael has only access to Screens that have the OrdersAdmin Role checked.
Answer:A.

Which of the following options should not be a use case of client variables?

A. Username.
B. Password.
C. Search filter keyword.
D. ID of a user session.
Answer:B.

Consider the following Action (https://drive.google.com/file/d/1L6qUwd2jjqWAluUB-Kv5gQghendWoMr2/view?usp=sharing), that calculates the square root (sqrt) of a positive decimal number (N). Knowing that the function was called with N = 0, and the debugger is stopped at the Start node, what will happen when the developer selects the Continue (F9) option highlighted in the picture?

A. The Action will end, with sqrt = 0.
B. The Action will throw an exception and sqrt will have no value.
C. The debugger will stop in the N < 0 If node.
D. The debugger will stop at the breakpoint in the End node.
Answer:D.

Consider the following Pagination (https://drive.google.com/file/d/1r1xbok0WwGQ3MYyhGmj1oVDCz6rVfDA3/view?usp=sharing) that is associated with an already implemented Table on a Screen. There are no errors in Service Studio, but when the user selects a new page (in the pagination widget) the results do not change on the Table. What is the reason for that behavior?

A. The GetMovies Aggregate is not being refreshed in the OnNavigate Action.
B. The Max. Records of the Aggregate should be equal to the total number of movies in the database.
C. The Table is not being refreshed on the OnNavigate Action.
D. The Max Records property of the Pagination should be set to GetMovies.Count and the TotalCount
to RecordsPerPage.
Answer:A.

Consider a Screen that contains a Form to collect Customer data. The Form has a Save Button with the On Click Destination set to a SaveOnClick Action, which sends the data to the server to store it in the database. What is the best way to make sure that we do not send the data to the server when the mandatory Customer data fields have not been filled in?

A. Just set the Built-in validations of the Save button to Yes.
B. Perform custom validations for all inputs. If one fails, set the Valid property of the Form to False.
C. Set the Built-in validations of the Save button to Yes and check if the Form’s Valid property is True.
D. Set the Built-in validations of the Save button to Yes and add an Exception Handler flow to handle invalid inputs.
Answer:C.

Leave a Reply