deploy: 8f41c13f0f
This commit is contained in:
parent
b46ee5b225
commit
e9d640d50a
164 changed files with 12201 additions and 3918 deletions
|
|
@ -2,20 +2,23 @@
|
|||
Abstract The Blocked Entity is used when it is required to stop transactions for an entity (mostly master data), temporarily or permanently.
|
||||
Description To block entities through metadata, read this pattern. To do the same thing through data, read Data Driven Blocked Entity pattern.
|
||||
The business entity holds a state that controls if a given transaction is allowed. The state is used by the logic controlling transactions.</description></item><item><title>NET Exception Handling in CAL</title><link>https://alguidelines.dev/navpatterns/1-patterns/net-exception-handling-in-cal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/net-exception-handling-in-cal/</guid><description>Originally by Mostafa Balat, Microsoft Development Center Copenhagen
|
||||
Abstract When there is a need to use .NET classes within C/AL, one of the main challenges is to handle the exceptions the methods of these .NET classes may throw. Eventually, if not handled, they will basically bubble up as runtime errors, halting the current operation a user is doing without having a chance to properly display errors in a user-friendly format.</description></item><item><title>Notifications</title><link>https://alguidelines.dev/navpatterns/1-patterns/notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/notifications/</guid><description>A collection of patterns about notifications.</description></item><item><title>Queries</title><link>https://alguidelines.dev/navpatterns/1-patterns/queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/queries/</guid><description>Expand to see NAV design patterns which use queries.</description></item><item><title>Singleton</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/</guid><description>Singleton By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
**Context: The pattern described in this article applies to Dynamics NAV only. For the general definition of the Singleton pattern, see for example this link.
|
||||
**
|
||||
Abstract When there is a need to use .NET classes within C/AL, one of the main challenges is to handle the exceptions the methods of these .NET classes may throw. Eventually, if not handled, they will basically bubble up as runtime errors, halting the current operation a user is doing without having a chance to properly display errors in a user-friendly format.</description></item><item><title>Notifications</title><link>https://alguidelines.dev/navpatterns/1-patterns/notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/notifications/</guid><description>A collection of patterns about notifications.</description></item><item><title>Queries</title><link>https://alguidelines.dev/navpatterns/1-patterns/queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/queries/</guid><description>Expand to see NAV design patterns which use queries.</description></item><item><title>Security</title><link>https://alguidelines.dev/navpatterns/1-patterns/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/security/</guid><description>By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Security patterns for NAV Problem statement When sensitive data is stored inside the Dynamics NAV database, if negligently handled, it can become vulnerable. Particularly, the location, access and the state of the data are critical.
|
||||
Use the following patterns to enhance security on your NAV system.
|
||||
Sensitive Data Encapsulation Data Encryption Single Point of Access Masked Text SSL in NAV</description></item><item><title>Singleton</title><link>https://alguidelines.dev/navpatterns/1-patterns/singleton/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/singleton/</guid><description>By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Context: The pattern described in this article applies to Dynamics NAV only. For the general definition of the Singleton pattern, see for example this link.
|
||||
Problem: As a C/AL developer, you need to coordinate action (through a codeunit) or store information (in a table) that is unique across the system.
|
||||
Forces:
|
||||
Lost reference to centralizer: An instance of a relevant object could attempt to centralize control or data in the system.</description></item><item><title>Activity Logs</title><link>https://alguidelines.dev/navpatterns/1-patterns/activity-log/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/activity-log/</guid><description>Originally by Ciprian Iordache at Microsoft Development Center Copenhagen
|
||||
Activity Log Abstract
|
||||
The Activity Log pattern tracks execution of activities. This is a Dynamics NAV specific implementation of the Audit Log pattern.
|
||||
Problem
|
||||
In general, integrating with external systems can be very challenging, due to the complexity of the situation &ndash; connectivity issues, asynchronous operations, user errors, etc. These challenges require sometimes re-trying several times, polling the external system, re-send/re-get data as all these activities can succeed but can very well fail.</description></item><item><title>Argument Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/argument-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/argument-table/</guid><description>Argument table pattern Originally By Nikola Kukrika and waldo
|
||||
In general, integrating with external systems can be very challenging, due to the complexity of the situation &ndash; connectivity issues, asynchronous operations, user errors, etc. These challenges require sometimes re-trying several times, polling the external system, re-send/re-get data as all these activities can succeed but can very well fail.</description></item><item><title>Argument Table</title><link>https://alguidelines.dev/navpatterns/1-patterns/argument-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/argument-table/</guid><description>Originally By Nikola Kukrika and waldo
|
||||
Abstract The Argument Table pattern is used to provide an extension point for adding new arguments without changing the signature. By grouping multiple arguments into a table the code becomes more readable (function signature and the usage of the function).
|
||||
Problem In CAL overloading function signature is not supported. It is also not possible to provide default values for the function arguments.</description></item><item><title>Cached Web Server Calls</title><link>https://alguidelines.dev/navpatterns/1-patterns/cached-web-service-calls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/cached-web-service-calls/</guid><description>Originally by Mostafa Balat, Microsoft Development Center Copenhagen
|
||||
Problem In CAL overloading function signature is not supported. It is also not possible to provide default values for the function arguments.
|
||||
When an argument needs to be added to the function, the existing function needs to be extracted to a new method with an additional argument and the original function will call new method.</description></item><item><title>Cached Web Server Calls</title><link>https://alguidelines.dev/navpatterns/1-patterns/cached-web-service-calls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/cached-web-service-calls/</guid><description>Originally by Mostafa Balat, Microsoft Development Center Copenhagen
|
||||
Abstract In a service-oriented deployment, web services are used to extend NAV&rsquo;s functionality and reach. Depending on how volatile this data is and the corresponding usage scheme, it is expected to be up-to-date within a pre-defined period of time (e.g. once a day).
|
||||
Description When NAV is integrated with external services, then the user scenarios become dependent on the data and functions offered by such services.</description></item><item><title>Conditional Cascading Update</title><link>https://alguidelines.dev/navpatterns/1-patterns/conditional-cascading-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/conditional-cascading-update/</guid><description>_Originally by Jan Hoek at IDYN _
|
||||
Description When NAV is integrated with external services, then the user scenarios become dependent on the data and functions offered by such services.</description></item><item><title>Conditional Cascading Update</title><link>https://alguidelines.dev/navpatterns/1-patterns/conditional-cascading-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/conditional-cascading-update/</guid><description>Originally by Jan Hoek at IDYN
|
||||
Abstract The Conditional Cascading Update pattern is used to intelligently populate fields whose values depend on other field values. In this pattern description, the field triggering the update will be called &ldquo;source field&rdquo;, and the depending field will be called &ldquo;target field&rdquo;.
|
||||
Description The value of one table field sometimes depends on the value of another field, typically following an application-defined transformation (note that we&rsquo;re talking about transformations of field values here.</description></item><item><title>Copy Document</title><link>https://alguidelines.dev/navpatterns/1-patterns/copy-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/copy-document/</guid><description>By Bogdan Sturzoiu at Microsoft Development Center Copenhagen
|
||||
Abstract The goal of the Copy Document pattern is to create a replica of an existing open or closed document (posted or not posted), by moving the lines and, optionally, the header information from the source document to a destination document.
|
||||
|
|
@ -30,7 +33,7 @@ Abstract Track things that happen in other NAV Sessions.
|
|||
Problem In Microsoft Dynamics NAV you can fire a function whenever something changes within your session (and from NAV 2016 this is even easier with the new Event model), however there is not an easy way to know what is happening in other sessions. Sometimes you would like to know what has happened since your last read, without reading everything again, e.</description></item><item><title>Currently Active Record</title><link>https://alguidelines.dev/navpatterns/1-patterns/currently-active-record/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/currently-active-record/</guid><description>Authors: Henrik Langbak and Kim Ginnerup, Bording Data
|
||||
Abstract Date controlled data is expensive to find in the database. This pattern describes how using a view with a sub-select and a linked table object will minimize the returned dataset.
|
||||
A side effect is reduced and simplified code, increased performance and a more scalable solution that is almost independent of the amount of records in the table.
|
||||
Description There is no way in NAV to get a set of records from the database, which all have the newest starting date, that is less than or equal to today&rsquo;s date.</description></item><item><title>Data Migration Facade</title><link>https://alguidelines.dev/navpatterns/1-patterns/data-migration-facade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/data-migration-facade/</guid><description>Data Migration Façade By David Bastide and Soumya Dutta at Microsoft Development Center Copenhagen
|
||||
Description There is no way in NAV to get a set of records from the database, which all have the newest starting date, that is less than or equal to today&rsquo;s date.</description></item><item><title>Data Migration Façade</title><link>https://alguidelines.dev/navpatterns/1-patterns/data-migration-facade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/data-migration-facade/</guid><description>By David Bastide and Soumya Dutta at Microsoft Development Center Copenhagen
|
||||
Context: This pattern is describing how you can migrate data using the Data Migration Façade.
|
||||
Problem: Writing migration code from an external source, such as a product from a competitor, can be time consuming, as you need to tackle the problems of what to migrate, in which order, exception handling&hellip; and can result in code that is fragile due to deep dependencies on the NAV data model (high coupling).</description></item><item><title>Discovery Event</title><link>https://alguidelines.dev/navpatterns/1-patterns/discovery-event/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/discovery-event/</guid><description>by waldo
|
||||
Abstract The &ldquo;Discovery Event&rdquo; pattern is a way for a generic functionality, to call out to other functionalities that want to make use of it, by raising an event, so that they have an event to subscribe to. This is usually done to set itself up within the generic app.
|
||||
|
|
@ -49,19 +52,19 @@ Description The Dynamics 365 Business Central release (April 2018) introduces a
|
|||
Abstract This pattern shows a solution for integrating W1 features to pre-existing country features that use different tables to achieve similar functionality.
|
||||
Description It sometimes happens that certain features are requested in a NAV-supported country, but they are not initially considered generic enough to be included in the W1 build. This is how local features, such as Subcontracting in Italy and India, were created or specific banking and payments functionality in Italy, France, Spain, and others.</description></item><item><title>Hooks</title><link>https://alguidelines.dev/navpatterns/1-patterns/hooks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/hooks/</guid><description>By Eric Wauters (waldo), Partner-Ready-Software
|
||||
Abstract As a partner, adding new code to NAV means interfering with code shipped by Microsoft. Minimize your footprint of changes in Microsoft code, so that, when a new NAV version is shipped, you avoid conflicts and upgrade impact. The core NAV code is the &ldquo;danger zone&rdquo; - the less you touch it, the happier your upgrade will be.
|
||||
Description
|
||||
When doing development over years, by different developers with different mindsets, the standard codebase gets changed a lot, adding multiple lines of code, adding local and global variants, adding or changing keys, changing existing business logic, &hellip; .</description></item><item><title>Surrogate keys using Autoincrement Pattern</title><link>https://alguidelines.dev/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/</guid><description>By Soren Klemmensen, Partner-Ready-Software &amp; 360 Visibility
|
||||
Description When doing development over years, by different developers with different mindsets, the standard codebase gets changed a lot, adding multiple lines of code, adding local and global variants, adding or changing keys, changing existing business logic, &hellip; .</description></item><item><title>Surrogate keys using Autoincrement Pattern</title><link>https://alguidelines.dev/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/</guid><description>By Soren Klemmensen, Partner-Ready-Software &amp; 360 Visibility
|
||||
Abstract This Pattern is meant to create generic &amp; reusable links between tables. The goal is to have an easy generic way to link a generically designed sub table to a record on a main table which can be used for other links too.
|
||||
To minimize the impact of customizations and to keep modules as generic and reusable as possible the idea of the Implementation of surrogate keys using AutoIncrement pattern is:</description></item><item><title>Instructions in the UI</title><link>https://alguidelines.dev/navpatterns/1-patterns/instructions-in-the-ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/instructions-in-the-ui/</guid><description>Originally by Nikola Kukrika at Microsoft Development Center Copenhagen
|
||||
Abstract To mitigate usability problems with learnability or discoverability of NAV functionality, it is possible to embed instructions in the UI in connection with the task that the user is performing. The goal is to explain how to use the product or feature without impairing the user&rsquo;s productivity after user has learned how to use a feature.
|
||||
Description Users must often go through a few days of training to learn how to use NAV, and even then, many users rely on super users to help them mitigate difficulties using NAV.</description></item><item><title>Integration of Addresses</title><link>https://alguidelines.dev/navpatterns/1-patterns/integration-of-addresses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/integration-of-addresses/</guid><description>watch?v=60Wrx9N gfY&amp;list=PLhZ3P LY7CqmVszuvtJLujFyHpsVN0Uw&amp;index=19</description></item><item><title>Journal Error Processing</title><link>https://alguidelines.dev/navpatterns/1-patterns/journal-error-processing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/journal-error-processing/</guid><description>Originally by Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Description Users must often go through a few days of training to learn how to use NAV, and even then, many users rely on super users to help them mitigate difficulties using NAV.</description></item><item><title>Integration of Addresses</title><link>https://alguidelines.dev/navpatterns/1-patterns/integration-of-addresses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/integration-of-addresses/</guid><description/></item><item><title>Journal Error Processing</title><link>https://alguidelines.dev/navpatterns/1-patterns/journal-error-processing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/journal-error-processing/</guid><description>Originally by Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern describes an optimized way to handle invalid, incomplete, or inconsistent data that users enter in journals.
|
||||
Description Scenario: A user has entered data on a journal line and proceeds to invoke a processing action on it, such as posting or exporting to electronic payments. NAV validates the data before it is committed. If any validation errors are found, the user must be informed of validation errors in the most optimal way.</description></item><item><title>Journal Template Batch Line</title><link>https://alguidelines.dev/navpatterns/1-patterns/journal-template-batch-line/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/journal-template-batch-line/</guid><description>Originally by Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
Abstract The role of a journal line is to temporarily hold transaction data until the transaction is posted. Before posting, the entries are in a draft state, which means that they are available for corrections and/or deletion. As soon as the entries are posted, they are converted to ledger entries.
|
||||
Journal templates are used to specify the underlying journal structure and to provide the default information for the journal batches.</description></item><item><title>Master Data</title><link>https://alguidelines.dev/navpatterns/1-patterns/master-data/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/master-data/</guid><description>By Soren Klemmensen, Partner-Ready-Software &amp; 360 Visibility
|
||||
Abstract The goal of this design pattern is to outline a standard way of creating master data, such as customers, vendors or items, in NAV.
|
||||
Description This pattern creates a standard master data entity, listing all necessary prerequisites, attributes and methods to generate a basic version of the data entity.
|
||||
It is being used for creating a master data entity and can roughly be divided into 2 categories: Business and Product</description></item><item><title>Multi-file Download</title><link>https://alguidelines.dev/navpatterns/1-patterns/multi-file-download/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/multi-file-download/</guid><description>By Martin Dam at Microsoft Development Center Copenhagen Abstract The goal of this pattern is to enable the users to download multiple files as a zip file instead of downloading one by one. On the Web Client this is preferred way of delivering multiple files since it is one of the web patterns and we cannot use File Management code unit to place files silently on the machine.
|
||||
It is being used for creating a master data entity and can roughly be divided into 2 categories: Business and Product</description></item><item><title>Multi-file Download</title><link>https://alguidelines.dev/navpatterns/1-patterns/multi-file-download/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/multi-file-download/</guid><description>By Martin Dam at Microsoft Development Center Copenhagen
|
||||
Abstract The goal of this pattern is to enable the users to download multiple files as a zip file instead of downloading one by one. On the Web Client this is preferred way of delivering multiple files since it is one of the web patterns and we cannot use File Management code unit to place files silently on the machine.
|
||||
Description When generating reports that consists of multiple, and usually an unknown number of files, the developer will have to handle the download which also depends on the client the user is on.</description></item><item><title>Multi-Page List</title><link>https://alguidelines.dev/navpatterns/1-patterns/multi-page-list/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/multi-page-list/</guid><description>By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
__
|
||||
Abstract This pattern describes how to open a related document (or card) page from a list page, for the case when there can be more than one pages associated to the rows of the list page.
|
||||
|
|
@ -69,14 +72,13 @@ Description The example below illustrates the connection of a List Page with mul
|
|||
Abstract Generally, NAV translation refers to the translation of UI elements like captions and user texts (messages on dialogs, warnings, error messages). This translation is done by the Microsoft Dynamics NAV team before releasing the localized version of the product.
|
||||
But there is one more scenario. In this scenario, Cronus International Ltd., wants to sell a &ldquo;Fiets&rdquo; to a Dutch customer, a&quot;Cykel&quot; to a Danish one, and a &ldquo;Bicicletta&rdquo; to an Italian customer.</description></item><item><title>No Series</title><link>https://alguidelines.dev/navpatterns/1-patterns/no-series/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/no-series/</guid><description>By Bogdana Botez, at Microsoft Development Center Copenhagen
|
||||
Abstract Number series assignment is widely used in Microsoft Dynamics NAV to automatically assign unique numbers to data entries.
|
||||
Description Documents and entities of any type (invoices, orders, customers, inventory items etc) are usually assigned an unique number, which can be later referenced whenever that particular entry needs to be consulted. When a new data entry is created, NAV implements the possibility to auto-assign a new number for this entry.</description></item><item><title>Observer</title><link>https://alguidelines.dev/navpatterns/1-patterns/observer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/observer/</guid><description>By Nikolai L&rsquo;Estrange, from TVision Technology Ltd. in the UK_ _
|
||||
Description Documents and entities of any type (invoices, orders, customers, inventory items etc) are usually assigned an unique number, which can be later referenced whenever that particular entry needs to be consulted. When a new data entry is created, NAV implements the possibility to auto-assign a new number for this entry.</description></item><item><title>Observer</title><link>https://alguidelines.dev/navpatterns/1-patterns/observer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/observer/</guid><description>By Nikolai L&rsquo;Estrange, from TVision Technology Ltd. in the UK _
|
||||
Abstract Track all record changes against a defined table or set of tables.
|
||||
Problem Microsoft Dynamics NAV has the built in ability to track all record changes against any table, however it does not always fire the triggers for every table.
|
||||
Solution Create a setup table to define which other tables you want to track changes for, and optionally what triggers you want to fire, then link this up to the standard triggers in Codeunit 1.</description></item><item><title>Posting Routine - Select Behavior</title><link>https://alguidelines.dev/navpatterns/1-patterns/posting-routine-select-behavior/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/posting-routine-select-behavior/</guid><description>By waldo
|
||||
Abstract Send information (parameters) to a processing framework/routine so that it knows what to do, how to behave.
|
||||
Description For a processing routine to behave correctly, it needs sometimes input of a user to know what it has to do, check or avoid doing. To do this, usually a piece of UI is getting called (STRMENU) with the question what to do. These input needs to get to the routine.</description></item><item><title>Product Name</title><link>https://alguidelines.dev/navpatterns/1-patterns/product-name/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/product-name/</guid><description>Abstract On many occasions, it&rsquo;s needed to refer to the product name in messages or errors. It&rsquo;s not a good practice to hardcode the brand name like Dynamics NAV 2017, and change this value with each rebranding. You can use client ProductName System Object instead to refer to the product name.
|
||||
Problem When you want to refer to product name in informational messages or errors, it&rsquo;s not a good practice to hardcode the brand name, as this requires changing this text when a rebranding happens.</description></item><item><title>Read-once Initialization and Validation</title><link>https://alguidelines.dev/navpatterns/1-patterns/read-once-initialization-and-validation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/read-once-initialization-and-validation/</guid><description>By Tim Grant**
|
||||
**
|
||||
Problem When you want to refer to product name in informational messages or errors, it&rsquo;s not a good practice to hardcode the brand name, as this requires changing this text when a rebranding happens.</description></item><item><title>Read-once Initialization and Validation</title><link>https://alguidelines.dev/navpatterns/1-patterns/read-once-initialization-and-validation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/read-once-initialization-and-validation/</guid><description>By Tim Grant
|
||||
Abstract One time query and validation of a setup table.
|
||||
Description Firstly identifies if a setup table record is in memory, removing the need to execute and validate the re-query again within a code unit. (From NAV 2013+ service tier database caching exists).
|
||||
If you need to query a setup table, but not sure if the table is yet in memory from earlier code, this helps to determine this call (see Singleton Table pattern).</description></item><item><title>Released Entity</title><link>https://alguidelines.dev/navpatterns/1-patterns/released-entity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/released-entity/</guid><description>Authors: Henrik Langbak and Kim Ginnerup, Bording Data
|
||||
|
|
@ -86,25 +88,18 @@ Description Whenever you need to stall the release of data, you can use this pat
|
|||
Group 1: Dale Gauci &amp; Kimberly Congleton
|
||||
Group 2: Jens Winberg, Tim Grant, Alen Tot
|
||||
Thanks to Tim Grant who had merged the two patterns, corrected, sent for review and finalized them.
|
||||
Meet the Pattern It should be possible to change which document report object should be used when printing. This configuration can be stored in one place (Report Selection) and available at configuration time.</description></item><item><title>Security</title><link>https://alguidelines.dev/navpatterns/1-patterns/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/security/</guid><description>**Security patterns for NAV **
|
||||
By Bogdana Botez at Microsoft Development Center Copenhagen
|
||||
**** Problem statement When sensitive data is stored inside the Dynamics NAV database, if negligently handled, it can become vulnerable. Particularly, the location, access and the state of the data are critical.
|
||||
Use the following patterns to enhance security on your NAV system.
|
||||
Sensitive Data Encapsulation Data Encryption Single Point of Access Masked Text SSL in NAV</description></item><item><title>Setup Specificity Fallback</title><link>https://alguidelines.dev/navpatterns/1-patterns/setup-specificity-fallback/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/setup-specificity-fallback/</guid><description>By Jan Hoek at IDYN
|
||||
Meet the Pattern It should be possible to change which document report object should be used when printing. This configuration can be stored in one place (Report Selection) and available at configuration time.</description></item><item><title>Setup Specificity Fallback</title><link>https://alguidelines.dev/navpatterns/1-patterns/setup-specificity-fallback/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/setup-specificity-fallback/</guid><description>By Jan Hoek at IDYN
|
||||
Abstract The Setup Specificity Fallback pattern allows users to efficiently define a potentially complex setup in terms of rules and exceptions to these rules, exceptions to the exceptions, etc.
|
||||
**Description **
|
||||
The pattern involves a setup table with a compound (i.e. consisting of more than one field) primary key, where each record in the table maps a combination of primary key values to a particular setup value.</description></item><item><title>Silent File Upload and Download</title><link>https://alguidelines.dev/navpatterns/1-patterns/silent-file-upload-and-download/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/silent-file-upload-and-download/</guid><description>By Bogdana Botez, at Microsoft Development Center Copenhagen
|
||||
Description The pattern involves a setup table with a compound (i.e. consisting of more than one field) primary key, where each record in the table maps a combination of primary key values to a particular setup value.</description></item><item><title>Silent File Upload and Download</title><link>https://alguidelines.dev/navpatterns/1-patterns/silent-file-upload-and-download/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/silent-file-upload-and-download/</guid><description>By Bogdana Botez, at Microsoft Development Center Copenhagen
|
||||
Abstract This pattern is about silently handing file transfers between NAV Service Tier and the NAV client. By &ldquo;silently&rdquo; we mean: without showing a dialog box at upload or download time.
|
||||
Description As a terminology clarification [1], note that both &ldquo;upload&rdquo; and &ldquo;download&rdquo; are named as seen from the client&rsquo;s point of view:
|
||||
Download&quot; defines transferring a file from the server to the client.</description></item><item><title>Standard Journal</title><link>https://alguidelines.dev/navpatterns/1-patterns/standard-journal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/standard-journal/</guid><description>By Bogdana Botez, at Microsoft Development Center Copenhagen
|
||||
Meet the Standard Journal pattern, which gives the NAV user the advantage of storing transaction details and reusing them multiple times at later dates. For example, this is how to pay a monthly bill.
|
||||
Abstract If the journal data can be reused later, the user has the possibility to save the current temporary transaction details. One example can be the case of monthly electricity payments.</description></item><item><title>Temporary Dataset Report</title><link>https://alguidelines.dev/navpatterns/1-patterns/temporary-dataset-report/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/temporary-dataset-report/</guid><description>Originally by Abhishek Ghosh, at Microsoft Development Center Copenhagen
|
||||
Abstract
|
||||
This pattern generates the data to be displayed dynamically by combing/processing several data sources. It then displays the resulting dataset without writing to the database.
|
||||
Description
|
||||
While writing reports in NAV, we have the luxury of using a built-in iterator. So, once we define the dataitem and the ordering, the runtime takes care of the iteration.
|
||||
Abstract This pattern generates the data to be displayed dynamically by combing/processing several data sources. It then displays the resulting dataset without writing to the database.
|
||||
Description While writing reports in NAV, we have the luxury of using a built-in iterator. So, once we define the dataitem and the ordering, the runtime takes care of the iteration.
|
||||
The iterator has one shortcoming: It can only run through records written into the database.</description></item><item><title>Totals and Discounts on Subpages Sales and Purchases</title><link>https://alguidelines.dev/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/</guid><description>By Nikola Kukrika at Microsoft Development Center Copenhagen
|
||||
Abstract To increase discoverability and productivity, critical information, such as statistics, can be moved from separate pages onto the document where it is needed.
|
||||
For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document.</description></item><item><title>Transfer Custom Fields</title><link>https://alguidelines.dev/navpatterns/1-patterns/transfer-custom-fields/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/transfer-custom-fields/</guid><description>watch?v=cGaBqwfGCws&amp;list=PLhZ3P LY7CqmVszuvtJLujFyHpsVN0Uw&amp;index=9</description></item><item><title>Variant Facade</title><link>https://alguidelines.dev/navpatterns/1-patterns/variant-facade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/variant-facade/</guid><description>Variant Façade By Nikola Kukrika, waldo and Gary Winter
|
||||
For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document.</description></item><item><title>Transfer Custom Fields</title><link>https://alguidelines.dev/navpatterns/1-patterns/transfer-custom-fields/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/transfer-custom-fields/</guid><description/></item><item><title>Variant Facade</title><link>https://alguidelines.dev/navpatterns/1-patterns/variant-facade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/navpatterns/1-patterns/variant-facade/</guid><description>By Nikola Kukrika, waldo and Gary Winter
|
||||
Abstract The Variant façade provides a single interface that can take any Record, RecordRef or RecordID as an argument. With this pattern the code is encapsulated within the single object, with clear separation between common and table specific code.
|
||||
Problem Since NAV is strongly typed, developers often need to duplicate functionality in order to add support for a new table.</description></item></channel></rss>
|
||||
Problem Since NAV is strongly typed, developers often need to duplicate functionality in order to add support for a new table. The developer would typically start by duplicating the function, changing the record type and implement slight modifications to the code if needed.</description></item></channel></rss>
|
||||
Loading…
Add table
Add a link
Reference in a new issue