From b426977b4285053cc5fd3d60ac711710d31baad1 Mon Sep 17 00:00:00 2001 From: christianbraeunlich Date: Sat, 5 Feb 2022 19:55:53 +0100 Subject: [PATCH] formatted \[ to [ and \] to ] --- .../create-data-from-templates/index.md | 4 +-- .../create-urls-to-nav-clients/index.md | 2 +- .../creating-custom-charts/index.md | 2 +- .../1-patterns/data-migration-facade/index.md | 2 +- .../index.md | 2 +- .../index.md | 4 +-- .../1-sensitive-data-encapsulation/index.md | 30 +++++++++---------- .../security/2-data-encryption/index.md | 24 +++++++-------- .../3-single-point-of-access/index.md | 30 +++++++++---------- .../security/4-masked-text/index.md | 24 +++++++-------- .../1-patterns/security/5-ssl-in-nav/index.md | 26 ++++++++-------- .../silent-file-upload-and-download/index.md | 16 +++++----- .../singleton-table/setup-table/index.md | 2 +- .../global-text-constants/index.md | 4 +-- .../readability/spacing-brackets-and/index.md | 2 +- 15 files changed, 87 insertions(+), 87 deletions(-) diff --git a/content/NAVPatterns/1-patterns/create-data-from-templates/index.md b/content/NAVPatterns/1-patterns/create-data-from-templates/index.md index d0d6366d..9ecad138 100644 --- a/content/NAVPatterns/1-patterns/create-data-from-templates/index.md +++ b/content/NAVPatterns/1-patterns/create-data-from-templates/index.md @@ -63,7 +63,7 @@ MiniDimensionsTemplate.InsertDimensionsFromTemplates(ConfigTemplateHeader,Custom Code to insert related templates (dimensions): ```al -FUNCTION InsertDimensionsFromTemplates(ConfigTemplateHeader : Record "Config. Template Header";MasterRecordNo : Code\[20\];TableID : Integer) +FUNCTION InsertDimensionsFromTemplates(ConfigTemplateHeader : Record "Config. Template Header";MasterRecordNo : Code[20];TableID : Integer) // There are multiple records (multiple dimensions per master record) // We have to set filter @@ -80,7 +80,7 @@ FUNCTION InsertDimensionsFromTemplates(ConfigTemplateHeader : Record "Config. Te UNTIL ConfigTemplateLine.NEXT = 0; // Create a new Dimensions Record and link it to the Master Record -FUNCTION InsertDimensionFromTemplate(ConfigTemplateHeader : Record "Config. Template Header";MasterRecordNo : Code\[20\];TableID : Integer) +FUNCTION InsertDimensionFromTemplate(ConfigTemplateHeader : Record "Config. Template Header";MasterRecordNo : Code[20];TableID : Integer) DefaultDimension.INIT; DefaultDimension."No." := MasterRecordNo; DefaultDimension."Table ID" := TableID; diff --git a/content/NAVPatterns/1-patterns/create-urls-to-nav-clients/index.md b/content/NAVPatterns/1-patterns/create-urls-to-nav-clients/index.md index 95a7373a..fdcbee7c 100644 --- a/content/NAVPatterns/1-patterns/create-urls-to-nav-clients/index.md +++ b/content/NAVPatterns/1-patterns/create-urls-to-nav-clients/index.md @@ -30,7 +30,7 @@ GETURL automatically handles: The format is: -\[String :=\] GETURL(ClientType\[, Company\]\[, Object Type\]\[, Object Id\]\[, Record\]) +[String :=] GETURL(ClientType[, Company][, Object Type][, Object Id][, Record]) Where: diff --git a/content/NAVPatterns/1-patterns/creating-custom-charts/index.md b/content/NAVPatterns/1-patterns/creating-custom-charts/index.md index a8e1a9ae..4bd83358 100644 --- a/content/NAVPatterns/1-patterns/creating-custom-charts/index.md +++ b/content/NAVPatterns/1-patterns/creating-custom-charts/index.md @@ -36,7 +36,7 @@ This table is used to encapsulate the logic of the Business Chart Add-in. The ta * Storing chart values and conversion from .NET to C/AL and vice versa * Handling of captions: We must use C/AL to provide multilanguage text in add-ins. In addition, the multilanguage text must be encapsulated in a single place, because we pass/read the same dataset from/to the add-in. * DrillDown logic -* Other helper data related functions, for displaying date, periods, etc.\[Bogdana1\] \[NK2\] \[NK3\] +* Other helper data related functions, for displaying date, periods, etc.[Bogdana1] [NK2] [NK3] **Note:** It is recommended that you reuse the **Business Chart Buffer table** (485) as a buffer table or extend. It is a generic table which should cover most of the use cases. Implement a new buffer table only if this table does not meet your needs. diff --git a/content/NAVPatterns/1-patterns/data-migration-facade/index.md b/content/NAVPatterns/1-patterns/data-migration-facade/index.md index 71ae32b4..bd0650da 100644 --- a/content/NAVPatterns/1-patterns/data-migration-facade/index.md +++ b/content/NAVPatterns/1-patterns/data-migration-facade/index.md @@ -110,7 +110,7 @@ procedure MigrateItemUnitOfMeasure(ItemDataMigrationFacade : Codeunit "Item Data var MyUnitCodeStagingTable: Record "My Unit Code Staging Table"; DataMigrationStatusFacade: Codeunit "Data Migration Status Facade"; - DescriptionToSet: Text\[10\]; + DescriptionToSet: Text[10]; UnitCodeJson: Text; begin if ItemJson.UnitCode = '' then diff --git a/content/NAVPatterns/1-patterns/extending-the-role-center-headlines/index.md b/content/NAVPatterns/1-patterns/extending-the-role-center-headlines/index.md index deffbde9..f3006cde 100644 --- a/content/NAVPatterns/1-patterns/extending-the-role-center-headlines/index.md +++ b/content/NAVPatterns/1-patterns/extending-the-role-center-headlines/index.md @@ -82,7 +82,7 @@ group(LargestSale) [EventSubscriber(ObjectType::Codeunit, Codeunit::"Headline RC Business Manager", 'OnComputeHeadlines', '', true, true)] procedure OnComputeHeadlinesBusinessManager() begin - // \[...\] compute headline, and init the EssentialBusinessHeadline record + // [...] compute headline, and init the EssentialBusinessHeadline record if not ShowHeadline then exit; // not enough data to compute headline diff --git a/content/NAVPatterns/1-patterns/notifications/notification-lifecycle-management-pattern/index.md b/content/NAVPatterns/1-patterns/notifications/notification-lifecycle-management-pattern/index.md index 9dfffff5..89cd570c 100644 --- a/content/NAVPatterns/1-patterns/notifications/notification-lifecycle-management-pattern/index.md +++ b/content/NAVPatterns/1-patterns/notifications/notification-lifecycle-management-pattern/index.md @@ -33,7 +33,7 @@ _Figure 2: You add a second item that is not in stock. the notification is fired Here is the code for this behavior: ```al -LOCAL PROCEDURE CreateAndSendNotification@23(UnitOfMeasureCode@1010 : Code\[20\];InventoryQty@1009 : Decimal;GrossReq@1008 : Decimal;ReservedReq@1007 : Decimal;SchedRcpt@1006 : Decimal;ReservedRcpt@1005 : Decimal;CurrentQuantity@1004 : Decimal;CurrentReservedQty@1003 : Decimal;TotalQuantity@1002 : Decimal;EarliestAvailDate@1001 : Date) : Boolean; +LOCAL PROCEDURE CreateAndSendNotification@23(UnitOfMeasureCode@1010 : Code[20];InventoryQty@1009 : Decimal;GrossReq@1008 : Decimal;ReservedReq@1007 : Decimal;SchedRcpt@1006 : Decimal;ReservedRcpt@1005 : Decimal;CurrentQuantity@1004 : Decimal;CurrentReservedQty@1003 : Decimal;TotalQuantity@1002 : Decimal;EarliestAvailDate@1001 : Date) : Boolean; VAR ItemAvailabilityCheck@1011 : Page 1872; AvailabilityCheckNotification@1000 : Notification; @@ -59,7 +59,7 @@ An easy fix would be to dynamically generate the notification ID. However, what Here is the code for this possible fix: ```al -LOCAL PROCEDURE CreateAndSendNotification@23(UnitOfMeasureCode@1010 : Code\[20\];InventoryQty@1009 : Decimal;GrossReq@1008 : Decimal;ReservedReq@1007 : Decimal;SchedRcpt@1006 : Decimal;ReservedRcpt@1005 : Decimal;CurrentQuantity@1004 : Decimal;CurrentReservedQty@1003 : Decimal;TotalQuantity@1002 : Decimal;EarliestAvailDate@1001 : Date) : Boolean; +LOCAL PROCEDURE CreateAndSendNotification@23(UnitOfMeasureCode@1010 : Code[20];InventoryQty@1009 : Decimal;GrossReq@1008 : Decimal;ReservedReq@1007 : Decimal;SchedRcpt@1006 : Decimal;ReservedRcpt@1005 : Decimal;CurrentQuantity@1004 : Decimal;CurrentReservedQty@1003 : Decimal;TotalQuantity@1002 : Decimal;EarliestAvailDate@1001 : Date) : Boolean; VAR ItemAvailabilityCheck@1011 : Page 1872; AvailabilityCheckNotification@1000 : Notification; diff --git a/content/NAVPatterns/1-patterns/security/1-sensitive-data-encapsulation/index.md b/content/NAVPatterns/1-patterns/security/1-sensitive-data-encapsulation/index.md index 1b46adab..3f0c1582 100644 --- a/content/NAVPatterns/1-patterns/security/1-sensitive-data-encapsulation/index.md +++ b/content/NAVPatterns/1-patterns/security/1-sensitive-data-encapsulation/index.md @@ -27,8 +27,8 @@ To apply this pattern in Dynamics NAV, a table structure similar to Table 1261 S Figure 1 describes the definition of a table which is already available in Dynamics NAV. This table can be used for storing sensitive data. As a minimum, the table only needs two fields: -1. The key is of type GUID (Globally Unique Identifier), which is a 128-bit value consisting of multiple groups of hexadecimal digits \[2\]. Each key needs to be unique and will be used for storing and retrieving the protected information. -2. The value (the actual data to be encapsulated) is of type BLOB (Binary Large OBject) \[3\], which contains the encrypted or un-encrypted data (for encryption, see the related [**Encryption**][anchor2] pattern). +1. The key is of type GUID (Globally Unique Identifier), which is a 128-bit value consisting of multiple groups of hexadecimal digits [2]. Each key needs to be unique and will be used for storing and retrieving the protected information. +2. The value (the actual data to be encapsulated) is of type BLOB (Binary Large OBject) [3], which contains the encrypted or un-encrypted data (for encryption, see the related [**Encryption**][anchor2] pattern). [![Figure 1- Example definition, table used for Data Encapsulation][image1]][anchor3] @@ -56,7 +56,7 @@ _Figure 2 - Data access before and after **Sensitive** **Data** **Encapsulation. * **Clarity:** when all sensitive data is encapsulated in one place, it is clear which is the information that needs to be protected. * **Simplicity:** easier to protect just a limited number of known resources when they are grouped. * **Homogeneity:** the same protection can be applied to all data, since it is stored in the same place. -* **Separation of concerns:** treat each section of the computer program differently, by separating it and clearly addressing its own requirements and limitations. \[1\] +* **Separation of concerns:** treat each section of the computer program differently, by separating it and clearly addressing its own requirements and limitations. [1] * **Performance**: data protection techniques like **Access Control** and **Encryption** can now be applied only to the sensitive data (not to everything), which improves the performance of the system. **Drawbacks:** @@ -67,29 +67,29 @@ _Figure 2 - Data access before and after **Sensitive** **Data** **Encapsulation. **References** -\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. +[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. -\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. +[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. -\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object. +[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object. -\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". +[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". -\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. +[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. -\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\]. +[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016]. -\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\]. +[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016]. -\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. +[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. -\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\]. +[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016]. -\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/. +[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/. -\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\]. +[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016]. -\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\]. +[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016]. diff --git a/content/NAVPatterns/1-patterns/security/2-data-encryption/index.md b/content/NAVPatterns/1-patterns/security/2-data-encryption/index.md index 337d2f6a..1fb363a8 100644 --- a/content/NAVPatterns/1-patterns/security/2-data-encryption/index.md +++ b/content/NAVPatterns/1-patterns/security/2-data-encryption/index.md @@ -110,29 +110,29 @@ In the end, Stan chooses a location for the encryption key on disk, in a standar **References** -\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. +[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. -\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. +[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. -\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object. +[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object. -\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". +[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". -\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. +[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. -\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\]. +[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016]. -\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\]. +[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016]. -\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. +[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. -\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\]. +[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016]. -\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/. +[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/. -\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\]. +[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016]. -\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\]. +[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016]. diff --git a/content/NAVPatterns/1-patterns/security/3-single-point-of-access/index.md b/content/NAVPatterns/1-patterns/security/3-single-point-of-access/index.md index 2c2c8007..54b51bdd 100644 --- a/content/NAVPatterns/1-patterns/security/3-single-point-of-access/index.md +++ b/content/NAVPatterns/1-patterns/security/3-single-point-of-access/index.md @@ -15,8 +15,8 @@ _By Bogdana Botez at Microsoft Development Center Copenhagen_ * **Code duplication:** if each entity attempts to write its own routines for data access, invariably this will bring duplication. * **No knowledge reuse:** if a bug is found and fixed in one of the implementations, there is no guarantee that all the other implementations will be updated. For example * **Double-Encryption**: lack of care or knowledge could lead a NAV developer to attempt to double-encrypt strings, which would render them unusable. - * **Multi-company configuration \[4\]**: in NAV, it is possible to store multiple companies on the same tenant \[5\] database. A developer who has not investigated such a configuration and its consequences on encryption, can attempt to encrypt data in (for example) a Setup Table \[6\] of only one company, which would make this table unusable from any unencrypted company (since the server will observe that encryption is enabled, and try to retrieve it as it were enabled for all companies and fails). - * **"Shotgun surgery" \[7\]:** one change in the data access technique (like a new requirement to validate the user's identity before viewing any protected data), calls for updates in every single implementation of data access, if multiple implementations exist. Hence, one change of requirement triggers multiple efforts to update the product. + * **Multi-company configuration [4]**: in NAV, it is possible to store multiple companies on the same tenant [5] database. A developer who has not investigated such a configuration and its consequences on encryption, can attempt to encrypt data in (for example) a Setup Table [6] of only one company, which would make this table unusable from any unencrypted company (since the server will observe that encryption is enabled, and try to retrieve it as it were enabled for all companies and fails). + * **"Shotgun surgery" [7]:** one change in the data access technique (like a new requirement to validate the user's identity before viewing any protected data), calls for updates in every single implementation of data access, if multiple implementations exist. Hence, one change of requirement triggers multiple efforts to update the product. **Solution:** In Dynamics NAV the same library which offers [**Encryption**][anchor1], is also intended to be used as a **Single Point of Access**. Write code to create, read and remove sensitive data only through codeunit 1266 Encryption Management, and never directly. @@ -28,7 +28,7 @@ You can observe that, in panel 3, each usage needs to access separately the encr _Figure 1- **Single Point of Access** pattern applied._ -This shows how pattern application is an iterative process, where one step follows another. Refactoring \[8\] the code to apply one pattern, cleans and clarifies the code and in some cases, makes clear the possibility of further refactoring. +This shows how pattern application is an iterative process, where one step follows another. Refactoring [8] the code to apply one pattern, cleans and clarifies the code and in some cases, makes clear the possibility of further refactoring. **Usage**: call the procedures available in codeunit 1266 Encryption Management to store and access sensitive data. @@ -46,29 +46,29 @@ This shows how pattern application is an iterative process, where one step follo **References** -\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation\_of\_concerns. +[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation\_of\_concerns. -\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. +[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. -\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary\_large\_object. +[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary\_large\_object. -\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". +[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". -\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. +[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. -\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\]. +[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016]. -\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun\_surgery. \[Accessed 31 07 2016\]. +[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun\_surgery. [Accessed 31 07 2016]. -\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. +[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. -\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data\_masking\#Masking\_out. \[Accessed 29 7 2016\]. +[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data\_masking\#Masking\_out. [Accessed 29 7 2016]. -\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/. +[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/. -\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\]. +[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016]. -\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef\_sniffer.htm. \[Accessed 02 08 2016\]. +[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef\_sniffer.htm. [Accessed 02 08 2016]. diff --git a/content/NAVPatterns/1-patterns/security/4-masked-text/index.md b/content/NAVPatterns/1-patterns/security/4-masked-text/index.md index be5dddb4..c8593751 100644 --- a/content/NAVPatterns/1-patterns/security/4-masked-text/index.md +++ b/content/NAVPatterns/1-patterns/security/4-masked-text/index.md @@ -44,29 +44,29 @@ Mask the field in only a subset of pages. Open the pages where the field should **References** -\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. +[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. -\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. +[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. -\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object. +[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object. -\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". +[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". -\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. +[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. -\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\]. +[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016]. -\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\]. +[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016]. -\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. +[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. -\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking\#Masking_out. \[Accessed 29 7 2016\]. +[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking\#Masking_out. [Accessed 29 7 2016]. -\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/. +[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/. -\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\]. +[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016]. -\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\]. +[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016]. diff --git a/content/NAVPatterns/1-patterns/security/5-ssl-in-nav/index.md b/content/NAVPatterns/1-patterns/security/5-ssl-in-nav/index.md index f247f17e..5a64d5c1 100644 --- a/content/NAVPatterns/1-patterns/security/5-ssl-in-nav/index.md +++ b/content/NAVPatterns/1-patterns/security/5-ssl-in-nav/index.md @@ -12,7 +12,7 @@ _By Bogdana Botez at Microsoft Development Center Copenhagen_ **Forces:** -* **Insecure communication:** When the user enters a password, if unprotected, a network sniffer \[12\] could catch and read it. A sniffer is either a software program or hardware device which examine network traffic. Years ago, sniffers were tools used exclusively by professional network engineers, but nowadays, they are also popular with Internet hackers and people just curious about networking. A public Wi-Fi network could easily be eavesdropped by an unwanted actor. +* **Insecure communication:** When the user enters a password, if unprotected, a network sniffer [12] could catch and read it. A sniffer is either a software program or hardware device which examine network traffic. Years ago, sniffers were tools used exclusively by professional network engineers, but nowadays, they are also popular with Internet hackers and people just curious about networking. A public Wi-Fi network could easily be eavesdropped by an unwanted actor. By using data storage patterns like **Sensitive Data Encapsulation**, **Encryption, Single Point of Access** or **Azure Key Vault**, the sensitive data is preserved securely in the implementation of Dynamics NAV. But before it gets into a secure store, this data needs to be transmitted from the user, through a user interface, on a client-server connection and all the way to the database. Is the data safe while being transmitted? @@ -39,29 +39,29 @@ _Figure 1 - Data transmission before (http://...) and after SSL encryption (http **References** -\[1\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. +[1] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Separation_of_concerns. -\[2\] "GUID Structure," \[Online\]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. +[2] "GUID Structure," [Online]. Available: https://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx. -\[3\] "Wikipedia," \[Online\]. Available: https://en.wikipedia.org/wiki/Binary_large_object. +[3] "Wikipedia," [Online]. Available: https://en.wikipedia.org/wiki/Binary_large_object. -\[4\] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". +[4] waldo, "How Do I: Manage Companies in Microsoft Dynamics NAV 2013 R2". -\[5\] Microsoft, "Multitenant Deployment Architecture," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. +[5] Microsoft, "Multitenant Deployment Architecture," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/dn271675(v=nav.90).aspx. -\[6\] B. Botez, "Setup Table design pattern," Microsoft, 2013\. \[Online\]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. \[Accessed 31 07 2016\]. +[6] B. Botez, "Setup Table design pattern," Microsoft, 2013\. [Online]. Available: https://community.dynamics.com/nav/w/designpatterns/76.setup-table. [Accessed 31 07 2016]. -\[7\] "Shotgun Surgery," \[Online\]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. \[Accessed 31 07 2016\]. +[7] "Shotgun Surgery," [Online]. Available: https://en.wikipedia.org/wiki/Shotgun_surgery. [Accessed 31 07 2016]. -\[8\] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. +[8] M. Fowler, Refactoring: Improving the design of existing code, Addison Wesley, 1999\. -\[9\] "Masking out," \[Online\]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. \[Accessed 29 7 2016\]. +[9] "Masking out," [Online]. Available: https://en.wikipedia.org/wiki/Data_masking#Masking_out. [Accessed 29 7 2016]. -\[10\] "Key Vault," Microsoft, \[Online\]. Available: https://azure.microsoft.com/en-us/services/key-vault/. +[10] "Key Vault," Microsoft, [Online]. Available: https://azure.microsoft.com/en-us/services/key-vault/. -\[11\] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, \[Online\]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. \[Accessed 2 8 2016\]. +[11] "How to: Configure SSL to Secure the Connection to Microsoft Dynamics NAV Web Client," Microsoft, [Online]. Available: https://msdn.microsoft.com/en-us/library/hh167264(v=nav.90).aspx. [Accessed 2 8 2016]. -\[12\] "sniffer," \[Online\]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. \[Accessed 02 08 2016\]. +[12] "sniffer," [Online]. Available: http://compnetworking.about.com/od/networksecurityprivacy/g/bldef_sniffer.htm. [Accessed 02 08 2016]. diff --git a/content/NAVPatterns/1-patterns/silent-file-upload-and-download/index.md b/content/NAVPatterns/1-patterns/silent-file-upload-and-download/index.md index b3182e04..440c4b38 100644 --- a/content/NAVPatterns/1-patterns/silent-file-upload-and-download/index.md +++ b/content/NAVPatterns/1-patterns/silent-file-upload-and-download/index.md @@ -10,7 +10,7 @@ This pattern is about silently handing file transfers between NAV Service Tier a ## Description -As a terminology clarification \[1\], note that both "upload" and "download" are named as seen from the client's point of view: +As a terminology clarification [1], note that both "upload" and "download" are named as seen from the client's point of view: * Download" defines transferring a file from the server to the client. * "Upload" transfers the file from the client to the server. @@ -21,29 +21,29 @@ Sometimes, files must be transferred to or from known locations without triggeri In the following, both the historical and the recommended ways of silently transferring files are described. Since we keep both implementations possible for the sake of backward compatibility, we strongly recommend that you use the file-transfer API provided that is provided with the File Management codeunit (419). -The legacy API for file transfers \[2\]: +The legacy API for file transfers [2]: ```al -\[Ok :=\] UPLOAD(DialogTitle, FromFolder, FromFilter, FromFile, ToFile) +[Ok :=] UPLOAD(DialogTitle, FromFolder, FromFilter, FromFile, ToFile) -\[Ok :=\] DOWNLOAD(FromFile, DialogTitle, ToFolder, ToFilter, ToFile) +[Ok :=] DOWNLOAD(FromFile, DialogTitle, ToFolder, ToFilter, ToFile) ``` As you can see, this historical API leaves no place for turning off the functionality for showing a dialog. Historically, NAV offered a remedy to this, namely by using the "Magicpath" string, which is the constant ''. Under this condition, the way to invoke silent file upload or download becomes: ```al -\[Ok :=\] UPLOAD(DialogTitle, Magicpath, FromFilter, FromFile, ToFile) +[Ok :=] UPLOAD(DialogTitle, Magicpath, FromFilter, FromFile, ToFile) -\[Ok :=\] DOWNLOAD(FromFile, DialogTitle, Magicpath, ToFilter, ToFile) +[Ok :=] DOWNLOAD(FromFile, DialogTitle, Magicpath, ToFilter, ToFile) ``` This remedy introduced an issue: If we use "Magicpath" instead of **FromFolder** and **ToFolder** specifications, then where do we upload from and where do we download to? The answer is that they are uploaded to and downloaded from the NAV server's temporary folder. The path to the temporary file can be obtained when this file is created, by using the following function in **File Management: := ServerTempFileName()**. The new API for file transfers in the **File Management** codeunit: -\[Text :=\] UploadFileSilent(ClientFilePath) +[Text :=] UploadFileSilent(ClientFilePath) -\[Text :=\] DownloadTempFile(ServerFileName) +[Text :=] DownloadTempFile(ServerFileName) Using the API in the **File Management** codeunit instead of the historical API is recommended for all file transferring and file management in NAV implementations. diff --git a/content/NAVPatterns/1-patterns/singleton/singleton-table/setup-table/index.md b/content/NAVPatterns/1-patterns/singleton/singleton-table/setup-table/index.md index 35ffb4a8..fe9800e2 100644 --- a/content/NAVPatterns/1-patterns/singleton/singleton-table/setup-table/index.md +++ b/content/NAVPatterns/1-patterns/singleton/singleton-table/setup-table/index.md @@ -23,7 +23,7 @@ The implementation of the pattern involves several considerations: Since this kind of tables is a collection of several environment or setup parameters, the primary key does not refer to any business attributes for this kind of tables. However, for maintaining the integrity of the database, it is necessary to define a primary key. -So, the most common implementation is to have a field "Primary Key" of Code\[10\]. This is populated with a blank value when the record is inserted. This field is not added to the page, so that the user cannot be modify it later. +So, the most common implementation is to have a field "Primary Key" of Code[10]. This is populated with a blank value when the record is inserted. This field is not added to the page, so that the user cannot be modify it later. **Creating a Page** diff --git a/content/NAVPatterns/3-cal-coding-guidelines/localizability/global-text-constants/index.md b/content/NAVPatterns/3-cal-coding-guidelines/localizability/global-text-constants/index.md index 22773946..579e57df 100644 --- a/content/NAVPatterns/3-cal-coding-guidelines/localizability/global-text-constants/index.md +++ b/content/NAVPatterns/3-cal-coding-guidelines/localizability/global-text-constants/index.md @@ -7,7 +7,7 @@ Declare Text Constant as global variables. Bad code ```al -PROCEDURE GetRequirementText@6(...) : Text\[50\]; +PROCEDURE GetRequirementText@6(...) : Text[50]; VAR RequirementOptionsTxt@1002 : TextConst 'ENU=Shipment,Receive,Pick,Put-Away'; BEGIN @@ -19,6 +19,6 @@ Good code VAR RequirementOptionsTxt@1002 : TextConst 'ENU=Shipment,Receive,Pick,Put-Away'; ... -PROCEDURE GetRequirementText@6(...) : Text\[50\]; +PROCEDURE GetRequirementText@6(...) : Text[50]; BEGIN ``` diff --git a/content/NAVPatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/index.md b/content/NAVPatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/index.md index 5953dfff..1187bcce 100644 --- a/content/NAVPatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/index.md +++ b/content/NAVPatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/index.md @@ -2,7 +2,7 @@ title = "Spacing Brackets and ::" weight = 1130 +++ -There must be no spaces characters before and after \[\] dimension brackets symbols or :: option symbols. +There must be no spaces characters before and after [] dimension brackets symbols or :: option symbols. Bad code