Mendix Advanced Developer study materials
Mendix Advanced Developer study resources

Mendix Advanced Developer practice questions

One question at a time. Build your Mendix Advanced Developer 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 1Advanced domain modeling and data structure

In a persistent Mendix entity, which system attribute identifies the user account that most recently changed an object?

  1. ChangedDate
  2. Owner
  3. CreatedDate
  4. ChangedBy Correct answer.

Explanation

ChangedBy is the system association to System.User that the runtime updates each time the object is committed after a change. Owner records the creator, while CreatedDate and ChangedDate are timestamps rather than user references.

Question 2Advanced domain modeling and data structure

Which limitation applies to a non-persistent entity in a Mendix domain model?

  1. It cannot participate in associations with persistent entities.
  2. It cannot be displayed on a page.
  3. It cannot be passed as a microflow parameter.
  4. It cannot be retrieved with a database query or XPath constraint. Correct answer.

Explanation

Non-persistent objects exist only in memory, so they are not stored in the database and cannot be found through database retrieve actions or XPath constraints. They can still be associated, displayed through a microflow data source, and passed as parameters.

Question 3Advanced domain modeling and data structure

How does Mendix store a many-to-many association between two persistent entities?

  1. It creates a separate join table containing the keys of both entities. Correct answer.
  2. It stores the association only in memory and never in the database.
  3. It stores a foreign key column in each of the two entity tables.
  4. It requires an explicit intermediate entity created by the developer.

Explanation

Mendix implements a many-to-many association with its own join table, so neither entity table holds a direct foreign key to the other. Developers do not need to model an intermediate entity unless the relationship itself needs attributes.

Question 4Advanced domain modeling and data structure

Several specialized entities must each be linked to the same Customer entity. Where should the association be defined to avoid repeating it on every specialization?

  1. On the generalization entity that the specializations inherit from. Correct answer.
  2. On a non-persistent helper entity shared by the specializations.
  3. On the Customer entity, pointing to each specialization separately.
  4. On each specialization, with identical names and delete behavior.

Explanation

Associations defined on a generalization are inherited by all specializations, so one association on the parent covers every subtype. Defining it repeatedly on each specialization would create separate relationships and prevent uniform retrieval through the parent.

Question 5Advanced domain modeling and data structure

A one-to-many association from Order to OrderLine has delete behavior 'Delete OrderLine object(s) as well'. What happens when an Order is deleted by a microflow?

  1. The OrderLine objects are deleted only if a before-delete event handler confirms.
  2. All associated OrderLine objects are deleted with the Order. Correct answer.
  3. The OrderLine objects remain but lose their association to the Order.
  4. The delete fails while at least one OrderLine exists.

Explanation

The cascade delete behavior removes the child objects when the parent is deleted, without requiring a microflow. 'Prevent' would block the delete, while the other behaviors do not remove the children.

Question 6Advanced domain modeling and data structure

You must guarantee that Customer.Email is unique even when two users save simultaneously. Which domain model measure provides a database-level guarantee?

  1. A validation rule with a unique check in a before-commit microflow.
  2. An XPath constraint on the Customer entity.
  3. A calculated attribute that counts matching customers.
  4. A unique constraint on the Email attribute. Correct answer.

Explanation

A unique constraint is enforced by the database, so concurrent inserts cannot both succeed with the same value. A validation rule or microflow check can race between the check and the commit and therefore does not guarantee uniqueness under concurrency.

Question 7Advanced domain modeling and data structure

When is adding an index to a persistent entity attribute most justified?

  1. When the attribute is frequently used in XPath constraints on a large table. Correct answer.
  2. When the attribute is changed by a before-commit event handler.
  3. When the attribute is used only in client-side sorting of a small list.
  4. When the attribute is displayed on every page as a read-only label.

Explanation

Indexes speed up database filtering and sorting when the column appears in XPath queries, especially on large tables. They add write overhead, so indexing every displayed or client-sorted attribute is not justified.

Question 8Advanced domain modeling and data structure

In a one-to-one association between Employee and ParkingSpot, what is the effect of setting the association owner to ParkingSpot?

  1. Both tables store a foreign key, and Mendix keeps them synchronized.
  2. ParkingSpot stores the foreign key to Employee, and that side owns the relationship. Correct answer.
  3. Mendix creates a separate join table for the one-to-one association.
  4. The Employee table stores the foreign key to ParkingSpot.

