Custom columns
Quality Control (BC)
•
Article
•
8/26/2026
•
Custom columns allow you to add additional data columns to Quality Control App list tables via a per-tenant extension (PTE). Columns are populated dynamically per row when the table loads.
Supported tables
Custom columns can be added to the following tables:
- QC check list
- Posted QC check list
- QC action list
- Posted QC action list
CustomColumn object
Each custom column is represented as a JsonObject with the following fields:
| Field | Type | Description |
|---|---|---|
columnCaption | string | The column header displayed in the app. |
columnValue | string | The value to display for the current row. |
isFilterable | boolean | When true, the column's values are included in the app's search functionality. This value must be consistent across all rows for columns with the same caption. |
Events
To add columns to a table, subscribe to the relevant event and append CustomColumn objects to the CustomColumns parameter.
QCABCQualityCheck92FDW.Codeunit.al
[IntegrationEvent(false, false)]
local procedure OnGetQualityCheckCustomColumns(QCCheckHeader: Record QCCheckHeader92FDW; var CustomColumns: JsonArray)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnGetPostedQualityCheckCustomColumns(PostedQCCheckHeader: Record PostedQCCheckHeader92FDW; var CustomColumns: JsonArray)
begin
end;
QCABCAction92FDW.Codeunit.al
[IntegrationEvent(false, false)]
local procedure OnGetQualityActionCustomColumns(QCActionHeader: Record QCActionHeader92FDW; var CustomColumns: JsonArray)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnGetPostedQualityActionCustomColumns(PostedQCActionHeader: Record PostedQCActionHeader92FDW; var CustomColumns: JsonArray)
begin
end;
The record parameter in each event represents the row currently being rendered. Use it to read field values from the record and populate columnValue accordingly.
Example
The following example adds a custom column showing the item description to the QC check list:
[EventSubscriber(ObjectType::Codeunit, Codeunit::QCABCQualityCheck92FDW, OnGetQualityCheckCustomColumns, '', false, false)]
local procedure AddItemDescriptionColumn(QCCheckHeader: Record QCCheckHeader92FDW; var CustomColumns: JsonArray)
var
Item: Record Item;
ColumnObject: JsonObject;
begin
Clear(ColumnObject);
if Item.Get(QCCheckHeader."Item No.") then
ColumnObject.Add('columnValue', Item.Description)
else
ColumnObject.Add('columnValue', '');
ColumnObject.Add('columnCaption', 'Item Description');
ColumnObject.Add('isFilterable', true);
CustomColumns.Add(ColumnObject);
end;