mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
- 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.
31 lines
901 B
AL
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;
|
|
}
|