Explanation

For a one-to-one association, the owner is the entity whose table holds the foreign key to the other entity. Changing ownership moves that foreign key column and affects which side is stored directly.

Question 9Advanced domain modeling and data structure

A microflow retrieves objects of the generalized entity Vehicle, which has specializations Car and Truck. Which objects does the retrieve return?

  1. Only objects whose concrete specialization is selected in the XPath.
  2. Vehicle, Car, and Truck objects, because specializations are Vehicles. Correct answer.
  3. Only objects created directly as Vehicle, excluding Car and Truck.
  4. Only Car and Truck objects, because Vehicle is abstract by default.

Explanation

Retrieving a generalization includes instances of its specializations, since every Car and Truck is also a Vehicle. To restrict the result, the XPath must filter on the specialization or another attribute.

Question 10Advanced domain modeling and data structure

An object is retrieved as the generalized entity Person and then deleted. The Person object has a specialization Employee. What happens to the Employee data?

  1. The Employee object becomes a Person object after the specialization is removed.
  2. The Employee object is deleted as well because it is the same object. Correct answer.
  3. The delete fails until the Employee object is deleted in a separate action.
  4. Only the Person row is deleted, and the Employee object remains orphaned.

Explanation

A specialization instance is the same runtime object viewed through a more specific entity, not a separate record with an independent lifecycle. Deleting it through the generalization therefore deletes the specialized object too.

Question 11Advanced domain modeling and data structure

A financial domain model must store account balances with exact decimal precision. Which Mendix attribute type should be used for the balance?

  1. Float
  2. Decimal Correct answer.
  3. String
  4. Integer

Explanation

Decimal stores exact fixed-point values and is the appropriate choice for monetary amounts. Float uses binary floating-point representation and can introduce rounding artifacts. Integer cannot represent fractional cents, and String loses numeric behavior.

Question 12Advanced domain modeling and data structure

An Order entity has an AutoNumber attribute OrderNumber. A microflow creates a new Order but does not commit it. What is true about OrderNumber at that moment?

  1. It can be assigned manually before commit.
  2. It is empty until the object is committed. Correct answer.
  3. It is set only after the object is retrieved from the database.
  4. It already contains the next number reserved for the object.

Explanation

AutoNumber values are generated by the database when the object is committed. Before commit the attribute is empty, so logic that needs the number must run after the commit or re-read the object. Manual assignment of AutoNumber values is not supported.

Question 13Advanced domain modeling and data structure

Which statement describes the Mendix object ID of a persistent entity object?

  1. A stable GUID assigned at creation Correct answer.
  2. A value recalculated on every commit
  3. The first attribute marked as unique
  4. A number unique only within its module

Explanation

Every Mendix object receives a globally unique ID at creation, and that ID identifies the object across commits. It is not derived from a business attribute or recalculated during persistence. Module boundaries do not change its uniqueness.

Question 14Advanced domain modeling and data structure

A Garage entity has a one-to-many association to Vehicle. Vehicle has specializations Car and Truck. A microflow creates a new Car and a Garage. Can the Car be associated with the Garage through that association?

  1. Yes, but only after the Garage is committed
  2. No, because the association targets only Vehicle itself
  3. Yes, because Car is a specialization of Vehicle Correct answer.
  4. No, because a Car must first be committed as a Vehicle

Explanation

An association whose target is a generalized entity accepts instances of that entity and all of its specializations. Car is a Vehicle, so it can be associated directly without being converted or committed first. The association cardinality and ownership rules still apply normally.

Question 15Advanced domain modeling and data structure

Students enroll in Courses, and each enrollment must store an EnrollmentDate and a Grade. Which domain model structure best supports this?

  1. New attributes on Student
  2. An Enrollment entity linked to Student and Course Correct answer.
  3. New attributes on Course
  4. A reference set with a non-persistent holder

Explanation

A many-to-many association cannot carry its own attributes in Mendix. The relationship is modeled as an intermediate entity, Enrollment, with many-to-one associations to Student and Course plus the attributes for each enrollment. This also allows one student to have different grades in different courses.

Question 16Advanced domain modeling and data structure

