deploy: 8f41c13f0f
This commit is contained in:
parent
b46ee5b225
commit
e9d640d50a
164 changed files with 12201 additions and 3918 deletions
|
|
@ -6,16 +6,16 @@
|
|||
<link rel=alternate type=application/rss+xml href=/navpatterns/1-patterns/singleton/index.xml title="AL Guidelines">
|
||||
<meta name=description content>
|
||||
<title>Singleton :: AL Guidelines</title>
|
||||
<link href=/css/nucleus.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/print.css?1638662729 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638662729></script>
|
||||
<link href=/css/nucleus.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/print.css?1638739419 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638739419></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/navpatterns/1-patterns/singleton/>
|
||||
|
|
@ -33,9 +33,9 @@ ALGuidelines.Dev
|
|||
<input data-search-input id=search-by type=search placeholder=Search...>
|
||||
<span data-search-clear><i class="fas fa-times"></i></span>
|
||||
</div>
|
||||
<script src=/js/lunr.min.js?1638662729></script>
|
||||
<script src=/js/auto-complete.js?1638662729></script>
|
||||
<script src=/js/search.js?1638662729></script>
|
||||
<script src=/js/lunr.min.js?1638739419></script>
|
||||
<script src=/js/auto-complete.js?1638739419></script>
|
||||
<script src=/js/search.js?1638739419></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
|
|
@ -58,7 +58,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Façade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Façade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
|
|
@ -86,12 +86,17 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="Use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>Use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/ title="Sensitive Data Encapsulation" class=dd-item><a href=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/>Sensitive Data Encapsulation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/2-data-encryption/ title="Data Encryption" class=dd-item><a href=/navpatterns/1-patterns/security/2-data-encryption/>Data Encryption</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/3-single-point-of-access/ title="Single Point of Access" class=dd-item><a href=/navpatterns/1-patterns/security/3-single-point-of-access/>Single Point of Access</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/4-masked-text/ title="Masked Text" class=dd-item><a href=/navpatterns/1-patterns/security/4-masked-text/>Masked Text</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/5-ssl-in-nav/ title="SSL in NAV" class=dd-item><a href=/navpatterns/1-patterns/security/5-ssl-in-nav/>SSL in NAV</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item active parent"><a href=/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
|
|
@ -108,8 +113,22 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ title="By Reference Parameters" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/>By Reference Parameters</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/class-coupling/ title="Class Coupling" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/class-coupling/>Class Coupling</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ title="Cyclomatic Complexity" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/>Cyclomatic Complexity</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ title="Encapsulate Local Functionality" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/>Encapsulate Local Functionality</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ title="FINDSET FINDFIRST FINDLAST" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/>FINDSET FINDFIRST FINDLAST</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ title="Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/>Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ title="Maintainability Index" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/>Maintainability Index</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ title="Parameter Placeholders" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/>Parameter Placeholders</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ title="Static Object Invocation" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/>Static Object Invocation</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ title="Unreachable Code" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/>Unreachable Code</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ title="Unused Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/>Unused Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-variables/ title="Unused Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-variables/>Unused Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ title="Variable Capacity Mismatch" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/>Variable Capacity Mismatch</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ title="WITH Scope Name Collision" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/>WITH Scope Name Collision</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
|
|
@ -122,7 +141,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
|
|
@ -208,11 +227,7 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#singleton>Singleton</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav id=TableOfContents></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -220,16 +235,14 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Singleton</h1>
|
||||
<h2 id=singleton>Singleton</h2>
|
||||
<p><em>By Bogdana Botez at Microsoft Development Center Copenhagen</em><br>
|
||||
<a href=0535.Singleton.png><img src=0535.Singleton.png alt=" "></a></p>
|
||||
<p>**Context: <strong>The pattern described in this article applies to Dynamics NAV only. For the general definition of the <strong>Singleton</strong> pattern, see for example <a href=https://en.wikipedia.org/wiki/Singleton_pattern>this link</a>.</strong><br>
|
||||
**</p>
|
||||
<p><em>By Bogdana Botez at Microsoft Development Center Copenhagen</em></p>
|
||||
<p><a href=0535.Singleton.png><img src=0535.Singleton.png alt=" "></a></p>
|
||||
<p><strong>Context:</strong> The pattern described in this article applies to Dynamics NAV only. For the general definition of the <strong>Singleton</strong> pattern, see for example <a href=https://en.wikipedia.org/wiki/Singleton_pattern>this link</a>.</p>
|
||||
<p><strong>Problem</strong>: As a C/AL developer, you need to coordinate action (through a codeunit) or store information (in a table) that is unique across the system.</p>
|
||||
<p><strong>Forces:</strong></p>
|
||||
<ul>
|
||||
<li><strong>Lost reference to centralizer:</strong> An instance of a relevant object could attempt to centralize control or data in the system. However, once this object is no longer in scope, the reference to it is lost and cannot be retrieved for later coordination</li>
|
||||
<li>**Cannot rebuild the initial state: **A new instance of the same object could be created, however the last known state of the lost instance cannot be known anymore.</li>
|
||||
<li><strong>Cannot rebuild the initial state:</strong> A new instance of the same object could be created, however the last known state of the lost instance cannot be known anymore.</li>
|
||||
</ul>
|
||||
<p><strong>Solution:</strong> create an object which resides in memory in a single copy (instance). Have a way to retrieve this unique object from code. This object can either be a <a href=/nav/w/designpatterns/151.singleton-table><strong>Singleton Table</strong></a>, or a <a href=/nav/w/designpatterns/283.singleton-codeunit><strong>Singleton Codeunit</strong></a>.</p>
|
||||
<p>The implementation varies depending on the technology and language used. In object-oriented (OO) languages like C#, C++ or Java, the <strong>Singleton</strong> uses static classes and class members to instantiate. There is a mechanism to ensure only one instance of the object can exist. This mechanism is many times explicit (like in OO languages) and sometimes implicit as part of the compiler or platform (as it is in NAV).</p>
|
||||
|
|
@ -238,7 +251,7 @@ ALGuidelines.Dev
|
|||
<li><strong>Centralization</strong>: the setup information is stored in a single well-known place and easily retrievable from anywhere in the application code, by invoking a Record.GET. In case of a single-instance codeunit, any reference to it will retrieve the same instance, so the context will be preserved.</li>
|
||||
<li><strong>Persistence</strong>: information remains even after the instance goes out of scope, because it continues to live in memory.</li>
|
||||
</ul>
|
||||
<p>**Limitation: **The generic object-oriented <strong>Singleton</strong> pattern permits instantiation of a limited number n of objects (where usually n=1, but it can have other positive values too). However, in Dynamics NAV, the Singleton patterns are limited: n is always 1.</p>
|
||||
<p><strong>Limitation:</strong> The generic object-oriented <strong>Singleton</strong> pattern permits instantiation of a limited number n of objects (where usually n=1, but it can have other positive values too). However, in Dynamics NAV, the Singleton patterns are limited: n is always 1.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
|
|
@ -251,12 +264,12 @@ ALGuidelines.Dev
|
|||
<div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px>
|
||||
<div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div>
|
||||
</div>
|
||||
<script src=/js/clipboard.min.js?1638662729></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638662729></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638662729></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638662729></script>
|
||||
<script src=/js/featherlight.min.js?1638662729></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638662729></script>
|
||||
<script src=/js/relearn.js?1638662729></script>
|
||||
<script src=/js/clipboard.min.js?1638739419></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638739419></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638739419></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638739419></script>
|
||||
<script src=/js/featherlight.min.js?1638739419></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638739419></script>
|
||||
<script src=/js/relearn.js?1638739419></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -3,10 +3,7 @@ _
|
|||
_
|
||||
Problem: The developer needs to define a single record that can contain a set of rules and behavior (optional, mandatory, or defaulting mechanisms), that apply to a functionality, and can be configured by a user.
|
||||
Forces
|
||||
You want a central place to define the address and logo of your company (see Company Information table). You want to define the no.</description></item><item><title>Singleton Codeunit</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-codeunit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-codeunit/</guid><description>Singleton Codeunit _By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
_
|
||||
_
|
||||
_
|
||||
You want a central place to define the address and logo of your company (see Company Information table). You want to define the no.</description></item><item><title>Singleton Codeunit</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-codeunit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-codeunit/</guid><description>By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Problem: In some situations, global state needs to be preserved at runtime throughout a session.
|
||||
There are functionality areas in NAV where centralized application management code is needed, like for example managing permissions, notifications, the debugger etc. State needs to be preserved across calls to the management codeunit.
|
||||
For example:
|
||||
|
|
|
|||
|
|
@ -5,16 +5,16 @@
|
|||
<meta name=generator content="Hugo 0.89.4">
|
||||
<meta name=description content>
|
||||
<title>Singleton Codeunit :: AL Guidelines</title>
|
||||
<link href=/css/nucleus.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/print.css?1638662727 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638662727></script>
|
||||
<link href=/css/nucleus.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/print.css?1638739418 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638739418></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/navpatterns/1-patterns/singleton/singleton-codeunit/>
|
||||
|
|
@ -32,9 +32,9 @@ ALGuidelines.Dev
|
|||
<input data-search-input id=search-by type=search placeholder=Search...>
|
||||
<span data-search-clear><i class="fas fa-times"></i></span>
|
||||
</div>
|
||||
<script src=/js/lunr.min.js?1638662727></script>
|
||||
<script src=/js/auto-complete.js?1638662727></script>
|
||||
<script src=/js/search.js?1638662727></script>
|
||||
<script src=/js/lunr.min.js?1638739418></script>
|
||||
<script src=/js/auto-complete.js?1638739418></script>
|
||||
<script src=/js/search.js?1638739418></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
|
|
@ -57,7 +57,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Façade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Façade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
|
|
@ -85,12 +85,17 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="Use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>Use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/ title="Sensitive Data Encapsulation" class=dd-item><a href=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/>Sensitive Data Encapsulation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/2-data-encryption/ title="Data Encryption" class=dd-item><a href=/navpatterns/1-patterns/security/2-data-encryption/>Data Encryption</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/3-single-point-of-access/ title="Single Point of Access" class=dd-item><a href=/navpatterns/1-patterns/security/3-single-point-of-access/>Single Point of Access</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/4-masked-text/ title="Masked Text" class=dd-item><a href=/navpatterns/1-patterns/security/4-masked-text/>Masked Text</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/5-ssl-in-nav/ title="SSL in NAV" class=dd-item><a href=/navpatterns/1-patterns/security/5-ssl-in-nav/>SSL in NAV</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
|
|
@ -107,8 +112,22 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ title="By Reference Parameters" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/>By Reference Parameters</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/class-coupling/ title="Class Coupling" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/class-coupling/>Class Coupling</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ title="Cyclomatic Complexity" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/>Cyclomatic Complexity</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ title="Encapsulate Local Functionality" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/>Encapsulate Local Functionality</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ title="FINDSET FINDFIRST FINDLAST" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/>FINDSET FINDFIRST FINDLAST</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ title="Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/>Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ title="Maintainability Index" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/>Maintainability Index</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ title="Parameter Placeholders" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/>Parameter Placeholders</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ title="Static Object Invocation" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/>Static Object Invocation</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ title="Unreachable Code" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/>Unreachable Code</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ title="Unused Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/>Unused Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-variables/ title="Unused Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-variables/>Unused Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ title="Variable Capacity Mismatch" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/>Variable Capacity Mismatch</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ title="WITH Scope Name Collision" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/>WITH Scope Name Collision</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
|
|
@ -121,7 +140,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
|
|
@ -208,11 +227,7 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#singleton-codeunit>Singleton Codeunit</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav id=TableOfContents></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -220,11 +235,8 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Singleton Codeunit</h1>
|
||||
<h2 id=singleton-codeunit>Singleton Codeunit</h2>
|
||||
<p>_By Bogdana Botez at Microsoft Development Center Copenhagen<br>
|
||||
_</p>
|
||||
<p>_<a href=Singleton-Codeunit.png><img src=Singleton-Codeunit.png alt=" "></a><br>
|
||||
_</p>
|
||||
<p><em>By Bogdana Botez at Microsoft Development Center Copenhagen</em></p>
|
||||
<p><a href=Singleton-Codeunit.png><img src=Singleton-Codeunit.png alt=" "></a></p>
|
||||
<p><strong>Problem</strong>: In some situations, global state needs to be preserved at runtime throughout a session.</p>
|
||||
<p>There are functionality areas in NAV where centralized application management code is needed, like for example managing permissions, notifications, the debugger etc. State needs to be preserved across calls to the management codeunit.</p>
|
||||
<p>For example:</p>
|
||||
|
|
@ -299,12 +311,12 @@ END;
|
|||
<div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px>
|
||||
<div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div>
|
||||
</div>
|
||||
<script src=/js/clipboard.min.js?1638662727></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638662727></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638662727></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638662727></script>
|
||||
<script src=/js/featherlight.min.js?1638662727></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638662727></script>
|
||||
<script src=/js/relearn.js?1638662727></script>
|
||||
<script src=/js/clipboard.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638739418></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638739418></script>
|
||||
<script src=/js/featherlight.min.js?1638739418></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638739418></script>
|
||||
<script src=/js/relearn.js?1638739418></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -5,16 +5,16 @@
|
|||
<meta name=generator content="Hugo 0.89.4">
|
||||
<meta name=description content>
|
||||
<title>Cue Table :: AL Guidelines</title>
|
||||
<link href=/css/nucleus.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638662727 rel=stylesheet>
|
||||
<link href=/css/print.css?1638662727 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638662727></script>
|
||||
<link href=/css/nucleus.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/print.css?1638739418 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638739418></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/navpatterns/1-patterns/singleton/singleton-table/cue-table/>
|
||||
|
|
@ -32,9 +32,9 @@ ALGuidelines.Dev
|
|||
<input data-search-input id=search-by type=search placeholder=Search...>
|
||||
<span data-search-clear><i class="fas fa-times"></i></span>
|
||||
</div>
|
||||
<script src=/js/lunr.min.js?1638662727></script>
|
||||
<script src=/js/auto-complete.js?1638662727></script>
|
||||
<script src=/js/search.js?1638662727></script>
|
||||
<script src=/js/lunr.min.js?1638739418></script>
|
||||
<script src=/js/auto-complete.js?1638739418></script>
|
||||
<script src=/js/search.js?1638739418></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
|
|
@ -57,7 +57,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Façade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Façade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
|
|
@ -85,12 +85,17 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="Use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>Use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/ title="Sensitive Data Encapsulation" class=dd-item><a href=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/>Sensitive Data Encapsulation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/2-data-encryption/ title="Data Encryption" class=dd-item><a href=/navpatterns/1-patterns/security/2-data-encryption/>Data Encryption</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/3-single-point-of-access/ title="Single Point of Access" class=dd-item><a href=/navpatterns/1-patterns/security/3-single-point-of-access/>Single Point of Access</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/4-masked-text/ title="Masked Text" class=dd-item><a href=/navpatterns/1-patterns/security/4-masked-text/>Masked Text</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/5-ssl-in-nav/ title="SSL in NAV" class=dd-item><a href=/navpatterns/1-patterns/security/5-ssl-in-nav/>SSL in NAV</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
|
|
@ -107,8 +112,22 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ title="By Reference Parameters" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/>By Reference Parameters</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/class-coupling/ title="Class Coupling" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/class-coupling/>Class Coupling</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ title="Cyclomatic Complexity" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/>Cyclomatic Complexity</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ title="Encapsulate Local Functionality" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/>Encapsulate Local Functionality</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ title="FINDSET FINDFIRST FINDLAST" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/>FINDSET FINDFIRST FINDLAST</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ title="Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/>Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ title="Maintainability Index" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/>Maintainability Index</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ title="Parameter Placeholders" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/>Parameter Placeholders</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ title="Static Object Invocation" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/>Static Object Invocation</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ title="Unreachable Code" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/>Unreachable Code</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ title="Unused Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/>Unused Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-variables/ title="Unused Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-variables/>Unused Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ title="Variable Capacity Mismatch" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/>Variable Capacity Mismatch</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ title="WITH Scope Name Collision" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/>WITH Scope Name Collision</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
|
|
@ -121,7 +140,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
|
|
@ -209,11 +228,7 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#cue-table>Cue Table</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav id=TableOfContents></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -221,19 +236,14 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Cue Table</h1>
|
||||
<h2 id=cue-table>Cue Table</h2>
|
||||
<p>_By Bogdana Botez at Microsoft Development Center Copenhagen<br>
|
||||
_</p>
|
||||
<p>_<a href=Cue-Table.png><img src=Cue-Table.png alt=" "></a><br>
|
||||
_</p>
|
||||
<p><em>By Bogdana Botez at Microsoft Development Center Copenhagen</em></p>
|
||||
<p><a href=Cue-Table.png><img src=Cue-Table.png alt=" "></a></p>
|
||||
<p>Cues are the second usual application of the <a href=/nav/w/designpatterns/151.singleton-table><strong>Singleton Table</strong></a> pattern in Dynamics NAV, after <a href=/nav/w/designpatterns/76.setup-table><strong>Setup Tables</strong></a>.</p>
|
||||
<p><strong>Context</strong>: The user gets overview information about the business on the Dynamics NAV Role Center page.</p>
|
||||
<p>Figure 1 - Cue information in Dynamics NAV shows cue information seen by the user on the <strong>Sales Order Processor</strong> role center.</p>
|
||||
<p><a href=Cue-Table-Figure-1.JPG><img src=Cue-Table-Figure-1.JPG alt=" "></a></p>
|
||||
<p>The overview information consists of summed-up numbers, calculated from business data, like for example how many sales orders are still open, how many shipments are ready to go, or partially shipped, how many documents are waiting for approval etc.</p>
|
||||
<p><strong>Problem</strong>: NAV stores data in tables. By definition, a table is a repetitive structure containing multiple lines, each line having a different piece of the information. But sometimes this repetitive information needs to be summed-up or otherwise synthetized, and presented as an overview.</p>
|
||||
<p>**<br>
|
||||
**</p>
|
||||
<p><strong>Solution:</strong> Store overview information in a singleton table.</p>
|
||||
<hr>
|
||||
<p>There are two ways of calculating overview information in NAV.</p>
|
||||
|
|
@ -249,11 +259,10 @@ _</p>
|
|||
</li>
|
||||
<li>The data needs to be pulled from an external system (like Dynamics CRM, QuickBooks or any external integration).</li>
|
||||
</ul>
|
||||
<p>**<br>
|
||||
**</p>
|
||||
<hr>
|
||||
<p>The implementation of Cues is already described in detail on MSDN, in <a href="https://msdn.microsoft.com/en-us/library/dn789553(v=nav.90).aspx">Creating and Customizing Cues</a> and in <a href="https://msdn.microsoft.com/en-us/library/ff477101(v=nav.90).aspx">Walkthrough: Creating a Cue Based on a FlowField</a>.</p>
|
||||
<p><strong>NAV Usages</strong></p>
|
||||
<p>Table 1 - Cue tables in Dynamics NAV****shows some examples of singleton tables used for creating Cues.</p>
|
||||
<p><em>Table 1 - Cue tables in Dynamics NAV</em> shows some examples of singleton tables used for creating Cues.</p>
|
||||
<p>Table ID</p>
|
||||
<p>Table Name</p>
|
||||
<p>1313</p>
|
||||
|
|
@ -307,12 +316,12 @@ _</p>
|
|||
<div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px>
|
||||
<div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div>
|
||||
</div>
|
||||
<script src=/js/clipboard.min.js?1638662728></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638662728></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638662728></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638662728></script>
|
||||
<script src=/js/featherlight.min.js?1638662728></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638662728></script>
|
||||
<script src=/js/relearn.js?1638662728></script>
|
||||
<script src=/js/clipboard.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638739418></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638739418></script>
|
||||
<script src=/js/featherlight.min.js?1638739418></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638739418></script>
|
||||
<script src=/js/relearn.js?1638739418></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -6,16 +6,16 @@
|
|||
<link rel=alternate type=application/rss+xml href=/navpatterns/1-patterns/singleton/singleton-table/index.xml title="AL Guidelines">
|
||||
<meta name=description content>
|
||||
<title>Singleton Table :: AL Guidelines</title>
|
||||
<link href=/css/nucleus.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638662729 rel=stylesheet>
|
||||
<link href=/css/print.css?1638662729 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638662729></script>
|
||||
<link href=/css/nucleus.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638739419 rel=stylesheet>
|
||||
<link href=/css/print.css?1638739419 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638739419></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/navpatterns/1-patterns/singleton/singleton-table/>
|
||||
|
|
@ -33,9 +33,9 @@ ALGuidelines.Dev
|
|||
<input data-search-input id=search-by type=search placeholder=Search...>
|
||||
<span data-search-clear><i class="fas fa-times"></i></span>
|
||||
</div>
|
||||
<script src=/js/lunr.min.js?1638662729></script>
|
||||
<script src=/js/auto-complete.js?1638662729></script>
|
||||
<script src=/js/search.js?1638662729></script>
|
||||
<script src=/js/lunr.min.js?1638739419></script>
|
||||
<script src=/js/auto-complete.js?1638739419></script>
|
||||
<script src=/js/search.js?1638739419></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
|
|
@ -58,7 +58,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Façade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Façade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
|
|
@ -86,12 +86,17 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="Use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>Use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/ title="Sensitive Data Encapsulation" class=dd-item><a href=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/>Sensitive Data Encapsulation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/2-data-encryption/ title="Data Encryption" class=dd-item><a href=/navpatterns/1-patterns/security/2-data-encryption/>Data Encryption</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/3-single-point-of-access/ title="Single Point of Access" class=dd-item><a href=/navpatterns/1-patterns/security/3-single-point-of-access/>Single Point of Access</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/4-masked-text/ title="Masked Text" class=dd-item><a href=/navpatterns/1-patterns/security/4-masked-text/>Masked Text</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/5-ssl-in-nav/ title="SSL in NAV" class=dd-item><a href=/navpatterns/1-patterns/security/5-ssl-in-nav/>SSL in NAV</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
|
|
@ -108,8 +113,22 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ title="By Reference Parameters" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/>By Reference Parameters</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/class-coupling/ title="Class Coupling" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/class-coupling/>Class Coupling</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ title="Cyclomatic Complexity" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/>Cyclomatic Complexity</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ title="Encapsulate Local Functionality" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/>Encapsulate Local Functionality</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ title="FINDSET FINDFIRST FINDLAST" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/>FINDSET FINDFIRST FINDLAST</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ title="Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/>Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ title="Maintainability Index" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/>Maintainability Index</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ title="Parameter Placeholders" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/>Parameter Placeholders</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ title="Static Object Invocation" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/>Static Object Invocation</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ title="Unreachable Code" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/>Unreachable Code</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ title="Unused Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/>Unused Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-variables/ title="Unused Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-variables/>Unused Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ title="Variable Capacity Mismatch" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/>Variable Capacity Mismatch</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ title="WITH Scope Name Collision" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/>WITH Scope Name Collision</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
|
|
@ -122,7 +141,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
|
|
@ -239,10 +258,10 @@ _</p>
|
|||
<p><strong>Solution:</strong> Define a single record that can contain a set of rules and behavior (optional, mandatory, or defaulting mechanisms), that apply to a functionality, and can be configured by a user.</p>
|
||||
<p>In a functionality that is large enough (such as sales, inventory, fixed) you may want to define a global set of rules, that are configurable by the user.</p>
|
||||
<p><strong>Implementation</strong></p>
|
||||
<p>**1. Define: **Create a Setup Table with Dummy a Primary Key. Typically with type Code=10. Then add fields to define the global rules.</p>
|
||||
<p>**2. Instantiate: **Place the instantiation code in a central place where it is guaranteed to be invoked before the functionality uses it. This is done in Codeunit 2.</p>
|
||||
<p>**3. Enforce: **Give the user access to the record so that he can change the default setup, by creating a Card page. On the page, enforce the singleton to prevent deletion of the record or insertion of a new record</p>
|
||||
<p>**4. Use: **Access the rule in code and use it</p>
|
||||
<p><strong>1. Define:</strong> Create a Setup Table with Dummy a Primary Key. Typically with type Code=10. Then add fields to define the global rules.</p>
|
||||
<p><strong>2. Instantiate:</strong> Place the instantiation code in a central place where it is guaranteed to be invoked before the functionality uses it. This is done in Codeunit 2.</p>
|
||||
<p><strong>3. Enforce:</strong> Give the user access to the record so that he can change the default setup, by creating a Card page. On the page, enforce the singleton to prevent deletion of the record or insertion of a new record</p>
|
||||
<p><strong>4. Use:</strong> Access the rule in code and use it</p>
|
||||
<hr>
|
||||
<p><strong>NAV Usages</strong></p>
|
||||
<p>Rounding rules for Unit-Amounts and Amounts are implemented using the Singleton pattern.</p>
|
||||
|
|
@ -283,7 +302,9 @@ GLSetupRead := TRUE;
|
|||
<li><strong>Cue Tables</strong> – used to calculate values for the visual representation of Cues on the NAV role center pages.</li>
|
||||
</ol>
|
||||
<p>YouTube Video of NAV Singleton:</p>
|
||||
<p><a href="https://www.youtube.com/watch?v=aQPu-s9FkYI&list=PLhZ3P-LY7CqmVszuvtJLujFyHpsVN0U_w&index=13">watch?v=aQPu s9FkYI&list=PLhZ3P LY7CqmVszuvtJLujFyHpsVN0Uw&index=13</a></p>
|
||||
<div style=position:relative;padding-bottom:56.25%;height:0;overflow:hidden>
|
||||
<iframe src=https://www.youtube.com/embed/aQPu-s9FkYI style=position:absolute;top:0;left:0;width:100%;height:100%;border:0 allowfullscreen title="YouTube Video"></iframe>
|
||||
</div>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
|
|
@ -296,12 +317,12 @@ GLSetupRead := TRUE;
|
|||
<div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px>
|
||||
<div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div>
|
||||
</div>
|
||||
<script src=/js/clipboard.min.js?1638662729></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638662729></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638662729></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638662729></script>
|
||||
<script src=/js/featherlight.min.js?1638662729></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638662729></script>
|
||||
<script src=/js/relearn.js?1638662729></script>
|
||||
<script src=/js/clipboard.min.js?1638739419></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638739419></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638739419></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638739419></script>
|
||||
<script src=/js/featherlight.min.js?1638739419></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638739419></script>
|
||||
<script src=/js/relearn.js?1638739419></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,11 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Singleton Table on AL Guidelines</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/</link><description>Recent content in Singleton Table on AL Guidelines</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/index.xml" rel="self" type="application/rss+xml"/><item><title>Cue Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/cue-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/cue-table/</guid><description>Cue Table _By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
_
|
||||
_
|
||||
_
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Singleton Table on AL Guidelines</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/</link><description>Recent content in Singleton Table on AL Guidelines</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/index.xml" rel="self" type="application/rss+xml"/><item><title>Cue Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/cue-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/cue-table/</guid><description>By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Cues are the second usual application of the Singleton Table pattern in Dynamics NAV, after Setup Tables.
|
||||
Context: The user gets overview information about the business on the Dynamics NAV Role Center page.
|
||||
Figure 1 - Cue information in Dynamics NAV shows cue information seen by the user on the Sales Order Processor role center.
|
||||
The overview information consists of summed-up numbers, calculated from business data, like for example how many sales orders are still open, how many shipments are ready to go, or partially shipped, how many documents are waiting for approval etc.</description></item><item><title>Setup Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/setup-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/setup-table/</guid><description>Setup Table By Abhishek Ghosh, at Microsoft Development Center Copenhagen
|
||||
The overview information consists of summed-up numbers, calculated from business data, like for example how many sales orders are still open, how many shipments are ready to go, or partially shipped, how many documents are waiting for approval etc.</description></item><item><title>Setup Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/setup-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/setup-table/</guid><description>By Abhishek Ghosh, at Microsoft Development Center Copenhagen
|
||||
This is the first and most well-known of the two usual applications of the Singleton Table pattern in Dynamics NAV.
|
||||
Problem: the developer needs to store information about the operating setup or environment in the database, in a way that can be persisted across sessions.
|
||||
Solution: The information is stored in a table with one record only. The user is subsequently able to modify, but not add or delete records in the table.</description></item></channel></rss>
|
||||
|
|
@ -5,16 +5,16 @@
|
|||
<meta name=generator content="Hugo 0.89.4">
|
||||
<meta name=description content>
|
||||
<title>Setup Table :: AL Guidelines</title>
|
||||
<link href=/css/nucleus.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638662728 rel=stylesheet>
|
||||
<link href=/css/print.css?1638662728 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638662728></script>
|
||||
<link href=/css/nucleus.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/fontawesome-all.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/featherlight.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/perfect-scrollbar.min.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/auto-complete.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/theme-blue.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/variant.css?1638739418 rel=stylesheet>
|
||||
<link href=/css/print.css?1638739418 rel=stylesheet media=print>
|
||||
<script src=/js/jquery.min.js?1638739418></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/navpatterns/1-patterns/singleton/singleton-table/setup-table/>
|
||||
|
|
@ -32,9 +32,9 @@ ALGuidelines.Dev
|
|||
<input data-search-input id=search-by type=search placeholder=Search...>
|
||||
<span data-search-clear><i class="fas fa-times"></i></span>
|
||||
</div>
|
||||
<script src=/js/lunr.min.js?1638662728></script>
|
||||
<script src=/js/auto-complete.js?1638662728></script>
|
||||
<script src=/js/search.js?1638662728></script>
|
||||
<script src=/js/lunr.min.js?1638739418></script>
|
||||
<script src=/js/auto-complete.js?1638739418></script>
|
||||
<script src=/js/search.js?1638739418></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
|
|
@ -57,7 +57,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Façade" class=dd-item><a href=/navpatterns/1-patterns/data-migration-facade/>Data Migration Façade</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
|
|
@ -85,12 +85,17 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="Use Queries to Detect Duplicate Records" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>Use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/navpatterns/1-patterns/security/>Security</a><ul>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/ title="Sensitive Data Encapsulation" class=dd-item><a href=/navpatterns/1-patterns/security/1-sensitive-data-encapsulation/>Sensitive Data Encapsulation</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/2-data-encryption/ title="Data Encryption" class=dd-item><a href=/navpatterns/1-patterns/security/2-data-encryption/>Data Encryption</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/3-single-point-of-access/ title="Single Point of Access" class=dd-item><a href=/navpatterns/1-patterns/security/3-single-point-of-access/>Single Point of Access</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/4-masked-text/ title="Masked Text" class=dd-item><a href=/navpatterns/1-patterns/security/4-masked-text/>Masked Text</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/security/5-ssl-in-nav/ title="SSL in NAV" class=dd-item><a href=/navpatterns/1-patterns/security/5-ssl-in-nav/>SSL in NAV</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
|
|
@ -107,8 +112,22 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/>Design</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ title="By Reference Parameters" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/>By Reference Parameters</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/class-coupling/ title="Class Coupling" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/class-coupling/>Class Coupling</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ title="Cyclomatic Complexity" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/>Cyclomatic Complexity</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ title="Encapsulate Local Functionality" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/>Encapsulate Local Functionality</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ title="FINDSET FINDFIRST FINDLAST" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/>FINDSET FINDFIRST FINDLAST</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ title="Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/initialized-variables/>Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ title="Maintainability Index" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/maintainability-index/>Maintainability Index</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ title="Parameter Placeholders" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/>Parameter Placeholders</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ title="Static Object Invocation" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/>Static Object Invocation</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ title="Unreachable Code" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unreachable-code/>Unreachable Code</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ title="Unused Initialized Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/>Unused Initialized Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/unused-variables/ title="Unused Variables" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/unused-variables/>Unused Variables</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ title="Variable Capacity Mismatch" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/>Variable Capacity Mismatch</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ title="WITH Scope Name Collision" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/>WITH Scope Name Collision</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally used DotNet Types" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally used DotNet Types</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
|
|
@ -121,7 +140,7 @@ ALGuidelines.Dev
|
|||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
|
|
@ -209,12 +228,7 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#setup-table>Setup Table</a></li>
|
||||
<li><a href=#-image0anchor0><a href=Setup-Table.png><img src=Setup-Table.png alt=" "></a></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav id=TableOfContents></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -222,9 +236,8 @@ ALGuidelines.Dev
|
|||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Setup Table</h1>
|
||||
<h2 id=setup-table>Setup Table</h2>
|
||||
<p><em>By Abhishek Ghosh, at Microsoft Development Center Copenhagen</em></p>
|
||||
<h2 id=-image0anchor0><a href=Setup-Table.png><img src=Setup-Table.png alt=" "></a></h2>
|
||||
<p><a href=Setup-Table.png><img src=Setup-Table.png alt=" "></a></p>
|
||||
<p>This is the first and most well-known of the two usual applications of the <strong>Singleton Table</strong> pattern in Dynamics NAV.</p>
|
||||
<p><strong>Problem:</strong> the developer needs to store information about the operating setup or environment in the database, in a way that can be persisted across sessions.</p>
|
||||
<p><strong>Solution:</strong> The information is stored in a table with one record only. The user is subsequently able to modify, but not add or delete records in the table.</p>
|
||||
|
|
@ -261,7 +274,7 @@ END;
|
|||
<li>Table 313 Inventory Setup</li>
|
||||
<li>Table 242 Source Code Setup</li>
|
||||
</ul>
|
||||
<p>**Variation: **While most tables just insert a record with empty primary key in codeunit 2, table 242 (“Source Code Setup”) offers an example of inserting default values into all fields of the table (method “InitSourceCodeSetup”). This practice, wherever feasible, is likely to reduce the effort during implementation.</p>
|
||||
<p><strong>Variation:</strong> While most tables just insert a record with empty primary key in codeunit 2, table 242 (“Source Code Setup”) offers an example of inserting default values into all fields of the table (method “InitSourceCodeSetup”). This practice, wherever feasible, is likely to reduce the effort during implementation.</p>
|
||||
<p><strong>Related resources:</strong> <a href=http://www.klemmensen.ca/Blog/Post/35/Initialize-Setup-Tables>Considerations on optimizing the Singleton Table, by Søren Klemmensen</a>.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
|
|
@ -275,12 +288,12 @@ END;
|
|||
<div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px>
|
||||
<div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div>
|
||||
</div>
|
||||
<script src=/js/clipboard.min.js?1638662728></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638662728></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638662728></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638662728></script>
|
||||
<script src=/js/featherlight.min.js?1638662728></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638662728></script>
|
||||
<script src=/js/relearn.js?1638662728></script>
|
||||
<script src=/js/clipboard.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.min.js?1638739418></script>
|
||||
<script src=/js/perfect-scrollbar.jquery.min.js?1638739418></script>
|
||||
<script src=/js/jquery.svg.pan.zoom.js?1638739418></script>
|
||||
<script src=/js/featherlight.min.js?1638739418></script>
|
||||
<script src=/js/modernizr.custom-3.6.0.js?1638739418></script>
|
||||
<script src=/js/relearn.js?1638739418></script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue