mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 06:36:55 +01:00
Table-level DataClassification is the effective default only for Normal fields declared inside that table object. A tableextension cannot set the property (AL0246) and its added fields do not inherit the base table value, so AS0016 still requires each of them to classify itself. State this in both privacy articles so the guidance cannot suppress genuine findings on the tableextension pattern, which is how most partner code adds fields. Also narrow the inheritance claim to verified AppSourceCop behaviour rather than asserting platform-level resolution, and make the sample's table-level default semantically representative of its fields while keeping a legitimate field-level override and demonstrating the tableextension boundary. Verified with alc.exe 18.0.37.11445 + Microsoft.Dynamics.Nav.AppSourceCop.dll: the revised sample produces no AS0016, and removing the explicit classification from the tableextension field makes AS0016 fire. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
40 lines
963 B
AL
40 lines
963 B
AL
table 50202 "System Configuration Log"
|
|
{
|
|
DataClassification = SystemMetadata;
|
|
|
|
fields
|
|
{
|
|
field(1; "Entry No."; Integer)
|
|
{
|
|
}
|
|
field(2; "Setting Name"; Text[100])
|
|
{
|
|
}
|
|
field(3; "Changed At"; DateTime)
|
|
{
|
|
}
|
|
field(4; "Changed By"; Code[50])
|
|
{
|
|
DataClassification = EndUserIdentifiableInformation;
|
|
}
|
|
}
|
|
|
|
keys
|
|
{
|
|
key(PK; "Entry No.") { Clustered = true; }
|
|
}
|
|
}
|
|
|
|
tableextension 50203 "System Config Log Correlation" extends "System Configuration Log"
|
|
{
|
|
fields
|
|
{
|
|
// A table extension cannot set the table-level property and does not inherit
|
|
// the base table's default, so this field must classify itself even though
|
|
// SystemMetadata is the value the base table already declares.
|
|
field(50203; "Correlation Id"; Guid)
|
|
{
|
|
DataClassification = SystemMetadata;
|
|
}
|
|
}
|
|
}
|