Person has a calculated attribute FullName computed by a microflow. A developer wants to filter Person objects in a database retrieve using an XPath constraint on FullName. What is the correct assessment?

  1. It works when FullName is marked unique
  2. It works because the value is stored in a hidden column
  3. It fails only when the microflow uses string functions
  4. It fails; calculated attributes are not usable in XPath Correct answer.

Explanation

Calculated attributes are evaluated at runtime by a microflow and are not stored in the database. Database retrieves and XPath constraints can use only persisted members, so FullName must be persisted or the filtering must happen after retrieval. The limitation is not tied to the string functions used in the microflow.

Question 17Advanced domain modeling and data structure

You need a reusable constraint that Email must contain '@' and that produces a validation message when a user saves an object, without writing a microflow. Which domain model feature should you use?

  1. A calculated attribute that returns a Boolean
  2. A validation rule on the Email attribute Correct answer.
  3. A before-commit event handler on the entity
  4. An XPath constraint in the entity access rule

Explanation

Validation rules are declared on entity members and provide built-in validation messages during commit without requiring a microflow. Event handlers and calculated attributes would require custom logic, while an access XPath controls which objects a user may see or change.

Question 18Advanced domain modeling and data structure

A Person can be a Customer and an Employee at the same time, with different attributes for each role. Mendix supports single inheritance only. Which domain model approach is appropriate?

  1. Make Person a specialization of both Customer and Employee
  2. Create one Person entity containing every Customer and Employee attribute
  3. Make Customer and Employee both specializations of Person and use multiple inheritance
  4. Keep Person separate and associate it with Customer and Employee role entities Correct answer.

Explanation

Because a specialization can have only one generalization, overlapping roles are modeled with separate entities and associations rather than multiple inheritance. This keeps role-specific attributes and access rules separate while linking them to the same Person. It also avoids a single entity that mixes unrelated role data.

Question 19Advanced domain modeling and data structure

A before-commit event handler on Order retrieves the same Order and commits it again to update a status field. What is the main risk of this design?

  1. The Order is committed twice with stale data
  2. The commit is silently ignored by the runtime
  3. Recursive re-entry can cause repeated commits or an error Correct answer.
  4. The handler runs only on the first commit

Explanation

Committing the same object inside its before-commit handler can trigger the same event again, leading to recursion or a runtime error. The handler should modify the object directly and let the original commit persist the change. Event handlers are not silently skipped in this situation.

Question 20Advanced domain modeling and data structure

An Enrollment entity has a many-to-one association to Course. The association is configured so that a Course cannot be deleted while Enrollment objects reference it. A user tries to delete a Course that has enrollments. What happens?

  1. The Course is deleted and the Enrollment objects are deleted as well
  2. The deletion succeeds only if the Course has no attributes
  3. The Course is deleted and its Enrollment objects are left orphaned
  4. The deletion is prevented while Enrollment objects reference the Course Correct answer.

Explanation

The prevent-deletion delete behavior enforces referential integrity by blocking deletion of the Course while referencing Enrollment objects exist. The user must remove or reassign those enrollments first. Cascading deletion would require the delete-as-well behavior instead.

Question 21Advanced domain modeling and data structure

A persistent AuditRecord entity must record the date and time when each record was first stored in the database, without custom microflow logic. Which system attribute provides this value?

  1. ChangedBy
  2. CreatedDate Correct answer.
  3. ChangedDate
  4. Owner

Explanation

CreatedDate is a system attribute that Mendix sets when a persistent object is first committed. ChangedDate updates on later commits, while Owner and ChangedBy identify users rather than timestamps.

Question 22Advanced domain modeling and data structure

A Department must be linked to many Employee objects, while each Employee is linked to exactly one Department. Which association type expresses this requirement directly in a Mendix domain model?

  1. Generalization
  2. Many-to-many
  3. One-to-many Correct answer.
  4. One-to-one

Explanation

A one-to-many association connects one Department to many Employee objects while each Employee has a single Department. One-to-one limits both sides to one, many-to-many allows multiple on both sides, and generalization is inheritance rather than an association.

Question 23Advanced domain modeling and data structure

Which validation rule on a persistent entity attribute blocks saving an object when the attribute has no value?

  1. Regular expression
  2. Range
  3. Unique
  4. Required Correct answer.

Explanation

The Required validation rule marks an attribute as mandatory and prevents an object from being committed while the attribute is empty. Unique checks duplication, Range checks numeric limits, and Regular expression checks a text pattern.

