Codeunit 20410 "Qlty. Result Evaluation"
Quality Management · Microsoft.QualityManagement.Configuration.Result
Across versions
- BC23-28not present
- BC29present
- BC30changed
Neighbourhood 7 connected objects and pages
Quality Management · Microsoft.QualityManagement.Configuration.Result · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| TableNo | Qlty. Inspection Line |
| Permissions | tabledata “Qlty. Test” = r, tabledata “Qlty. Inspection Result” = r, tabledata “Qlty. Inspection Header” = rm, tabledata “Qlty. Inspection Line” = rim, tabledata “Qlty. I. Result Condit. Conf.” = r |
Events published
OnBeforeEvaluateResult(var QltyIResultConditConf: Record "Qlty. I. Result Condit. Conf."; var QltyTestValueType: Enum "Qlty. Test Value Type"; var TestValue: Text; var Result: Code[20]; var IsHandled: Boolean)(integration): OnBeforeEvaluateResult gives an opportunity to change how a result is evaluated.OnAfterEvaluateResult(var QltyIResultConditConf: Record "Qlty. I. Result Condit. Conf."; var QltyTestValueType: Enum "Qlty. Test Value Type"; var TestValue: Text; var Result: Code[20]; var TempHighestQltyIResultConditConf: Record "Qlty. I. Result Condit. Conf." temporary)(integration): OnAfterEvaluateResult gives an opportunity to run additional logic after a result has been determined by the system.OnBeforeValidateAllowableValuesOnText(var TestNameForError: Text; var TextToValidate: Text[250]; var AllowableValues: Text; var QltyTestValueType: Enum "Qlty. Test Value Type"; var TempBufferQltyTestLookupValue: Record "Qlty. Test Lookup Value" temporary; var QltyCaseSensitivity: Enum "Qlty. Case Sensitivity"; var IsHandled: Boolean)(integration): Allows you to alter the behavior of validating allowable values on text.OnAfterValidateAllowableValuesOnText(var TestNameForError: Text; var TextToValidate: Text[250]; var AllowableValues: Text; var QltyTestValueType: Enum "Qlty. Test Value Type"; var TempBufferQltyTestLookupValue: Record "Qlty. Test Lookup Value" temporary; var QltyCaseSensitivity: Enum "Qlty. Case Sensitivity")(integration): Provides the opportunity to extend and add additional validation after the allowable values has occurred.
Procedures
EvaluateResult(var OptionalQltyInspectionHeader: Record "Qlty. Inspection Header"; var QltyIResultConditConf: Record "Qlty. I. Result Condit. Conf."; QltyTestValueType: Enum "Qlty. Test Value Type"; TestValue: Text; QltyCaseSensitivity: Enum "Qlty. Case Sensitivity"): Code[20](internal): Evaluates a result with an optional test. The test is used to help with expression evaluation.EvaluateResult(var OptionalQltyInspectionHeader: Record "Qlty. Inspection Header"; var OptionalQltyInspectionLine: Record "Qlty. Inspection Line"; var QltyIResultConditConf: Record "Qlty. I. Result Condit. Conf."; QltyTestValueType: Enum "Qlty. Test Value Type"; TestValue: Text; QltyCaseSensitivity: Enum "Qlty. Case Sensitivity"): Code[20](internal): Evaluates a result with an optional test and inspection line. The test is used to help with expression evaluation.ValidateQltyInspectionLine(var QltyInspectionLine: Record "Qlty. Inspection Line")(internal): Call this procedure to validate the inspection line.TryValidateQltyInspectionLine(var QltyInspectionLine: Record "Qlty. Inspection Line"; var OptionalQltyInspectionHeader: Record "Qlty. Inspection Header")(internal): This will not modify the inspection line. This will only try and validate the inspection line itself.ValidateQltyInspectionLine(var QltyInspectionLine: Record "Qlty. Inspection Line"; var OptionalQltyInspectionHeader: Record "Qlty. Inspection Header"; Modify: Boolean): Call this procedure to validate the inspection line for the given test.ValidateInspectionLineWithAllowableValues(var QltyInspectionLine: Record "Qlty. Inspection Line"; var OptionalQltyInspectionHeader: Record "Qlty. Inspection Header"; CheckForAllowableValues: Boolean; UpdateHeader: Boolean)(internal): Validates optional allowable values, evaluates the line result, sets its failure state, and optionally persists line and header updates.GetInspectionLineConfigFilters(var QltyInspectionLine: Record "Qlty. Inspection Line"; var TemplateLineQltyIResultConditConf: Record "Qlty. I. Result Condit. Conf.")(internal): Filters result conditions to the specified inspection line and test.ValidateAllowableValuesOnTest(var QltyTest: Record "Qlty. Test")(internal): Validates and normalizes a test default value against its allowable values without inspection context.ValidateAllowableValuesOnTest(var QltyTest: Record "Qlty. Test"; var OptionalContextQltyInspectionHeader: Record "Qlty. Inspection Header")(internal): Validates and normalizes a test default value with optional inspection header context.ValidateAllowableValuesOnTest(var QltyTest: Record "Qlty. Test"; var OptionalContextQltyInspectionHeader: Record "Qlty. Inspection Header"; var OptionalContextQltyInspectionLine: Record "Qlty. Inspection Line")(internal): Validates and normalizes a test default value with optional inspection header and line context.ValidateAllowableValuesFormat(var QltyTest: Record "Qlty. Test")(internal): Validates that the allowable values expression is a valid filter for the given test value type.CheckIfValueIsDecimal(ValueToCheck: Text; AcceptableValue: Text): Boolean(internal): Checks whether a decimal text value satisfies an acceptable-value filter.CheckIfValueIsInteger(ValueToCheck: Text; AcceptableValue: Text): Boolean(internal): Checks whether an integer text value satisfies an acceptable-value filter.CheckIfValueIsDateTime(var ValueToCheck: Text[250]; AcceptableValue: Text; AdjustValueIfGood: Boolean): Boolean(internal): Checks a date-time text value against a filter and optionally normalizes valid text.CheckIfValueIsDate(var ValueToCheck: Text[250]; AcceptableValue: Text; AdjustValueIfGood: Boolean): Boolean(internal): Checks a date text value against a filter and optionally normalizes valid text.CheckIfValueIsString(ValueToCheck: Text; AcceptableValue: Text): Boolean(internal): Checks a string against a case-sensitive acceptable-value filter.CheckIfValueIsString(ValueToCheck: Text; AcceptableValue: Text; QltyCaseSensitivity: Enum "Qlty. Case Sensitivity"): Boolean(internal): Checks a string against an acceptable-value filter with specified case sensitivity.CheckIfValueIsInPredefinedList(ValueToCheck: Text; AcceptableValue: Text; QltyCaseSensitivity: Enum "Qlty. Case Sensitivity"): Boolean(internal): Checks whether a value equals a literal entry in a comma- or pipe-separated list.
Plus 11 local procedures.
Triggers
OnRun
Relations
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 20436 “Qlty. Boolean Parsing” (3 calls:
TryApplyBooleanFilter → CanTextBeInterpretedAsBooleanIsh,ValidateAllowableValuesOnText → CanTextBeInterpretedAsBooleanIsh,ValidateAllowableValuesOnText → GetBooleanFor) - Codeunit 20431 “Qlty. Localization” (2 calls:
ValidateAllowableValuesOnText → GetTranslatedNo,ValidateAllowableValuesOnText → GetTranslatedYes) - Codeunit 20416 “Qlty. Expression Mgmt.” (1 call:
ValidateAllowableValuesOnInspectionLine → EvaluateTextExpression)
Called by
- Table 20401 “Qlty. Test” (2 calls:
ValidateAllowableValuesFormat → ValidateAllowableValuesFormat,ValidateAllowableValuesOnDefault → ValidateAllowableValuesOnTest) - Table 20406 “Qlty. Inspection Line” (2 calls:
UpdateExpressionsInOtherInspectionLinesInSameInspection → GetInspectionLineConfigFilters,ValidateTestValue → ValidateQltyInspectionLine) - Codeunit 20404 “Qlty. Inspection - Create” (1 call:
CreateQualityInspectionResultLinesFromTemplate → TryValidateQltyInspectionLine)
Recent changes
- 2026-08-20 #10270 [Quality Management] Repair and improve XML documentation of procedures (main, BC30, refactor)
- 2026-07-08 #8556 [Quality Management] Enforce rules and restrictions with indirect and implicit permissions (main, BC30, feature)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Qlty. Result Evaluation"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.