---
id: object/table/20406
type: object
title: Table 20406 "Qlty. Inspection Line"
summary: Table 20406 "Qlty. Inspection Line" in Quality Management (Microsoft.QualityManagement.Document). 18 fields, 15 public procedures, 1 events. Introduced in BC29, still in BC30, changed in BC30.
tier: official
language: en
tags:
  - table
  - quality management
versions:
  introduced: "29"
  last_changed: "30"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: fd069da7b0b1a89732decad071bd7d7fc3a3ed8e89368587a8aa649a239affde
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Quality%20Management/app/src/Document/QltyInspectionLine.Table.al
    title: src/Apps/W1/Quality Management/app/src/Document/QltyInspectionLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/qms-manual-test-creation
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/quality-management
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11129
    - change/bcapps/10270
    - change/bcapps/8556
object_type: table
object_id: 20406
name: Qlty. Inspection Line
caption: Quality Inspection Line
namespace: Microsoft.QualityManagement.Document
app: Quality Management
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in:
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 18
  procedures: 21
  events: 1
  subscribers: 0
relations:
  out: 9
  referenced_by: 1
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 5
  called_by: 0
  implements: 0
---

# Table 20406 "Qlty. Inspection Line"

> Table 20406 "Qlty. Inspection Line" in Quality Management (Microsoft.QualityManagement.Document). 18 fields, 15 public procedures, 1 events. Introduced in BC29, still in BC30, changed in BC30.

Quality Management · Microsoft.QualityManagement.Document · captioned "Quality Inspection Line" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Quality%20Management/app/src/Document/QltyInspectionLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 20407 "Qlty. Inspection Subform"](../page/20407.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Quality Inspection Line |
| DataClassification | CustomerContent |
| LookupPageId | Qlty. Inspection Lines |
| DrillDownPageId | Qlty. Inspection Lines |
| Permissions | tabledata "Qlty. I. Result Condit. Conf." = rd, tabledata "Qlty. Test" = r, tabledata "Qlty. Inspection Result" = r, tabledata "Qlty. Inspection Template Line" = r, tabledata "Qlty. Inspection Header" = r, tabledata "Qlty. Inspection Line" = rm |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Inspection No. | Code[20] | Specifies which inspection this is. | not editable |
| 2 | Re-inspection No. | Integer | Specifies the re-inspection counter. | not editable |
| 3 | Line No. | Integer | Specifies the line no. of the inspection in this template. |  |
| 4 | Template Code | Code[20] | Specifies which template this inspection was created from. | TableRelation [Table 20405 "Qlty. Inspection Header"](../table/20405.md) ("Qlty. Inspection Header"."Template Code"); not editable |
| 5 | Template Line No. | Integer | Quality Inspection Template Line No. <small>caption</small> | TableRelation [Table 20403 "Qlty. Inspection Template Line"](../table/20403.md) ("Qlty. Inspection Template Line"."Line No." where("Template Code" = field("Template Code"))); not editable |
| 12 | Test Code | Code[20] | Specifies the field/question/metric in this test. | TableRelation [Table 20401 "Qlty. Test"](../table/20401.md) ("Qlty. Test".Code); NotBlank |
| 13 | Description | Text[100] | Specifies a description of the field as it is used on the test. |  |
| 14 | Test Value Type | Enum "Qlty. Test Value Type" | Specifies the data value type of the test. The value is automatically retrieved from the Test Value Type field on the test template. | FlowField: lookup("Qlty. Test"."Test Value Type" where(Code = field("Test Code"))); enum [Enum 20415 "Qlty. Test Value Type"](../enum/20415.md); not editable |
| 16 | Allowable Values | Text[500] | Specifies an expression for the range of values you can enter or select for the Test. Depending on the Test Value Type, the expression format varies. For example if you want a measurement such as a percentage that collects between 0 and 100 you would enter 0..100. This is not the pass or acceptable ... | not editable |
| 18 | Test Value | Text[250] | Specifies the recorded test value. |  |
| 19 | Test Value Blob | Blob | Specifies large test value data. Typically used for larger text that is captured. |  |
| 25 | Derived Numeric Value | Decimal | Specifies an evaluated numeric value of Test Value for use in calculations and analysis. This value is automatically calculated when the Test Value is entered or modified based on the configuration of the Test Value and is not directly editable. | not editable |
| 28 | Result Code | Code[20] | Specifies the automatically calculated result based on the evaluation of the actual test value against the defined result conditions. | TableRelation [Table 20411 "Qlty. Inspection Result"](../table/20411.md) ("Qlty. Inspection Result".Code); not editable |
| 29 | Result Description | Text[100] | Specifies the description of the test result. This value is automatically retrieved from the result definition based on the Result Code field. | FlowField: lookup("Qlty. Inspection Result"."Description" where("Code" = field("Result Code"))); not editable |
| 30 | Evaluation Sequence | Integer | Specifies the associated evaluation sequence of the test result. The value is automatically determined based on the actual test value and result configuration. | not editable |
| 33 | Failure State | Enum "Qlty. Line Failure State" | — | enum [Enum 20435 "Qlty. Line Failure State"](../enum/20435.md); not editable |
| 34 | Non-Conformance Inspection No. | Code[20] | Specifies a free text editable reference to a Non-Conformance Inspection No. |  |
| 35 | Unit of Measure Code | Code[10] | Specifies the unit of measure for the measurement. | TableRelation [Table 204 "Unit of Measure"](../table/204.md) ("Unit of Measure".Code) |

## Keys

- Key1: Inspection No., Re-inspection No., Line No. (clustered)
- Key2: Template Code, Inspection No., Re-inspection No., Test Code, Result Code
- Key3: Template Code, Inspection No., Re-inspection No., Evaluation Sequence
- Key4: Template Code, Inspection No., Re-inspection No., Test Code, SystemCreatedAt, SystemModifiedAt

## Events published

- `OnBeforeEvaluateNumericTestValue(var QltyInspectionLine: Record "Qlty. Inspection Line"; var IsHandled: Boolean)` (integration): Allows subscribers to replace numeric test-value evaluation.

## Procedures

- `ValidateTestValue()` (protected): Validates and evaluates the current test value against its inspection and result configuration.
- `AssistEditTestValue()`: Opens the assist-edit interaction appropriate for the current test value type.
- `AssistEditFreeText()` (internal): Opens the large-text editor and stores an accepted value on the inspection line.
- `GetLargeText(): Text` (internal): Reads the full test value from the text BLOB, falling back to the Test Value field.
- `SetLargeText(LargeText: Text; ValidateValue: Boolean; OnlySetBlob: Boolean)` (internal): Stores a large test value in the field and, for text tests, in the text BLOB.
- `CollectAllowableValues(var TempBufferQltyTestLookupValue: Record "Qlty. Test Lookup Value" temporary)` (internal): Collects the allowable lookup values for the current test and inspection context. Code = the unique code Description = raw description. Custom 1 = original value Custom 2 = lowercase value Custom 3 = uppercase value.
- `IsNumericFieldType(): Boolean` (internal): Determines whether the current test uses a numeric value type.
- `GetFailedSampleCount(): Integer` (internal): Gets the failed sample count, which is currently always zero.
- `GetResultStyle(): Text`: Gets the display style configured for the current result.
- `UpdateExpressionsInOtherInspectionLinesInSameInspection()` (internal): Reevaluates expression and condition-dependent lines in the same inspection after this line changes.
- `EvaluateTextExpression(var EvaluateAgainstQltyInspectionHeader: Record "Qlty. Inspection Header")` (internal): Evaluates the current line's text expression against the supplied inspection header.
- `GetMeasurementNote(): Text`: Reads the most recent note linked to the inspection line.
- `SetMeasurementNote(Note: Text)`: Updates the latest note linked to the inspection line or creates one when none exists.
- `RunModalEditMeasurementNote()` (internal): Opens an editable note dialog and stores the accepted measurement note.
- `RunModalReadOnlyComment()` (internal): Opens the current measurement note in a read-only dialog.

Plus 5 local procedures.

## Triggers

OnModify, OnDelete

## Relations

- drill-down page [Page 20413 "Qlty. Inspection Lines"](../page/20413.md)
- lookup page [Page 20413 "Qlty. Inspection Lines"](../page/20413.md)
- Unit of Measure Code: TableRelation [Table 204 "Unit of Measure"](../table/204.md)
- Test Value Type: CalcFormula [Table 20401 "Qlty. Test"](../table/20401.md)
- Test Code: TableRelation [Table 20401 "Qlty. Test"](../table/20401.md)
- Template Line No.: TableRelation [Table 20403 "Qlty. Inspection Template Line"](../table/20403.md)
- Template Code: TableRelation [Table 20405 "Qlty. Inspection Header"](../table/20405.md)
- Result Description: CalcFormula [Table 20411 "Qlty. Inspection Result"](../table/20411.md)
- Result Code: TableRelation [Table 20411 "Qlty. Inspection Result"](../table/20411.md)

## Referenced by

1 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table 20412 "Qlty. I. Result Condit. Conf."](../table/20412.md): Target Line No.