Question 24Advanced domain modeling and data structure

A one-to-many association from Customer to Order uses the delete behavior 'Prevent deletion of Customer object(s)'. A user tries to delete a Customer that still has related Order objects. What is the result?

  1. The Customer and Orders are both retained, and the delete request is silently ignored.
  2. The Customer is deleted and the Orders remain without a Customer.
  3. The delete is blocked with an error because related Order objects still exist. Correct answer.
  4. The Customer is deleted and the Orders are deleted as well.

Explanation

Prevent deletion protects the Customer when related Order objects exist, so Mendix raises an error and does not delete the Customer. The related Orders must be removed or reassigned before the Customer can be deleted.

Question 25Advanced domain modeling and data structure

A Person entity has an association to Address. An Employee entity specializes Person. How does Mendix handle the Address association for Employee objects?

  1. Employee can use the association only when Address is the association owner.
  2. The association is available only after Employee is converted to Person in a microflow.
  3. Employee inherits the association, so Employee objects use the same Address association. Correct answer.
  4. Employee must define a second association to Address because inherited associations are not available.

Explanation

Specializations inherit attributes and associations from their generalization, so an Employee object exposes the Person-to-Address association. Defining a duplicate association on Employee would model a separate relationship and is unnecessary.

Question 26Advanced domain modeling and data structure

A developer needs to recalculate an Order's Total attribute immediately before the Order is saved and block the save when the total is invalid. Which event handler is appropriate?

  1. Before commit Correct answer.
  2. After commit
  3. After delete
  4. Before delete

Explanation

A before-commit event handler runs before the object is written and can change attribute values or roll back the commit when validation fails. After-commit handlers run too late to prevent the save, and delete handlers do not run for normal saves.

Question 27Advanced domain modeling and data structure

Which statement about entity generalization in a Mendix domain model is correct?

  1. Associations defined on a specialization are automatically inherited by its generalization.
  2. A specialization must always add at least one new attribute.
  3. An entity can specialize several general entities at once.
  4. An entity can have only one generalization, so Mendix supports single inheritance. Correct answer.

Explanation

Mendix supports single inheritance: a specialization has exactly one generalization, though it may add attributes and associations of its own. Multiple generalization and reverse inheritance of specialization members are not supported.

Question 28Advanced domain modeling and data structure

A modeler tries to create a non-persistent specialization of a persistent entity. How must the persistence settings be adjusted?

  1. The specialization can be non-persistent because persistence is set independently per entity.
  2. The specialization can remain non-persistent if the association owner is set to the persistent entity.
  3. The generalization must be changed to non-persistent, but only if it has no attributes.
  4. The specialization must be persistent, inheriting persistence from its generalization. Correct answer.

Explanation

In Mendix, a specialization must have the same persistence as its generalization; a persistent entity cannot have a non-persistent specialization. Persistence is therefore changed for the generalization or the specialization is made persistent.

Question 29Advanced domain modeling and data structure

Which association type is intended for a relationship in which each Student can enroll in many Courses and each Course can contain many Students, with no extra attributes on the relationship?

  1. Reference
  2. One-to-one reference
  3. Reference set Correct answer.
  4. Generalization

Explanation

A reference set implements a many-to-many association, allowing multiple objects on both sides. A reference is used for one-to-one or one-to-many relationships, and generalization is an inheritance relationship rather than an association.

Question 30Advanced domain modeling and data structure

A Warehouse entity has a one-to-many association to Item with delete behavior 'Delete Item object(s) as well'. Item has specializations PerishableItem and DurableItem. A user deletes a Warehouse that has one associated PerishableItem and one associated DurableItem. What happens?

  1. Deletion is blocked because a Warehouse cannot cascade-delete specialized Item objects.
  2. Only the PerishableItem is deleted because the association is defined on Item.
  3. The Warehouse is deleted, but the PerishableItem and DurableItem remain because specializations cannot be cascade-deleted.
  4. The Warehouse is deleted, and both specialized Item objects are deleted as well. Correct answer.

Explanation

Cascade delete applies to the associated Item objects, and PerishableItem and DurableItem instances are Item objects through specialization. Deleting the Warehouse therefore deletes both specialized objects along with the Warehouse.

Question 31Security and access control

