bcquality/custom/knowledge/patterns/cmfrt-use-confirmmanagement.md
BeytullahCengiz88 afb1fa2883 Add CMFRT naming conventions, object ID ranges, and patterns documentation
- Introduced guidelines for using the "CMFRT" prefix in object names, fields, and procedures to avoid naming collisions and ensure clarity.
- Established rules for object ID ranges to prevent conflicts with other extensions and maintain historical integrity.
- Documented best practices and anti-patterns for various coding patterns, including case statements, interface injection, label usage, and validation methods.
- Implemented a standards review skill to evaluate AL source changes against CMFRT company standards, ensuring compliance with naming, permissions, and architectural patterns.
2026-07-14 14:09:04 +02:00

1.5 KiB

bc-version domain keywords technologies countries application-area
all
patterns
confirm
confirmmanagement
dialog
user-confirmation
test
automation
testability
al
w1
all

CMFRT use ConfirmManagement instead of Confirm

Description

CMFRT AL code must use the "Confirm Management" codeunit to prompt the user for confirmation instead of calling the Confirm built-in function directly. "Confirm Management" wraps Confirm and resolves confirmation dialogs without displaying UI during automated test runs, making test behaviour deterministic. The Confirm built-in always renders a modal dialog regardless of execution context, which causes automated tests to hang waiting for user input.

Best Practice

Declare ConfirmManagement: Codeunit "Confirm Management"; as a local variable and call ConfirmManagement.GetResponseOrDefault(QuestionLbl, true). The codeunit suppresses the dialog automatically in test context. Use a Label for the question text so it is translatable.

See sample: cmfrt-use-confirmmanagement.good.al.

Anti Pattern

Calling if Confirm(QuestionText, true) then directly. Direct Confirm calls are not interceptable by the test framework: the modal dialog appears during automated test runs, causing the test to stall indefinitely or fail with a UI-interaction error. Tests that hit a Confirm call cannot be run in a CI pipeline without manual intervention.

See sample: cmfrt-use-confirmmanagement.bad.al.