deploy: d7a7d2459a
This commit is contained in:
parent
34af3362da
commit
2d866c6316
732 changed files with 136202 additions and 67025 deletions
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 116 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -0,0 +1,664 @@
|
|||
<!doctype html><html lang=en class=no-js>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<meta name=generator content="Hugo 0.92.2">
|
||||
<meta name=robots content="index, follow">
|
||||
<link rel="shortcut icon" href=/favicons/favicon.ico>
|
||||
<link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180>
|
||||
<link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16>
|
||||
<link rel=icon type=image/png href=/favicons/favicon-32x32.png sizes=32x32>
|
||||
<link rel=icon type=image/png href=/favicons/android-36x36.png sizes=36x36>
|
||||
<link rel=icon type=image/png href=/favicons/android-48x48.png sizes=48x48>
|
||||
<link rel=icon type=image/png href=/favicons/android-72x72.png sizes=72x72>
|
||||
<link rel=icon type=image/png href=/favicons/android-96x96.png sizes=96x96>
|
||||
<link rel=icon type=image/png href=/favicons/android-144x144.png sizes=144x144>
|
||||
<link rel=icon type=image/png href=/favicons/android-192x192.png sizes=192x192>
|
||||
<title>Data Driven Blocked Entity | alguidelines.dev - Business Central Design Patterns</title>
|
||||
<meta name=description content="Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen
|
||||
Abstract
|
||||
This pattern implements a generic mechanism for dynamically …">
|
||||
<meta property="og:title" content="Data Driven Blocked Entity">
|
||||
<meta property="og:description" content="Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator.
|
||||
Problem A NAV record can be used in a number of functionalities across the app. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as lift the restriction when it is no longer relevant.">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/"><meta property="og:image" content="https://alguidelines.dev/images/og-image-fission.png"><meta property="article:section" content="docs">
|
||||
<meta property="article:modified_time" content="2022-02-20T13:18:49+01:00"><meta property="og:site_name" content="alguidelines.dev - Business Central Design Patterns">
|
||||
<meta itemprop=name content="Data Driven Blocked Entity">
|
||||
<meta itemprop=description content="Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator.
|
||||
Problem A NAV record can be used in a number of functionalities across the app. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as lift the restriction when it is no longer relevant.">
|
||||
<meta itemprop=dateModified content="2022-02-20T13:18:49+01:00">
|
||||
<meta itemprop=wordCount content="625"><meta itemprop=image content="https://alguidelines.dev/images/og-image-fission.png">
|
||||
<meta itemprop=keywords content><meta name=twitter:card content="summary_large_image">
|
||||
<meta name=twitter:image content="https://alguidelines.dev/images/og-image-fission.png">
|
||||
<meta name=twitter:title content="Data Driven Blocked Entity">
|
||||
<meta name=twitter:description content="Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator.
|
||||
Problem A NAV record can be used in a number of functionalities across the app. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as lift the restriction when it is no longer relevant.">
|
||||
<link rel=preload href=/scss/main.min.465d5fa0bd58415aee47bc5a1c5d8deee19fe158cff814bc698ee863ea6b68eb.css as=style>
|
||||
<link href=/scss/main.min.465d5fa0bd58415aee47bc5a1c5d8deee19fe158cff814bc698ee863ea6b68eb.css rel=stylesheet integrity>
|
||||
<script src=https://code.jquery.com/jquery-3.6.0.min.js integrity=sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK crossorigin=anonymous></script>
|
||||
</head>
|
||||
<body class=td-page>
|
||||
<header>
|
||||
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
|
||||
<a class=navbar-brand href=/>
|
||||
<img src=/images/alguidelines-bclogo-pattern-white.png height=32px>
|
||||
<span class=font-weight-bold>alguidelines.dev - Business Central Design Patterns</span>
|
||||
</a>
|
||||
<div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar>
|
||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=/docs/><i class="fas fa-book"></i><span>Docs</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://github.com/microsoft/alguidelines/discussions/ target=_blank><i class="fas fa-comments"></i><span>Discussions</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://github.com/microsoft/alguidelines target=_blank><i class="fab fa-github"></i><span>GitHub</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://discord.gg/4wbfNv3 target=_blank><i class="fab fa-discord"></i><span>Discord</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar-nav d-none d-lg-block"></div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container-fluid td-outer">
|
||||
<div class=td-main>
|
||||
<div class="row flex-xl-nowrap">
|
||||
<aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
|
||||
<div id=td-sidebar-menu class=td-sidebar__inner>
|
||||
<div id=content-mobile>
|
||||
<form class="td-sidebar__search d-flex align-items-center">
|
||||
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation">
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div id=content-desktop></div>
|
||||
<nav class="collapse td-sidebar-nav" id=td-section-nav>
|
||||
<ul class="td-sidebar-nav__section pr-md-3 ul-0">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docs-li>
|
||||
<a href=/docs/ title="AL Guidelines" class="align-left pl-0 td-sidebar-link td-sidebar-link__section tree-root" id=m-docs><span>Docs</span></a>
|
||||
<ul class=ul-1>
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docspatterns-li>
|
||||
<a href=/docs/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docspatterns><span>Patterns</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsevent-bridge-pattern-li>
|
||||
<a href=/docs/patterns/event-bridge-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsevent-bridge-pattern><span>Event Bridge</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsfacade-pattern-li>
|
||||
<a href=/docs/patterns/facade-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsfacade-pattern><span>Façade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsgeneric-method-pattern-li>
|
||||
<a href=/docs/patterns/generic-method-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsgeneric-method-pattern><span>Generic Method</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsbestpractices-li>
|
||||
<a href=/docs/bestpractices/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsbestpractices><span>Best Practices</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-as-an-afterword-li>
|
||||
<a href=/docs/bestpractices/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-as-an-afterword><span>begin as an afterword</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-end-li>
|
||||
<a href=/docs/bestpractices/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-end><span>Begin-End - Compound Only</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbinary-operator-line-start-li>
|
||||
<a href=/docs/bestpractices/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbinary-operator-line-start><span>Binary Operator to Start Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescase-actions-li>
|
||||
<a href=/docs/bestpractices/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescase-actions><span>CASE Action on next line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescomments-spacing-li>
|
||||
<a href=/docs/bestpractices/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescomments-spacing><span>Comment Spacing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesdeleteall-li>
|
||||
<a href=/docs/bestpractices/deleteall/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesdeleteall><span>DeleteAll</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesend-else-pair-li>
|
||||
<a href=/docs/bestpractices/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesend-else-pair><span>end else pair</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeskeyword-pairs-indentation-li>
|
||||
<a href=/docs/bestpractices/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeskeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesline-start-keywords-li>
|
||||
<a href=/docs/bestpractices/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesline-start-keywords><span>Line Start Keywords</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeslonely-repeat-li>
|
||||
<a href=/docs/bestpractices/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeslonely-repeat><span>Lonely Repeat</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesnamed-invocations-li>
|
||||
<a href=/docs/bestpractices/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesnamed-invocations><span>Named Invocations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesone-statement-per-line-li>
|
||||
<a href=/docs/bestpractices/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesone-statement-per-line><span>One Statement per Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesseparate-if-and-else-li>
|
||||
<a href=/docs/bestpractices/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesseparate-if-and-else><span>Seperate if and else</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesspacing-binary-operators-li>
|
||||
<a href=/docs/bestpractices/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesspacing-binary-operators><span>Spacing Binary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessubscribercodeunits-li>
|
||||
<a href=/docs/bestpractices/subscribercodeunits/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessubscribercodeunits><span>Subscriber Codeunits</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessuggested-abbreviations-li>
|
||||
<a href=/docs/bestpractices/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessuggested-abbreviations><span>Suggested Abbreviations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-else-li>
|
||||
<a href=/docs/bestpractices/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-else><span>Unnecessary else</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-truefalse-li>
|
||||
<a href=/docs/bestpractices/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-truefalse><span>Unnecessary true/false</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariable-naming-li>
|
||||
<a href=/docs/bestpractices/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariable-naming><span>Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariables-declarations-order-li>
|
||||
<a href=/docs/bestpractices/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariables-declarations-order><span>Variables Declarations Order</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatterns-li>
|
||||
<a href=/docs/navpatterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns><span>NAV Patterns Archive</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatternspatterns-li>
|
||||
<a href=/docs/navpatterns/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatterns><span>Patterns</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsactivity-log-li>
|
||||
<a href=/docs/navpatterns/patterns/activity-log/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsactivity-log><span>Activity Logs</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsargument-table-li>
|
||||
<a href=/docs/navpatterns/patterns/argument-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsargument-table><span>Argument Table</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatternspatternsblocked-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/blocked-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsblocked-entity><span>Blocked Entity</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/ class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity><span class=td-sidebar-nav-active-item>Data Driven Blocked Entity</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscached-web-service-calls-li>
|
||||
<a href=/docs/navpatterns/patterns/cached-web-service-calls/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscached-web-service-calls><span>Cached Web Server Calls</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsconditional-cascading-update-li>
|
||||
<a href=/docs/navpatterns/patterns/conditional-cascading-update/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsconditional-cascading-update><span>Conditional Cascading Update</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscopy-document-li>
|
||||
<a href=/docs/navpatterns/patterns/copy-document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscopy-document><span>Copy Document</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-data-from-templates-li>
|
||||
<a href=/docs/navpatterns/patterns/create-data-from-templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-data-from-templates><span>Create Data from Templates</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-urls-to-nav-clients-li>
|
||||
<a href=/docs/navpatterns/patterns/create-urls-to-nav-clients/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-urls-to-nav-clients><span>Create URLs to NAV Clients</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreating-custom-charts-li>
|
||||
<a href=/docs/navpatterns/patterns/creating-custom-charts/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreating-custom-charts><span>Creating Custom Charts</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscross-session-events-li>
|
||||
<a href=/docs/navpatterns/patterns/cross-session-events/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscross-session-events><span>Cross Session Events</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscurrently-active-record-li>
|
||||
<a href=/docs/navpatterns/patterns/currently-active-record/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscurrently-active-record><span>Currently Active Record</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdata-migration-facade-li>
|
||||
<a href=/docs/navpatterns/patterns/data-migration-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdata-migration-facade><span>Data Migration Façade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdiscovery-event-li>
|
||||
<a href=/docs/navpatterns/patterns/discovery-event/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdiscovery-event><span>Discovery Event</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdocument-li>
|
||||
<a href=/docs/navpatterns/patterns/document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdocument><span>Document</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information-li>
|
||||
<a href=/docs/navpatterns/patterns/easy-update-of-setup-or-supplementary-information/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information><span>Easy Update Of Setup Or Supplementary Information</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternserror-message-processing-li>
|
||||
<a href=/docs/navpatterns/patterns/error-message-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternserror-message-processing><span>Error Message Processing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsextending-the-role-center-headlines-li>
|
||||
<a href=/docs/navpatterns/patterns/extending-the-role-center-headlines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsextending-the-role-center-headlines><span>Extending the Role Center Headlines</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsfeature-localization-for-data-structures-li>
|
||||
<a href=/docs/navpatterns/patterns/feature-localization-for-data-structures/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsfeature-localization-for-data-structures><span>Feature Localization For Data Structures</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternshooks-li>
|
||||
<a href=/docs/navpatterns/patterns/hooks/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternshooks><span>Hooks</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern-li>
|
||||
<a href=/docs/navpatterns/patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern><span>Surrogate keys using Autoincrement Pattern</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsinstructions-in-the-ui-li>
|
||||
<a href=/docs/navpatterns/patterns/instructions-in-the-ui/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsinstructions-in-the-ui><span>Instructions in the UI</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsintegration-of-addresses-li>
|
||||
<a href=/docs/navpatterns/patterns/integration-of-addresses/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsintegration-of-addresses><span>Integration of Addresses</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-error-processing-li>
|
||||
<a href=/docs/navpatterns/patterns/journal-error-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-error-processing><span>Journal Error Processing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-template-batch-line-li>
|
||||
<a href=/docs/navpatterns/patterns/journal-template-batch-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-template-batch-line><span>Journal Template Batch Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmaster-data-li>
|
||||
<a href=/docs/navpatterns/patterns/master-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmaster-data><span>Master Data</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-file-download-li>
|
||||
<a href=/docs/navpatterns/patterns/multi-file-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-file-download><span>Multi-file Download</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-page-list-li>
|
||||
<a href=/docs/navpatterns/patterns/multi-page-list/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-page-list><span>Multi-Page List</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmultilanguage-application-data-li>
|
||||
<a href=/docs/navpatterns/patterns/multilanguage-application-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmultilanguage-application-data><span>Multilanguage Application Data</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnet-exception-handling-in-cal-li>
|
||||
<a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnet-exception-handling-in-cal><span>NET Exception Handling in CAL</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal-li>
|
||||
<a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal><span>TryFunction NET Exception Handling in CAL</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsno-series-li>
|
||||
<a href=/docs/navpatterns/patterns/no-series/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsno-series><span>No Series</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnotifications-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnotifications><span>Notifications</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsin-context-notifications-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/in-context-notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsin-context-notifications><span>In-context Notifications</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/notification-lifecycle-management-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern><span>Notification Lifecycle Management Pattern</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsobserver-li>
|
||||
<a href=/docs/navpatterns/patterns/observer/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsobserver><span>Observer</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsposting-routine-select-behavior-li>
|
||||
<a href=/docs/navpatterns/patterns/posting-routine-select-behavior/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsposting-routine-select-behavior><span>Posting Routine - Select Behavior</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsproduct-name-li>
|
||||
<a href=/docs/navpatterns/patterns/product-name/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsproduct-name><span>Product Name</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsqueries-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsqueries><span>Queries</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/select-distinct-with-queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries><span>SELECT DISTINCT with Queries</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/use-queries-to-detect-duplicate-records/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records><span>Use Queries to Detect Duplicate Records</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/use-queries-to-replace-nested-loops/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops><span>Use Queries to Replace Nested Loops</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsread-once-initialization-and-validation-li>
|
||||
<a href=/docs/navpatterns/patterns/read-once-initialization-and-validation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsread-once-initialization-and-validation><span>Read-once Initialization and Validation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreleased-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/released-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreleased-entity><span>Released Entity</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreport-selection-li>
|
||||
<a href=/docs/navpatterns/patterns/report-selection/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreport-selection><span>Report Selection</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssecurity-li>
|
||||
<a href=/docs/navpatterns/patterns/security/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssecurity><span>Security</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation-li>
|
||||
<a href=/docs/navpatterns/patterns/security/1-sensitive-data-encapsulation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation><span>Sensitive Data Encapsulation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity2-data-encryption-li>
|
||||
<a href=/docs/navpatterns/patterns/security/2-data-encryption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity2-data-encryption><span>Data Encryption</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity3-single-point-of-access-li>
|
||||
<a href=/docs/navpatterns/patterns/security/3-single-point-of-access/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity3-single-point-of-access><span>Single Point of Access</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity4-masked-text-li>
|
||||
<a href=/docs/navpatterns/patterns/security/4-masked-text/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity4-masked-text><span>Masked Text</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity5-ssl-in-nav-li>
|
||||
<a href=/docs/navpatterns/patterns/security/5-ssl-in-nav/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity5-ssl-in-nav><span>SSL in NAV</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssetup-specificity-fallback-li>
|
||||
<a href=/docs/navpatterns/patterns/setup-specificity-fallback/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssetup-specificity-fallback><span>Setup Specificity Fallback</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssilent-file-upload-and-download-li>
|
||||
<a href=/docs/navpatterns/patterns/silent-file-upload-and-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssilent-file-upload-and-download><span>Silent File Upload and Download</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssingleton-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingleton><span>Singleton</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-codeunit-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-codeunit/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-codeunit><span>Singleton Codeunit</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatternspatternssingletonsingleton-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingletonsingleton-table><span>Singleton Table</span></a>
|
||||
<ul class="ul-5 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/cue-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table><span>Cue Table</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/setup-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table><span>Setup Table</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsstandard-journal-li>
|
||||
<a href=/docs/navpatterns/patterns/standard-journal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsstandard-journal><span>Standard Journal</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstemporary-dataset-report-li>
|
||||
<a href=/docs/navpatterns/patterns/temporary-dataset-report/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstemporary-dataset-report><span>Temporary Dataset Report</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases-li>
|
||||
<a href=/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases><span>Totals and Discounts on Subpages Sales and Purchases</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstransfer-custom-fields-li>
|
||||
<a href=/docs/navpatterns/patterns/transfer-custom-fields/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstransfer-custom-fields><span>Transfer Custom Fields</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsvariant-facade-li>
|
||||
<a href=/docs/navpatterns/patterns/variant-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsvariant-facade><span>Variant Facade</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns2-anti-patterns-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns2-anti-patterns><span>2. Anti-Patterns</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsnav-upgrade-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/nav-upgrade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsnav-upgrade><span>Nav Upgrade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsreusable-bugs-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/reusable-bugs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsreusable-bugs><span>Reusable Bugs</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns3-cal-coding-guidelines-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelines><span>3. CAL Coding Guidelines</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesign-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesdesign><span>Design</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters><span>By Reference Parameters</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/class-coupling/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling><span>Class Coupling</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity><span>Cyclomatic Complexity</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality><span>Encapsulate Local Functionality</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast><span>FINDSET FINDFIRST FINDLAST</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables><span>Initialized Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index><span>Maintainability Index</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders><span>Parameter Placeholders</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation><span>Static Object Invocation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code><span>Unreachable Code</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables><span>Unused Initialized Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables><span>Unused Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch><span>Variable Capacity Mismatch</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision><span>WITH Scope Name Collision</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types><span>Internally used DotNet Types</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization><span>Internationalization</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate><span>Using Calcdate</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability><span>Localizability</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables><span>CaptionML on System Pages</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption><span>FIELDCAPTION and TABLECAPTION</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants><span>Global Text Constants</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants><span>Use Text Constants</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml><span>Using OptionCaptionML</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadability-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesreadability><span>Readability</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword><span>Begin as an 'After Word'</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end><span>Begin-End - Compound Only</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start><span>Binary Operator to Start Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines><span>Blank Lines</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions><span>CASE Action</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case><span>Colon usage in CASE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets><span>Comments inside Curly Brackets</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing><span>Comment Spacing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair><span>END ELSE Pair</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation><span>Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords><span>Line Start Keywords</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat><span>Lonely Repeat</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations><span>Named Invocations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs><span>Nested WITHs</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line><span>One Statement Per Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else><span>Separate IF and ELSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators><span>Spacing Binary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and><span>Spacing Brackets and ::</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators><span>Spacing Unary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations><span>Suggested Abbreviations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming><span>Temporary Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes><span>TextConst Suffixes</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end><span>Unary Operator Line End</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis><span>Unnecessary Compound Parenthesis</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else><span>Unnecessary ELSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis><span>Unnecessary Function Parenthesis</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators><span>Unnecessary Separators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse><span>Unnecessary TRUE/FALSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped><span>Variable Already Scoped</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming><span>Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order><span>Variables Declarations Order</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesux-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesux><span>UX</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/actions-images/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images><span>Actions - Images</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/confirm/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm><span>CONFIRM</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/fielderror/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror><span>FIELDERROR</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error><span>MESSAGE and ERROR</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns4-get-involved-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns4-get-involved><span>(OLD) Get Involved</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedcode-of-conduct-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/code-of-conduct/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedcode-of-conduct><span>Code of Conduct</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedpatterns-authors-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/patterns-authors/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedpatterns-authors><span>Patterns Authors</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns><span>Template for writing Nav Design Patterns</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternsrelated-links-li>
|
||||
<a href=/docs/navpatterns/related-links/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternsrelated-links><span>Related Links</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docscontributing-li>
|
||||
<a href=/docs/contributing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributing><span>Contributing</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingformattingtips-li>
|
||||
<a href=/docs/contributing/formattingtips/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingformattingtips><span>Formatting tips</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingforkandpr-li>
|
||||
<a href=/docs/contributing/forkandpr/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingforkandpr><span>Guide to Fork & PR</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docscontributingtemplates-li>
|
||||
<a href=/docs/contributing/templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributingtemplates><span>Templates</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatesguidelines-li>
|
||||
<a href=/docs/contributing/templates/guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatesguidelines><span>Title of the Guideline</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatespatterns-li>
|
||||
<a href=/docs/contributing/templates/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatespatterns><span>Title of the pattern</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtheapprovalprocess-li>
|
||||
<a href=/docs/contributing/theapprovalprocess/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtheapprovalprocess><span>Understanding the Approval Process</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</aside>
|
||||
<aside class="d-none d-xl-block col-xl-2 td-sidebar-toc d-print-none">
|
||||
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
|
||||
<a href=https://github.com/microsoft/alguidelines/tree/master/content/en/docs/NAVPatterns/patterns/blocked-entity/data-driven-blocked-entity/index.md class=td-page-meta--view target=_blank rel=noopener><i class="fa fa-file-alt fa-fw"></i> View page source</a>
|
||||
<a href=https://github.com/microsoft/alguidelines/edit/master/content/en/docs/NAVPatterns/patterns/blocked-entity/data-driven-blocked-entity/index.md class=td-page-meta--edit target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Edit this page</a>
|
||||
<a href="https://github.com/microsoft/alguidelines/new/master/content/en/docs/NAVPatterns/patterns/blocked-entity/data-driven-blocked-entity/index.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" class=td-page-meta--child target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Create child page</a>
|
||||
<a href="https://github.com/microsoft/alguidelines/issues/new?title=Data%20Driven%20Blocked%20Entity" class=td-page-meta--issue target=_blank rel=noopener><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
|
||||
<a href=https://github.com/microsoft/alguidelines/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
|
||||
</div>
|
||||
<div class=td-toc><nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#abstract>Abstract</a></li>
|
||||
<li><a href=#problem>Problem</a></li>
|
||||
<li><a href=#solution>Solution</a></li>
|
||||
<li><a href=#example>Example</a></li>
|
||||
<li><a href=#nav-usage>NAV Usage</a></li>
|
||||
<li><a href=#consequences>Consequences</a></li>
|
||||
<li><a href=#nav-versions>NAV Versions</a></li>
|
||||
</ul>
|
||||
</nav></div>
|
||||
<div class="taxonomy taxonomy-terms-cloud taxo-tags">
|
||||
<h5 class=taxonomy-title>Tag Cloud</h5>
|
||||
<ul class=taxonomy-terms>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/c/al/ data-taxonomy-term=c/al><span class=taxonomy-label>C/AL</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/interface/ data-taxonomy-term=interface><span class=taxonomy-label>Interface</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/nav/ data-taxonomy-term=nav><span class=taxonomy-label>NAV</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/performance/ data-taxonomy-term=performance><span class=taxonomy-label>Performance</span><span class=taxonomy-count>2</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/readability/ data-taxonomy-term=readability><span class=taxonomy-label>Readability</span><span class=taxonomy-count>18</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="taxonomy taxonomy-terms-cloud taxo-categories">
|
||||
<h5 class=taxonomy-title>Categories</h5>
|
||||
<ul class=taxonomy-terms>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/archived-pattern/ data-taxonomy-term=archived-pattern><span class=taxonomy-label>Archived Pattern</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/best-practice/ data-taxonomy-term=best-practice><span class=taxonomy-label>Best Practice</span><span class=taxonomy-count>20</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/pattern/ data-taxonomy-term=pattern><span class=taxonomy-label>Pattern</span><span class=taxonomy-count>3</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</aside>
|
||||
<main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main>
|
||||
<nav aria-label=breadcrumb class=td-breadcrumbs>
|
||||
<ol class=breadcrumb>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/>Docs</a>
|
||||
</li>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/>NAV Patterns Archive</a>
|
||||
</li>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/patterns/>Patterns</a>
|
||||
</li>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/>Blocked Entity</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current=page>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class=td-content>
|
||||
<h1>Data Driven Blocked Entity</h1>
|
||||
<header class=article-meta>
|
||||
</header>
|
||||
<p><em>Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen</em></p>
|
||||
<h2 id=abstract>Abstract</h2>
|
||||
<p>This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator.</p>
|
||||
<h2 id=problem>Problem</h2>
|
||||
<p>A NAV record can be used in a number of functionalities across the app. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as lift the restriction when it is no longer relevant.</p>
|
||||
<p>For example, a new customer record should not be used for posting documents until it is approved by the relevant approver.</p>
|
||||
<p>We could solve this by using the <a href=/navpatterns/1-patterns/blocked-entity/>Blocked Entity pattern</a>, but it requires database schema changes, which have an upgrade impact.</p>
|
||||
<p>The blocked entity pattern involves:</p>
|
||||
<ol>
|
||||
<li>Adding a “blocked” status field on the record (either a Boolean or in the more advanced cases, an option field refining the usage).</li>
|
||||
<li>Adding specific code for the record in every place where the restriction needs to be enforced.</li>
|
||||
</ol>
|
||||
<p>In contrast, the Data-driven Blocked Entity pattern involves adding a new record (data change) to mark the restriction, instead of adding a new field (metadata change).</p>
|
||||
<h2 id=solution>Solution</h2>
|
||||
<p>This pattern describes a generic mechanism of adding and lifting restrictions for any type of record.</p>
|
||||
<p>The restriction mechanism has the following elements:</p>
|
||||
<ol>
|
||||
<li>Adding a restriction record for a specific reason (e.g. the record requires approval), which will act as a surrogate key (unique identifier) for the restricted record. This can be implemented through a workflow response, or directly, by calling the Restriction Management codeunit function.</li>
|
||||
<li>Lifting the restriction when it is no longer necessary. Again, this can be done using a workflow response or directly by calling the dedicated function.</li>
|
||||
<li>Consuming the restriction in the places of interest for a specific purpose. This is an application feature that requires a call to the Restriction Management codeunit to check for restrictions.</li>
|
||||
</ol>
|
||||
<p>Currently, the restrictions are record-based and type-less. They act as simple tokens, and they have:</p>
|
||||
<ul>
|
||||
<li>A reason (e.g. the record requires approval)</li>
|
||||
<li>A purpose (e.g. the record cannot be posted).</li>
|
||||
</ul>
|
||||
<p>You must make sure to differentiate between the reason and the purpose. That is because the restriction can only be added once per record, but consumed in multiple places.</p>
|
||||
<h2 id=example>Example</h2>
|
||||
<p>For example, we want to restrict posting Gen. Journal Lines if a customer has not been added in Account No. field.</p>
|
||||
<p>For this, the following components are needed:</p>
|
||||
<ol>
|
||||
<li>When a Gen. Journal Line is inserted, call RestrictRecordUsage in COD1550, either directly in the trigger or using an event subscriber.</li>
|
||||
<li>When you validate a Customer No. as Account no. and Customer as Account Type, lift the restrictions by calling AllowRecordUsage in COD1550.</li>
|
||||
<li>The consumption of the restriction at posting is already implemented as an event in TAB81, OnCheckGenJournalLinePostRestrictions. No further action necessary.</li>
|
||||
</ol>
|
||||
<h2 id=nav-usage>NAV Usage</h2>
|
||||
<p>All the approval workflows include a response that restricts usage of a record, and then, at the end of an approval loop, a response that allows the usage again by lifting the restriction. See responses “Add record restriction” and “Remove record restriction” implemented in COD1521.<a href=https://microsoft.sharepoint.com/teams/DynamicsNAV/Wiki/Nav%20Wiki%20Documents/NAV%20App%20Patterns/NAV%20App%20Patterns%20for%20Review/Data-Driven%20Blocked%20Entity.docx#_msocom_2><br>
|
||||
</a></p>
|
||||
<p>The code behind the “Add record restriction” workflow response:</p>
|
||||
<div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-AL data-lang=AL>RecRef<span style=color:#ce5c00;font-weight:700>.</span>GETTABLE<span style=color:#ce5c00;font-weight:700>(</span><span style=color:#204a87;font-weight:700>Variant</span><span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline></span>Workflow<span style=color:#ce5c00;font-weight:700>.</span>GET<span style=color:#ce5c00;font-weight:700>(</span>WorkflowStepInstance<span style=color:#ce5c00;font-weight:700>.</span>"Workflow Code"<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline></span>RecordRestrictionMgt<span style=color:#ce5c00;font-weight:700>.</span>RestrictRecordUsage<span style=color:#ce5c00;font-weight:700>(</span>RecRef<span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>RECORDID</span><span style=color:#000;font-weight:700>,</span>STRSUBSTNO<span style=color:#ce5c00;font-weight:700>(</span>RestrictUsageDetailsTxt<span style=color:#000;font-weight:700>,</span>Workflow<span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>Code</span><span style=color:#000;font-weight:700>,</span>Workflow<span style=color:#ce5c00;font-weight:700>.</span>Description<span style=color:#ce5c00;font-weight:700>))</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span></code></pre></div><p>The code behind the “Remove record restriction” response:</p>
|
||||
<div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-AL data-lang=AL>RecRef<span style=color:#ce5c00;font-weight:700>.</span>GETTABLE<span style=color:#ce5c00;font-weight:700>(</span><span style=color:#204a87;font-weight:700>Variant</span><span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline></span><span style=color:#204a87;font-weight:700>CASE</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecRef<span style=color:#ce5c00;font-weight:700>.</span>NUMBER<span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>OF</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>DATABASE</span><span style=color:#000;font-weight:700>::</span>"Approval Entry"<span style=color:#000;font-weight:700>:</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>BEGIN</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecordRestrictionMgt<span style=color:#ce5c00;font-weight:700>.</span>AllowRecordUsage<span style=color:#ce5c00;font-weight:700>(</span>RecRef<span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>RECORDID</span><span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecRef<span style=color:#ce5c00;font-weight:700>.</span>SETTABLE<span style=color:#ce5c00;font-weight:700>(</span>ApprovalEntry<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecRef<span style=color:#ce5c00;font-weight:700>.</span>GET<span style=color:#ce5c00;font-weight:700>(</span>ApprovalEntry<span style=color:#ce5c00;font-weight:700>.</span>"Record ID to Approve"<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>AllowRecordUsage<span style=color:#ce5c00;font-weight:700>(</span>RecRef<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>END</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>DATABASE</span><span style=color:#000;font-weight:700>::</span>"Gen. Journal Batch"<span style=color:#000;font-weight:700>:</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>BEGIN</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecRef<span style=color:#ce5c00;font-weight:700>.</span>SETTABLE<span style=color:#ce5c00;font-weight:700>(</span>GenJournalBatch<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecordRestrictionMgt<span style=color:#ce5c00;font-weight:700>.</span>AllowGenJournalBatchUsage<span style=color:#ce5c00;font-weight:700>(</span>GenJournalBatch<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>END</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>ELSE</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>RecordRestrictionMgt<span style=color:#ce5c00;font-weight:700>.</span>AllowRecordUsage<span style=color:#ce5c00;font-weight:700>(</span>RecRef<span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>RECORDID</span><span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline></span><span style=color:#204a87;font-weight:700>END</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span></code></pre></div><p>Notice how lifting a restriction for a Gen. Journal Batch involves lifting all the restrictions for the individual journal lines in the batch (hence the special branching of the code).</p>
|
||||
<h2 id=consequences>Consequences</h2>
|
||||
<p>Currently, there can only be one restriction per record. There are no restriction types.</p>
|
||||
<p>In the future, a type field should be added to the restriction table, to allow adding restrictions for different purposes, and to refine their consumption. For example, a posting restriction might only be enforced for restrictions originating from approvals.</p>
|
||||
<h2 id=nav-versions>NAV Versions</h2>
|
||||
<p>This pattern has been introduced in Dynamics NAV 2016.</p>
|
||||
<div class="text-muted mt-5 pt-3 border-top">
|
||||
Last modified February 20, 2022: <a href=https://github.com/microsoft/alguidelines/commit/cceb0c945e0383599f497350ca254d5755edda65>Restructure for Docsy theme (cceb0c94)</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="bg-dark py-5 row d-print-none">
|
||||
<div class="container-fluid mx-sm-5">
|
||||
<div class=row>
|
||||
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
|
||||
<ul class="list-inline mb-0">
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub>
|
||||
<a class=text-white target=_blank rel=noopener href=https://github.com/microsoft/alguidelines aria-label=GitHub>
|
||||
<i class="fab fa-github"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Twitter aria-label=Twitter>
|
||||
<a class=text-white target=_blank rel=noopener href="https://twitter.com/search?q=%23bcalhelp" aria-label=Twitter>
|
||||
<i class="fab fa-twitter"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Discord aria-label=Discord>
|
||||
<a class=text-white target=_blank rel=noopener href=https://discord.gg/4wbfNv3 aria-label=Discord>
|
||||
<i class="fab fa-discord"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
|
||||
<small class=text-white>© 2022 alguidelines.dev Project All Rights Reserved</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src=https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js integrity=sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN crossorigin=anonymous></script>
|
||||
<script src=https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin=anonymous></script>
|
||||
<script src=/js/tabpane-persist.js></script>
|
||||
<script src=/js/main.min.46b25eb30e292e80e9e18facc285e194199cf26288c5a1735cda89fb827eba54.js integrity="sha256-RrJesw4pLoDp4Y+swoXhlBmc8mKIxaFzXNqJ+4J+ulQ=" crossorigin=anonymous></script>
|
||||
</body>
|
||||
</html>
|
||||
654
docs/navpatterns/patterns/blocked-entity/index.html
Normal file
654
docs/navpatterns/patterns/blocked-entity/index.html
Normal file
|
|
@ -0,0 +1,654 @@
|
|||
<!doctype html><html lang=en class=no-js>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<meta name=generator content="Hugo 0.92.2">
|
||||
<link rel=alternate type=application/rss+xml href=https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/index.xml>
|
||||
<meta name=robots content="index, follow">
|
||||
<link rel="shortcut icon" href=/favicons/favicon.ico>
|
||||
<link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180>
|
||||
<link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16>
|
||||
<link rel=icon type=image/png href=/favicons/favicon-32x32.png sizes=32x32>
|
||||
<link rel=icon type=image/png href=/favicons/android-36x36.png sizes=36x36>
|
||||
<link rel=icon type=image/png href=/favicons/android-48x48.png sizes=48x48>
|
||||
<link rel=icon type=image/png href=/favicons/android-72x72.png sizes=72x72>
|
||||
<link rel=icon type=image/png href=/favicons/android-96x96.png sizes=96x96>
|
||||
<link rel=icon type=image/png href=/favicons/android-144x144.png sizes=144x144>
|
||||
<link rel=icon type=image/png href=/favicons/android-192x192.png sizes=192x192>
|
||||
<title>Blocked Entity | alguidelines.dev - Business Central Design Patterns</title>
|
||||
<meta name=description content="Originally by Abhishek Ghosh at Microsoft Development Center Copenhagen
|
||||
Abstract
|
||||
The Blocked Entity is used when it is required to stop transactions …">
|
||||
<meta property="og:title" content="Blocked Entity">
|
||||
<meta property="og:description" content="Guidelines for when Developing AL for Microsoft Dynamics 365 Business Central">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/"><meta property="og:image" content="https://alguidelines.dev/images/og-image-fission.png"><meta property="og:site_name" content="alguidelines.dev - Business Central Design Patterns">
|
||||
<meta itemprop=name content="Blocked Entity">
|
||||
<meta itemprop=description content="Guidelines for when Developing AL for Microsoft Dynamics 365 Business Central"><meta name=twitter:card content="summary_large_image">
|
||||
<meta name=twitter:image content="https://alguidelines.dev/images/og-image-fission.png">
|
||||
<meta name=twitter:title content="Blocked Entity">
|
||||
<meta name=twitter:description content="Guidelines for when Developing AL for Microsoft Dynamics 365 Business Central">
|
||||
<link rel=preload href=/scss/main.min.465d5fa0bd58415aee47bc5a1c5d8deee19fe158cff814bc698ee863ea6b68eb.css as=style>
|
||||
<link href=/scss/main.min.465d5fa0bd58415aee47bc5a1c5d8deee19fe158cff814bc698ee863ea6b68eb.css rel=stylesheet integrity>
|
||||
<script src=https://code.jquery.com/jquery-3.6.0.min.js integrity=sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK crossorigin=anonymous></script>
|
||||
</head>
|
||||
<body class=td-section>
|
||||
<header>
|
||||
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
|
||||
<a class=navbar-brand href=/>
|
||||
<img src=/images/alguidelines-bclogo-pattern-white.png height=32px>
|
||||
<span class=font-weight-bold>alguidelines.dev - Business Central Design Patterns</span>
|
||||
</a>
|
||||
<div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar>
|
||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=/docs/><i class="fas fa-book"></i><span>Docs</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://github.com/microsoft/alguidelines/discussions/ target=_blank><i class="fas fa-comments"></i><span>Discussions</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://github.com/microsoft/alguidelines target=_blank><i class="fab fa-github"></i><span>GitHub</span></a>
|
||||
</li>
|
||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||
<a class=nav-link href=https://discord.gg/4wbfNv3 target=_blank><i class="fab fa-discord"></i><span>Discord</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar-nav d-none d-lg-block"></div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container-fluid td-outer">
|
||||
<div class=td-main>
|
||||
<div class="row flex-xl-nowrap">
|
||||
<aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
|
||||
<div id=td-sidebar-menu class=td-sidebar__inner>
|
||||
<div id=content-mobile>
|
||||
<form class="td-sidebar__search d-flex align-items-center">
|
||||
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation">
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div id=content-desktop></div>
|
||||
<nav class="collapse td-sidebar-nav" id=td-section-nav>
|
||||
<ul class="td-sidebar-nav__section pr-md-3 ul-0">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docs-li>
|
||||
<a href=/docs/ title="AL Guidelines" class="align-left pl-0 td-sidebar-link td-sidebar-link__section tree-root" id=m-docs><span>Docs</span></a>
|
||||
<ul class=ul-1>
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docspatterns-li>
|
||||
<a href=/docs/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docspatterns><span>Patterns</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsevent-bridge-pattern-li>
|
||||
<a href=/docs/patterns/event-bridge-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsevent-bridge-pattern><span>Event Bridge</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsfacade-pattern-li>
|
||||
<a href=/docs/patterns/facade-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsfacade-pattern><span>Façade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsgeneric-method-pattern-li>
|
||||
<a href=/docs/patterns/generic-method-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsgeneric-method-pattern><span>Generic Method</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsbestpractices-li>
|
||||
<a href=/docs/bestpractices/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsbestpractices><span>Best Practices</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-as-an-afterword-li>
|
||||
<a href=/docs/bestpractices/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-as-an-afterword><span>begin as an afterword</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-end-li>
|
||||
<a href=/docs/bestpractices/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-end><span>Begin-End - Compound Only</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbinary-operator-line-start-li>
|
||||
<a href=/docs/bestpractices/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbinary-operator-line-start><span>Binary Operator to Start Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescase-actions-li>
|
||||
<a href=/docs/bestpractices/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescase-actions><span>CASE Action on next line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescomments-spacing-li>
|
||||
<a href=/docs/bestpractices/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescomments-spacing><span>Comment Spacing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesdeleteall-li>
|
||||
<a href=/docs/bestpractices/deleteall/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesdeleteall><span>DeleteAll</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesend-else-pair-li>
|
||||
<a href=/docs/bestpractices/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesend-else-pair><span>end else pair</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeskeyword-pairs-indentation-li>
|
||||
<a href=/docs/bestpractices/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeskeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesline-start-keywords-li>
|
||||
<a href=/docs/bestpractices/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesline-start-keywords><span>Line Start Keywords</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeslonely-repeat-li>
|
||||
<a href=/docs/bestpractices/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeslonely-repeat><span>Lonely Repeat</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesnamed-invocations-li>
|
||||
<a href=/docs/bestpractices/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesnamed-invocations><span>Named Invocations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesone-statement-per-line-li>
|
||||
<a href=/docs/bestpractices/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesone-statement-per-line><span>One Statement per Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesseparate-if-and-else-li>
|
||||
<a href=/docs/bestpractices/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesseparate-if-and-else><span>Seperate if and else</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesspacing-binary-operators-li>
|
||||
<a href=/docs/bestpractices/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesspacing-binary-operators><span>Spacing Binary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessubscribercodeunits-li>
|
||||
<a href=/docs/bestpractices/subscribercodeunits/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessubscribercodeunits><span>Subscriber Codeunits</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessuggested-abbreviations-li>
|
||||
<a href=/docs/bestpractices/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessuggested-abbreviations><span>Suggested Abbreviations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-else-li>
|
||||
<a href=/docs/bestpractices/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-else><span>Unnecessary else</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-truefalse-li>
|
||||
<a href=/docs/bestpractices/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-truefalse><span>Unnecessary true/false</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariable-naming-li>
|
||||
<a href=/docs/bestpractices/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariable-naming><span>Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariables-declarations-order-li>
|
||||
<a href=/docs/bestpractices/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariables-declarations-order><span>Variables Declarations Order</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatterns-li>
|
||||
<a href=/docs/navpatterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns><span>NAV Patterns Archive</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatternspatterns-li>
|
||||
<a href=/docs/navpatterns/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatterns><span>Patterns</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsactivity-log-li>
|
||||
<a href=/docs/navpatterns/patterns/activity-log/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsactivity-log><span>Activity Logs</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsargument-table-li>
|
||||
<a href=/docs/navpatterns/patterns/argument-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsargument-table><span>Argument Table</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatternspatternsblocked-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/blocked-entity/ class="align-left pl-0 active td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsblocked-entity><span class=td-sidebar-nav-active-item>Blocked Entity</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity><span>Data Driven Blocked Entity</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscached-web-service-calls-li>
|
||||
<a href=/docs/navpatterns/patterns/cached-web-service-calls/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscached-web-service-calls><span>Cached Web Server Calls</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsconditional-cascading-update-li>
|
||||
<a href=/docs/navpatterns/patterns/conditional-cascading-update/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsconditional-cascading-update><span>Conditional Cascading Update</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscopy-document-li>
|
||||
<a href=/docs/navpatterns/patterns/copy-document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscopy-document><span>Copy Document</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-data-from-templates-li>
|
||||
<a href=/docs/navpatterns/patterns/create-data-from-templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-data-from-templates><span>Create Data from Templates</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-urls-to-nav-clients-li>
|
||||
<a href=/docs/navpatterns/patterns/create-urls-to-nav-clients/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-urls-to-nav-clients><span>Create URLs to NAV Clients</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreating-custom-charts-li>
|
||||
<a href=/docs/navpatterns/patterns/creating-custom-charts/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreating-custom-charts><span>Creating Custom Charts</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscross-session-events-li>
|
||||
<a href=/docs/navpatterns/patterns/cross-session-events/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscross-session-events><span>Cross Session Events</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscurrently-active-record-li>
|
||||
<a href=/docs/navpatterns/patterns/currently-active-record/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscurrently-active-record><span>Currently Active Record</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdata-migration-facade-li>
|
||||
<a href=/docs/navpatterns/patterns/data-migration-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdata-migration-facade><span>Data Migration Façade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdiscovery-event-li>
|
||||
<a href=/docs/navpatterns/patterns/discovery-event/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdiscovery-event><span>Discovery Event</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdocument-li>
|
||||
<a href=/docs/navpatterns/patterns/document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdocument><span>Document</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information-li>
|
||||
<a href=/docs/navpatterns/patterns/easy-update-of-setup-or-supplementary-information/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information><span>Easy Update Of Setup Or Supplementary Information</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternserror-message-processing-li>
|
||||
<a href=/docs/navpatterns/patterns/error-message-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternserror-message-processing><span>Error Message Processing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsextending-the-role-center-headlines-li>
|
||||
<a href=/docs/navpatterns/patterns/extending-the-role-center-headlines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsextending-the-role-center-headlines><span>Extending the Role Center Headlines</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsfeature-localization-for-data-structures-li>
|
||||
<a href=/docs/navpatterns/patterns/feature-localization-for-data-structures/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsfeature-localization-for-data-structures><span>Feature Localization For Data Structures</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternshooks-li>
|
||||
<a href=/docs/navpatterns/patterns/hooks/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternshooks><span>Hooks</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern-li>
|
||||
<a href=/docs/navpatterns/patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern><span>Surrogate keys using Autoincrement Pattern</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsinstructions-in-the-ui-li>
|
||||
<a href=/docs/navpatterns/patterns/instructions-in-the-ui/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsinstructions-in-the-ui><span>Instructions in the UI</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsintegration-of-addresses-li>
|
||||
<a href=/docs/navpatterns/patterns/integration-of-addresses/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsintegration-of-addresses><span>Integration of Addresses</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-error-processing-li>
|
||||
<a href=/docs/navpatterns/patterns/journal-error-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-error-processing><span>Journal Error Processing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-template-batch-line-li>
|
||||
<a href=/docs/navpatterns/patterns/journal-template-batch-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-template-batch-line><span>Journal Template Batch Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmaster-data-li>
|
||||
<a href=/docs/navpatterns/patterns/master-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmaster-data><span>Master Data</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-file-download-li>
|
||||
<a href=/docs/navpatterns/patterns/multi-file-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-file-download><span>Multi-file Download</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-page-list-li>
|
||||
<a href=/docs/navpatterns/patterns/multi-page-list/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-page-list><span>Multi-Page List</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmultilanguage-application-data-li>
|
||||
<a href=/docs/navpatterns/patterns/multilanguage-application-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmultilanguage-application-data><span>Multilanguage Application Data</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnet-exception-handling-in-cal-li>
|
||||
<a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnet-exception-handling-in-cal><span>NET Exception Handling in CAL</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal-li>
|
||||
<a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal><span>TryFunction NET Exception Handling in CAL</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsno-series-li>
|
||||
<a href=/docs/navpatterns/patterns/no-series/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsno-series><span>No Series</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnotifications-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnotifications><span>Notifications</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsin-context-notifications-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/in-context-notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsin-context-notifications><span>In-context Notifications</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern-li>
|
||||
<a href=/docs/navpatterns/patterns/notifications/notification-lifecycle-management-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern><span>Notification Lifecycle Management Pattern</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsobserver-li>
|
||||
<a href=/docs/navpatterns/patterns/observer/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsobserver><span>Observer</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsposting-routine-select-behavior-li>
|
||||
<a href=/docs/navpatterns/patterns/posting-routine-select-behavior/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsposting-routine-select-behavior><span>Posting Routine - Select Behavior</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsproduct-name-li>
|
||||
<a href=/docs/navpatterns/patterns/product-name/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsproduct-name><span>Product Name</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsqueries-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsqueries><span>Queries</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/select-distinct-with-queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries><span>SELECT DISTINCT with Queries</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/use-queries-to-detect-duplicate-records/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records><span>Use Queries to Detect Duplicate Records</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops-li>
|
||||
<a href=/docs/navpatterns/patterns/queries/use-queries-to-replace-nested-loops/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops><span>Use Queries to Replace Nested Loops</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsread-once-initialization-and-validation-li>
|
||||
<a href=/docs/navpatterns/patterns/read-once-initialization-and-validation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsread-once-initialization-and-validation><span>Read-once Initialization and Validation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreleased-entity-li>
|
||||
<a href=/docs/navpatterns/patterns/released-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreleased-entity><span>Released Entity</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreport-selection-li>
|
||||
<a href=/docs/navpatterns/patterns/report-selection/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreport-selection><span>Report Selection</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssecurity-li>
|
||||
<a href=/docs/navpatterns/patterns/security/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssecurity><span>Security</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation-li>
|
||||
<a href=/docs/navpatterns/patterns/security/1-sensitive-data-encapsulation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation><span>Sensitive Data Encapsulation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity2-data-encryption-li>
|
||||
<a href=/docs/navpatterns/patterns/security/2-data-encryption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity2-data-encryption><span>Data Encryption</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity3-single-point-of-access-li>
|
||||
<a href=/docs/navpatterns/patterns/security/3-single-point-of-access/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity3-single-point-of-access><span>Single Point of Access</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity4-masked-text-li>
|
||||
<a href=/docs/navpatterns/patterns/security/4-masked-text/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity4-masked-text><span>Masked Text</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity5-ssl-in-nav-li>
|
||||
<a href=/docs/navpatterns/patterns/security/5-ssl-in-nav/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity5-ssl-in-nav><span>SSL in NAV</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssetup-specificity-fallback-li>
|
||||
<a href=/docs/navpatterns/patterns/setup-specificity-fallback/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssetup-specificity-fallback><span>Setup Specificity Fallback</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssilent-file-upload-and-download-li>
|
||||
<a href=/docs/navpatterns/patterns/silent-file-upload-and-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssilent-file-upload-and-download><span>Silent File Upload and Download</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssingleton-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingleton><span>Singleton</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-codeunit-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-codeunit/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-codeunit><span>Singleton Codeunit</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatternspatternssingletonsingleton-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingletonsingleton-table><span>Singleton Table</span></a>
|
||||
<ul class="ul-5 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/cue-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table><span>Cue Table</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table-li>
|
||||
<a href=/docs/navpatterns/patterns/singleton/singleton-table/setup-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table><span>Setup Table</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsstandard-journal-li>
|
||||
<a href=/docs/navpatterns/patterns/standard-journal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsstandard-journal><span>Standard Journal</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstemporary-dataset-report-li>
|
||||
<a href=/docs/navpatterns/patterns/temporary-dataset-report/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstemporary-dataset-report><span>Temporary Dataset Report</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases-li>
|
||||
<a href=/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases><span>Totals and Discounts on Subpages Sales and Purchases</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstransfer-custom-fields-li>
|
||||
<a href=/docs/navpatterns/patterns/transfer-custom-fields/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstransfer-custom-fields><span>Transfer Custom Fields</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsvariant-facade-li>
|
||||
<a href=/docs/navpatterns/patterns/variant-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsvariant-facade><span>Variant Facade</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns2-anti-patterns-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns2-anti-patterns><span>2. Anti-Patterns</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsnav-upgrade-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/nav-upgrade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsnav-upgrade><span>Nav Upgrade</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsreusable-bugs-li>
|
||||
<a href=/docs/navpatterns/2-anti-patterns/reusable-bugs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsreusable-bugs><span>Reusable Bugs</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns3-cal-coding-guidelines-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelines><span>3. CAL Coding Guidelines</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesign-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesdesign><span>Design</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters><span>By Reference Parameters</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/class-coupling/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling><span>Class Coupling</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity><span>Cyclomatic Complexity</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality><span>Encapsulate Local Functionality</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast><span>FINDSET FINDFIRST FINDLAST</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables><span>Initialized Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index><span>Maintainability Index</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders><span>Parameter Placeholders</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation><span>Static Object Invocation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code><span>Unreachable Code</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables><span>Unused Initialized Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables><span>Unused Variables</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch><span>Variable Capacity Mismatch</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision><span>WITH Scope Name Collision</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types><span>Internally used DotNet Types</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization><span>Internationalization</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate><span>Using Calcdate</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability><span>Localizability</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables><span>CaptionML on System Pages</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption><span>FIELDCAPTION and TABLECAPTION</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants><span>Global Text Constants</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants><span>Use Text Constants</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml><span>Using OptionCaptionML</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadability-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesreadability><span>Readability</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword><span>Begin as an 'After Word'</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end><span>Begin-End - Compound Only</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start><span>Binary Operator to Start Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines><span>Blank Lines</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions><span>CASE Action</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case><span>Colon usage in CASE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets><span>Comments inside Curly Brackets</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing><span>Comment Spacing</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair><span>END ELSE Pair</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation><span>Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords><span>Line Start Keywords</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat><span>Lonely Repeat</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations><span>Named Invocations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs><span>Nested WITHs</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line><span>One Statement Per Line</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else><span>Separate IF and ELSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators><span>Spacing Binary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and><span>Spacing Brackets and ::</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators><span>Spacing Unary Operators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations><span>Suggested Abbreviations</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming><span>Temporary Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes><span>TextConst Suffixes</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end><span>Unary Operator Line End</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis><span>Unnecessary Compound Parenthesis</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else><span>Unnecessary ELSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis><span>Unnecessary Function Parenthesis</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators><span>Unnecessary Separators</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse><span>Unnecessary TRUE/FALSE</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped><span>Variable Already Scoped</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming><span>Variable Naming</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order><span>Variables Declarations Order</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesux-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesux><span>UX</span></a>
|
||||
<ul class="ul-4 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/actions-images/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images><span>Actions - Images</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/confirm/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm><span>CONFIRM</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/fielderror/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror><span>FIELDERROR</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error-li>
|
||||
<a href=/docs/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error><span>MESSAGE and ERROR</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns4-get-involved-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns4-get-involved><span>(OLD) Get Involved</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedcode-of-conduct-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/code-of-conduct/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedcode-of-conduct><span>Code of Conduct</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedpatterns-authors-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/patterns-authors/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedpatterns-authors><span>Patterns Authors</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns-li>
|
||||
<a href=/docs/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns><span>Template for writing Nav Design Patterns</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternsrelated-links-li>
|
||||
<a href=/docs/navpatterns/related-links/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternsrelated-links><span>Related Links</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docscontributing-li>
|
||||
<a href=/docs/contributing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributing><span>Contributing</span></a>
|
||||
<ul class="ul-2 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingformattingtips-li>
|
||||
<a href=/docs/contributing/formattingtips/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingformattingtips><span>Formatting tips</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingforkandpr-li>
|
||||
<a href=/docs/contributing/forkandpr/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingforkandpr><span>Guide to Fork & PR</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docscontributingtemplates-li>
|
||||
<a href=/docs/contributing/templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributingtemplates><span>Templates</span></a>
|
||||
<ul class="ul-3 foldable">
|
||||
<li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatesguidelines-li>
|
||||
<a href=/docs/contributing/templates/guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatesguidelines><span>Title of the Guideline</span></a>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatespatterns-li>
|
||||
<a href=/docs/contributing/templates/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatespatterns><span>Title of the pattern</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtheapprovalprocess-li>
|
||||
<a href=/docs/contributing/theapprovalprocess/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtheapprovalprocess><span>Understanding the Approval Process</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</aside>
|
||||
<aside class="d-none d-xl-block col-xl-2 td-sidebar-toc d-print-none">
|
||||
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
|
||||
<a href=https://github.com/microsoft/alguidelines/tree/master/content/en/docs/NAVPatterns/patterns/blocked-entity/_index.md class=td-page-meta--view target=_blank rel=noopener><i class="fa fa-file-alt fa-fw"></i> View page source</a>
|
||||
<a href=https://github.com/microsoft/alguidelines/edit/master/content/en/docs/NAVPatterns/patterns/blocked-entity/_index.md class=td-page-meta--edit target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Edit this page</a>
|
||||
<a href="https://github.com/microsoft/alguidelines/new/master/content/en/docs/NAVPatterns/patterns/blocked-entity/_index.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" class=td-page-meta--child target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Create child page</a>
|
||||
<a href="https://github.com/microsoft/alguidelines/issues/new?title=Blocked%20Entity" class=td-page-meta--issue target=_blank rel=noopener><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
|
||||
<a href=https://github.com/microsoft/alguidelines/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
|
||||
</div>
|
||||
<div class=td-toc><nav id=TableOfContents>
|
||||
<ul>
|
||||
<li><a href=#abstract>Abstract</a></li>
|
||||
<li><a href=#description>Description</a></li>
|
||||
<li><a href=#usage>Usage</a>
|
||||
<ul>
|
||||
<li><a href=#boolean-implementation>Boolean Implementation</a></li>
|
||||
<li><a href=#option-field-implementation>Option-Field Implementation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href=#nav-specific-example>NAV Specific Example</a>
|
||||
<ul>
|
||||
<li><a href=#boolean-implementation-1>Boolean Implementation</a></li>
|
||||
<li><a href=#option-field-implementation-1>Option-Field Implementation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href=#nav-usages>NAV Usages</a></li>
|
||||
<li><a href=#related-topics>Related Topics</a></li>
|
||||
</ul>
|
||||
</nav></div>
|
||||
<div class="taxonomy taxonomy-terms-cloud taxo-tags">
|
||||
<h5 class=taxonomy-title>Tag Cloud</h5>
|
||||
<ul class=taxonomy-terms>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/c/al/ data-taxonomy-term=c/al><span class=taxonomy-label>C/AL</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/interface/ data-taxonomy-term=interface><span class=taxonomy-label>Interface</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/nav/ data-taxonomy-term=nav><span class=taxonomy-label>NAV</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/performance/ data-taxonomy-term=performance><span class=taxonomy-label>Performance</span><span class=taxonomy-count>2</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/tags/readability/ data-taxonomy-term=readability><span class=taxonomy-label>Readability</span><span class=taxonomy-count>18</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="taxonomy taxonomy-terms-cloud taxo-categories">
|
||||
<h5 class=taxonomy-title>Categories</h5>
|
||||
<ul class=taxonomy-terms>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/archived-pattern/ data-taxonomy-term=archived-pattern><span class=taxonomy-label>Archived Pattern</span><span class=taxonomy-count>1</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/best-practice/ data-taxonomy-term=best-practice><span class=taxonomy-label>Best Practice</span><span class=taxonomy-count>20</span></a></li>
|
||||
<li><a class=taxonomy-term href=https://alguidelines.dev/categories/pattern/ data-taxonomy-term=pattern><span class=taxonomy-label>Pattern</span><span class=taxonomy-count>3</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</aside>
|
||||
<main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main>
|
||||
<nav aria-label=breadcrumb class=td-breadcrumbs>
|
||||
<ol class=breadcrumb>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/>Docs</a>
|
||||
</li>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/>NAV Patterns Archive</a>
|
||||
</li>
|
||||
<li class=breadcrumb-item>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/patterns/>Patterns</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current=page>
|
||||
<a href=https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/>Blocked Entity</a>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class=td-content>
|
||||
<h1>Blocked Entity</h1>
|
||||
<header class=article-meta>
|
||||
</header>
|
||||
<p><em>Originally by Abhishek Ghosh at Microsoft Development Center Copenhagen</em></p>
|
||||
<h2 id=abstract>Abstract</h2>
|
||||
<p>The Blocked Entity is used when it is required to stop transactions for an entity (mostly master data), temporarily or permanently.</p>
|
||||
<p><a href=2260.BlockedEntityPattern.png><img src=2260.BlockedEntityPattern.png alt=" "></a></p>
|
||||
<h2 id=description>Description</h2>
|
||||
<p>To block entities through metadata, read this pattern. To do the same thing through data, read <a href=/navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity pattern</a>.</p>
|
||||
<p>The business entity holds a state that controls if a given transaction is allowed. The state is used by the logic controlling transactions. The change of state could either be temporary or permanent.</p>
|
||||
<p>An example of a temporary halt is when a retail chain selling items has received lot of complaints about an item, and the company wants to stop all transactions, both purchase and sale, with that item until the dealer has clarified the issue with his supplier and possibly received a replacement for the defective stock. Another common example is during counting the physical inventory using cycle counting where the counting is done in one section of a warehouse at a time, so that the regular operations can continue in the other parts of the warehouse. In these situations, it is necessary to block all transactions, such as picks and put-aways, for a bin while warehouse counting is in progress for that bin.</p>
|
||||
<p>In contrast, a permanent halt to transactions could be required when an item has become obsolete (or is about to become obsolete), and the company wants to stop further purchase or sale of the item. However, the company wants to maintain the transaction history of the item and, therefore, does not want to delete the item record.</p>
|
||||
<p>A simple design implementation of such requirements in Microsoft Dynamics NAV is to add a Blocked field in the entity table (and on the associated page). The implementation takes this state into the logic and checks for the value of this field in related transactions. For most simple scenarios, it is sufficient to have two states on the Blocked field, specifying whether it is allowed to perform transactions for the entity or not.</p>
|
||||
<p>In certain situations, however, there could be different levels of blocking. For example, the company could block all sales to a customer that has overdue payments, and the company does not want to allow transactions with this customer until the payments are received. In other situations, the customer may have raised objections about an invoice, and the company has decided not to generate new invoices for the customer until the issue has been resolved. However, the company does want to continue shipping goods to the customer so as not to impact the customer’s operations. In these scenarios, it may be necessary to have multiple states on the Blocked field depending on the level of restriction that is needed.</p>
|
||||
<h2 id=usage>Usage</h2>
|
||||
<p>As mentioned in the previous section, there are two implementations depending on business requirements: The 2-state Boolean field for simple implementations and the multi-state option field for more complex requirements. The implementation flow is similar for both patterns, except how the validation is implemented. The following discusses the two scenarios one by one.</p>
|
||||
<h3 id=boolean-implementation>Boolean Implementation</h3>
|
||||
<p>Add a Boolean field named Blocked in the table.</p>
|
||||
<p>In the relevant logic, add a condition to check the status of the Blocked flag. The cheapest way is to use a TESTFIELD:</p>
|
||||
<div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-AL data-lang=AL><rec<span style=color:#f8f8f8;text-decoration:underline> </span>variable\><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>TESTFIELD</span><span style=color:#ce5c00;font-weight:700>(</span>Blocked<span style=color:#000;font-weight:700>,</span>FALSE<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span></code></pre></div><p>Alternatively, you can throw a custom error message. However, you should only do that if the default error message thrown by TESTFIELD is not sufficient.</p>
|
||||
<h3 id=option-field-implementation>Option-Field Implementation</h3>
|
||||
<p>Add an option field named Blocked in the table. The option values will reflect the different blocked states required by the company.</p>
|
||||
<p>Add this field on the card page (or on the List page if the entity does not have a card). As with the Boolean implementation, the convention is to add this field in the right-hand column in the General FastTab of the card page.</p>
|
||||
<p>Implement a function in the table that takes the transaction context as input and evaluates the Blocked field to decide whether the transaction should be allowed or not. Optionally, the function can be responsible for notifying the user and bubble up an error message straight away.</p>
|
||||
<p>Note: the option field assumes that only one of the multiple options can be active at a time. In other words, the options should be mutually exclusive.</p>
|
||||
<p>How not to use the option field in this case: if we want to block an item from sale and/or purchase, the 4 combined options would be <strong>Block none</strong> | <strong>Block Sales</strong> | <strong>Block Purchases</strong> | <strong>Block Sales and Purchases</strong>. This doesn’t scale, because if now we need to block another transaction, the number of option would grow too fast. In this situations, it is better to use two Boolean fields: <strong>Blocked Sale</strong>: <strong>true|false</strong> and <strong>Blocked Purchase: true|false</strong>.</p>
|
||||
<p>A good example of usage would be for varying the behavior depending on the chosen option, for example by displaying a different error message depending on the reason an Item is blocked. In this case we can have the item <strong>Not Blocked</strong> | <strong>Blocked due to defect</strong> | <strong>Blocked waiting for approval</strong>, etc.</p>
|
||||
<h2 id=nav-specific-example>NAV Specific Example</h2>
|
||||
<h3 id=boolean-implementation-1>Boolean Implementation</h3>
|
||||
<p><a href=8637.BlockedEntityPattern_5F00_5F00_5F00_Boolean.png><img src=8637.BlockedEntityPattern_5F00_5F00_5F00_Boolean.png alt=" "></a></p>
|
||||
<p>An example of the Boolean implementation on the Item card.</p>
|
||||
<p>In codeunit 22 – Item Jnl.-Post Line, the following lines of code have implemented a check based on the value of the Blocked field:</p>
|
||||
<div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-AL data-lang=AL><span style=color:#204a87;font-weight:700>IF</span><span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>NOT</span><span style=color:#f8f8f8;text-decoration:underline> </span>CalledFromAdjustment<span style=color:#f8f8f8;text-decoration:underline> </span><span style=color:#204a87;font-weight:700>THEN</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span><span style=color:#f8f8f8;text-decoration:underline> </span>Item<span style=color:#ce5c00;font-weight:700>.</span><span style=color:#204a87;font-weight:700>TESTFIELD</span><span style=color:#ce5c00;font-weight:700>(</span>Blocked<span style=color:#000;font-weight:700>,</span>FALSE<span style=color:#ce5c00;font-weight:700>)</span><span style=color:#000;font-weight:700>;</span><span style=color:#f8f8f8;text-decoration:underline>
|
||||
</span></code></pre></div><h3 id=option-field-implementation-1>Option-Field Implementation</h3>
|
||||
<p><a href=3056.BlockedEntityPattern_5F00_5F00_5F00_Option.png><img src=3056.BlockedEntityPattern_5F00_5F00_5F00_Option.png alt=" "></a></p>
|
||||
<p>An example of the option field implementation on the Customer card.</p>
|
||||
<p>The CheckBlockedCustOnDocs and CheckBlockedCustOnJnls functions in the Customer table are responsible for validating the Blocked state with respect to the input document type. These functions are invoked in several areas, such as posting routines, where a status check on the Blocked field is required. This is a good practice where the Blocked implementation gets more complex, as this encourages reuse and ensures uniformity of implementation.</p>
|
||||
<h2 id=nav-usages>NAV Usages</h2>
|
||||
<p>Entities where the Blocked Entity has been implemented include:</p>
|
||||
<ul>
|
||||
<li>Item</li>
|
||||
<li>G/L Account</li>
|
||||
<li>Customer</li>
|
||||
<li>Vendor</li>
|
||||
<li>Bin</li>
|
||||
</ul>
|
||||
<h2 id=related-topics>Related Topics</h2>
|
||||
<p>The <a href=/navpatterns/1-patterns/released-entity/>Released Entity</a>.</p>
|
||||
<div style=position:relative;padding-bottom:56.25%;height:0;overflow:hidden>
|
||||
<iframe src=https://www.youtube.com/embed/O2R-fTSup1o style=position:absolute;top:0;left:0;width:100%;height:100%;border:0 allowfullscreen title="YouTube Video"></iframe>
|
||||
</div>
|
||||
<div class=section-index>
|
||||
<hr class=panel-line>
|
||||
<div class=entry>
|
||||
<h5>
|
||||
<a href=/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/>Data Driven Blocked Entity</a>
|
||||
</h5>
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-muted mt-5 pt-3 border-top">
|
||||
Last modified February 20, 2022: <a href=https://github.com/microsoft/alguidelines/commit/cceb0c945e0383599f497350ca254d5755edda65>Restructure for Docsy theme (cceb0c94)</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="bg-dark py-5 row d-print-none">
|
||||
<div class="container-fluid mx-sm-5">
|
||||
<div class=row>
|
||||
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
|
||||
<ul class="list-inline mb-0">
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub>
|
||||
<a class=text-white target=_blank rel=noopener href=https://github.com/microsoft/alguidelines aria-label=GitHub>
|
||||
<i class="fab fa-github"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Twitter aria-label=Twitter>
|
||||
<a class=text-white target=_blank rel=noopener href="https://twitter.com/search?q=%23bcalhelp" aria-label=Twitter>
|
||||
<i class="fab fa-twitter"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Discord aria-label=Discord>
|
||||
<a class=text-white target=_blank rel=noopener href=https://discord.gg/4wbfNv3 aria-label=Discord>
|
||||
<i class="fab fa-discord"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
|
||||
</div>
|
||||
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
|
||||
<small class=text-white>© 2022 alguidelines.dev Project All Rights Reserved</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src=https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js integrity=sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN crossorigin=anonymous></script>
|
||||
<script src=https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin=anonymous></script>
|
||||
<script src=/js/tabpane-persist.js></script>
|
||||
<script src=/js/main.min.46b25eb30e292e80e9e18facc285e194199cf26288c5a1735cda89fb827eba54.js integrity="sha256-RrJesw4pLoDp4Y+swoXhlBmc8mKIxaFzXNqJ+4J+ulQ=" crossorigin=anonymous></script>
|
||||
</body>
|
||||
</html>
|
||||
67
docs/navpatterns/patterns/blocked-entity/index.xml
Normal file
67
docs/navpatterns/patterns/blocked-entity/index.xml
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>alguidelines.dev - Business Central Design Patterns – Blocked Entity</title><link>https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/</link><description>Recent content in Blocked Entity on alguidelines.dev - Business Central Design Patterns</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Data Driven Blocked Entity</title><link>https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/</guid><description>
|
||||
<p><em>Written by Bogdan Andrei Sturzoiu, at Microsoft Development Center Copenhagen</em></p>
|
||||
<h2 id="abstract">Abstract</h2>
|
||||
<p>This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator.</p>
|
||||
<h2 id="problem">Problem</h2>
|
||||
<p>A NAV record can be used in a number of functionalities across the app. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as lift the restriction when it is no longer relevant.</p>
|
||||
<p>For example, a new customer record should not be used for posting documents until it is approved by the relevant approver.</p>
|
||||
<p>We could solve this by using the <a href="https://alguidelines.dev/navpatterns/1-patterns/blocked-entity/">Blocked Entity pattern</a>, but it requires database schema changes, which have an upgrade impact.</p>
|
||||
<p>The blocked entity pattern involves:</p>
|
||||
<ol>
|
||||
<li>Adding a &ldquo;blocked&rdquo; status field on the record (either a Boolean or in the more advanced cases, an option field refining the usage).</li>
|
||||
<li>Adding specific code for the record in every place where the restriction needs to be enforced.</li>
|
||||
</ol>
|
||||
<p>In contrast, the Data-driven Blocked Entity pattern involves adding a new record (data change) to mark the restriction, instead of adding a new field (metadata change).</p>
|
||||
<h2 id="solution">Solution</h2>
|
||||
<p>This pattern describes a generic mechanism of adding and lifting restrictions for any type of record.</p>
|
||||
<p>The restriction mechanism has the following elements:</p>
|
||||
<ol>
|
||||
<li>Adding a restriction record for a specific reason (e.g. the record requires approval), which will act as a surrogate key (unique identifier) for the restricted record. This can be implemented through a workflow response, or directly, by calling the Restriction Management codeunit function.</li>
|
||||
<li>Lifting the restriction when it is no longer necessary. Again, this can be done using a workflow response or directly by calling the dedicated function.</li>
|
||||
<li>Consuming the restriction in the places of interest for a specific purpose. This is an application feature that requires a call to the Restriction Management codeunit to check for restrictions.</li>
|
||||
</ol>
|
||||
<p>Currently, the restrictions are record-based and type-less. They act as simple tokens, and they have:</p>
|
||||
<ul>
|
||||
<li>A reason (e.g. the record requires approval)</li>
|
||||
<li>A purpose (e.g. the record cannot be posted).</li>
|
||||
</ul>
|
||||
<p>You must make sure to differentiate between the reason and the purpose. That is because the restriction can only be added once per record, but consumed in multiple places.</p>
|
||||
<h2 id="example">Example</h2>
|
||||
<p>For example, we want to restrict posting Gen. Journal Lines if a customer has not been added in Account No. field.</p>
|
||||
<p>For this, the following components are needed:</p>
|
||||
<ol>
|
||||
<li>When a Gen. Journal Line is inserted, call RestrictRecordUsage in COD1550, either directly in the trigger or using an event subscriber.</li>
|
||||
<li>When you validate a Customer No. as Account no. and Customer as Account Type, lift the restrictions by calling AllowRecordUsage in COD1550.</li>
|
||||
<li>The consumption of the restriction at posting is already implemented as an event in TAB81, OnCheckGenJournalLinePostRestrictions. No further action necessary.</li>
|
||||
</ol>
|
||||
<h2 id="nav-usage">NAV Usage</h2>
|
||||
<p>All the approval workflows include a response that restricts usage of a record, and then, at the end of an approval loop, a response that allows the usage again by lifting the restriction. See responses &ldquo;Add record restriction&rdquo; and &ldquo;Remove record restriction&rdquo; implemented in COD1521.<a href="https://microsoft.sharepoint.com/teams/DynamicsNAV/Wiki/Nav%20Wiki%20Documents/NAV%20App%20Patterns/NAV%20App%20Patterns%20for%20Review/Data-Driven%20Blocked%20Entity.docx#_msocom_2"><br>
|
||||
</a></p>
|
||||
<p>The code behind the &ldquo;Add record restriction&rdquo; workflow response:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-AL" data-lang="AL">RecRef<span style="color:#ce5c00;font-weight:bold">.</span>GETTABLE<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Variant</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>Workflow<span style="color:#ce5c00;font-weight:bold">.</span>GET<span style="color:#ce5c00;font-weight:bold">(</span>WorkflowStepInstance<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Workflow Code&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>RecordRestrictionMgt<span style="color:#ce5c00;font-weight:bold">.</span>RestrictRecordUsage<span style="color:#ce5c00;font-weight:bold">(</span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">RECORDID</span><span style="color:#000;font-weight:bold">,</span>STRSUBSTNO<span style="color:#ce5c00;font-weight:bold">(</span>RestrictUsageDetailsTxt<span style="color:#000;font-weight:bold">,</span>Workflow<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">Code</span><span style="color:#000;font-weight:bold">,</span>Workflow<span style="color:#ce5c00;font-weight:bold">.</span>Description<span style="color:#ce5c00;font-weight:bold">))</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span></code></pre></div><p>The code behind the &ldquo;Remove record restriction&rdquo; response:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-AL" data-lang="AL">RecRef<span style="color:#ce5c00;font-weight:bold">.</span>GETTABLE<span style="color:#ce5c00;font-weight:bold">(</span><span style="color:#204a87;font-weight:bold">Variant</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">CASE</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span>NUMBER<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">OF</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DATABASE</span><span style="color:#000;font-weight:bold">::</span>&#34;Approval Entry&#34;<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecordRestrictionMgt<span style="color:#ce5c00;font-weight:bold">.</span>AllowRecordUsage<span style="color:#ce5c00;font-weight:bold">(</span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">RECORDID</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span>SETTABLE<span style="color:#ce5c00;font-weight:bold">(</span>ApprovalEntry<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span>GET<span style="color:#ce5c00;font-weight:bold">(</span>ApprovalEntry<span style="color:#ce5c00;font-weight:bold">.</span>&#34;Record ID to Approve&#34;<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>AllowRecordUsage<span style="color:#ce5c00;font-weight:bold">(</span>RecRef<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">DATABASE</span><span style="color:#000;font-weight:bold">::</span>&#34;Gen. Journal Batch&#34;<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">BEGIN</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span>SETTABLE<span style="color:#ce5c00;font-weight:bold">(</span>GenJournalBatch<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecordRestrictionMgt<span style="color:#ce5c00;font-weight:bold">.</span>AllowGenJournalBatchUsage<span style="color:#ce5c00;font-weight:bold">(</span>GenJournalBatch<span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ELSE</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>RecordRestrictionMgt<span style="color:#ce5c00;font-weight:bold">.</span>AllowRecordUsage<span style="color:#ce5c00;font-weight:bold">(</span>RecRef<span style="color:#ce5c00;font-weight:bold">.</span><span style="color:#204a87;font-weight:bold">RECORDID</span><span style="color:#ce5c00;font-weight:bold">)</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">END</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span></code></pre></div><p>Notice how lifting a restriction for a Gen. Journal Batch involves lifting all the restrictions for the individual journal lines in the batch (hence the special branching of the code).</p>
|
||||
<h2 id="consequences">Consequences</h2>
|
||||
<p>Currently, there can only be one restriction per record. There are no restriction types.</p>
|
||||
<p>In the future, a type field should be added to the restriction table, to allow adding restrictions for different purposes, and to refine their consumption. For example, a posting restriction might only be enforced for restrictions originating from approvals.</p>
|
||||
<h2 id="nav-versions">NAV Versions</h2>
|
||||
<p>This pattern has been introduced in Dynamics NAV 2016.</p></description></item></channel></rss>
|
||||
Loading…
Add table
Add a link
Reference in a new issue