In a Mendix app, a microflow needs to be callable by users who have the user role OrderClerk. Which configuration grants that access?

  1. Assign the user role OrderClerk directly to the microflow in its security properties.
  2. Grant entity create access on every entity the microflow uses and leave microflow roles empty.
  3. Assign an appropriate module role to the microflow and map OrderClerk to that module role. Correct answer.
  4. Set the microflow's 'Apply entity access' property to Yes so OrderClerk can execute it.

Explanation

Microflow execution rights are granted to module roles, not directly to user roles. User roles receive module roles through the user role mapping configured in Security. The 'Apply entity access' property affects data retrieval behavior, not who is allowed to execute the microflow.

Question 32Security and access control

Which entity access right is configured at the entity level in the Mendix Domain Model, rather than on individual attributes?

  1. Read
  2. Member read
  3. Write
  4. Create Correct answer.

Explanation

Create and delete rights are set for the entity as a whole. Read and write rights are configured per attribute through member access. This distinction matters when a user may create an object but should not see or change every attribute.

Question 33Security and access control

A page is included in the navigation layout, but no module role has been granted access to that page. What happens when a signed-in user whose user role maps to module roles opens the app and selects the navigation item?

  1. The page opens only for users who have the Administrator user role.
  2. The page opens because being in navigation grants access to all signed-in users.
  3. Access is denied because page access must be granted explicitly to a module role. Correct answer.
  4. The page opens in read-only mode with entity access applied.

Explanation

Navigation visibility and page access are separate controls. A page is accessible only when at least one of the user's module roles has been granted access to it. Putting the page in navigation does not by itself grant access to any user.

Question 34Security and access control

A microflow has 'Apply entity access' set to No and is executable by module role OrderClerk. A user with OrderClerk runs the microflow, which retrieves Customer objects. What is the result?

  1. The retrieve fails because entity access must be enabled for all microflows.
  2. The retrieve enforces the Customer entity access rules of the current user.
  3. The retrieve returns only Customers for which OrderClerk has create access.
  4. All Customer objects are returned without the user's entity access constraints. Correct answer.

Explanation

With 'Apply entity access' set to No, the microflow performs data operations without applying the executing user's entity access rules. Access to execute the microflow is still controlled by its allowed module roles. Setting the property to Yes would enforce the user's entity access constraints.

Question 35Security and access control

An entity access rule grants module role Sales read access to Order with the XPath constraint [SalesRep = '[%CurrentUser%]']. Module role Auditor grants read access to Order with no XPath constraint. A user has both Sales and Auditor. Which Orders can the user read?

  1. All Orders, because the Auditor grant is unrestricted and module role access is additive. Correct answer.
  2. No Orders, because the two access rules conflict.
  3. Only Orders that satisfy both the SalesRep constraint and the Auditor rule at the same time.
  4. Only Orders whose SalesRep is the current user, because the stricter constraint wins.

Explanation

A user's effective access is the union of the access granted by all assigned module roles. The unrestricted Auditor rule already allows reading every Order, so the Sales constraint does not reduce that access. Access rules do not cancel each other or require both constraints to be satisfied.

Question 36Security and access control

A user's module role has read access to the Customer entity, but member access for the Name attribute is set to none. A page retrieves Customers and displays Customer.Name. What is the effect?

  1. Name is not exposed to the client because member read access is denied. Correct answer.
  2. The Name value is still shown because entity read access overrides member access.
  3. The Name value is shown only if the user also has write access to Name.
  4. The whole Customer object is hidden from the page because one attribute is inaccessible.

Explanation

Entity access determines whether objects can be retrieved, while member access determines which attributes are available. Without read access on Name, the attribute value is not exposed to the client even though the Customer object itself is readable. Write access controls updating values, not viewing them.

Question 37Security and access control

Which statement about the built-in Administrator user role in a Mendix app is correct?

  1. It cannot be combined with any other user role in a user account.
  2. It automatically bypasses all entity access rules and page access checks at runtime for every user.
  3. It starts mapped to all module roles, and those assignments still govern access. Correct answer.
  4. It can execute only microflows that belong to the System module.

Explanation

The Administrator user role is a normal user role that is initially mapped to every module role. Effective access is still determined by those module role assignments and their entity, microflow, and page permissions. It does not create a runtime superuser bypass.

Question 38Security and access control

