BC AL Help . dev
Code is Poetry
Welcome
BC Patterns
BC Dev. Best Practices
NAV Patterns Archive
1. Patterns
Activity Logs
Argument Table
Blocked Entity
Data Driven Blocked Entity
Cached Web Server Calls
Conditional Cascading Update
Copy Document
Create Data from Templates
Create URLs to NAV Clients
Creating Custom Charts
Cross Session Events
Currently Active Record
Data Migration Facade
Discovery Event
Document
Easy Update Of Setup Or Supplementary Information
Error Message Processing
Extending the Role Center Headlines
Feature Localization For Data Structures
Hooks
Surrogate keys using Autoincrement Pattern
Instructions in the UI
Integration of Addresses
Journal Error Processing
Journal Template Batch Line
Master Data
Multi-file Download
Multi-Page List
Multilanguage Application Data
NET Exception Handling in CAL
TryFunction NET Exception Handling in CAL
No Series
Notifications
In-context Notifications
Notification Lifecycle Management Pattern
Observer
Posting Routine - Select Behavior
Product Name
Queries
SELECT DISTINCT with Queries
use Queries to Detect Duplicate Records
Use Queries to Replace Nested Loops
Read-once Initialization and Validation
Released Entity
Report Selection
Security
Setup Specificity Fallback
Silent File Upload and Download
Singleton
Singleton Codeunit
Singleton Table
Cue Table
Setup Table
Standard Journal
Temporary Dataset Report
Totals and Discounts on Subpages Sales and Purchases
Transfer Custom Fields
Variant Facade
2. Anti-Patterns
Nav Upgrade
Reusable Bugs
3. CAL Coding Guidelines
Design
Internally-used DotNet Types
Internationalization
Using Calcdate
Localizability
CaptionML on System Pages
FIELDCAPTION and TABLECAPTION
Global Text Constants
Use Text Constants
Using OptionCaptionML
Readability
Begin as an 'After Word'
Begin-End - Compound Only
Binary Operator to Start Line
Blank Lines.md
CASE Action
Colon usage in CASE
Comments inside Curly Brackets
Comment Spacing
END ELSE Pair
Indentation
Keyword Pairs - Indentation
Line Start Keywords
Lonely Repeat
Named Invocations
Nested WITHs
One Statement Per Line
Separate IF and ELSE
Spacing Binary Operators
Spacing Brackets and ::
Spacing Unary Operators
Suggested Abbreviations
Temporary Variable Naming
TextConst Suffixes
Unary Operator Line End
Unnecessary Compound Parenthesis
Unnecessary ELSE
Unnecessary Function Parenthesis
Unnecessary Separators
Unnecessary TRUE/FALSE
Variable Already Scoped
Variable Naming
Variables Declarations Order
UX
Actions - Images
CONFIRM
FIELDERROR
MESSAGE and ERROR
(OLD) Get Involved
Code of Conduct
Patterns Authors
Template for writing Nav Design Patterns
Related Links
More
BC Discord
GitHub repo
Edit this page
Home
>
Welcome
Chapter X
Some Chapter title
Lorem Ipsum.