bcquality/custom/knowledge/patterns/cmfrt-interface-injection.good.al
BeytullahCengiz88 afb1fa2883 Add CMFRT naming conventions, object ID ranges, and patterns documentation
- Introduced guidelines for using the "CMFRT" prefix in object names, fields, and procedures to avoid naming collisions and ensure clarity.
- Established rules for object ID ranges to prevent conflicts with other extensions and maintain historical integrity.
- Documented best practices and anti-patterns for various coding patterns, including case statements, interface injection, label usage, and validation methods.
- Implemented a standards review skill to evaluate AL source changes against CMFRT company standards, ensuring compliance with naming, permissions, and architectural patterns.
2026-07-14 14:09:04 +02:00

31 lines
901 B
AL

// Step 1: Interface with a single procedure.
interface "CMFRT MS ICalcTotals"
{
procedure CMFRTMSCalcTotals(var MeasureState: Record "CMFRT MS Measure State");
}
// Step 2 & 3: Base-table entry point and interface-accepting overload.
table 2045090 "CMFRT MS Measure State"
{
procedure CalcTotals()
var
DefaultImpl: Codeunit "CMFRT MS CalcTotals Impl";
Handled: Boolean;
begin
OnBeforeDefaultImplCalcTotals(Rec, Handled);
if Handled then
exit;
CalcTotals(DefaultImpl);
end;
procedure CalcTotals(CalcImpl: Interface "CMFRT MS ICalcTotals")
begin
CalcImpl.CMFRTMSCalcTotals(Rec);
end;
// Step 4: OnBefore event with Handled pattern.
[IntegrationEvent(false, false)]
local procedure OnBeforeDefaultImplCalcTotals(var Ms: Record "CMFRT MS Measure State"; var Handled: Boolean)
begin
end;
}