bcquality/custom/knowledge/naming/cmfrt-naming-prefix.md
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

1.7 KiB

bc-version domain keywords technologies countries application-area
all
naming
naming
prefix
cmfrt
object-name
procedure-name
field-name
abbreviation
al
w1
all

CMFRT naming prefix

Description

Every object, field, and procedure in a CMFRT extension must carry the CMFRT XXX prefix, where XXX is the product or customer abbreviation (for example GD for Geodynamics, BA for Batch Automation, JO for Jobs). The prefix applies to tables, table extensions, pages, page extensions, codeunits, interfaces, reports, enum values, and to all global and local procedures. Object and field names use the three-part form CMFRT <ABBR> <Descriptive Name> with spaces. Procedure names use the concatenated form CMFRT<ABBR><ProcedureName> with no spaces.

Best Practice

Name every object "CMFRT <ABBR> <Name>" — for example "CMFRT GD Job" or "CMFRT GD POI". Name every field "CMFRT <ABBR> <FieldName>" — for example "CMFRT GD POI ID". Name every procedure CMFRT<ABBR><ProcedureName> — for example CMFRTGDCalculatePOIDistance. The procedure name must be self-describing: a reader must understand what the procedure does without reading its body. Local procedures follow the same rule.

See sample: cmfrt-naming-prefix.good.al.

Anti Pattern

Naming objects, fields, or procedures without the CMFRT prefix — for example procedure CalculateDiscount() or field(50000; "Amount"; Decimal). Unprefixed members collide with base application fields, break the reviewer's ability to identify extension-owned members, and violate the astena naming convention enforced across all CMFRT extensions.

See sample: cmfrt-naming-prefix.bad.al.