deploy: 552e37fedc
BIN
navpatterns/1-patterns/singleton/0535.Singleton.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
253
navpatterns/1-patterns/singleton/index.html
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
<!doctype html><html lang=en class="js csstransforms3d">
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||
<meta name=generator content="Hugo 0.89.0">
|
||||
<link rel=alternate type=application/rss+xml href=/bcalhelp/navpatterns/1-patterns/singleton/index.xml title="BC AL Help">
|
||||
<meta name=description content>
|
||||
<title>Singleton :: BC AL Help</title>
|
||||
<link href=/bcalhelp/css/nucleus.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/fontawesome-all.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/featherlight.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/perfect-scrollbar.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/auto-complete.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme-blue.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/variant.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/print.css?1636061749 rel=stylesheet media=print>
|
||||
<script src=/bcalhelp/js/jquery.min.js?1636061749></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/bcalhelp/navpatterns/1-patterns/singleton/>
|
||||
<script>var index_url="/bcalhelp/index.json",root_url="/",baseUri=root_url.replace(/\/$/,'')</script>
|
||||
<nav id=sidebar>
|
||||
<div id=header-wrapper>
|
||||
<div id=header>
|
||||
<a id=logo href=/bcalhelp/ style="color:#f5f5f5;font-family:novacento sans wide,helvetica,tahoma,geneva,arial,sans-serif;font-size:30px;font-weight:700;margin-top:-2px">
|
||||
BC AL Help . dev
|
||||
</a>
|
||||
<i style=color:#f5f5f5>Code is Poetry</i>
|
||||
</div>
|
||||
<div class=searchbox>
|
||||
<label for=search-by><i class="fas fa-search"></i></label>
|
||||
<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=/bcalhelp/js/lunr.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/auto-complete.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/search.js?1636061749></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
<li data-nav-id=/bcalhelp/welcome/ title=Welcome class=dd-item><a href=/bcalhelp/welcome/><b><i class="fas fa-home"></i> </b>Welcome</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcpatterns/ title="BC Patterns" class=dd-item><a href=/bcalhelp/bcpatterns/><b><i class="fas fa-clone"></i> </b>BC Patterns</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcbestpractices/ title="BC Dev. Best Practices" class=dd-item><a href=/bcalhelp/bcbestpractices/><b><i class="fas fa-medal"></i> </b>BC Dev. Best Practices</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/ title="NAV Patterns Archive" class="dd-item parent"><a href=/bcalhelp/navpatterns/><b><i class="fas fa-save"></i> </b>NAV Patterns Archive</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/ title="1. Patterns" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/>1. Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/activity-log/ title="Activity Logs" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/activity-log/>Activity Logs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/argument-table/ title="Argument Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/argument-table/>Argument Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/ title="Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/>Blocked Entity</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/ title="Data Driven Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/ title="Cached Web Server Calls" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/>Cached Web Server Calls</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/ title="Conditional Cascading Update" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/>Conditional Cascading Update</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/copy-document/ title="Copy Document" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/copy-document/>Copy Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/ title="Create Data from Templates" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/>Create Data from Templates</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/ title="Create URLs to NAV Clients" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/>Create URLs to NAV Clients</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/error-message-processing/ title="Error Message Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/error-message-processing/>Error Message Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/ title="Extending the Role Center Headlines" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/>Extending the Role Center Headlines</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/ title="Feature Localization For Data Structures" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/>Feature Localization For Data Structures</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/hooks/ title=Hooks class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/hooks/>Hooks</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ title="Surrogate keys using Autoincrement Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/>Surrogate keys using Autoincrement Pattern</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/ title="Instructions in the UI" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/>Instructions in the UI</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/ title="Integration of Addresses" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/>Integration of Addresses</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-error-processing/ title="Journal Error Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-error-processing/>Journal Error Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/ title="Journal Template Batch Line" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/>Journal Template Batch Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/master-data/ title="Master Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/master-data/>Master Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-file-download/ title="Multi-file Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-file-download/>Multi-file Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-page-list/ title="Multi-Page List" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-page-list/>Multi-Page List</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/ title="Multilanguage Application Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/>Multilanguage Application Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/ title="NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/>NET Exception Handling in CAL</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ title="TryFunction NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/>TryFunction NET Exception Handling in CAL</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/no-series/ title="No Series" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/no-series/>No Series</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/ title=Notifications class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/>Notifications</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/ title="In-context Notifications" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/>In-context Notifications</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/ title="Notification Lifecycle Management Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/>Notification Lifecycle Management Pattern</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/observer/ title=Observer class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/observer/>Observer</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/ title="Posting Routine - Select Behavior" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/>Posting Routine - Select Behavior</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item active parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>Singleton Codeunit</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>Singleton Table</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>Cue Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>Setup Table</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/standard-journal/>Standard Journal</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/ title="Temporary Dataset Report" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/>Temporary Dataset Report</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/ title="Totals and Discounts on Subpages Sales and Purchases" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/ title="Transfer Custom Fields" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/>Transfer Custom Fields</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/variant-facade/ title="Variant Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/variant-facade/>Variant Facade</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/ title="2. Anti-Patterns" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/>2. Anti-Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ title="CaptionML on System Pages" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/>CaptionML on System Pages</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ title="FIELDCAPTION and TABLECAPTION" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/>FIELDCAPTION and TABLECAPTION</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ title="Global Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/>Global Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ title="Use Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/>Use Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ title="Using OptionCaptionML" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/>Using OptionCaptionML</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/ title=Readability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/>Readability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ title="Comment Spacing" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/>Comment Spacing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ title="END ELSE Pair" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/>END ELSE Pair</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/ title=Indentation class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/>Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ title="Keyword Pairs - Indentation" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/>Keyword Pairs - Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ title="Line Start Keywords" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/>Line Start Keywords</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ title="Lonely Repeat" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/>Lonely Repeat</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ title="Named Invocations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/>Named Invocations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ title="Nested WITHs" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/>Nested WITHs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ title="One Statement Per Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/>One Statement Per Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ title="Separate IF and ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/>Separate IF and ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ title="Spacing Binary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/>Spacing Binary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ title="Spacing Brackets and ::" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/>Spacing Brackets and ::</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ title="Spacing Unary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/>Spacing Unary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ title="Suggested Abbreviations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/>Suggested Abbreviations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ title="Temporary Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/>Temporary Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ title="TextConst Suffixes" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/>TextConst Suffixes</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ title="Unary Operator Line End" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/>Unary Operator Line End</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ title="Unnecessary Compound Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/>Unnecessary Compound Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ title="Unnecessary ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/>Unnecessary ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ title="Unnecessary Function Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/>Unnecessary Function Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ title="Unnecessary Separators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/>Unnecessary Separators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ title="Unnecessary TRUE/FALSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/>Unnecessary TRUE/FALSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ title="Variable Already Scoped" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/>Variable Already Scoped</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ title="Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/>Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ title="Variables Declarations Order" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/>Variables Declarations Order</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/ title=UX class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/>UX</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/ title="Actions - Images" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/>Actions - Images</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/ title=CONFIRM class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/>CONFIRM</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/ title=FIELDERROR class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/>FIELDERROR</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ title="MESSAGE and ERROR" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/>MESSAGE and ERROR</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/ title="(OLD) Get Involved" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/>(OLD) Get Involved</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/ title="Code of Conduct" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/>Code of Conduct</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/patterns-authors/ title="Patterns Authors" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/patterns-authors/>Patterns Authors</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ title="Template for writing Nav Design Patterns" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/>Template for writing Nav Design Patterns</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/related-links/ title="Related Links" class=dd-item><a href=/bcalhelp/navpatterns/related-links/>Related Links</a></li></ul></li>
|
||||
</ul>
|
||||
<div id=shortcuts>
|
||||
<div class=nav-title>More</div>
|
||||
<ul>
|
||||
<li><a class=padding href=https://discord.gg/4wbfNv3><i class="fab fa-discord"></i> BC Discord</a></li>
|
||||
<li><a class=padding href=https://github.com/microsoft/bcalhelp><i class="fab fa-github"></i> GitHub repo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id=footer>
|
||||
<p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id=body>
|
||||
<div id=overlay></div>
|
||||
<div class="padding highlightable">
|
||||
<div id=top-bar>
|
||||
<div id=top-github-link>
|
||||
<a class=github-link title="Edit this page" href=https://github.com/microsoft/bcalhelp/edit/main/content/NAVPatterns/1-patterns/singleton/_index.md target=blank>
|
||||
<i class="fas fa-code-branch"></i>
|
||||
<span id=top-github-link-text>Edit this page</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id=breadcrumbs>
|
||||
<span id=sidebar-toggle-span>
|
||||
<a href=# id=sidebar-toggle data-sidebar-toggle>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span id=toc-menu><i class="fas fa-list-alt"></i></span>
|
||||
<ol class=links itemscope itemtype=http://schema.org/BreadcrumbList>
|
||||
<meta itemprop=itemListOrder content="Descending">
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="4"><a itemprop=item href=/bcalhelp/><span itemprop=name>Home</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="3"><a itemprop=item href=/bcalhelp/navpatterns/><span itemprop=name>NAV Patterns Archive</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="2"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/><span itemprop=name>1. Patterns</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="1"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/ aria-disabled=true><span itemprop=name>Singleton</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#singleton>Singleton</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</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><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>
|
||||
</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>
|
||||
<p><strong>Benefits:</strong></p>
|
||||
<ul>
|
||||
<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>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit"><i class="fa fa-chevron-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<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=/bcalhelp/js/clipboard.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.jquery.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/jquery.svg.pan.zoom.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/featherlight.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/modernizr.custom-3.6.0.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/relearn.js?1636061749></script>
|
||||
</body>
|
||||
</html>
|
||||
13
navpatterns/1-patterns/singleton/index.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Singleton on BC AL Help</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/</link><description>Recent content in Singleton on BC AL Help</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/index.xml" rel="self" type="application/rss+xml"/><item><title>Singleton Table</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/</guid><description>Singleton Table By Elly Nkya at Microsoft Development Center Copenhagen
|
||||
_
|
||||
_
|
||||
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://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/</guid><description>Singleton Codeunit _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:
|
||||
The debugger needs to remember the session which is being debugged The permission manager has a testability function, where it can be set to emulate that it&rsquo;s running as a SaaS (Software As A Service &ndash; the cloud) platform, even when the tests run in a &ldquo;on-premise&rdquo; local lab.</description></item></channel></rss>
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
301
navpatterns/1-patterns/singleton/singleton-codeunit/index.html
Normal file
|
|
@ -0,0 +1,301 @@
|
|||
<!doctype html><html lang=en class="js csstransforms3d">
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||
<meta name=generator content="Hugo 0.89.0">
|
||||
<meta name=description content>
|
||||
<title>Singleton Codeunit :: BC AL Help</title>
|
||||
<link href=/bcalhelp/css/nucleus.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/fontawesome-all.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/featherlight.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/perfect-scrollbar.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/auto-complete.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme-blue.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/variant.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/print.css?1636061749 rel=stylesheet media=print>
|
||||
<script src=/bcalhelp/js/jquery.min.js?1636061749></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>
|
||||
<script>var index_url="/bcalhelp/index.json",root_url="/",baseUri=root_url.replace(/\/$/,'')</script>
|
||||
<nav id=sidebar>
|
||||
<div id=header-wrapper>
|
||||
<div id=header>
|
||||
<a id=logo href=/bcalhelp/ style="color:#f5f5f5;font-family:novacento sans wide,helvetica,tahoma,geneva,arial,sans-serif;font-size:30px;font-weight:700;margin-top:-2px">
|
||||
BC AL Help . dev
|
||||
</a>
|
||||
<i style=color:#f5f5f5>Code is Poetry</i>
|
||||
</div>
|
||||
<div class=searchbox>
|
||||
<label for=search-by><i class="fas fa-search"></i></label>
|
||||
<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=/bcalhelp/js/lunr.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/auto-complete.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/search.js?1636061749></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
<li data-nav-id=/bcalhelp/welcome/ title=Welcome class=dd-item><a href=/bcalhelp/welcome/><b><i class="fas fa-home"></i> </b>Welcome</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcpatterns/ title="BC Patterns" class=dd-item><a href=/bcalhelp/bcpatterns/><b><i class="fas fa-clone"></i> </b>BC Patterns</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcbestpractices/ title="BC Dev. Best Practices" class=dd-item><a href=/bcalhelp/bcbestpractices/><b><i class="fas fa-medal"></i> </b>BC Dev. Best Practices</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/ title="NAV Patterns Archive" class="dd-item parent"><a href=/bcalhelp/navpatterns/><b><i class="fas fa-save"></i> </b>NAV Patterns Archive</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/ title="1. Patterns" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/>1. Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/activity-log/ title="Activity Logs" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/activity-log/>Activity Logs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/argument-table/ title="Argument Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/argument-table/>Argument Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/ title="Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/>Blocked Entity</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/ title="Data Driven Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/ title="Cached Web Server Calls" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/>Cached Web Server Calls</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/ title="Conditional Cascading Update" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/>Conditional Cascading Update</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/copy-document/ title="Copy Document" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/copy-document/>Copy Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/ title="Create Data from Templates" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/>Create Data from Templates</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/ title="Create URLs to NAV Clients" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/>Create URLs to NAV Clients</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/error-message-processing/ title="Error Message Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/error-message-processing/>Error Message Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/ title="Extending the Role Center Headlines" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/>Extending the Role Center Headlines</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/ title="Feature Localization For Data Structures" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/>Feature Localization For Data Structures</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/hooks/ title=Hooks class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/hooks/>Hooks</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ title="Surrogate keys using Autoincrement Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/>Surrogate keys using Autoincrement Pattern</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/ title="Instructions in the UI" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/>Instructions in the UI</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/ title="Integration of Addresses" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/>Integration of Addresses</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-error-processing/ title="Journal Error Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-error-processing/>Journal Error Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/ title="Journal Template Batch Line" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/>Journal Template Batch Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/master-data/ title="Master Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/master-data/>Master Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-file-download/ title="Multi-file Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-file-download/>Multi-file Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-page-list/ title="Multi-Page List" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-page-list/>Multi-Page List</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/ title="Multilanguage Application Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/>Multilanguage Application Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/ title="NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/>NET Exception Handling in CAL</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ title="TryFunction NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/>TryFunction NET Exception Handling in CAL</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/no-series/ title="No Series" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/no-series/>No Series</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/ title=Notifications class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/>Notifications</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/ title="In-context Notifications" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/>In-context Notifications</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/ title="Notification Lifecycle Management Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/>Notification Lifecycle Management Pattern</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/observer/ title=Observer class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/observer/>Observer</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/ title="Posting Routine - Select Behavior" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/>Posting Routine - Select Behavior</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit" class="dd-item active"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>Singleton Codeunit</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>Singleton Table</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>Cue Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>Setup Table</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/standard-journal/>Standard Journal</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/ title="Temporary Dataset Report" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/>Temporary Dataset Report</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/ title="Totals and Discounts on Subpages Sales and Purchases" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/ title="Transfer Custom Fields" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/>Transfer Custom Fields</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/variant-facade/ title="Variant Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/variant-facade/>Variant Facade</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/ title="2. Anti-Patterns" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/>2. Anti-Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ title="CaptionML on System Pages" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/>CaptionML on System Pages</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ title="FIELDCAPTION and TABLECAPTION" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/>FIELDCAPTION and TABLECAPTION</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ title="Global Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/>Global Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ title="Use Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/>Use Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ title="Using OptionCaptionML" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/>Using OptionCaptionML</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/ title=Readability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/>Readability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ title="Comment Spacing" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/>Comment Spacing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ title="END ELSE Pair" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/>END ELSE Pair</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/ title=Indentation class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/>Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ title="Keyword Pairs - Indentation" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/>Keyword Pairs - Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ title="Line Start Keywords" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/>Line Start Keywords</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ title="Lonely Repeat" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/>Lonely Repeat</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ title="Named Invocations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/>Named Invocations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ title="Nested WITHs" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/>Nested WITHs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ title="One Statement Per Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/>One Statement Per Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ title="Separate IF and ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/>Separate IF and ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ title="Spacing Binary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/>Spacing Binary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ title="Spacing Brackets and ::" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/>Spacing Brackets and ::</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ title="Spacing Unary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/>Spacing Unary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ title="Suggested Abbreviations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/>Suggested Abbreviations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ title="Temporary Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/>Temporary Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ title="TextConst Suffixes" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/>TextConst Suffixes</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ title="Unary Operator Line End" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/>Unary Operator Line End</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ title="Unnecessary Compound Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/>Unnecessary Compound Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ title="Unnecessary ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/>Unnecessary ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ title="Unnecessary Function Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/>Unnecessary Function Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ title="Unnecessary Separators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/>Unnecessary Separators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ title="Unnecessary TRUE/FALSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/>Unnecessary TRUE/FALSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ title="Variable Already Scoped" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/>Variable Already Scoped</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ title="Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/>Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ title="Variables Declarations Order" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/>Variables Declarations Order</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/ title=UX class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/>UX</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/ title="Actions - Images" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/>Actions - Images</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/ title=CONFIRM class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/>CONFIRM</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/ title=FIELDERROR class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/>FIELDERROR</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ title="MESSAGE and ERROR" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/>MESSAGE and ERROR</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/ title="(OLD) Get Involved" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/>(OLD) Get Involved</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/ title="Code of Conduct" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/>Code of Conduct</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/patterns-authors/ title="Patterns Authors" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/patterns-authors/>Patterns Authors</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ title="Template for writing Nav Design Patterns" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/>Template for writing Nav Design Patterns</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/related-links/ title="Related Links" class=dd-item><a href=/bcalhelp/navpatterns/related-links/>Related Links</a></li></ul></li>
|
||||
</ul>
|
||||
<div id=shortcuts>
|
||||
<div class=nav-title>More</div>
|
||||
<ul>
|
||||
<li><a class=padding href=https://discord.gg/4wbfNv3><i class="fab fa-discord"></i> BC Discord</a></li>
|
||||
<li><a class=padding href=https://github.com/microsoft/bcalhelp><i class="fab fa-github"></i> GitHub repo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id=footer>
|
||||
<p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id=body>
|
||||
<div id=overlay></div>
|
||||
<div class="padding highlightable">
|
||||
<div id=top-bar>
|
||||
<div id=top-github-link>
|
||||
<a class=github-link title="Edit this page" href=https://github.com/microsoft/bcalhelp/edit/main/content/NAVPatterns/1-patterns/singleton/singleton-codeunit/index.md target=blank>
|
||||
<i class="fas fa-code-branch"></i>
|
||||
<span id=top-github-link-text>Edit this page</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id=breadcrumbs>
|
||||
<span id=sidebar-toggle-span>
|
||||
<a href=# id=sidebar-toggle data-sidebar-toggle>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span id=toc-menu><i class="fas fa-list-alt"></i></span>
|
||||
<ol class=links itemscope itemtype=http://schema.org/BreadcrumbList>
|
||||
<meta itemprop=itemListOrder content="Descending">
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="5"><a itemprop=item href=/bcalhelp/><span itemprop=name>Home</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="4"><a itemprop=item href=/bcalhelp/navpatterns/><span itemprop=name>NAV Patterns Archive</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="3"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/><span itemprop=name>1. Patterns</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="2"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/><span itemprop=name>Singleton</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="1"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ aria-disabled=true><span itemprop=name>Singleton Codeunit</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#singleton-codeunit>Singleton Codeunit</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</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><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>
|
||||
<ul>
|
||||
<li>The debugger needs to remember the session which is being debugged</li>
|
||||
<li>The permission manager has a testability function, where it can be set to emulate that it’s running as a SaaS (Software As A Service – the cloud) platform, even when the tests run in a “on-premise” local lab.</li>
|
||||
</ul>
|
||||
<p>Take for example the following test of Azure ML (Azure Machine Learning) integration with NAV.</p>
|
||||
<p>Context: Azure Machine Learning services are paid. However, Dynamics NAV includes a monthly pre-paid quota of Azure ML, which can be used for free by the users. There is an upper limit to this quota, and when it is reached, Azure ML services are turned off until the next month starts and a new quota becomes available for consumption.</p>
|
||||
<p>The test below checks that, when the monthly quota is exceeded, then the function IsAzureMLLimitReached returns TRUE.</p>
|
||||
<pre><code>\[Test\]
|
||||
PROCEDURE AzureMLProcessingTimeExceedsLimit@11();
|
||||
VAR
|
||||
AzureMachineLearningUsage@1004 : Record 2002;
|
||||
ProcessingTime@1000 : Decimal;
|
||||
BEGIN
|
||||
// \[SCENARIO\] Azure Machine Learning Processing time exceeds AzureML limit
|
||||
// \[GIVEN\] AzureMachineLearningUsage \> 0
|
||||
Initialize; // calls PermissionManager.SetTestabilitySoftwareAsAService(TRUE);
|
||||
ProcessingTime := LibraryRandom.RandDec(1000,2);
|
||||
AzureMachineLearningUsage.IncrementTotalProcessingTime(ProcessingTime);
|
||||
// \[WHEN\] When IsAzureMLLimitReached is invoked with Limit more than Processing time
|
||||
// \[THEN\] HasAzureLimitReached returns TRUE
|
||||
Assert.IsTrue(AzureMachineLearningUsage.IsAzureMLLimitReached(ProcessingTime - 1),
|
||||
'HasAzureLimitReached returns wrong value when Processing time exceeds Limit.');
|
||||
PermissionManager.SetTestabilitySoftwareAsAService(FALSE);
|
||||
END;
|
||||
</code></pre>
|
||||
<p>The figure below explains what happens when the Permission Manager is not a singleton. When it is invoked from different places (first from the test, second from the production code), then different instances of the Permission Manager will fire up and answer. In detail:</p>
|
||||
<ol>
|
||||
<li>The test calls Initialize which sets SaaS=TRUE in codeunit Permission Manager</li>
|
||||
<li>The test calls into production code to validate it works as expected. It calls AzureMachineLearningUsage codeunit to find out if the monthly quota has been reached. The function IsAzureMLLimitReached in AzureMachineLearningUsage codeunit is designed only for SaaS. If the code doesn’t run in SaaS, then it always returns FALSE.</li>
|
||||
<li>Therefore, a call to PermissionManager is made, to find out if the environment is SaaS.</li>
|
||||
<li>However, a different instance of Permission Manager is reached – and instance where SaaS was never set to TRUE. This is a mistake – the test intended to simulate SaaS, but the state it set in the beginning is not reachable from production code.</li>
|
||||
<li>The production code will assess (wrongly) that it’s not running SaaS, and say that the Azure ML limit has not been reached (incorrect – and the test fails).</li>
|
||||
</ol>
|
||||
<p><a href=Singleton-Codeunit-_2D00_-example-_2D00_-bad.PNG><img src=Singleton-Codeunit-_2D00_-example-_2D00_-bad.PNG alt=" "></a></p>
|
||||
<hr>
|
||||
<p><strong>Solution:</strong> restrict the number of instantiations of a codeunit to only one, by setting the codeunit property <strong>SingleInstance</strong> to <strong>Yes</strong>.</p>
|
||||
<p>Returning to the previous example, let’s analyze the case when the codeunit Permission Manager is a singleton codeunit:</p>
|
||||
<p><a href=2313.Singleton-Codeunit-_2D00_-CSIDE-SingleInstance-property.PNG><img src=2313.Singleton-Codeunit-_2D00_-CSIDE-SingleInstance-property.PNG alt=" "></a></p>
|
||||
<p>When the codeunit Permission Manager is a singleton, then no matter from where it is invoked, the same instance will be reached. Therefore, the status set by the test (SaaS = TRUE) will be reachable from the production code, and the test will pass, as seen in the figure below.</p>
|
||||
<p>**<a href=Singleton-Codeunit-_2D00_-example-_2D00_-good.PNG><img src=Singleton-Codeunit-_2D00_-example-_2D00_-good.PNG alt=" "></a><br>
|
||||
**</p>
|
||||
<p><strong>Consequences</strong></p>
|
||||
<p>1. Use Singleton Codeunit with care and only when there is no other solution. Preserving a global state could often enough be more harmful than useful. One risk is that tests might fail apparently non-deterministically.</p>
|
||||
<p>For example, a problem we have met in the development team for Madeira release, was that the singleton codeunit function PermissionManager.SetSoftwareAsAService(TRUE) is often used to emulate and test SaaS conditions. However, if a test ‘forgets’ to reset the state to default (FALSE), then another codeunit which is not supposed to emulate SaaS, will suddenly run as SaaS and will fail. Even if the test has code that resets the state to FALSE, this code might never be reached because of an earlier failure or other error in the test which would stop execution.</p>
|
||||
<p>2. The singleton codeunit is only “alive” for the current session. If the user logs out, the old session is closed and the singleton cleared out so any values stored in the old session’s singleton will be lost when the session was closed. When the user logs in again, a new session (with a new fresh instance of the singleton) will be created.</p>
|
||||
<p><strong>NAV Usages</strong></p>
|
||||
<p>Most of the usages in NAV refer to the so-called “management codeunits”. The management codeunits are needed to run, in a centralized way, various modular parts of the application (features), like the CRM integration, Permissions, Workflows etc. Some of the <strong>Singleton Codeunits</strong> in NAV are listed below:</p>
|
||||
<ul>
|
||||
<li>Codeunit 423 Change Log Management</li>
|
||||
<li>Codeunit 1503 Workflow Record Management</li>
|
||||
<li>Codeunit 1511 Notification Lifecycle Mgt.</li>
|
||||
<li>Codeunit 1629 Office Attachment Manager</li>
|
||||
<li>Codeunit 1632 Office Error Engine</li>
|
||||
<li>Codeunit 5150 Integration Management</li>
|
||||
<li>Codeunit 9002 Permission Manager</li>
|
||||
<li>Etc.</li>
|
||||
</ul>
|
||||
<p><strong>Note:</strong> while the object-oriented <strong>Singleton</strong> pattern can restrict the number of instantiations of the singleton to an integer n > 0, in Dynamics NAV the <strong>Singleton Codeunit</strong> can only have n=1.</p>
|
||||
<p>__</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table"><i class="fa fa-chevron-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<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=/bcalhelp/js/clipboard.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.jquery.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/jquery.svg.pan.zoom.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/featherlight.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/modernizr.custom-3.6.0.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/relearn.js?1636061749></script>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
|
@ -0,0 +1,309 @@
|
|||
<!doctype html><html lang=en class="js csstransforms3d">
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||
<meta name=generator content="Hugo 0.89.0">
|
||||
<meta name=description content>
|
||||
<title>Cue Table :: BC AL Help</title>
|
||||
<link href=/bcalhelp/css/nucleus.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/fontawesome-all.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/featherlight.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/perfect-scrollbar.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/auto-complete.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme-blue.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/variant.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/print.css?1636061749 rel=stylesheet media=print>
|
||||
<script src=/bcalhelp/js/jquery.min.js?1636061749></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>
|
||||
<script>var index_url="/bcalhelp/index.json",root_url="/",baseUri=root_url.replace(/\/$/,'')</script>
|
||||
<nav id=sidebar>
|
||||
<div id=header-wrapper>
|
||||
<div id=header>
|
||||
<a id=logo href=/bcalhelp/ style="color:#f5f5f5;font-family:novacento sans wide,helvetica,tahoma,geneva,arial,sans-serif;font-size:30px;font-weight:700;margin-top:-2px">
|
||||
BC AL Help . dev
|
||||
</a>
|
||||
<i style=color:#f5f5f5>Code is Poetry</i>
|
||||
</div>
|
||||
<div class=searchbox>
|
||||
<label for=search-by><i class="fas fa-search"></i></label>
|
||||
<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=/bcalhelp/js/lunr.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/auto-complete.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/search.js?1636061749></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
<li data-nav-id=/bcalhelp/welcome/ title=Welcome class=dd-item><a href=/bcalhelp/welcome/><b><i class="fas fa-home"></i> </b>Welcome</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcpatterns/ title="BC Patterns" class=dd-item><a href=/bcalhelp/bcpatterns/><b><i class="fas fa-clone"></i> </b>BC Patterns</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcbestpractices/ title="BC Dev. Best Practices" class=dd-item><a href=/bcalhelp/bcbestpractices/><b><i class="fas fa-medal"></i> </b>BC Dev. Best Practices</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/ title="NAV Patterns Archive" class="dd-item parent"><a href=/bcalhelp/navpatterns/><b><i class="fas fa-save"></i> </b>NAV Patterns Archive</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/ title="1. Patterns" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/>1. Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/activity-log/ title="Activity Logs" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/activity-log/>Activity Logs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/argument-table/ title="Argument Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/argument-table/>Argument Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/ title="Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/>Blocked Entity</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/ title="Data Driven Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/ title="Cached Web Server Calls" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/>Cached Web Server Calls</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/ title="Conditional Cascading Update" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/>Conditional Cascading Update</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/copy-document/ title="Copy Document" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/copy-document/>Copy Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/ title="Create Data from Templates" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/>Create Data from Templates</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/ title="Create URLs to NAV Clients" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/>Create URLs to NAV Clients</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/error-message-processing/ title="Error Message Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/error-message-processing/>Error Message Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/ title="Extending the Role Center Headlines" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/>Extending the Role Center Headlines</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/ title="Feature Localization For Data Structures" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/>Feature Localization For Data Structures</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/hooks/ title=Hooks class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/hooks/>Hooks</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ title="Surrogate keys using Autoincrement Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/>Surrogate keys using Autoincrement Pattern</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/ title="Instructions in the UI" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/>Instructions in the UI</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/ title="Integration of Addresses" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/>Integration of Addresses</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-error-processing/ title="Journal Error Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-error-processing/>Journal Error Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/ title="Journal Template Batch Line" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/>Journal Template Batch Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/master-data/ title="Master Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/master-data/>Master Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-file-download/ title="Multi-file Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-file-download/>Multi-file Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-page-list/ title="Multi-Page List" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-page-list/>Multi-Page List</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/ title="Multilanguage Application Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/>Multilanguage Application Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/ title="NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/>NET Exception Handling in CAL</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ title="TryFunction NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/>TryFunction NET Exception Handling in CAL</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/no-series/ title="No Series" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/no-series/>No Series</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/ title=Notifications class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/>Notifications</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/ title="In-context Notifications" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/>In-context Notifications</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/ title="Notification Lifecycle Management Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/>Notification Lifecycle Management Pattern</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/observer/ title=Observer class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/observer/>Observer</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/ title="Posting Routine - Select Behavior" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/>Posting Routine - Select Behavior</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>Singleton Codeunit</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>Singleton Table</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table" class="dd-item active"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>Cue Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>Setup Table</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/standard-journal/>Standard Journal</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/ title="Temporary Dataset Report" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/>Temporary Dataset Report</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/ title="Totals and Discounts on Subpages Sales and Purchases" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/ title="Transfer Custom Fields" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/>Transfer Custom Fields</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/variant-facade/ title="Variant Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/variant-facade/>Variant Facade</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/ title="2. Anti-Patterns" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/>2. Anti-Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ title="CaptionML on System Pages" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/>CaptionML on System Pages</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ title="FIELDCAPTION and TABLECAPTION" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/>FIELDCAPTION and TABLECAPTION</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ title="Global Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/>Global Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ title="Use Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/>Use Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ title="Using OptionCaptionML" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/>Using OptionCaptionML</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/ title=Readability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/>Readability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ title="Comment Spacing" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/>Comment Spacing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ title="END ELSE Pair" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/>END ELSE Pair</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/ title=Indentation class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/>Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ title="Keyword Pairs - Indentation" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/>Keyword Pairs - Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ title="Line Start Keywords" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/>Line Start Keywords</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ title="Lonely Repeat" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/>Lonely Repeat</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ title="Named Invocations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/>Named Invocations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ title="Nested WITHs" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/>Nested WITHs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ title="One Statement Per Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/>One Statement Per Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ title="Separate IF and ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/>Separate IF and ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ title="Spacing Binary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/>Spacing Binary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ title="Spacing Brackets and ::" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/>Spacing Brackets and ::</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ title="Spacing Unary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/>Spacing Unary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ title="Suggested Abbreviations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/>Suggested Abbreviations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ title="Temporary Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/>Temporary Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ title="TextConst Suffixes" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/>TextConst Suffixes</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ title="Unary Operator Line End" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/>Unary Operator Line End</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ title="Unnecessary Compound Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/>Unnecessary Compound Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ title="Unnecessary ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/>Unnecessary ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ title="Unnecessary Function Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/>Unnecessary Function Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ title="Unnecessary Separators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/>Unnecessary Separators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ title="Unnecessary TRUE/FALSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/>Unnecessary TRUE/FALSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ title="Variable Already Scoped" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/>Variable Already Scoped</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ title="Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/>Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ title="Variables Declarations Order" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/>Variables Declarations Order</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/ title=UX class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/>UX</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/ title="Actions - Images" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/>Actions - Images</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/ title=CONFIRM class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/>CONFIRM</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/ title=FIELDERROR class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/>FIELDERROR</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ title="MESSAGE and ERROR" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/>MESSAGE and ERROR</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/ title="(OLD) Get Involved" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/>(OLD) Get Involved</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/ title="Code of Conduct" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/>Code of Conduct</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/patterns-authors/ title="Patterns Authors" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/patterns-authors/>Patterns Authors</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ title="Template for writing Nav Design Patterns" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/>Template for writing Nav Design Patterns</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/related-links/ title="Related Links" class=dd-item><a href=/bcalhelp/navpatterns/related-links/>Related Links</a></li></ul></li>
|
||||
</ul>
|
||||
<div id=shortcuts>
|
||||
<div class=nav-title>More</div>
|
||||
<ul>
|
||||
<li><a class=padding href=https://discord.gg/4wbfNv3><i class="fab fa-discord"></i> BC Discord</a></li>
|
||||
<li><a class=padding href=https://github.com/microsoft/bcalhelp><i class="fab fa-github"></i> GitHub repo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id=footer>
|
||||
<p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id=body>
|
||||
<div id=overlay></div>
|
||||
<div class="padding highlightable">
|
||||
<div id=top-bar>
|
||||
<div id=top-github-link>
|
||||
<a class=github-link title="Edit this page" href=https://github.com/microsoft/bcalhelp/edit/main/content/NAVPatterns/1-patterns/singleton/singleton-table/cue-table/index.md target=blank>
|
||||
<i class="fas fa-code-branch"></i>
|
||||
<span id=top-github-link-text>Edit this page</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id=breadcrumbs>
|
||||
<span id=sidebar-toggle-span>
|
||||
<a href=# id=sidebar-toggle data-sidebar-toggle>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span id=toc-menu><i class="fas fa-list-alt"></i></span>
|
||||
<ol class=links itemscope itemtype=http://schema.org/BreadcrumbList>
|
||||
<meta itemprop=itemListOrder content="Descending">
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="6"><a itemprop=item href=/bcalhelp/><span itemprop=name>Home</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="5"><a itemprop=item href=/bcalhelp/navpatterns/><span itemprop=name>NAV Patterns Archive</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="4"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/><span itemprop=name>1. Patterns</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="3"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/><span itemprop=name>Singleton</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="2"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/><span itemprop=name>Singleton Table</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="1"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ aria-disabled=true><span itemprop=name>Cue Table</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#cue-table>Cue Table</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</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>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>
|
||||
<ol>
|
||||
<li>By using a FlowField. This applies for simpler calculations, like filtered or unfiltered counts, sums etc.</li>
|
||||
<li>By writing C/AL code to perform custom calculations. Use this when:</li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<li>The way to calculate the overview is too complex for flow fields, or</li>
|
||||
</ul>
|
||||
</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>
|
||||
<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>Table ID</p>
|
||||
<p>Table Name</p>
|
||||
<p>1313</p>
|
||||
<p>Activities Cue</p>
|
||||
<p>5370</p>
|
||||
<p>CRM Synch. Job Status Cue</p>
|
||||
<p>9042</p>
|
||||
<p>Team Member Cue</p>
|
||||
<p>9050</p>
|
||||
<p>Warehouse Basic Cue</p>
|
||||
<p>9051</p>
|
||||
<p>Warehouse WMS Cue</p>
|
||||
<p>9052</p>
|
||||
<p>Service Cue</p>
|
||||
<p>9053</p>
|
||||
<p>Sales Cue</p>
|
||||
<p>9054</p>
|
||||
<p>Finance Cue</p>
|
||||
<p>9055</p>
|
||||
<p>Purchase Cue</p>
|
||||
<p>9056</p>
|
||||
<p>Manufacturing Cue</p>
|
||||
<p>9057</p>
|
||||
<p>Job Cue</p>
|
||||
<p>9058</p>
|
||||
<p>Warehouse Worker WMS Cue</p>
|
||||
<p>9059</p>
|
||||
<p>Administration Cue</p>
|
||||
<p>9060</p>
|
||||
<p>SB Owner Cue</p>
|
||||
<p>9061</p>
|
||||
<p>RapidStart Services Cue</p>
|
||||
<p>9063</p>
|
||||
<p>Relationship Mgmt. Cue</p>
|
||||
<p>9069</p>
|
||||
<p>O365 Sales Cue</p>
|
||||
<p>9070</p>
|
||||
<p>Accounting Services Cue</p>
|
||||
<p>Table 1 - Cue tables in Dynamics NAV</p>
|
||||
<hr>
|
||||
<p>_</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table"><i class="fa fa-chevron-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<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=/bcalhelp/js/clipboard.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.jquery.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/jquery.svg.pan.zoom.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/featherlight.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/modernizr.custom-3.6.0.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/relearn.js?1636061749></script>
|
||||
</body>
|
||||
</html>
|
||||
298
navpatterns/1-patterns/singleton/singleton-table/index.html
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
<!doctype html><html lang=en class="js csstransforms3d">
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||
<meta name=generator content="Hugo 0.89.0">
|
||||
<link rel=alternate type=application/rss+xml href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/index.xml title="BC AL Help">
|
||||
<meta name=description content>
|
||||
<title>Singleton Table :: BC AL Help</title>
|
||||
<link href=/bcalhelp/css/nucleus.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/fontawesome-all.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/featherlight.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/perfect-scrollbar.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/auto-complete.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme-blue.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/variant.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/print.css?1636061749 rel=stylesheet media=print>
|
||||
<script src=/bcalhelp/js/jquery.min.js?1636061749></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>
|
||||
<script>var index_url="/bcalhelp/index.json",root_url="/",baseUri=root_url.replace(/\/$/,'')</script>
|
||||
<nav id=sidebar>
|
||||
<div id=header-wrapper>
|
||||
<div id=header>
|
||||
<a id=logo href=/bcalhelp/ style="color:#f5f5f5;font-family:novacento sans wide,helvetica,tahoma,geneva,arial,sans-serif;font-size:30px;font-weight:700;margin-top:-2px">
|
||||
BC AL Help . dev
|
||||
</a>
|
||||
<i style=color:#f5f5f5>Code is Poetry</i>
|
||||
</div>
|
||||
<div class=searchbox>
|
||||
<label for=search-by><i class="fas fa-search"></i></label>
|
||||
<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=/bcalhelp/js/lunr.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/auto-complete.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/search.js?1636061749></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
<li data-nav-id=/bcalhelp/welcome/ title=Welcome class=dd-item><a href=/bcalhelp/welcome/><b><i class="fas fa-home"></i> </b>Welcome</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcpatterns/ title="BC Patterns" class=dd-item><a href=/bcalhelp/bcpatterns/><b><i class="fas fa-clone"></i> </b>BC Patterns</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcbestpractices/ title="BC Dev. Best Practices" class=dd-item><a href=/bcalhelp/bcbestpractices/><b><i class="fas fa-medal"></i> </b>BC Dev. Best Practices</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/ title="NAV Patterns Archive" class="dd-item parent"><a href=/bcalhelp/navpatterns/><b><i class="fas fa-save"></i> </b>NAV Patterns Archive</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/ title="1. Patterns" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/>1. Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/activity-log/ title="Activity Logs" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/activity-log/>Activity Logs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/argument-table/ title="Argument Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/argument-table/>Argument Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/ title="Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/>Blocked Entity</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/ title="Data Driven Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/ title="Cached Web Server Calls" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/>Cached Web Server Calls</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/ title="Conditional Cascading Update" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/>Conditional Cascading Update</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/copy-document/ title="Copy Document" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/copy-document/>Copy Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/ title="Create Data from Templates" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/>Create Data from Templates</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/ title="Create URLs to NAV Clients" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/>Create URLs to NAV Clients</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/error-message-processing/ title="Error Message Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/error-message-processing/>Error Message Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/ title="Extending the Role Center Headlines" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/>Extending the Role Center Headlines</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/ title="Feature Localization For Data Structures" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/>Feature Localization For Data Structures</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/hooks/ title=Hooks class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/hooks/>Hooks</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ title="Surrogate keys using Autoincrement Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/>Surrogate keys using Autoincrement Pattern</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/ title="Instructions in the UI" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/>Instructions in the UI</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/ title="Integration of Addresses" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/>Integration of Addresses</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-error-processing/ title="Journal Error Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-error-processing/>Journal Error Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/ title="Journal Template Batch Line" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/>Journal Template Batch Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/master-data/ title="Master Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/master-data/>Master Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-file-download/ title="Multi-file Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-file-download/>Multi-file Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-page-list/ title="Multi-Page List" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-page-list/>Multi-Page List</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/ title="Multilanguage Application Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/>Multilanguage Application Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/ title="NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/>NET Exception Handling in CAL</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ title="TryFunction NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/>TryFunction NET Exception Handling in CAL</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/no-series/ title="No Series" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/no-series/>No Series</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/ title=Notifications class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/>Notifications</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/ title="In-context Notifications" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/>In-context Notifications</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/ title="Notification Lifecycle Management Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/>Notification Lifecycle Management Pattern</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/observer/ title=Observer class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/observer/>Observer</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/ title="Posting Routine - Select Behavior" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/>Posting Routine - Select Behavior</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>Singleton Codeunit</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table" class="dd-item active parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>Singleton Table</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>Cue Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>Setup Table</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/standard-journal/>Standard Journal</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/ title="Temporary Dataset Report" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/>Temporary Dataset Report</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/ title="Totals and Discounts on Subpages Sales and Purchases" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/ title="Transfer Custom Fields" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/>Transfer Custom Fields</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/variant-facade/ title="Variant Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/variant-facade/>Variant Facade</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/ title="2. Anti-Patterns" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/>2. Anti-Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ title="CaptionML on System Pages" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/>CaptionML on System Pages</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ title="FIELDCAPTION and TABLECAPTION" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/>FIELDCAPTION and TABLECAPTION</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ title="Global Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/>Global Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ title="Use Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/>Use Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ title="Using OptionCaptionML" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/>Using OptionCaptionML</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/ title=Readability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/>Readability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ title="Comment Spacing" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/>Comment Spacing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ title="END ELSE Pair" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/>END ELSE Pair</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/ title=Indentation class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/>Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ title="Keyword Pairs - Indentation" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/>Keyword Pairs - Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ title="Line Start Keywords" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/>Line Start Keywords</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ title="Lonely Repeat" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/>Lonely Repeat</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ title="Named Invocations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/>Named Invocations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ title="Nested WITHs" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/>Nested WITHs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ title="One Statement Per Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/>One Statement Per Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ title="Separate IF and ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/>Separate IF and ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ title="Spacing Binary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/>Spacing Binary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ title="Spacing Brackets and ::" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/>Spacing Brackets and ::</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ title="Spacing Unary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/>Spacing Unary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ title="Suggested Abbreviations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/>Suggested Abbreviations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ title="Temporary Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/>Temporary Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ title="TextConst Suffixes" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/>TextConst Suffixes</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ title="Unary Operator Line End" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/>Unary Operator Line End</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ title="Unnecessary Compound Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/>Unnecessary Compound Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ title="Unnecessary ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/>Unnecessary ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ title="Unnecessary Function Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/>Unnecessary Function Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ title="Unnecessary Separators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/>Unnecessary Separators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ title="Unnecessary TRUE/FALSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/>Unnecessary TRUE/FALSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ title="Variable Already Scoped" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/>Variable Already Scoped</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ title="Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/>Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ title="Variables Declarations Order" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/>Variables Declarations Order</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/ title=UX class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/>UX</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/ title="Actions - Images" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/>Actions - Images</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/ title=CONFIRM class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/>CONFIRM</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/ title=FIELDERROR class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/>FIELDERROR</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ title="MESSAGE and ERROR" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/>MESSAGE and ERROR</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/ title="(OLD) Get Involved" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/>(OLD) Get Involved</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/ title="Code of Conduct" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/>Code of Conduct</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/patterns-authors/ title="Patterns Authors" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/patterns-authors/>Patterns Authors</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ title="Template for writing Nav Design Patterns" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/>Template for writing Nav Design Patterns</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/related-links/ title="Related Links" class=dd-item><a href=/bcalhelp/navpatterns/related-links/>Related Links</a></li></ul></li>
|
||||
</ul>
|
||||
<div id=shortcuts>
|
||||
<div class=nav-title>More</div>
|
||||
<ul>
|
||||
<li><a class=padding href=https://discord.gg/4wbfNv3><i class="fab fa-discord"></i> BC Discord</a></li>
|
||||
<li><a class=padding href=https://github.com/microsoft/bcalhelp><i class="fab fa-github"></i> GitHub repo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id=footer>
|
||||
<p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id=body>
|
||||
<div id=overlay></div>
|
||||
<div class="padding highlightable">
|
||||
<div id=top-bar>
|
||||
<div id=top-github-link>
|
||||
<a class=github-link title="Edit this page" href=https://github.com/microsoft/bcalhelp/edit/main/content/NAVPatterns/1-patterns/singleton/singleton-table/_index.md target=blank>
|
||||
<i class="fas fa-code-branch"></i>
|
||||
<span id=top-github-link-text>Edit this page</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id=breadcrumbs>
|
||||
<span id=sidebar-toggle-span>
|
||||
<a href=# id=sidebar-toggle data-sidebar-toggle>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span id=toc-menu><i class="fas fa-list-alt"></i></span>
|
||||
<ol class=links itemscope itemtype=http://schema.org/BreadcrumbList>
|
||||
<meta itemprop=itemListOrder content="Descending">
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="5"><a itemprop=item href=/bcalhelp/><span itemprop=name>Home</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="4"><a itemprop=item href=/bcalhelp/navpatterns/><span itemprop=name>NAV Patterns Archive</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="3"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/><span itemprop=name>1. Patterns</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="2"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/><span itemprop=name>Singleton</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="1"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ aria-disabled=true><span itemprop=name>Singleton Table</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#singleton-table>Singleton Table</a></li>
|
||||
<li><a href=#-image0anchor0><a href=5554.Singleton-Table.png><img src=5554.Singleton-Table.png alt=" "></a></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Singleton Table</h1>
|
||||
<h2 id=singleton-table>Singleton Table</h2>
|
||||
<p><em>By Elly Nkya at Microsoft Development Center Copenhagen</em></p>
|
||||
<h2 id=-image0anchor0><a href=5554.Singleton-Table.png><img src=5554.Singleton-Table.png alt=" "></a></h2>
|
||||
<p>_<br>
|
||||
_</p>
|
||||
<p><strong>Problem</strong>: 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.</p>
|
||||
<hr>
|
||||
<p><strong>Forces</strong></p>
|
||||
<ul>
|
||||
<li>You want a central place to define the address and logo of your company (see Company Information table).</li>
|
||||
<li>You want to define the no. series that should be used for your sales documents (see Sales & Receivables Setup table).</li>
|
||||
<li>You want to know whether your sales documents should be archived (see Sales & Receivables Setup table).</li>
|
||||
<li>You want to define the rounding accuracy your system should (see General Ledger Setup table).</li>
|
||||
</ul>
|
||||
<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>
|
||||
<hr>
|
||||
<p><strong>NAV Usages</strong></p>
|
||||
<p>Rounding rules for Unit-Amounts and Amounts are implemented using the Singleton pattern.</p>
|
||||
<p><strong>1. Define:</strong> The General Ledger Setup is used for this.</p>
|
||||
<p><strong>2. Instantiate:</strong> In codeunit 2, the following code is invoked</p>
|
||||
<pre><code>WITH GLSetup DO
|
||||
IF NOT FINDFIRST THEN BEGIN
|
||||
INIT;
|
||||
INSERT;
|
||||
END;
|
||||
</code></pre>
|
||||
<p><strong>3. Enforce:</strong> On the General Ledger Setup. The following properties are setup:</p>
|
||||
<pre><code>DeleteAllowed=false,
|
||||
InsertAllowed=false
|
||||
</code></pre>
|
||||
<p><strong>4. Use:</strong> Access the rounding rules are used</p>
|
||||
<pre><code>...
|
||||
GLSetup.GET;
|
||||
UnitCostCurrency := ROUND(...,GLSetup."Unit-Amount Rounding Precision");
|
||||
...
|
||||
</code></pre>
|
||||
<p>Or if accessing the rule multiple times and performance is a consideration, use lazy instantiation:</p>
|
||||
<pre><code>...
|
||||
GetGLSetup;
|
||||
UnitCostCurrency := ROUND(...,GLSetup."Unit-Amount Rounding Precision");
|
||||
...
|
||||
|
||||
LOCAL GetGLSetup()
|
||||
IF NOT GLSetupRead THEN
|
||||
GLSetup.GET;
|
||||
GLSetupRead := TRUE;
|
||||
</code></pre>
|
||||
<p><strong>Related topics</strong></p>
|
||||
<p><a href=https://en.wikipedia.org/wiki/Singleton_pattern>Singleton design pattern</a>.</p>
|
||||
<p>The <strong>Singleton Table</strong> has two established applications in Dynamics NAV:</p>
|
||||
<ol>
|
||||
<li><a href=/nav/w/designpatterns/76.setup-table><strong>Setup Tables</strong></a> – which are commonly storing user setup data in NAV,</li>
|
||||
<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>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table"><i class="fa fa-chevron-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<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=/bcalhelp/js/clipboard.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.jquery.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/jquery.svg.pan.zoom.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/featherlight.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/modernizr.custom-3.6.0.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/relearn.js?1636061749></script>
|
||||
</body>
|
||||
</html>
|
||||
11
navpatterns/1-patterns/singleton/singleton-table/index.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?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 BC AL Help</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/</link><description>Recent content in Singleton Table on BC AL Help</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/index.xml" rel="self" type="application/rss+xml"/><item><title>Cue Table</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/</guid><description>Cue Table _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://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/</guid><description>Setup Table 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>
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
|
@ -0,0 +1,277 @@
|
|||
<!doctype html><html lang=en class="js csstransforms3d">
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||
<meta name=generator content="Hugo 0.89.0">
|
||||
<meta name=description content>
|
||||
<title>Setup Table :: BC AL Help</title>
|
||||
<link href=/bcalhelp/css/nucleus.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/fontawesome-all.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/featherlight.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/perfect-scrollbar.min.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/auto-complete.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/theme-blue.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/variant.css?1636061749 rel=stylesheet>
|
||||
<link href=/bcalhelp/css/print.css?1636061749 rel=stylesheet media=print>
|
||||
<script src=/bcalhelp/js/jquery.min.js?1636061749></script>
|
||||
<style>:root #header+#content>#left>#rlblock_left{display:none!important}</style>
|
||||
</head>
|
||||
<body data-url=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>
|
||||
<script>var index_url="/bcalhelp/index.json",root_url="/",baseUri=root_url.replace(/\/$/,'')</script>
|
||||
<nav id=sidebar>
|
||||
<div id=header-wrapper>
|
||||
<div id=header>
|
||||
<a id=logo href=/bcalhelp/ style="color:#f5f5f5;font-family:novacento sans wide,helvetica,tahoma,geneva,arial,sans-serif;font-size:30px;font-weight:700;margin-top:-2px">
|
||||
BC AL Help . dev
|
||||
</a>
|
||||
<i style=color:#f5f5f5>Code is Poetry</i>
|
||||
</div>
|
||||
<div class=searchbox>
|
||||
<label for=search-by><i class="fas fa-search"></i></label>
|
||||
<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=/bcalhelp/js/lunr.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/auto-complete.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/search.js?1636061749></script>
|
||||
</div>
|
||||
<div class=highlightable>
|
||||
<ul class=topics>
|
||||
<li data-nav-id=/bcalhelp/welcome/ title=Welcome class=dd-item><a href=/bcalhelp/welcome/><b><i class="fas fa-home"></i> </b>Welcome</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcpatterns/ title="BC Patterns" class=dd-item><a href=/bcalhelp/bcpatterns/><b><i class="fas fa-clone"></i> </b>BC Patterns</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/bcbestpractices/ title="BC Dev. Best Practices" class=dd-item><a href=/bcalhelp/bcbestpractices/><b><i class="fas fa-medal"></i> </b>BC Dev. Best Practices</a><ul></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/ title="NAV Patterns Archive" class="dd-item parent"><a href=/bcalhelp/navpatterns/><b><i class="fas fa-save"></i> </b>NAV Patterns Archive</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/ title="1. Patterns" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/>1. Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/activity-log/ title="Activity Logs" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/activity-log/>Activity Logs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/argument-table/ title="Argument Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/argument-table/>Argument Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/ title="Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/>Blocked Entity</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/ title="Data Driven Blocked Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/ title="Cached Web Server Calls" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cached-web-service-calls/>Cached Web Server Calls</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/ title="Conditional Cascading Update" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/conditional-cascading-update/>Conditional Cascading Update</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/copy-document/ title="Copy Document" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/copy-document/>Copy Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/ title="Create Data from Templates" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-data-from-templates/>Create Data from Templates</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/ title="Create URLs to NAV Clients" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/create-urls-to-nav-clients/>Create URLs to NAV Clients</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/ title="Creating Custom Charts" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/creating-custom-charts/>Creating Custom Charts</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/cross-session-events/ title="Cross Session Events" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/cross-session-events/>Cross Session Events</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/currently-active-record/ title="Currently Active Record" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/currently-active-record/>Currently Active Record</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/data-migration-facade/ title="Data Migration Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/data-migration-facade/>Data Migration Facade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/discovery-event/ title="Discovery Event" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/discovery-event/>Discovery Event</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/document/ title=Document class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/document/>Document</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/ title="Easy Update Of Setup Or Supplementary Information" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/>Easy Update Of Setup Or Supplementary Information</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/error-message-processing/ title="Error Message Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/error-message-processing/>Error Message Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/ title="Extending the Role Center Headlines" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/extending-the-role-center-headlines/>Extending the Role Center Headlines</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/ title="Feature Localization For Data Structures" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/feature-localization-for-data-structures/>Feature Localization For Data Structures</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/hooks/ title=Hooks class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/hooks/>Hooks</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ title="Surrogate keys using Autoincrement Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/>Surrogate keys using Autoincrement Pattern</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/ title="Instructions in the UI" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/instructions-in-the-ui/>Instructions in the UI</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/ title="Integration of Addresses" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/integration-of-addresses/>Integration of Addresses</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-error-processing/ title="Journal Error Processing" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-error-processing/>Journal Error Processing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/ title="Journal Template Batch Line" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/journal-template-batch-line/>Journal Template Batch Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/master-data/ title="Master Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/master-data/>Master Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-file-download/ title="Multi-file Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-file-download/>Multi-file Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multi-page-list/ title="Multi-Page List" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multi-page-list/>Multi-Page List</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/ title="Multilanguage Application Data" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/multilanguage-application-data/>Multilanguage Application Data</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/ title="NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/>NET Exception Handling in CAL</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ title="TryFunction NET Exception Handling in CAL" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/>TryFunction NET Exception Handling in CAL</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/no-series/ title="No Series" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/no-series/>No Series</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/ title=Notifications class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/>Notifications</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/ title="In-context Notifications" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/in-context-notifications/>In-context Notifications</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/ title="Notification Lifecycle Management Pattern" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/notifications/notification-lifecycle-management-pattern/>Notification Lifecycle Management Pattern</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/observer/ title=Observer class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/observer/>Observer</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/ title="Posting Routine - Select Behavior" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/posting-routine-select-behavior/>Posting Routine - Select Behavior</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/product-name/>Product Name</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/>Queries</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/>SELECT DISTINCT with Queries</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/>use Queries to Detect Duplicate Records</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/>Use Queries to Replace Nested Loops</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/>Read-once Initialization and Validation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/released-entity/ title="Released Entity" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/released-entity/>Released Entity</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/report-selection/ title="Report Selection" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/report-selection/>Report Selection</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/security/ title=Security class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/security/>Security</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/ title="Setup Specificity Fallback" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/setup-specificity-fallback/>Setup Specificity Fallback</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/ title="Silent File Upload and Download" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/silent-file-upload-and-download/>Silent File Upload and Download</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/ title=Singleton class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/>Singleton</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/ title="Singleton Codeunit" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-codeunit/>Singleton Codeunit</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/ title="Singleton Table" class="dd-item parent"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/>Singleton Table</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/>Cue Table</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ title="Setup Table" class="dd-item active"><a href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/>Setup Table</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/standard-journal/>Standard Journal</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/ title="Temporary Dataset Report" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/temporary-dataset-report/>Temporary Dataset Report</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/ title="Totals and Discounts on Subpages Sales and Purchases" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/ title="Transfer Custom Fields" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/transfer-custom-fields/>Transfer Custom Fields</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/1-patterns/variant-facade/ title="Variant Facade" class=dd-item><a href=/bcalhelp/navpatterns/1-patterns/variant-facade/>Variant Facade</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/ title="2. Anti-Patterns" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/>2. Anti-Patterns</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/ title="Nav Upgrade" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/nav-upgrade/>Nav Upgrade</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/ title="Reusable Bugs" class=dd-item><a href=/bcalhelp/navpatterns/2-anti-patterns/reusable-bugs/>Reusable Bugs</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ title="3. CAL Coding Guidelines" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/>3. CAL Coding Guidelines</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/ title=Design class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/design/>Design</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ title="Internally-used DotNet Types" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/>Internally-used DotNet Types</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/ title=Internationalization class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/>Internationalization</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ title="Using Calcdate" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/>Using Calcdate</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/ title=Localizability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/>Localizability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ title="CaptionML on System Pages" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/>CaptionML on System Pages</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ title="FIELDCAPTION and TABLECAPTION" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/>FIELDCAPTION and TABLECAPTION</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ title="Global Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/>Global Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ title="Use Text Constants" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/>Use Text Constants</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ title="Using OptionCaptionML" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/>Using OptionCaptionML</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/ title=Readability class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/>Readability</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ title="Begin as an 'After Word'" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/>Begin as an 'After Word'</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/ title="Begin-End - Compound Only" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/begin-end/>Begin-End - Compound Only</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ title="Binary Operator to Start Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/>Binary Operator to Start Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ title="Blank Lines.md" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/blank-lines/>Blank Lines.md</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/ title="CASE Action" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/case-actions/>CASE Action</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ title="Colon usage in CASE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/>Colon usage in CASE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ title="Comments inside Curly Brackets" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/>Comments inside Curly Brackets</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ title="Comment Spacing" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/>Comment Spacing</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ title="END ELSE Pair" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/>END ELSE Pair</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/ title=Indentation class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/indentation/>Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ title="Keyword Pairs - Indentation" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/>Keyword Pairs - Indentation</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ title="Line Start Keywords" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/>Line Start Keywords</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ title="Lonely Repeat" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/>Lonely Repeat</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ title="Named Invocations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/named-invocations/>Named Invocations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ title="Nested WITHs" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/nested-withs/>Nested WITHs</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ title="One Statement Per Line" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/>One Statement Per Line</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ title="Separate IF and ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/>Separate IF and ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ title="Spacing Binary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/>Spacing Binary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ title="Spacing Brackets and ::" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/>Spacing Brackets and ::</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ title="Spacing Unary Operators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/>Spacing Unary Operators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ title="Suggested Abbreviations" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/>Suggested Abbreviations</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ title="Temporary Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/>Temporary Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ title="TextConst Suffixes" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/>TextConst Suffixes</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ title="Unary Operator Line End" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/>Unary Operator Line End</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ title="Unnecessary Compound Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/>Unnecessary Compound Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ title="Unnecessary ELSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/>Unnecessary ELSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ title="Unnecessary Function Parenthesis" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/>Unnecessary Function Parenthesis</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ title="Unnecessary Separators" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/>Unnecessary Separators</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ title="Unnecessary TRUE/FALSE" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/>Unnecessary TRUE/FALSE</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ title="Variable Already Scoped" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/>Variable Already Scoped</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ title="Variable Naming" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variable-naming/>Variable Naming</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ title="Variables Declarations Order" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/>Variables Declarations Order</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/ title=UX class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/>UX</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/ title="Actions - Images" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/actions-images/>Actions - Images</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/ title=CONFIRM class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/confirm/>CONFIRM</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/ title=FIELDERROR class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/fielderror/>FIELDERROR</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ title="MESSAGE and ERROR" class=dd-item><a href=/bcalhelp/navpatterns/3-cal-coding-guidelines/ux/message-and-error/>MESSAGE and ERROR</a></li></ul></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/ title="(OLD) Get Involved" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/>(OLD) Get Involved</a><ul>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/ title="Code of Conduct" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/code-of-conduct/>Code of Conduct</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/patterns-authors/ title="Patterns Authors" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/patterns-authors/>Patterns Authors</a></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ title="Template for writing Nav Design Patterns" class=dd-item><a href=/bcalhelp/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/>Template for writing Nav Design Patterns</a></li></ul></li>
|
||||
<li data-nav-id=/bcalhelp/navpatterns/related-links/ title="Related Links" class=dd-item><a href=/bcalhelp/navpatterns/related-links/>Related Links</a></li></ul></li>
|
||||
</ul>
|
||||
<div id=shortcuts>
|
||||
<div class=nav-title>More</div>
|
||||
<ul>
|
||||
<li><a class=padding href=https://discord.gg/4wbfNv3><i class="fab fa-discord"></i> BC Discord</a></li>
|
||||
<li><a class=padding href=https://github.com/microsoft/bcalhelp><i class="fab fa-github"></i> GitHub repo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id=footer>
|
||||
<p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id=body>
|
||||
<div id=overlay></div>
|
||||
<div class="padding highlightable">
|
||||
<div id=top-bar>
|
||||
<div id=top-github-link>
|
||||
<a class=github-link title="Edit this page" href=https://github.com/microsoft/bcalhelp/edit/main/content/NAVPatterns/1-patterns/singleton/singleton-table/setup-table/index.md target=blank>
|
||||
<i class="fas fa-code-branch"></i>
|
||||
<span id=top-github-link-text>Edit this page</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id=breadcrumbs>
|
||||
<span id=sidebar-toggle-span>
|
||||
<a href=# id=sidebar-toggle data-sidebar-toggle>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</span>
|
||||
<span id=toc-menu><i class="fas fa-list-alt"></i></span>
|
||||
<ol class=links itemscope itemtype=http://schema.org/BreadcrumbList>
|
||||
<meta itemprop=itemListOrder content="Descending">
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="6"><a itemprop=item href=/bcalhelp/><span itemprop=name>Home</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="5"><a itemprop=item href=/bcalhelp/navpatterns/><span itemprop=name>NAV Patterns Archive</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="4"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/><span itemprop=name>1. Patterns</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="3"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/><span itemprop=name>Singleton</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="2"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/><span itemprop=name>Singleton Table</span></a> > </li>
|
||||
<li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><meta itemprop=position content="1"><a itemprop=item href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/setup-table/ aria-disabled=true><span itemprop=name>Setup Table</span></a></li>
|
||||
</ol>
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</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>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>
|
||||
<p>The implementation of the pattern involves several considerations:</p>
|
||||
<ul>
|
||||
<li>Suffixing the table name with Setup (ex: General Ledger Setup).</li>
|
||||
<li>Defining a suitable primary key</li>
|
||||
<li>Creating a page where the user can view and edit a record, but not add new records or delete an existing one</li>
|
||||
<li>Optionally, updating the Company - Initialize codeunit.</li>
|
||||
</ul>
|
||||
<p><strong>Defining a Primary Key</strong></p>
|
||||
<p>Since this kind of tables is a collection of several environment or setup parameters, the primary key does not refer to any business attributes for this kind of tables. However, for maintaining the integrity of the database, it is necessary to define a primary key.</p>
|
||||
<p>So, the most common implementation is to have a field “Primary Key” of Code[10]. This is populated with a blank value when the record is inserted. This field is not added to the page, so that the user cannot be modify it later.</p>
|
||||
<p><strong>Creating a Page</strong></p>
|
||||
<p>The <strong>CardPage</strong> type is most suitable for representing this kind of tables. In addition, the <strong>InsertAllowed</strong> and <strong>DeleteAllowed</strong> properties in the page should be set to false to prevent the user from adding or deleting records in the table.</p>
|
||||
<p>In the <strong>OnOpenPage</strong> trigger, the following code should be added to insert a record when the user opens the page for the first time, if a record does not exist already.</p>
|
||||
<pre><code>OnOpenPage()
|
||||
RESET;
|
||||
IF NOT GET THEN BEGIN
|
||||
INIT;
|
||||
INSERT;
|
||||
END;
|
||||
</code></pre>
|
||||
<p>The following diagram describes the flow of the program, once the user tries to access the setup information. The user opens the page. If the record containing setup information already exists, then the page opens on the existing record. Else, a new empty record is created and the page opens on it.</p>
|
||||
<p><a href=6675.NAVSetupTablePattern2.png><img src=6675.NAVSetupTablePattern2.png alt=" "></a></p>
|
||||
<p><strong>Company-Initialize Codeunit</strong></p>
|
||||
<p>The Company-Initialize codeunit (codeunit 2) is executed when a new company is created. We recommended that you add records to the single-record tables in this codeunit. If some of the fields are expected to have default values, they can also be populated here.</p>
|
||||
<p><strong>NAV Usages</strong></p>
|
||||
<p>Several Setup tables in NAV implement this pattern. Some of those are:</p>
|
||||
<ul>
|
||||
<li>Table 98 General Ledger Setup</li>
|
||||
<li>Table 311 Sales & Receivables Setup</li>
|
||||
<li>Table 312 Purchases & Payables Setup</li>
|
||||
<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>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>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/singleton/singleton-table/cue-table/ title="Cue Table"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/standard-journal/ title="Standard Journal"><i class="fa fa-chevron-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<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=/bcalhelp/js/clipboard.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/perfect-scrollbar.jquery.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/jquery.svg.pan.zoom.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/featherlight.min.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/modernizr.custom-3.6.0.js?1636061749></script>
|
||||
<script src=/bcalhelp/js/relearn.js?1636061749></script>
|
||||
</body>
|
||||
</html>
|
||||