A published REST service is configured as Secure with custom authentication. What must be in place for an external client to call one of its operations?

  1. The service becomes anonymous after the custom authentication microflow returns true.
  2. The authentication microflow returns a System.User, and that user's roles must map to an allowed module role. Correct answer.
  3. The client must present an API key that is defined in the Runtime settings of the Mendix Modeler.
  4. The client must send a Mendix user name and password, and the operation runs with that account's user roles.

Explanation

Custom authentication delegates identity validation to a microflow that must return a System.User. The operation is authorized against module roles, so the returned user's user roles must map to a module role that is allowed for that operation. Returning a boolean or true does not establish an authenticated Mendix user.

Question 39Security and access control

Microflow A has 'Apply entity access' set to Yes and calls microflow B, which has 'Apply entity access' set to No. Microflow B retrieves Order objects. The executing user has no read access to Order. What happens?

  1. Microflow B retrieves no Orders because the user lacks read access.
  2. Microflow B inherits microflow A's setting and therefore enforces the user's entity access rules.
  3. Microflow B retrieves the Order objects without applying the user's entity access rules. Correct answer.
  4. The call fails before B starts because a sub-microflow cannot disable entity access.

Explanation

The 'Apply entity access' property is evaluated per microflow. Microflow B's own setting is No, so its retrieve does not apply the current user's entity access rules; microflow A's setting does not cascade into B. This per-microflow behavior is important when reviewing nested microflow security.

Question 40Security and access control

Module role Creator has create access to Order but no write access to the Status attribute. Module role Editor has write access to Status but no create access to Order. A user has both Creator and Editor. What can the user do?

  1. Set Status on existing Orders only, because create access requires write access in the same module role.
  2. Neither create an Order nor set Status, because no single module role has both rights.
  3. Create an Order only with a default Status, because write access cannot be combined across module roles.
  4. Create an Order and set Status, because create access comes from Creator and write access to Status comes from Editor. Correct answer.

Explanation

Effective rights are combined across all module roles assigned to the user. Create access on the entity comes from Creator, and member write access on Status comes from Editor, so together they allow creating an Order with a Status value. The rights do not need to reside in one module role.

Question 41Security and access control

A Mendix app defines user role Employee and module roles Shop.Employee and Shop.Manager. The user role Employee is linked only to Shop.Employee. A user assigned Employee signs in. Which access applies to that user?

  1. No access until the user is also assigned the Administrator user role.
  2. Only page, microflow, and entity access granted to Shop.Employee. Correct answer.
  3. Only entity access granted to Shop.Employee, while page access comes from Shop.Manager.
  4. All access granted to both Shop.Employee and Shop.Manager, because user roles inherit module roles.

Explanation

A user receives access only through the user roles assigned to that user. Each user role is linked to one or more module roles, and the linked module roles determine page, microflow, and entity access. Shop.Manager is not linked to the Employee user role, so its rights do not apply.

Question 42Security and access control

A user must create new Order objects in a microflow that has Apply entity access set to Yes. The user's module role has no entity-level Create right on Order. What happens when the microflow tries to create and commit an Order?

  1. The create is denied only if the user also lacks read access to Order.
  2. The create succeeds but the Order is visible only to the Administrator.
  3. The create is denied because the module role lacks the entity-level Create right. Correct answer.
  4. The create succeeds because the microflow's Apply entity access setting grants create rights.

Explanation

Creating an object requires the entity-level Create right for the executing user's module role when entity access is applied. The microflow setting does not grant rights; it only makes the platform enforce the configured entity access rules.

Question 43Security and access control

An app allows anonymous users, and a public landing page must be reachable without signing in. What must be configured?

  1. The page must be added to the navigation layout and assigned to the Administrator user role.
  2. The page must be set to No authentication in its properties, regardless of module roles.
  3. The page must be published as a REST endpoint with no authentication.
  4. The Anonymous user role must be linked to a module role that has access to the page. Correct answer.

Explanation

Anonymous access is controlled through the Anonymous user role. To reach a page without signing in, that user role must be linked to a module role that has page access, and the page must be reachable through navigation or a URL.

Question 44Security and access control

