deploy: 552e37fedc
231
navpatterns/1-patterns/queries/index.html
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
<!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/queries/index.xml title="BC AL Help">
|
||||
<meta name=description content>
|
||||
<title>Queries :: 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/queries/>
|
||||
<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 active parent"><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><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/queries/_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/queries/ aria-disabled=true><span itemprop=name>Queries</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents></nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Queries</h1>
|
||||
<p>Expand to see NAV design patterns which use queries.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/product-name/ title="Product Name"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries"><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>
|
||||
9
navpatterns/1-patterns/queries/index.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Queries on BC AL Help</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/</link><description>Recent content in Queries 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/queries/index.xml" rel="self" type="application/rss+xml"/><item><title>SELECT DISTINCT with Queries</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/</guid><description>By Bogdana Botez, at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern explains how to perform SELECT DISTINCT by using queries in Dynamics NAV.
|
||||
Description
|
||||
When working with tables, sometimes a developer needs to perform a SELECT DISTINCT (also known as SELECT UNIQUE) from a table. As NAV does not provide this out of the box, we present below a way to select unique records by using queries.
|
||||
Problem statement</description></item><item><title>use Queries to Detect Duplicate Records</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/</guid><description>Originally by Abshishek Ghosh and Bogdan Sturzoiu at Microsoft Development Center Copenhagen**
|
||||
**
|
||||
Abstract This pattern uses queries to create an efficient way to detect duplicate entries in a table. This is, for example, useful when trying to find out which customers or contacts have the same names, so we can merge them later.
|
||||
Description Duplicate detection has several requirements in Microsoft Dynamics NAV. One method to eliminate duplication is by defining the relevant field as the primary key.</description></item><item><title>Use Queries to Replace Nested Loops</title><link>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://microsoft.github.io/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/</guid><description>Originally by Bogdan Sturzoiu, Microsoft Development Center Copenhagen Abstract This pattern shows how the new query object type introduced in NAV 2013 allows you to replace costly loops when inspecting data from two or more tables.
|
||||
Description One of the core operations in a relational database is joining two or more tables. For example, you might need to extract all sales lines in the database together with information regarding the related sales header.</description></item></channel></rss>
|
||||
|
After Width: | Height: | Size: 5 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 3 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 8 KiB |
|
|
@ -0,0 +1,278 @@
|
|||
<!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>SELECT DISTINCT with Queries :: 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/queries/select-distinct-with-queries/>
|
||||
<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 parent"><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 active"><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><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/queries/select-distinct-with-queries/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/queries/><span itemprop=name>Queries</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/queries/select-distinct-with-queries/ aria-disabled=true><span itemprop=name>SELECT DISTINCT with Queries</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href=#abstract><strong>Abstract</strong></a></li>
|
||||
<li><a href=#example><strong>Example</strong></a></li>
|
||||
<li><a href=#nav-usages><strong>NAV Usages</strong></a></li>
|
||||
<li><a href=#related-topics><strong>Related Topics</strong></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>SELECT DISTINCT with Queries</h1>
|
||||
<p><em>By Bogdana Botez, at Microsoft Development Center Copenhagen</em></p>
|
||||
<h3 id=abstract><strong>Abstract</strong></h3>
|
||||
<p>This pattern explains how to perform SELECT DISTINCT by using queries in Dynamics NAV.</p>
|
||||
<hr>
|
||||
<p><strong>Description</strong></p>
|
||||
<p>When working with tables, sometimes a developer needs to perform a SELECT DISTINCT (also known as SELECT UNIQUE) from a table. As NAV does not provide this out of the box, we present below a way to select unique records by using queries.</p>
|
||||
<hr>
|
||||
<p><strong>Problem statement</strong></p>
|
||||
<p>Let’s consider the <strong>VAT Entry</strong> table as below: <a href=https://microsoft.sharepoint.com/teams/DynamicsNAV/Wiki/Nav%20Wiki%20Documents/NAV%20App%20Patterns/NAV%20App%20Patterns%20for%20Review/Table%20Select%20Distinct.docx#_msocom_1><br>
|
||||
</a></p>
|
||||
<p><a href=6521.clip_5F00_image001.png><img src=6521.clip_5F00_image001.png alt=" "></a></p>
|
||||
<p>The goal is to select one line for each separate document that produced VAT Entries. In other words, we want records grouped by <strong>Type, Document Type <strong>and</strong>Document No.</strong>. However, if there are multiple lines with the same value of the triad <strong>Type, Document Type <strong>and</strong>Document No.</strong> in the **VAT Entry **table, we only want to see one of them.</p>
|
||||
<h4 id=solution><strong>Solution</strong></h4>
|
||||
<p>Create a new query object <strong>VAT Entry Distinct Document No.</strong>, with a single DataItem sourced from <strong>VAT Entry</strong> table. Add the three desired group-by fields **Type, Document Type <strong>and</strong>Document No. **as columns.</p>
|
||||
<p><a href=clip_5F00_image002.png><img src=clip_5F00_image002.png alt=" "></a></p>
|
||||
<p>To enable grouping, add one more column, with <strong>Method Type</strong> = <strong>Totals</strong>. This will automatically set the <strong>Group By</strong> checkbox to TRUE on the three precedent fields.</p>
|
||||
<p>Note that the <strong>Group By</strong> field is read-only and trying to set it by hand will clarify that:</p>
|
||||
<p><a href=clip_5F00_image003.png><img src=clip_5F00_image003.png alt=" "></a></p>
|
||||
<p>Running the query yields a single record per document. You can notice in the second line below for example, how the sales invoice number 103001 had 2 VAT Entries, but it shows up only once in the query:</p>
|
||||
<p><a href=clip_5F00_image004.png><img src=clip_5F00_image004.png alt=" "></a></p>
|
||||
<h3 id=example><strong>Example</strong></h3>
|
||||
<p>One thing is to be noted: there is a limitation to how much information you can take out from the records. For example, if we need to extract more information than just the one we already have in the columns, then the following apply: adding one more column of <strong>Method Type</strong> = <strong>None</strong> will indeed show more information, but it <em>might</em> affect the grouping. More details below.</p>
|
||||
<p>**The grouping is affected **for example****when the additional column is the <strong>VAT Entry No</strong>. In this case, this column brings up additional grouping criteria and one group for each entry number will end up being created.</p>
|
||||
<p><a href=clip_5F00_image005.png><img src=clip_5F00_image005.png alt=" "></a></p>
|
||||
<p>You can notice that both lines of document 103001 are not visible, which contradicts the goal of SELECT DISTINCT.</p>
|
||||
<p><a href=clip_5F00_image006.png><img src=clip_5F00_image006.png alt=" "></a></p>
|
||||
<p><strong>The grouping is not affected</strong> when the additional column does not influence grouping (has variation identical with one of the other existing columns). For example, adding <strong>Posting Date</strong> as a new column, does not change anything because posting date is the same for all lines of a document, so the query result is identical with the initial one:</p>
|
||||
<p><a href=clip_5F00_image007.png><img src=clip_5F00_image007.png alt=" "></a></p>
|
||||
<p>Below is the result of this query, where you can notice that the initial grouping is preserved and correct. Bonus, we can now read the <strong>Posting Date</strong> of the document too.</p>
|
||||
<p><a href=clip_5F00_image008.png><img src=clip_5F00_image008.png alt=" "></a></p>
|
||||
<p><strong>The grouping is also not affected</strong> when adding more columns of <strong>Method Type</strong> = <strong>Totals</strong>. However, this can only be done with columns of Decimal data type.</p>
|
||||
<h3 id=nav-usages><strong>NAV Usages</strong></h3>
|
||||
<p>This pattern is used in Query 19: <strong>VAT Entries Base Amt. Sum</strong>. This query is used in Report 19: <strong>VAT- VIES Declaration Tax Auth</strong>.</p>
|
||||
<p><a href=Untitled-picture.png><img src=Untitled-picture.png alt=" "></a></p>
|
||||
<p>The pattern is also used in Query 1511: <strong>User IDs by Notification Type</strong>.</p>
|
||||
<h3 id=related-topics><strong>Related Topics</strong></h3>
|
||||
<p>A variation using loops could be described, for C/AL development on NAV 6 where query objects are not available.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/queries/ title=Queries><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records"><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: 28 KiB |
|
|
@ -0,0 +1,315 @@
|
|||
<!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>use Queries to Detect Duplicate Records :: 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/queries/use-queries-to-detect-duplicate-records/>
|
||||
<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 parent"><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 active"><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><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/queries/use-queries-to-detect-duplicate-records/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/queries/><span itemprop=name>Queries</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/queries/use-queries-to-detect-duplicate-records/ aria-disabled=true><span itemprop=name>use Queries to Detect Duplicate Records</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#abstract><strong>Abstract</strong></a></li>
|
||||
<li><a href=#description><strong>Description</strong></a>
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href=#usage><strong>Usage</strong></a>
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href=#consequences><strong>Consequences</strong></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>use Queries to Detect Duplicate Records</h1>
|
||||
<p><em>Originally by Abshishek Ghosh and Bogdan Sturzoiu at Microsoft Development Center Copenhagen**<br>
|
||||
**</em></p>
|
||||
<h2 id=abstract><strong>Abstract</strong></h2>
|
||||
<p>This pattern uses queries to create an efficient way to detect duplicate entries in a table. This is, for example, useful when trying to find out which customers or contacts have the same names, so we can merge them later.</p>
|
||||
<h2 id=description><strong>Description</strong></h2>
|
||||
<p>Duplicate detection has several requirements in Microsoft Dynamics NAV. One method to eliminate duplication is by defining the relevant field as the primary key. However, this method is not always practical either due to the size of the field or due to business requirements that dictate how duplicates are detected but not necessarily how they are eliminated. An example of this method is to detect contacts with the same name and take action to merge them if they are.</p>
|
||||
<p>Before Dynamics NAV 2013, the only possibility was to iterate through the table in a loop and then create a sub-loop where another instance of the same table is filtered to check for duplicates. For example, to check for duplicate names in the Customer table, the code would look like this:</p>
|
||||
<pre><code>PROCEDURE HasDuplicateCustomers@26() : Boolean;
|
||||
VAR
|
||||
Customer@1000 : Record 18;
|
||||
Customer2@1001 : Record 18;
|
||||
BEGIN
|
||||
IF Customer.FINDSET THEN
|
||||
REPEAT
|
||||
Customer2.SETRANGE(Name,Customer.Name);
|
||||
IF Customer2.COUNT \> 1 THEN
|
||||
EXIT(TRUE);
|
||||
UNTIL Customer.NEXT = 0;
|
||||
EXIT(FALSE);
|
||||
END;
|
||||
</code></pre>
|
||||
<h4 id=heading></h4>
|
||||
<p>This code would involve setting filters on the <strong>Customer</strong> table as many times as there are records in the table. This is an expensive operation.</p>
|
||||
<p>Starting with Dynamics NAV 2013, we can use queries to create a more efficient implementation of the same logic.****</p>
|
||||
<h2 id=usage><strong>Usage</strong></h2>
|
||||
<p>The solution involves that you create a query to return duplicates, and then invoke it from a method that would test the value of the query to identify if duplicates were found.</p>
|
||||
<p>**Step 1 ****–**<strong>Creating the Query</strong></p>
|
||||
<ul>
|
||||
<li>The query must be created with the table we want to search in as the dataitem.</li>
|
||||
<li>The field we want to search for must be created as a grouped field.</li>
|
||||
<li>Create a totaling field on the count, and add a filter for Count > 1. This ensures that only records with more than one instance of the field that we selected in the previous step are included in the query result.</li>
|
||||
</ul>
|
||||
<p>Continuing with our Customer Name example, here is how the query would look:</p>
|
||||
<p><a href=clip_5F00_image002.jpg><img src=clip_5F00_image002.jpg alt=" "></a></p>
|
||||
<h4 id=heading-1></h4>
|
||||
<pre><code>ELEMENTS
|
||||
{
|
||||
{ 1 ; ;DataItem; ;
|
||||
DataItemTable=Table18 }
|
||||
{ 2 ;1 ;Column ; ;
|
||||
DataSource=Name }
|
||||
{ 3 ;1 ;Column ; ;
|
||||
ColumnFilter=Count\_=FILTER(\>1);
|
||||
MethodType=Totals;
|
||||
Method=Count }
|
||||
}
|
||||
</code></pre>
|
||||
<p>**<br>
|
||||
**</p>
|
||||
<p><strong>Step 2 – Invoking the Query to Check for Duplicates</strong></p>
|
||||
<p>Now that the query is created, all we need to do is to invoke the query and check if any records are returned, which would mean that there are duplicates.</p>
|
||||
<p>Here is an alternate implementation of the <strong>HasDuplicateCustomers</strong> method using the query that we created:</p>
|
||||
<pre><code>PROCEDURE HasDuplicateCustomersWithQuery@27() : Boolean;
|
||||
VAR
|
||||
CustomerDuplicate@1000 : Query 70000;
|
||||
BEGIN
|
||||
CustomerDuplicate.OPEN;
|
||||
EXIT(CustomerDuplicate.READ);
|
||||
END;
|
||||
</code></pre>
|
||||
<h4 id=heading-2></h4>
|
||||
<p><strong>Examples</strong></p>
|
||||
<ul>
|
||||
<li>**Acc. Sched. Chart Management **codeunit (762),<br>
|
||||
methods CheckDuplicateAccScheduleLineDescription and CheckDuplicateColumnLayoutColumnHeader</li>
|
||||
<li><strong>Analysis Report Chart Mgt.</strong> codeunit (770),<br>
|
||||
methods CheckDuplicateAnalysisLineDescription and CheckDuplicateAnalysisColumnHeader</li>
|
||||
</ul>
|
||||
<h2 id=consequences><strong>Consequences</strong></h2>
|
||||
<p>A new query object is needed for every type of duplicate check. This could easily explode and create a maintenance problem.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/queries/select-distinct-with-queries/ title="SELECT DISTINCT with Queries"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/ title="Use Queries to Replace Nested Loops"><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: 29 KiB |
|
|
@ -0,0 +1,414 @@
|
|||
<!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>Use Queries to Replace Nested Loops :: 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/queries/use-queries-to-replace-nested-loops/>
|
||||
<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 parent"><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 active"><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><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/queries/use-queries-to-replace-nested-loops/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/queries/><span itemprop=name>Queries</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/queries/use-queries-to-replace-nested-loops/ aria-disabled=true><span itemprop=name>Use Queries to Replace Nested Loops</span></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class=progress>
|
||||
<div class=wrapper>
|
||||
<nav id=TableOfContents>
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href=#abstract><strong>Abstract</strong></a>
|
||||
<ul>
|
||||
<li><a href=#description><strong>Description</strong></a></li>
|
||||
<li><a href=#usage><strong>Usage</strong></a></li>
|
||||
<li><a href=#nav-specific-examples><strong>NAV Specific Examples</strong></a></li>
|
||||
<li><a href=#ideas-for-improvement><strong>Ideas for Improvement</strong></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=head-tags>
|
||||
</div>
|
||||
<main id=body-inner>
|
||||
<h1>Use Queries to Replace Nested Loops</h1>
|
||||
<h4 id=_originally-by-bogdan-sturzoiu-microsoft-development-center-copenhagen_><em>Originally by Bogdan Sturzoiu, Microsoft Development Center Copenhagen</em></h4>
|
||||
<h2 id=abstract><strong>Abstract</strong></h2>
|
||||
<p>This pattern shows how the new query object type introduced in NAV 2013 allows you to replace costly loops when inspecting data from two or more tables.</p>
|
||||
<h3 id=description><strong>Description</strong></h3>
|
||||
<p>One of the core operations in a relational database is joining two or more tables. For example, you might need to extract all sales lines in the database together with information regarding the related sales header. This requires joining the Sales Header and Sales Line tables using Sales Header No. as the connecting field.;</p>
|
||||
<p>The join operation has traditionally been done in C/AL by record looping. When NAV 2013 introduced the query object, it allowed us to produce a data set that is the result of a join operation between two or more tables. This simplifies the problem of finding related records in two tables linked through a foreign key.</p>
|
||||
<h4 id=pattern-elements><strong>Pattern Elements</strong></h4>
|
||||
<ol>
|
||||
<li>Two or more tables that contain records linked through a foreign key: Table 1, Table 2, Table n.</li>
|
||||
<li>A query object Query X, that joins Table 1, Table 2, etc. based on the connecting key.</li>
|
||||
<li>A processing codeunit that loops through the query records (or any other code-bearing object).</li>
|
||||
</ol>
|
||||
<h4 id=pattern-steps><strong>Pattern Steps</strong></h4>
|
||||
<ol>
|
||||
<li>Run the query on the connected tables.</li>
|
||||
<li>Loop through the records returned by the query.</li>
|
||||
<li>Process the records.</li>
|
||||
</ol>
|
||||
<p><a href=5040.clip_5F00_image002.png><img src=5040.clip_5F00_image002.png alt=" "></a></p>
|
||||
<p>Figure 1. The pattern elements</p>
|
||||
<h3 id=usage><strong>Usage</strong></h3>
|
||||
<h4 id=sample-problem><strong>Sample Problem</strong></h4>
|
||||
<p>The Bank Acc. Reconciliation Line table (274) and the Bank Account Ledger Entry table (271) are connected through the Bank Account No. field. Identify the matching pairs of records based on having the same remaining amount and transaction date.</p>
|
||||
<h4 id=solution-using-nested-loops><strong>Solution Using Nested Loops</strong></h4>
|
||||
<p>The classic C/AL approach is to:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Set the necessary filters on the left table, i.e. table 274.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Loop through the filtered records.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>For each record in the filter, find the related records in the right table (table 271) and set the required filters on it.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>For each pair of records from the left and right table, decide if they are a solution and if so, apply them to each other.</p>
|
||||
<p>PROCEDURE MatchSingle@5(BankAccReconciliation@1003 : Record 273);
|
||||
VAR
|
||||
BankAccRecLine@1005 : Record 274;
|
||||
BankAccLedgerEntry@1006 : Record 271;
|
||||
BankAccEntrySetReconNo@1007 : Codeunit 375;
|
||||
BEGIN
|
||||
BankAccRecLine.SETRANGE(“Bank Account No.",BankAccReconciliation.“Bank Account No.");
|
||||
BankAccRecLine.SETRANGE(“Statement No.",BankAccReconciliation.“Statement No.");
|
||||
BankAccRecLine.SETFILTER(Difference,'<>%1',0);
|
||||
BankAccRecLine.SETRANGE(Type,BankAccRecLine.Type::“Bank Account Ledger Entry”);
|
||||
IF BankAccRecLine.FINDSET THEN
|
||||
REPEAT
|
||||
BankAccLedgerEntry.SETRANGE(“Bank Account No.",BankAccRecLine.“Bank Account No.");
|
||||
BankAccLedgerEntry.SETRANGE(Open,TRUE);
|
||||
BankAccLedgerEntry.SETRANGE(“Statement Status”,BankAccLedgerEntry.“Statement Status”::Open);
|
||||
BankAccLedgerEntry.SETFILTER(“Remaining Amount”,'<>%1',0);
|
||||
IF BankAccLedgerEntry.FINDSET THEN
|
||||
REPEAT
|
||||
IF (BankAccRecLine.Difference = BankAccLedgerEntry.“Remaining Amount”) AND
|
||||
(BankAccRecLine.“Transaction Date” = BankAccLedgerEntry.“Posting Date”) THEN
|
||||
BankAccEntrySetReconNo.ApplyEntries(
|
||||
BankAccRecLine,BankAccLedgerEntry, Relation::“One-to-One”);
|
||||
UNTIL BankAccLedgerEntry.NEXT = 0;
|
||||
UNTIL BankAccRecLine.NEXT = 0;
|
||||
END;</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p>****<strong>Solution Using Query</strong></p>
|
||||
<p>The new query-based approach involves:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Define a query that returns the full filtered join of tables 271 and 274.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Loop through the records returned by the query.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>For each query record, decide if it represents a solution and then connect the two table records that formed it through an application.</p>
|
||||
<p>PROCEDURE MatchSingle@5(BankAccReconciliation@1003 : Record 273);
|
||||
VAR
|
||||
BankRecMatchCandidates@1001 : Query 1252;
|
||||
BankAccEntrySetReconNo@1007 : Codeunit 375;
|
||||
BEGIN
|
||||
BankRecMatchCandidates.SETRANGE(Rec_Line_Bank_Account_No,
|
||||
BankAccReconciliation.“Bank Account No.");
|
||||
BankRecMatchCandidates.SETRANGE(Rec_Line_Statement_No,
|
||||
BankAccReconciliation.“Statement No.");
|
||||
IF NOT BankRecMatchCandidates.OPEN THEN
|
||||
EXIT;
|
||||
WHILE BankRecMatchCandidates.READ DO BEGIN
|
||||
BankAccLedgerEntry.GET(BankRecMatchCandidates.Entry_No);
|
||||
BankAccRecLine.GET(BankAccRecLine.“Statement Type”::“Bank Reconciliation”,
|
||||
BankRecMatchCandidates.Rec_Line_Bank_Account_No,
|
||||
BankRecMatchCandidates.Rec_Line_Statement_No,
|
||||
BankRecMatchCandidates.Rec_Line_Statement_Line_No);
|
||||
BankAccEntrySetReconNo.ApplyEntries(BankAccRecLine,BankAccLedgerEntry,
|
||||
Relation::“One-to-One”);
|
||||
END;
|
||||
END;</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p>where the query 1252 is defined as:</p>
|
||||
<pre><code>OBJECT Query 1252 Bank Rec. Match Candidates
|
||||
{
|
||||
OBJECT-PROPERTIES
|
||||
{
|
||||
Date=;
|
||||
Time=;
|
||||
Version List=;
|
||||
}
|
||||
PROPERTIES
|
||||
{
|
||||
}
|
||||
ELEMENTS
|
||||
{
|
||||
{ 1 ; ;DataItem; ;
|
||||
DataItemTable=Table274;
|
||||
DataItemTableFilter=Difference=FILTER(<\>0),
|
||||
Type=FILTER(=Bank Account Ledger Entry) }
|
||||
{ 2 ;1 ;Column ;Rec\_Line\_Bank\_Account\_No;
|
||||
DataSource=Bank Account No. }
|
||||
{ 3 ;1 ;Column ;Rec\_Line\_Statement\_No;
|
||||
DataSource=Statement No. }
|
||||
{ 4 ;1 ;Column ;Rec\_Line\_Statement\_Line\_No;
|
||||
DataSource=Statement Line No. }
|
||||
{ 5 ;1 ;Column ;Rec\_Line\_Transaction\_Date;
|
||||
DataSource=Transaction Date }
|
||||
{ 6 ;1 ;Column ;Rec\_Line\_Difference ;
|
||||
DataSource=Difference }
|
||||
{ 7 ;1 ;DataItem; ;
|
||||
DataItemTable=Table271;
|
||||
DataItemTableFilter=Remaining Amount=FILTER(<\>0),
|
||||
Open=CONST(Yes),
|
||||
Statement Status=FILTER(Open);
|
||||
DataItemLink=Bank Account No.=Bank\_Acc\_Reconciliation\_Line."Bank Account o.",
|
||||
Remaining Amount=Bank\_Acc\_Reconciliation\_Line.Difference,
|
||||
Posting Date=Bank\_Acc\_Reconciliation\_Line."Transaction Date" }
|
||||
{ 8 ;2 ;Column ; ;
|
||||
DataSource=Entry No. }
|
||||
{ 9 ;2 ;Column ;Bank\_Account\_No ;
|
||||
DataSource=Bank Account No. }
|
||||
{ 10 ;2 ;Column ; ;
|
||||
DataSource=Posting Date }
|
||||
{ 11 ;2 ;Column ; ;
|
||||
DataSource=Remaining Amount }
|
||||
{ 12 ;2 ;Column ;Bank\_Ledger\_Entry\_Open;
|
||||
DataSource=Open }
|
||||
{ 13 ;2 ;Column ; ;
|
||||
DataSource=Statement Status }
|
||||
}
|
||||
CODE
|
||||
{
|
||||
BEGIN
|
||||
END.
|
||||
}
|
||||
</code></pre>
|
||||
<h4 id=heading></h4>
|
||||
<p>When comparing the two implementations, we notice the following advantages of using a query instead of two loops:Comparison</p>
|
||||
<ol>
|
||||
<li>A query produces the Cartesian product of tables 1 and 2 faster than by looping through both of them. The advantage grows as there are more tables linked.</li>
|
||||
</ol>
|
||||
<p>The query object leverages the power of SQL Server (as it basically executes a SQL query directly against the database server), and as such it only requires one trip to the database to fetch the data, instead of getting the related records on the right side of the join one by one.</p>
|
||||
<ol>
|
||||
<li>A query is scalable in the sense that it allows reusing its definition by applying filters when looping through its dataset. So a generic query can be reused for a variety of purposes just by adapting the filters to the programming need. Duplicating traditional record loops in different functions, on the other side, requires extensive code copy-pasting, which can introduce code defects.</li>
|
||||
<li>Using a query only requires one loop, whereas joining two or more tables requires multiple code loops that quickly become difficult to read and follow.</li>
|
||||
<li>Queries are easy to create and maintain and generally provide a cleaner design.</li>
|
||||
</ol>
|
||||
<h3 id=nav-specific-examples><strong>NAV Specific Examples</strong></h3>
|
||||
<p>In Microsoft Dynamics NAV 2013 R2, we can see the query object used in the bank account reconciliation matching algorithm. The object is query Bank Rec. Match Candidates query (1252), and it is called by the matching engine in the Match Bank Rec. Lines codeunit (1252).</p>
|
||||
<h3 id=ideas-for-improvement><strong>Ideas for Improvement</strong></h3>
|
||||
<p>The query object type could be improved to allow the passing of parameters at runtime, or, in general, being built dynamically at runtime. This will remove the need for multiple static definitions of the same base query used in slightly different contexts.</p>
|
||||
<footer class=footline>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
<div id=navigation>
|
||||
<a class="nav nav-prev" href=/bcalhelp/navpatterns/1-patterns/queries/use-queries-to-detect-duplicate-records/ title="use Queries to Detect Duplicate Records"><i class="fa fa-chevron-left"></i></a>
|
||||
<a class="nav nav-next" href=/bcalhelp/navpatterns/1-patterns/read-once-initialization-and-validation/ title="Read-once Initialization and Validation"><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>
|
||||