mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
- tablerelation: fields with ValidateTableRelation/TestTableRelation = false are skipped by codeunit 134926 and may be longer (filter/totaling fields); shorter is still a finding. Add Code/Text type rule, BaseApp evidence, a ValidateTableRelation = false filter field to the good fixture, and the carve-out to the data-modeling cue. - recordref: add FindLast/Next, relabel SplitLocalTableFilter as filter splitting, mark fixtures as test-library-style helpers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
65 lines
1.5 KiB
AL
65 lines
1.5 KiB
AL
enum 50100 "Sample Source Type"
|
|
{
|
|
Extensible = true;
|
|
|
|
value(0; Category) { }
|
|
value(1; Region) { }
|
|
}
|
|
|
|
table 50100 "Sample Category"
|
|
{
|
|
fields
|
|
{
|
|
field(1; "Code"; Code[20]) { }
|
|
}
|
|
keys
|
|
{
|
|
key(PK; "Code") { Clustered = true; }
|
|
}
|
|
}
|
|
|
|
table 50101 "Sample Region"
|
|
{
|
|
fields
|
|
{
|
|
field(1; "Code"; Code[10]) { }
|
|
}
|
|
keys
|
|
{
|
|
key(PK; "Code") { Clustered = true; }
|
|
}
|
|
}
|
|
|
|
table 50102 "Sample Contract"
|
|
{
|
|
fields
|
|
{
|
|
field(1; "Code"; Code[20]) { }
|
|
// Unconditional relation: same type and exactly the same length as
|
|
// "Sample Category"."Code".
|
|
field(2; "Category Code"; Code[20])
|
|
{
|
|
TableRelation = "Sample Category"."Code";
|
|
}
|
|
field(3; "Source Type"; Enum "Sample Source Type") { }
|
|
// All branches conditional: at least as long as the longest related
|
|
// field (Code[20] covers both Code[20] and Code[10]).
|
|
field(4; "Source Code"; Code[20])
|
|
{
|
|
TableRelation = if ("Source Type" = const(Category)) "Sample Category"."Code"
|
|
else
|
|
if ("Source Type" = const(Region)) "Sample Region"."Code";
|
|
}
|
|
// Filter field: holds a filter expression, not one code, so it is
|
|
// deliberately longer and opts out of relation validation.
|
|
field(5; "Category Filter"; Code[250])
|
|
{
|
|
TableRelation = "Sample Category"."Code";
|
|
ValidateTableRelation = false;
|
|
}
|
|
}
|
|
keys
|
|
{
|
|
key(PK; "Code") { Clustered = true; }
|
|
}
|
|
}
|