A page is accessible to module role Clerk, and it contains a button that calls microflow ProcessOrder. ProcessOrder lists only module role Manager under allowed roles. A Clerk opens the page and clicks the button. What is the result?

  1. ProcessOrder runs with the Manager module role applied temporarily.
  2. The call is denied because the Clerk lacks execute access to ProcessOrder. Correct answer.
  3. The button is hidden automatically because the page and microflow roles differ.
  4. ProcessOrder runs because the Clerk can open the calling page.

Explanation

Page access and microflow execution access are configured separately. A user can open a page but still be blocked from a microflow if the user's module role is not in the microflow's allowed roles list.

Question 45Security and access control

A microflow with Apply entity access set to Yes retrieves Order objects. Module role Sales has read access to Order with XPath constraint [Status = 'Open']. The database contains both open and closed orders, and a Sales user runs the microflow. Which orders are returned?

  1. All orders, because the microflow applies its own retrieve constraint instead.
  2. No orders, because XPath constraints are ignored in microflows.
  3. Only orders with Status 'Open'. Correct answer.
  4. Only orders created by the Sales user, because read access always adds an owner constraint.

Explanation

With Apply entity access set to Yes, the platform applies the entity access rule for the user's module role. The XPath constraint filters the retrieve so only Order objects matching Status = 'Open' are visible to that Sales user.

Question 46Security and access control

A published REST service is configured with custom authentication. The authentication microflow returns an empty System.User object. What does the platform do with the request?

  1. It executes the operation as the Administrator user.
  2. It falls back to basic authentication using the app's demo users.
  3. It executes the operation as the Anonymous user.
  4. It rejects the request as unauthenticated. Correct answer.

Explanation

Custom authentication must return a valid System.User to establish the request context. An empty result means authentication did not succeed, so the platform rejects the request instead of running the operation.

Question 47Security and access control

Module role Clerk has read access to Order but no write access at entity level. The same role has write access to the Status attribute. A Clerk edits Status on an existing order and saves. What happens?

  1. The save succeeds but only the Status change is persisted, while other fields are locked.
  2. The save is denied because attribute write access cannot be granted without entity write access.
  3. The save is denied because entity-level write access is also required. Correct answer.
  4. The save succeeds because attribute write access is sufficient for updates.

Explanation

Updating an existing object requires entity-level Write access and Write access to each changed attribute. Attribute-level Write alone is not enough; the entity-level check blocks the commit.

Question 48Security and access control

A microflow has Apply entity access set to No and is executable by module role Clerk. It retrieves all Customer objects without an XPath constraint. A Clerk who has no read access to Customer in entity access runs the microflow. What is the security consequence?

  1. The retrieve returns only Customers owned by Clerk.
  2. The microflow can read all Customer records because entity access is bypassed. Correct answer.
  3. The retrieve fails with an access-denied error before returning records.
  4. The retrieve returns no records because Clerk lacks read access.

Explanation

When Apply entity access is No, the platform does not apply entity access rules for that microflow. The developer must enforce any required restrictions, such as XPath constraints or role checks, because the microflow can retrieve all matching records.

Question 49Security and access control

A published REST operation is secured with custom authentication. The authentication microflow returns a System.User linked to module role External. The operation calls a microflow that has Apply entity access set to Yes and retrieves Order objects. What controls whether Order records are returned?

  1. The allowed roles on the REST operation only, because REST services bypass entity access.
  2. The Administrator user role, because custom authentication elevates to Administrator.
  3. The entity access rules for module role Anonymous, because REST requests start as anonymous.
  4. The entity access rules for module role External, including any XPath constraints. Correct answer.

Explanation

Custom authentication establishes a user context, and the returned System.User's module roles are used for authorization. Because the called microflow applies entity access, the External role's entity access rules and XPath constraints determine which Order records are returned.

Question 50Security and access control

Module role Sales has read access to Customer with XPath constraint [System.owner = '[%CurrentUser%]']. A Sales user creates a Customer in a microflow with Apply entity access set to Yes and commits it without setting owner explicitly. Under this rule, who can retrieve the new Customer?

  1. No one, because System.owner is empty unless the microflow sets it explicitly.
  2. Only the Administrator, because System.owner is a reserved attribute that normal users cannot match.
  3. Any user with the Sales module role, because the rule applies to the module role.
  4. The Sales user who created it, because System.owner is set to that user on commit. Correct answer.

Explanation

The System.owner attribute is set to the user who creates the object when security is enabled. The XPath constraint compares System.owner with the current user, so the creating Sales user matches the rule.