alguidelines.dev - Business Central Design Patterns – Readabilityhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/Recent content in Readability on alguidelines.dev - Business Central Design PatternsHugo -- gohugo.ioenDocs: Begin as an 'After Word'https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ <p>When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartnerRefType<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartnerRefType<span style="color:#000;font-weight:bold">::</span>&#34;Common Item No.&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <pre tabindex="0"><code>IF ICPartnerRefType = ICPartnerRefType::&#34;Common Item No.&#34; THEN BEGIN ... END; </code></pre>Docs: Begin-End - Compound Onlyhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/begin-end/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/begin-end/ <p>Only use BEGIN..END to enclose compound statements.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NEXT<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NEXT<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsAssemblyOutputLine<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TESTFIELD</span><span style="color:#ce5c00;font-weight:bold">(</span>&#34;Order Line No.&#34;<span style="color:#000;font-weight:bold">,</span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsAssemblyOutputLine<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TESTFIELD</span><span style="color:#ce5c00;font-weight:bold">(</span>&#34;Order Line No.&#34;<span style="color:#000;font-weight:bold">,</span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NEXT<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NEXT<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Exception</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic">// Except for this case </span></span></span><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"></span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>X<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Y<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span>SOMETHING<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">not</span><span style="color:#f8f8f8;text-decoration:underline"> </span>X<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div>Docs: Binary Operator to Start Linehttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ <p>Do not start a line with a binary operator.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Quantity to Ship&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Quantity<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Quantity Shipped&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Quantity to Ship&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Quantity<span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Quantity Shipped&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Blank Lineshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/blank-lines/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ <p>Do not use blank lines at the beginning or end of any functions, after BEGIN, before END, or inside multiline expressions.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_OnDrillDown@<span style="color:#0000cf;font-weight:bold">1133</span><span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Integer</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>SetupDrillDownCol<span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DrillDown<span style="color:#ce5c00;font-weight:bold">(</span>FALSE<span style="color:#000;font-weight:bold">,</span>ValueType<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_OnDrillDown@<span style="color:#0000cf;font-weight:bold">1133</span><span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Integer</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>SetupDrillDownCol<span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DrillDown<span style="color:#ce5c00;font-weight:bold">(</span>FALSE<span style="color:#000;font-weight:bold">,</span>ValueType<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NameIsValid<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Name2IsValid<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NameIsValid<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Name2IsValid<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: CASE Actionhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/case-actions/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/case-actions/ <p>A CASE action should start on a line after the possibility.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">CASE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OF</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;A&#39;</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;10&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;B&#39;</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;11&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">CASE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OF</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;A&#39;</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;10&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;B&#39;</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Letter2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;11&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Colon usage in CASEhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ <p>The last possibility on a CASE statement must be immediately followed by a colon.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">CASE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimOption<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OF</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimOption<span style="color:#000;font-weight:bold">::</span>&#34;Global Dimension 1&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimValue<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Dimension Code&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Global Dimension 1 Code&#34;<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">CASE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimOption<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OF</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimOption<span style="color:#000;font-weight:bold">::</span>&#34;Global Dimension 1&#34;<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>DimValue<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Dimension Code&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Global Dimension 1 Code&#34;<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Comments inside Curly Bracketshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ <p>Never use curly bracket comments. During development, the &ldquo;Block comment&rdquo; functionality can be used instead. However, in production code, block comments are not recommended.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>PeriodTxt<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{Period}<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>PeriodTxt<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">// Period </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_OnAfterGetRecord@<span style="color:#0000cf;font-weight:bold">10</span><span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Integer</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>{<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ShowColumnName<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixHeader<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecords[MATRIX_ColumnOrdinal]<span style="color:#ce5c00;font-weight:bold">.</span>Name<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixHeader<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecords[MATRIX_ColumnOrdinal]<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">Code</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>}<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecord<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecords[MATRIX_ColumnOrdinal]<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>AnalysisValue<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CalcAmt<span style="color:#ce5c00;font-weight:bold">(</span>ValueType<span style="color:#000;font-weight:bold">,</span>TRUE<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_CellData[MATRIX_ColumnOrdinal]<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>AnalysisValue<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_OnAfterGetRecord@<span style="color:#0000cf;font-weight:bold">10</span><span style="color:#ce5c00;font-weight:bold">(</span>MATRIX_ColumnOrdinal<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Integer</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecord<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>MatrixRecords[MATRIX_ColumnOrdinal]<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>AnalysisValue<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CalcAmt<span style="color:#ce5c00;font-weight:bold">(</span>ValueType<span style="color:#000;font-weight:bold">,</span>TRUE<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>MATRIX_CellData[MATRIX_ColumnOrdinal]<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>AnalysisValue<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Comment Spacinghttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ <p>Always start comments with // followed by one space character.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>RowNo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">//Move way below the budget </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>RowNo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">// Move way below the budget </span></span></span></code></pre></div>Docs: END ELSE Pairhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ <p>The END ELSE pair should always appear on the same line.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>OppEntry<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>SalesCycleStage<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>OppEntry<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>SalesCycleStage<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div>Docs: Indentationhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/indentation/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/indentation/ <p>In general, use an indentation of two space characters. Logical expressions in the IF, WHILE, and UNTIL parts are indented at least 3, 6, and 6 spaces respectively.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Unrealized VAT&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Prepayment Unrealized VAT&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NewCVLedgEntryBuf<span style="color:#ce5c00;font-weight:bold">.</span>Prepayment<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Unrealized VAT&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>GLSetup<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Prepayment Unrealized VAT&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NewCVLedgEntryBuf<span style="color:#ce5c00;font-weight:bold">.</span>Prepayment<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GenJnlLine<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Account No.&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartner<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">Code</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartner<span style="color:#ce5c00;font-weight:bold">.</span>GET<span style="color:#ce5c00;font-weight:bold">(</span>&#34;Account No.&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GenJnlLine<span style="color:#ce5c00;font-weight:bold">.</span>Amount<span style="color:#f8f8f8;text-decoration:underline"> </span>\&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GenJnlLine<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Account No.&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartner<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">Code</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ICPartner<span style="color:#ce5c00;font-weight:bold">.</span>GET<span style="color:#ce5c00;font-weight:bold">(</span>&#34;Account No.&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>GenJnlLine<span style="color:#ce5c00;font-weight:bold">.</span>Amount<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">Dialog</span><span style="color:#ce5c00;font-weight:bold">.</span>OPEN<span style="color:#ce5c00;font-weight:bold">(</span>WindowTxt<span style="color:#f8f8f8;text-decoration:underline"> </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;@1@@@@@@@@@@@@@@@@@@@@@@@&#39;</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">Dialog</span><span style="color:#ce5c00;font-weight:bold">.</span>OPEN<span style="color:#ce5c00;font-weight:bold">( </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>WindowTxt<span style="color:#f8f8f8;text-decoration:underline"> </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;@1@@@@@@@@@@@@@@@@@@@@@@@&#39;</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TempOldCustLedgEntry<span style="color:#ce5c00;font-weight:bold">.</span>DELETE<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">// Find the next old entry for application of the new entry </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TempOldCustLedgEntry<span style="color:#ce5c00;font-weight:bold">.</span>DELETE<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#8f5902;font-style:italic">// Find the next old entry for application of the new entry </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">NOT</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>&#34;Applies-to Doc. Type&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>[&#34;Applies-to Doc. Type&#34;<span style="color:#000;font-weight:bold">::</span>Receipt<span style="color:#000;font-weight:bold">,</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Applies-to Doc. Type&#34;<span style="color:#000;font-weight:bold">::</span>&#34;Return Shipment&#34;]<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">NOT</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>&#34;Applies-to Doc. Type&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>[&#34;Applies-to Doc. Type&#34;<span style="color:#000;font-weight:bold">::</span>Receipt<span style="color:#000;font-weight:bold">,</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Applies-to Doc. Type&#34;<span style="color:#000;font-weight:bold">::</span>&#34;Return Shipment&#34;]<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WHILE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmtLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WHILE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmtLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmtLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">UNTIL</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>RemAmtLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div>Docs: Keyword Pairs - Indentationhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ <p>The IF..THEN pair, WHILE..DO pair, and FOR..DO pair must appear on the same line or the same level of indentation.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>x<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>y<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>a<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>b<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>x<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>y<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">AND</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>a<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>b<span style="color:#ce5c00;font-weight:bold">) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Line Start Keywordshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ <p>The END, IF, REPEAT, FOR, WHILE, ELSE and CASE statement should always start a line.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsContactName<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidateContactName<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsSalespersonCode<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidateSalespersonCode<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsSalesCycleCode<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidatSalesCycleCode<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsContactName<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidateContactName<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsSalespersonCode<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidateSalespersonCode<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsSalesCycleCode<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ValidatSalesCycleCode<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Lonely Repeathttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ <p>The REPEAT statement should always be alone on a line.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ReservEntry<span style="color:#ce5c00;font-weight:bold">.</span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ReservEntry<span style="color:#ce5c00;font-weight:bold">.</span>FINDSET<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">REPEAT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Named Invocationshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/named-invocations/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ <p>When calling an object statically use the name, not the number</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PAGE</span><span style="color:#ce5c00;font-weight:bold">.</span>RUNMODAL<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#0000cf;font-weight:bold">525</span><span style="color:#000;font-weight:bold">,</span>SalesShptLine<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">PAGE</span><span style="color:#ce5c00;font-weight:bold">.</span>RUNMODAL<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">PAGE</span><span style="color:#000;font-weight:bold">::</span>&#34;Posted Sales Shipment Lines&#34;<span style="color:#000;font-weight:bold">,</span>SalesShptLine<span style="color:#ce5c00;font-weight:bold">) </span></span></span></code></pre></div>Docs: Nested WITHshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/nested-withs/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ <p>Do not nest WITHs that reference different types of objects.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WITH</span><span style="color:#f8f8f8;text-decoration:underline"> </span>PostedWhseShptLine<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">WITH</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ItemLedgEntry<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>InsertBufferRec<span style="color:#ce5c00;font-weight:bold">(...</span><span style="color:#000;font-weight:bold">,</span>&#34;Serial No.&#34;<span style="color:#000;font-weight:bold">,</span>&#34;Lot No.&#34;<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WITH</span><span style="color:#f8f8f8;text-decoration:underline"> </span>PostedWhseShptLine<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>InsertBufferRec<span style="color:#ce5c00;font-weight:bold">(...</span><span style="color:#000;font-weight:bold">,</span>ItemLedgEntry<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Serial No.&#34;<span style="color:#000;font-weight:bold">,</span>ItemLedgEntry<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Lot No.&#34;<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: One Statement Per Linehttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ <p>A line of code should not have more than one statement.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>OppEntry<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">EXIT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>OppEntry<span style="color:#ce5c00;font-weight:bold">.</span>FIND<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;-&#39;</span><span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">EXIT</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TotalCost<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Cost<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>TotalAmt<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Amt<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TotalCost<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Cost<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span>TotalAmt<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">+=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Amt<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Separate IF and ELSEhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ <p>IF and ELSE statements should be on separate lines.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Atom[i<span style="color:#ce5c00;font-weight:bold">+</span><span style="color:#0000cf;font-weight:bold">1</span>]<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;&gt;&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HasLogicalOperator<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>TRUE<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Atom[i<span style="color:#ce5c00;font-weight:bold">+</span><span style="color:#0000cf;font-weight:bold">1</span>]<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;&gt;&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>HasLogicalOperator<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>TRUE<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Spacing Binary Operatorshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ <p>There must be exactly one space character on each side of a binary operator such as = + - AND OR =. The parameter comma operator however, should have no spaces.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Line Discount %&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Line Discount Amount&#34;/&#34;Line Value&#34;*<span style="color:#0000cf;font-weight:bold">100</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Line Discount %&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Line Discount Amount&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>/<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Line Value&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>*<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>StartDate<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CALCDATE<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;&lt;+&#39;</span>+FORMAT<span style="color:#ce5c00;font-weight:bold">(</span>Days<span style="color:#f8f8f8;text-decoration:underline"> </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span>i<span style="color:#ce5c00;font-weight:bold">)</span>+<span style="color:#4e9a06">&#39;D&gt;&#39;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#f8f8f8;text-decoration:underline"> </span>StartDate<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>StartDate<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CALCDATE<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#4e9a06">&#39;&lt;+&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span>FORMAT<span style="color:#ce5c00;font-weight:bold">(</span>Days<span style="color:#f8f8f8;text-decoration:underline"> </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span>i<span style="color:#ce5c00;font-weight:bold">) </span>+<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;D&gt;&#39;</span><span style="color:#000;font-weight:bold">,</span>StartDate<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>StartDate<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>0D<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">// Initialize </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>StartDate<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>0D<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">// Initialize </span></span></span></code></pre></div>Docs: Spacing Brackets and ::https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ <p>There must be no spaces characters before and after [] dimension brackets symbols or :: option symbols.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>A[i]<span style="color:#f8f8f8;text-decoration:underline"> </span>[j]<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Amt<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>A[i][j]<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Amt<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Currency Exchange Rate&#34;<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Fix Exchange Rate Amount&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">::</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Currency<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Currency Exchange Rate&#34;<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Fix Exchange Rate Amount&#34;<span style="color:#000;font-weight:bold">::</span>Currency<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FIND<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>Which<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>FIND<span style="color:#ce5c00;font-weight:bold">(</span>Which<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Spacing Unary Operatorshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ <p>There must be no space between a unary operator and its argument (except for the NOT keyword).</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">NOT</span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#000;font-weight:bold">::</span>Item<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">NOT</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#000;font-weight:bold">::</span>Item<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>DiscAmt<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Discount Amount&#34;<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>DiscAmt<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-&#34;Discount Amount&#34;<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Suggested Abbreviationshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ <h3 id="suggested-abbreviations">Suggested Abbreviations</h3> <p>Whenever possible, do not use abbreviations in variables, functions and objects names.</p> <p>If there is no other choice, then use the suggestions below.</p> <p><strong>Abbreviation</strong></p> <p><strong>Text</strong></p> <p>Abs</p> <p>absence</p> <p>Acc</p> <p>account</p> <p>Acc</p> <p>accounting</p> <p>Accum</p> <p>accumulated</p> <p>Act</p> <p>action</p> <p>Activ</p> <p>activity</p> <p>Add</p> <p>additional</p> <p>Addr</p> <p>address</p> <p>Adj</p> <p>adjust</p> <p>Adjd</p> <p>adjusted</p> <p>Adjmt</p> <p>adjustment</p> <p>Agrmt</p> <p>agreement</p> <p>Alloc</p> <p>allocation</p> <p>Allow</p> <p>allowance</p> <p>Alt</p> <p>alternative</p> <p>Amt</p> <p>amount</p> <p>Amts</p> <p>amounts</p> <p>Ans</p> <p>answer</p> <p>Appl</p> <p>applies</p> <p>Appln</p> <p>application</p> <p>Arriv</p> <p>arrival</p> <p>Asm</p> <p>assembly</p> <p>ATO</p> <p>assemble to order</p> <p>Assgnt</p> <p>assignment</p> <p>Assoc</p> <p>associated</p> <p>Attmt</p> <p>attachment</p> <p>Auth</p> <p>authorities</p> <p>Auto</p> <p>automatic</p> <p>Avail</p> <p>availability</p> <p>Avg</p> <p>average</p> <p>BA</p> <p>ba db.</p> <p>Bal</p> <p>balance</p> <p>BOM</p> <p>bill of materials</p> <p>Blnkt</p> <p>blanket</p> <p>Budg</p> <p>budget</p> <p>Buf</p> <p>buffer</p> <p>Bus</p> <p>business</p> <p>BIM</p> <p>business interaction management</p> <p>Buy</p> <p>buying</p> <p>Calc</p> <p>calculate</p> <p>Calcd</p> <p>calculated</p> <p>Calcu</p> <p>calculation</p> <p>Cal</p> <p>calendar</p> <p>Cap</p> <p>capacity</p> <p>CRP</p> <p>capacity requirements planning</p> <p>CF</p> <p>cash flow</p> <p>CF</p> <p>cashflow</p> <p>ctlg</p> <p>catalog</p> <p>Cat</p> <p>category</p> <p>CPU</p> <p>Central Processing Unit</p> <p>Ctr</p> <p>center</p> <p>Chg</p> <p>change</p> <p>Chgs</p> <p>changes</p> <p>Char</p> <p>character</p> <p>Chars</p> <p>characters</p> <p>Chrg</p> <p>charge</p> <p>Chrgs</p> <p>charges</p> <p>Chk</p> <p>check</p> <p>Class</p> <p>classification</p> <p>coll</p> <p>collection</p> <p>col</p> <p>column</p> <p>Cmt</p> <p>comment</p> <p>Co</p> <p>company</p> <p>Comp</p> <p>component</p> <p>Cmpltn</p> <p>completion</p> <p>Comps</p> <p>components</p> <p>Compn</p> <p>composition</p> <p>Compr</p> <p>compression</p> <p>Concrnt</p> <p>concurrent</p> <p>Conf</p> <p>confidential</p> <p>Cnfrmn</p> <p>confirmation</p> <p>Confl</p> <p>conflict</p> <p>Consol</p> <p>consolidate</p> <p>Consolid</p> <p>consolidation</p> <p>Consump</p> <p>consumption</p> <p>Cont</p> <p>contact</p> <p>Cntr</p> <p>container</p> <p>Contr</p> <p>contract</p> <p>Contrd</p> <p>contracted</p> <p>Ctrl</p> <p>control</p> <p>Ctrls</p> <p>controls</p> <p>Conv</p> <p>conversion</p> <p>Cor</p> <p>correction</p> <p>Corres</p> <p>correspondence</p> <p>Corresp</p> <p>corresponding</p> <p>Cst</p> <p>cost</p> <p>COGS</p> <p>sold</p> <p>Cr</p> <p>credit</p> <p>Cumul</p> <p>cumulate</p> <p>Curr</p> <p>currency</p> <p>Crnt</p> <p>current</p> <p>Cust</p> <p>customer</p> <p>CV</p> <p>customer/vendor</p> <p>Dly</p> <p>daily</p> <p>Damp</p> <p>dampener</p> <p>DBMS</p> <p>database management system</p> <p>D</p> <p>date</p> <p>Def</p> <p>definition</p> <p>Demo</p> <p>demonstration</p> <p>Dept</p> <p>department</p> <p>DP</p> <p>department/project</p> <p>Depr</p> <p>depreciation</p> <p>Desc</p> <p>description</p> <p>Dtl</p> <p>detail</p> <p>Dtld</p> <p>detailed</p> <p>Dtls</p> <p>details</p> <p>Dev</p> <p>deviation</p> <p>Diff</p> <p>difference</p> <p>Dim</p> <p>dimension</p> <p>Dir</p> <p>direct</p> <p>Disc</p> <p>discount</p> <p>Discr</p> <p>discrete</p> <p>Distr</p> <p>distribute</p> <p>Distrd</p> <p>distributed</p> <p>Distbtr</p> <p>distributor</p> <p>Distrn</p> <p>distribution</p> <p>Doc</p> <p>document</p> <p>Dupl</p> <p>duplicate</p> <p>Entrd</p> <p>entered</p> <p>Engin</p> <p>engineering</p> <p>Exch</p> <p>exchange</p> <p>Excl</p> <p>excluding</p> <p>Exec</p> <p>execute</p> <p>Expd</p> <p>expected</p> <p>Exped</p> <p>expedited</p> <p>Exp</p> <p>expense</p> <p>Expr</p> <p>expression</p> <p>Expir</p> <p>expiration</p> <p>Ext</p> <p>extended</p> <p>Expl</p> <p>explode</p> <p>Expt</p> <p>export</p> <p>Fnl</p> <p>final</p> <p>Fin</p> <p>finance</p> <p>Fisc</p> <p>fiscal</p> <p>Fnshd</p> <p>finished</p> <p>FA</p> <p>fixed asset</p> <p>Fwd</p> <p>forward</p> <p>Frt</p> <p>freight</p> <p>Gen</p> <p>general</p> <p>GL</p> <p>general ledger</p> <p>Gr</p> <p>group</p> <p>Hdr</p> <p>header</p> <p>Hist</p> <p>history</p> <p>Hol</p> <p>holiday</p> <p>HR</p> <p>human resource</p> <p>ID</p> <p>identification</p> <p>Imp</p> <p>import</p> <p>Inbnd</p> <p>inbound</p> <p>Incl</p> <p>including</p> <p>Incld</p> <p>included</p> <p>Incmg</p> <p>incoming</p> <p>ISV</p> <p>independent software vendor</p> <p>Indust</p> <p>industry</p> <p>Info</p> <p>information</p> <p>Init</p> <p>initial</p> <p>Intra</p> <p>Intrastat</p> <p>Interact</p> <p>interaction</p> <p>Integr</p> <p>integration</p> <p>Int</p> <p>interest</p> <p>Intm</p> <p>Interim</p> <p>IP</p> <p>internal protocol</p> <p>Invt</p> <p>inventory</p> <p>Invtbl</p> <p>inventoriable</p> <p>Inv</p> <p>invoice</p> <p>Invd</p> <p>invoiced</p> <p>IT</p> <p>item tracking</p> <p>Jnl</p> <p>journal</p> <p>Lang</p> <p>language</p> <p>Ledg</p> <p>ledger</p> <p>Lvl</p> <p>level</p> <p>Ln</p> <p>line</p> <p>Lt</p> <p>list</p> <p>LCY</p> <p>local currency</p> <p>Loc</p> <p>location</p> <p>Mail</p> <p>mailing</p> <p>Maint</p> <p>maintenance</p> <p>Mgt</p> <p>management</p> <p>Man</p> <p>manual</p> <p>Mfg</p> <p>manufacturing</p> <p>Mfr</p> <p>manufacturer</p> <p>Mat</p> <p>material</p> <p>Mktg</p> <p>marketing</p> <p>Max</p> <p>maximum</p> <p>Meas</p> <p>measure</p> <p>Msg</p> <p>message</p> <p>Min</p> <p>minimum</p> <p>Misc</p> <p>miscellaneous</p> <p>Mod</p> <p>modify</p> <p>Mth</p> <p>month</p> <p>Neg</p> <p>negative</p> <p>NonInvtbl</p> <p>non-inventoriable</p> <p>Notif</p> <p>notification</p> <p>No</p> <p>number</p> <p>Nos</p> <p>numbers</p> <p>Obj</p> <p>object</p> <p>Oper</p> <p>operating</p> <p>Opp</p> <p>opportunity</p> <p>Ord</p> <p>order</p> <p>Ords</p> <p>orders</p> <p>Orig</p> <p>original</p> <p>Org</p> <p>organization</p> <p>Outbnd</p> <p>outbound</p> <p>Outg</p> <p>Outgoing</p> <p>Out</p> <p>output</p> <p>Outstd</p> <p>outstanding</p> <p>Ovhd</p> <p>overhead</p> <p>Pmt</p> <p>payment</p> <p>Pct</p> <p>percent</p> <p>Persnl</p> <p>personnel</p> <p>Phys</p> <p>physical</p> <p>Pic</p> <p>picture</p> <p>Plng</p> <p>planning</p> <p>Pstd</p> <p>posted</p> <p>Post</p> <p>posting</p> <p>Pos</p> <p>positive</p> <p>Prec</p> <p>precision</p> <p>Prepmt</p> <p>prepayment</p> <p>Prod</p> <p>product</p> <p>Prod</p> <p>production</p> <p>ProdOrd</p> <p>production order</p> <p>Proj</p> <p>project</p> <p>Prop</p> <p>property</p> <p>Prspct</p> <p>prospect</p> <p>Purch</p> <p>purchase</p> <p>Purch</p> <p>purchases</p> <p>Purchr</p> <p>purchaser</p> <p>PurchOrd</p> <p>purchase order</p> <p>Qlty</p> <p>quality</p> <p>Qty</p> <p>quantity</p> <p>Questn</p> <p>questionnaire</p> <p>Qte</p> <p>quote</p> <p>RF</p> <p>radio frequency</p> <p>Rng</p> <p>range</p> <p>Rcpt</p> <p>receipt</p> <p>Rcd</p> <p>received</p> <p>Rec</p> <p>record</p> <p>Recs</p> <p>records</p> <p>Recncl</p> <p>reconcile</p> <p>Recon</p> <p>reconciliation</p> <p>Recur</p> <p>recurring</p> <p>Ref</p> <p>reference</p> <p>Reg</p> <p>register</p> <p>Regn</p> <p>registration</p> <p>Regd</p> <p>registered</p> <p>Rel</p> <p>relation</p> <p>Rels</p> <p>relations</p> <p>Rlshp</p> <p>relationship</p> <p>Rlse</p> <p>release</p> <p>Rlsd</p> <p>released</p> <p>Rem</p> <p>remaining</p> <p>Rmdr</p> <p>reminder</p> <p>Repl</p> <p>replacement</p> <p>Rplnsh</p> <p>replenish</p> <p>Rplnsht</p> <p>replenishment</p> <p>Rpt</p> <p>report</p> <p>Rep</p> <p>represent</p> <p>Repd</p> <p>represented</p> <p>Rqst</p> <p>request</p> <p>Reqd</p> <p>required</p> <p>Reqt</p> <p>requirement</p> <p>Reqts</p> <p>requirements</p> <p>Req</p> <p>requisition</p> <p>Rsv</p> <p>reserve</p> <p>Rsvd</p> <p>reserved</p> <p>Reserv</p> <p>reservation</p> <p>Resol</p> <p>resolution</p> <p>Res</p> <p>resource</p> <p>Rsp</p> <p>response</p> <p>Resp</p> <p>responsibility</p> <p>Rtn</p> <p>retain</p> <p>Rtnd</p> <p>retained</p> <p>Ret</p> <p>return</p> <p>Rets</p> <p>returns</p> <p>Revaln</p> <p>revaluation</p> <p>Rev</p> <p>reverse</p> <p>Rvw</p> <p>review</p> <p>Rnd</p> <p>round</p> <p>Rndd</p> <p>rounded</p> <p>Rndg</p> <p>rounding</p> <p>Rte</p> <p>route</p> <p>Rtng</p> <p>routing</p> <p>Rout</p> <p>routine</p> <p>Sales</p> <p>sales &amp; receivables</p> <p>Saf</p> <p>safety</p> <p>Sched</p> <p>schedule</p> <p>Sec</p> <p>second</p> <p>Seg</p> <p>segment</p> <p>Sel</p> <p>select</p> <p>Selctn</p> <p>selection</p> <p>Seq</p> <p>sequence</p> <p>Ser</p> <p>serial</p> <p>SN</p> <p>serial number</p> <p>Serv</p> <p>service</p> <p>Sh</p> <p>sheet</p> <p>Shpt</p> <p>shipment</p> <p>Src</p> <p>source</p> <p>Spcl</p> <p>special</p> <p>Spec</p> <p>specification</p> <p>Specs</p> <p>specifications</p> <p>Std</p> <p>standard</p> <p>SF</p> <p>frequency</p> <p>Stmt</p> <p>statement</p> <p>Stat</p> <p>statistical</p> <p>Stats</p> <p>statistics</p> <p>Stk</p> <p>stock</p> <p>SKU</p> <p>stockkeeping unit</p> <p>Stm</p> <p>stream</p> <p>SQL</p> <p>structured query language</p> <p>Subcontr</p> <p>subcontract</p> <p>Subcontrd</p> <p>subcontracted</p> <p>Subcontrg</p> <p>subcontracting</p> <p>Sub</p> <p>substitute</p> <p>Subst</p> <p>substitution</p> <p>Sug</p> <p>suggest</p> <p>Sugd</p> <p>suggested</p> <p>Sugn</p> <p>suggestion</p> <p>Sum</p> <p>summary</p> <p>Suspd</p> <p>suspended</p> <p>Sympt</p> <p>symptom</p> <p>Synch</p> <p>synchronize</p> <p>Temp</p> <p>temporary</p> <p>Tot</p> <p>total</p> <p>Transac</p> <p>transaction</p> <p>Trans</p> <p>transfer</p> <p>Transln</p> <p>translation</p> <p>Trkg</p> <p>tracking</p> <p>Tblsht</p> <p>troubleshoot</p> <p>Tblshtg</p> <p>troubleshooting</p> <p>UOM</p> <p>unit of measure</p> <p>UT</p> <p>unit test</p> <p>Unreal</p> <p>unrealized</p> <p>Unrsvd</p> <p>unreserved</p> <p>Upd</p> <p>update</p> <p>Valn</p> <p>valuation</p> <p>Val</p> <p>value</p> <p>VAT</p> <p>value added tax</p> <p>Var</p> <p>variance</p> <p>Vend</p> <p>vendor</p> <p>Whse</p> <p>warehouse</p> <p>WS</p> <p>web shop</p> <p>Wksh</p> <p>worksheet</p> <p>GL</p> <p>g/l</p> <p>Pct</p> <p>%</p> <p>Three-Tier</p> <p>3-tier</p> <p>Osynch</p> <p>Outlook Synch</p> <h2 id="heading"></h2>Docs: Temporary Variable Naminghttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ <p>The name of a temporary variable must be prefixed with the word Temp and not otherwise.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>JobWIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TEMPORARY</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TempJobWIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TEMPORARY</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TempJobWIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>CopyOfJobWIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: TextConst Suffixeshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ <p>TextConst variable names should have a suffix (an approved three-letter suffix: Msg, Tok, Err, Qst, Lbl, Txt) describing usage.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>CannotDeleteLine@<span style="color:#0000cf;font-weight:bold">1005</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=You cannot delete this line because one or more rating values exists.&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>CannotDeleteLine<span style="color:#000;font-weight:bold">,</span>TABLECAPTION<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>CannotDeleteLineErr@<span style="color:#0000cf;font-weight:bold">1005</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=You cannot delete this line because one or more rating values exists.&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>CannotDeleteLineErr<span style="color:#000;font-weight:bold">,</span>TABLECAPTION<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>Text000@<span style="color:#0000cf;font-weight:bold">1011</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=&#34;has been changed (initial a %1: %2= %3, %4= %5)&#34;&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>SalesLine<span style="color:#ce5c00;font-weight:bold">.</span>FIELDERROR<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#000;font-weight:bold">,</span>STRSUBSTNO<span style="color:#ce5c00;font-weight:bold">(</span>Text000<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>TypeHasBeenChangedErr@<span style="color:#0000cf;font-weight:bold">1011</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=&#34;has been changed (initial a %1: %2= %3, %4= %5)&#34;&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>SalesLine<span style="color:#ce5c00;font-weight:bold">.</span>FIELDERROR<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Type</span><span style="color:#000;font-weight:bold">,</span>STRSUBSTNO<span style="color:#ce5c00;font-weight:bold">(</span>TypeHasBeenChangedErr<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>Text004@<span style="color:#0000cf;font-weight:bold">1004</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=Indenting the Job Tasks \#1\#\#\#\#\#\#\#\#\#\#.&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>Window@<span style="color:#0000cf;font-weight:bold">1007</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Dialog</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>Window<span style="color:#ce5c00;font-weight:bold">.</span>OPEN<span style="color:#ce5c00;font-weight:bold">(</span>Text004<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>IndentingMsg@<span style="color:#0000cf;font-weight:bold">1004</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=Indenting the Job Tasks \#1\#\#\#\#\#\#\#\#\#\#.&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>Window@<span style="color:#0000cf;font-weight:bold">1007</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Dialog</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>Window<span style="color:#ce5c00;font-weight:bold">.</span>OPEN<span style="color:#ce5c00;font-weight:bold">(</span>IndentingMsg<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>Text002@<span style="color:#0000cf;font-weight:bold">1005</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=You cannot delete a %1 that is used in one or more setup windows.\\ Do you want to open the G/L Account No. Where-Used List Window?&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CONFIRM<span style="color:#ce5c00;font-weight:bold">(</span>Text002<span style="color:#000;font-weight:bold">,</span>TRUE<span style="color:#000;font-weight:bold">,</span>GLAcc<span style="color:#ce5c00;font-weight:bold">.</span>TABLECAPTION<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>OpenWhereUsedWindowQst@<span style="color:#0000cf;font-weight:bold">1005</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=You cannot delete a %1 that is used in one or more setup windows.\\ Do you want to open the G/L Account No. Where-Used List Window?&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CONFIRM<span style="color:#ce5c00;font-weight:bold">(</span>OpenWhereUsedWindowQst<span style="color:#000;font-weight:bold">,</span>TRUE<span style="color:#000;font-weight:bold">,</span>GLAcc<span style="color:#ce5c00;font-weight:bold">.</span>TABLECAPTION<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>Selection<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>STRMENU<span style="color:#ce5c00;font-weight:bold">(</span>Text003<span style="color:#000;font-weight:bold">,</span><span style="color:#0000cf;font-weight:bold">2</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>Text003@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=&amp;Copy dimensions from BOM,&amp;Retrieve dimensions from components&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>Selection<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>STRMENU<span style="color:#ce5c00;font-weight:bold">(</span>CopyFromQst<span style="color:#000;font-weight:bold">,</span><span style="color:#0000cf;font-weight:bold">2</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>CopyFromQst@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=&amp;Copy dimensions from BOM,&amp;Retrieve dimensions from components&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">DATASET</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span>{<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>{<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span><span style="color:#204a87;font-weight:bold">Column</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span>Chart_of_AccountsCaption<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>SourceExpr=Chart_of_AccountsCaption<span style="color:#f8f8f8;text-decoration:underline"> </span>}<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>Chart_of_AccountsCaption@<span style="color:#0000cf;font-weight:bold">9647</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=Chart of Accounts&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">DATASET</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span>{<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>{<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span><span style="color:#204a87;font-weight:bold">Column</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">;</span>Chart_of_AccountsCaption<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>SourceExpr=ChartOfAccountsLbl<span style="color:#f8f8f8;text-decoration:underline"> </span>}<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>ChartOfAccountsLbl@<span style="color:#0000cf;font-weight:bold">9647</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">TextConst</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;ENU=Chart of Accounts&#39;</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unary Operator Line Endhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ <p>Do not end a line with unary operator.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Quantity Handled (Base)&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Quantity Handled (Base)&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>&#34;Quantity Handled (Base)&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">:=</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Quantity Handled (Base)&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unnecessary Compound Parenthesishttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ <p>Use parenthesis only to enclose compound expressions inside compound expressions.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">(</span>&#34;Costing Method&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Costing Method&#34;<span style="color:#000;font-weight:bold">::</span>Standard<span style="color:#ce5c00;font-weight:bold">) </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Costing Method&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>&#34;Costing Method&#34;<span style="color:#000;font-weight:bold">::</span>Standard<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>ProfitPct<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#ce5c00;font-weight:bold">(</span>Profit<span style="color:#ce5c00;font-weight:bold">) </span>/<span style="color:#f8f8f8;text-decoration:underline"> </span>CostAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>*<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>ProfitPct<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>-Profit<span style="color:#f8f8f8;text-decoration:underline"> </span>/<span style="color:#f8f8f8;text-decoration:underline"> </span>CostAmt<span style="color:#f8f8f8;text-decoration:underline"> </span>*<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unnecessary ELSEhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ <p>ELSE should not be used when the last action in the THEN part is an EXIT, BREAK, SKIP, QUIT, ERROR.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsAdjmtBinCodeChanged<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>AdjmtBinCodeChangeNotAllowedErr<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>BinCodeChangeNotAllowedErr<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsAdjmtBinCodeChanged<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>AdjmtBinCodeChangeNotAllowedErr<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>ERROR<span style="color:#ce5c00;font-weight:bold">(</span>BinCodeChangeNotAllowedErr<span style="color:#000;font-weight:bold">,</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unnecessary Function Parenthesishttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ <p>Do not use parenthesis in a function call if the function does not have any parameters.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ReservMgt<span style="color:#ce5c00;font-weight:bold">.</span>IsPositive<span style="color:#ce5c00;font-weight:bold">() </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ReservMgt<span style="color:#ce5c00;font-weight:bold">.</span>IsPositive<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ChangeStatusForm<span style="color:#ce5c00;font-weight:bold">.</span>RUNMODAL<span style="color:#ce5c00;font-weight:bold">() </span>&lt;&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ACTION</span><span style="color:#000;font-weight:bold">::</span>Yes<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ChangeStatusForm<span style="color:#ce5c00;font-weight:bold">.</span>RUNMODAL<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ACTION</span><span style="color:#000;font-weight:bold">::</span>Yes<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unnecessary Separatorshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ <p>There should be no unnecessary separators.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Customer<span style="color:#ce5c00;font-weight:bold">.</span>FINDFIRST<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#000;font-weight:bold">;;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Customer<span style="color:#ce5c00;font-weight:bold">.</span>FINDFIRST<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Unnecessary TRUE/FALSEhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ <p>Do not use TRUE or FALSE keywords unnecessarily if the expression is already an logical expression.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsPositive<span style="color:#ce5c00;font-weight:bold">() </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>TRUE<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IsPositive<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <pre tabindex="0"><code>IF Complete &lt;&gt; TRUE THEN </code></pre><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">NOT</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Complete<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Variable Already Scopedhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ <p>Do not use scope &lsquo;&rsquo;.&rsquo;&rsquo; qualifier unnecessarily when a variable is already implicitly or explicitly scoped. It keeps the code simpler.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>ReturnRcptHeader<span style="color:#ce5c00;font-weight:bold">.</span>SETRANGE<span style="color:#ce5c00;font-weight:bold">(</span>ReturnRcptHeader<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Return Order No.&#34;<span style="color:#000;font-weight:bold">,</span>&#34;Document No.&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>ReturnRcptHeader<span style="color:#ce5c00;font-weight:bold">.</span>SETRANGE<span style="color:#ce5c00;font-weight:bold">(</span>&#34;Return Order No.&#34;<span style="color:#000;font-weight:bold">,</span>&#34;Document No.&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WITH</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ChangeLogSetupTable<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ChangeLogSetupTable<span style="color:#ce5c00;font-weight:bold">.</span>DELETE<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">WITH</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ChangeLogSetupTable<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DO</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span>DELETE<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>Docs: Variable Naminghttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variable-naming/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ <p>Variables that refer to a C/AL object must contain the objects name, abbreviated where necessary.</p> <p>A variable must begin with a capital letter.</p> <p>Blanks, periods, and other characters (such as parentheses) that would make quotation marks around a variable necessary must be omitted.</p> <p>If a variable is a compound of two or more words or abbreviations, each word or abbreviation should begin with a capital letter.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>WIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>OBJECT<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Table</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Job<span style="color:#f8f8f8;text-decoration:underline"> </span>WIP<span style="color:#f8f8f8;text-decoration:underline"> </span>Buffer<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>JobWIPBuffer@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1018</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>OBJECT<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Table</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Job<span style="color:#f8f8f8;text-decoration:underline"> </span>WIP<span style="color:#f8f8f8;text-decoration:underline"> </span>Buffer<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>Postline@<span style="color:#0000cf;font-weight:bold">1004</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Codeunit</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">12</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>OBJECT<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Codeunit</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Gen<span style="color:#ce5c00;font-weight:bold">. </span>Jnl<span style="color:#ce5c00;font-weight:bold">.</span>-Post<span style="color:#f8f8f8;text-decoration:underline"> </span>Line<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span>GenJnlPostLine@<span style="color:#0000cf;font-weight:bold">1004</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Codeunit</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">12</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#ce5c00;font-weight:bold">... </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"></span>OBJECT<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Codeunit</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Gen<span style="color:#ce5c00;font-weight:bold">. </span>Jnl<span style="color:#ce5c00;font-weight:bold">.</span>-Post<span style="color:#f8f8f8;text-decoration:underline"> </span>Line<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">LOCAL</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HandleCustDebitCredit@<span style="color:#0000cf;font-weight:bold">17</span><span style="color:#ce5c00;font-weight:bold">(...</span><span style="color:#000;font-weight:bold">;</span>&#34;Amount (LCY)&#34;@<span style="color:#0000cf;font-weight:bold">1001</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Decimal</span><span style="color:#000;font-weight:bold">;</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">((... (</span>&#34;Amount (LCY)&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>\&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)) ...) </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">((... (</span>&#34;Amount (LCY)&#34;<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)) ...) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">LOCAL</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">PROCEDURE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HandleCustDebitCredit@<span style="color:#0000cf;font-weight:bold">17</span><span style="color:#ce5c00;font-weight:bold">(...</span><span style="color:#000;font-weight:bold">;</span>AmountLCY@<span style="color:#0000cf;font-weight:bold">1001</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Decimal</span><span style="color:#000;font-weight:bold">;</span><span style="color:#ce5c00;font-weight:bold">...)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">IF</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">((... (</span>AmountLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>\&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)) ...) </span><span style="color:#204a87;font-weight:bold">OR</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">((... (</span>AmountLCY<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0</span><span style="color:#ce5c00;font-weight:bold">)) ...) </span></span></span><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold"> </span><span style="color:#204a87;font-weight:bold">THEN</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#ce5c00;font-weight:bold">... </span></span></span></code></pre></div>Docs: Variables Declarations Orderhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ <p>Variables declarations should be ordered by type. In general, object and complex variable types are listed first followed by simple variables. The order should be the same as the object list in the object designer for C/AL objects. Afterwards come the complex variables like RecordRef, .NET, FieldRef etc. At the end come all the simple data types in no particular order.</p> <p>Bad code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>StartingDateFilter@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Text</span>[<span style="color:#0000cf;font-weight:bold">30</span>]<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span>Vend@<span style="color:#0000cf;font-weight:bold">1003</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">23</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div><p>Good code</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-al" data-lang="al"><span style="display:flex;"><span>Vend@<span style="color:#0000cf;font-weight:bold">1003</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Record</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">23</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span>StartingDateFilter@<span style="color:#0000cf;font-weight:bold">1002</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">Text</span>[<span style="color:#0000cf;font-weight:bold">30</span>]<span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline"> </span></span></span></code></pre></div>