## Pages and codeunits on this table

- [Page 20407 "Qlty. Inspection Subform"](../page/20407.md) (source table)
- [Page 20413 "Qlty. Inspection Lines"](../page/20413.md) (source table)
- [Codeunit 20410 "Qlty. Result Evaluation"](../codeunit/20410.md) (codeunit runs on it)

## 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 20410 "Qlty. Result Evaluation"](../codeunit/20410.md) (2 calls: `UpdateExpressionsInOtherInspectionLinesInSameInspection → GetInspectionLineConfigFilters`, `ValidateTestValue → ValidateQltyInspectionLine`)
- [Codeunit 447 "Record Link Management"](../codeunit/447.md) (2 calls: `GetMeasurementNote → ReadNote`, `SetMeasurementNote → WriteNote`)
- [Codeunit 20406 "Qlty. Permission Mgmt."](../codeunit/20406.md) (1 call: `SetMeasurementNote → VerifyCanEditLineComments`)
- [Codeunit 20416 "Qlty. Expression Mgmt."](../codeunit/20416.md) (1 call: `EvaluateTextExpression → EvaluateTextExpression`)
- [Page 20436 "Qlty. Lookup Field Choose"](../page/20436.md) (1 call: `AssistEditChooseFromTableLookup → (object)`)

## Recent changes

- 2026-10-05 [#11129 [Quality Management] Refactor permission management](../../changes/bcapps/11129.md) (main, BC30, refactor)
- 2026-08-20 [#10270 [Quality Management] Repair and improve XML documentation of procedures](../../changes/bcapps/10270.md) (main, BC30, refactor)
- 2026-07-08 [#8556 [Quality Management] Enforce rules and restrictions with indirect and implicit permissions](../../changes/bcapps/8556.md) (main, BC30, feature)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: BC30

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## 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: "table", object_name: "Qlty. Inspection Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
