Microsoft Dynamics NAV

Team Blog

  • Microsoft Dynamics NAV Team Blog

    Introducing the NAV C/AL Cookbook

    • 0 Comments

    While talking about design patterns, we often came upon a different category of code solutions. Useful, reusable, good practice code solutions which are just not design patterns. They might be APIs, they might be mini-features, new platform functionality, or services.

    We don't want to throw away those good ideas. On the other side, they do not belong to design patterns.

    Hence, a chapter called “Recipes - The NAV C/AL Cookbook” was born, as a separate section on the Dynamics Community NAV Patterns Wiki. We hope you’ll find it as useful as we did. And find below one of the first articles on this new section. Note that we’re still using the “Meet the pattern - Know the pattern” format, just to keep an uniform approach on all articles, for the moment.

    Creating Custom Charts

    by Nikola Kukrika at Microsoft Development Center Copenhagen

    Meet the Pattern

    The goal of this pattern is to enable you to:

    1. Use charts in the web client.
    2. Create charts with custom functionality.

    Know the Pattern

    This pattern enables you to implement a business chart (Specific Chart type) in a way that is maintainable and reusable on other pages. This also enables you to provide specific functionality that is not possible with the Generic Chart type and it enables you to show charts in the web client.

    The Business Chart add-in is a special because it is a combination of .NET and Javascript add-ins depending on the display target. In the Microsoft Dynamics NAV Web client, it renders a JavaScript control, while in the Microsoft Dynamics NAV Windows client, it renders a .NET control. Because of this behavior, you can expect minor differences in how the chart is presented in the two clients. Note that this implementation is specific to the Microsoft Dynamics NAV platform code, because it is not possible to create add-ins that combines .NET and JavaScript by using a framework API.

    Example of the same chart in the Microsoft Dynamics NAV Windows client:

    The most obvious differences in chart rendering in the two clients are: Slightly different line heights, slightly different chart height, legends in web-client charts can be used as toggle filters to show/hide groups (this is not possible in the win client).

    Implementation Overview

    Add-in Buffer Table

    This table is used to encapsulate the logic of the Business Chart Add-in. The table handles the following logic:

    • 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. 

    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.

    CardPart page

    The CardPart page hosts the Business Chart add-in and must use the add-in buffer table as a source table.

    On the page, you must implement the following triggers:

    • AddInReady – Executed when the page is done rendering. Used to initialize the add-in.
    • DataPointClicked – Single-click on an element on the chart.
    • DataPointDoubleClicked – Double-click on an element on the chart

    The CardPart usually contains a StatusText variable to provide more information about the chart or dataset and a set of actions to control the chart.

    The most commonly used actions are: ... Read more on NAV Wiki...

     

  • Microsoft Dynamics NAV Team Blog

    Help us make Microsoft Dynamics NAV better

    • 6 Comments

    We always strive to make Microsoft Dynamics NAV a better product – and in order for us to do that efficiently we need to know how real customers out there are using the product. To help us getting that knowledge, Microsoft Dynamics NAV Server can send anonymous data about how server instances are configured and used.

    You may have noticed the following option when installing Microsoft Dynamics NAV Server:

    Setting this to ‘Yes’ makes the server generate a small file every day at midnight, and this file gets uploaded to Microsoft. The generation of this file happens asynchronously and is designed so that the performance impact is completely negligible. Furthermore, data is sent when the service is stopped.

    The collected data points fall in 3 categories

    • Environment info: Available memory, Windows version, processor speed etc.
    • Configuration info: Settings from the configuration file
    • Usage data: Which objects in the Microsoft ID range have been executed in the last 24 hours

    We want to stress that we do not send any customer / partner specific data, and we have no way of finding out which company sent certain data. We only collect information about Microsoft Dynamics NAV objects that are part of the standard application, and we do not read or send any business data.

    So how is this useful to us? Identifying the pages and reports that are most used allows us to prioritize improvements to these higher than others. For example, knowing the Windows versions that are in use gives input to our system requirements and support matrix.

    Over time we will change and expand the data collected to evaluate the success of new features, so the actual data sent may vary between versions.

    The data sent is only useful if we have statistically significant amounts to make valid conclusions, so you can help us by having your customers participate in the Customer Experience Improvement program. This can be done by selecting ‘Yes’ in the Send Feedback question when installing the server, or by setting the following value to true in the configuration file for the service: 

    <!--

        When this parameter is set to TRUE, Microsoft Dynamics NAV Server collects basic information

        about your hardware configuration and how you use Microsoft Dynamics NAV software.

        Microsoft uses this information to identify trends and usage patterns. When this parameter is

        set to FALSE, no data is collected. The default value is FALSE. 

      -->

      <add key="EnableSoftwareQualityMetrics" value="false" />

     

    Please help us making the right choices when developing Microsoft Dynamics NAV by encouraging your customers to allow sending feedback to us from their deployments.

    For more information, see the Microsoft Dynamics NAV Privacy Statement.

    Best regards,

    The Dynamics NAV team

  • Microsoft Dynamics NAV Team Blog

    Experience Convergence Europe! Register Early and Save!

    • 0 Comments

    Convergence 2014 Europe is a Microsoft Dynamics customer event and the best opportunity to expand your professional network, explore Microsoft solutions, and bring new ideas to life. Even better, if you register early, you'll save €300.

    Whether you are new to Convergence or have attended in the past, there are many benefits to going: networking, learning opportunities, visionary business leaders and access to product experts. As a user of Microsoft Dynamics NAV you will have the opportunity to explore what is new in the coming version code named Microsoft Dynamics “Crete”. Convergence Europe is held in Barcelona November 4-6. Explore more on the event web site: http://www.microsoft.com/dynamics/convergence/europe14/

  • Microsoft Dynamics NAV Team Blog

    Importing and Exporting Data in Microsoft Dynamics NAV 2013 R2 CU 8

    • 24 Comments

    In earlier versions of Microsoft Dynamics NAV, you could move or copy all or part of the data in a database by using the Microsoft Dynamics NAV backup functionality. In Microsoft Dynamics NAV 2013 R2, the support for the .fbk files was removed, but with Cumulative Update 8 for Microsoft Dynamics NAV 2013 R2, we introduce Windows PowerShell cmdlets so you can export data from a Microsoft Dynamics NAV database and import it into another Microsoft Dynamics NAV database. You can also export and import data in the Microsoft Dynamics NAV Windows client.

    You can export and import a single company or all companies in a database, and you can export and import other types of data such as global data, application data, and application objects. As part of Cumulative Update 8, we include a whitepaper that provides examples of the types of data and how to export and import data using Windows PowerShell cmdlets as well as in the Microsoft Dynamics NAV Windows client.

    When you export data from a Microsoft Dynamics NAV database, the data is stored in a file with the extension .navdata, which is a new file format that is proprietary to Microsoft Dynamics NAV data. You cannot edit the .navdata files in other tools.

    The data that you export is not deleted from the original database. So that means that you can use the functionality to essentially take a copy of your customer’s live data, leave them to continue working, while you import the data into an offline database back at your office for further debugging or other investigation. You can also use the .navdata files to move data to a new database, such as moving a company to a new database when you want to deprecate a database, for example.

    Exporting and Importing Data in the Microsoft Dynamics NAV Windows Client

    To export or import data, in the Search box, enter Data File, and then choose the related link.

    To export data, you specify the type of data that you want to export, and when you choose the OK button, you specify where you want to save the file.

    To import data, you specify the .navdata file to import data from, but you can't import an application if the .navdata file contains an application. This is because you can't overwrite the application that is currently open in the Microsoft Dynamics NAV Windows client. So the window has one less type of data that you can choose to import:

    If you want to import an application into a Microsoft Dynamics NAV database, you must use the Import-NAVData Windows PowerShell cmdlet.

    Windows PowerShell Cmdlets

    The following table describes the Windows PowerShell cmdlets that are new in Microsoft Dynamics NAV 2013 R2 Cumulative Update 8.

    Name

    Description

    Export-NAVData

    Exports data from a Microsoft Dynamics NAV database. You can export company-specific data, and you can choose to include global data, application data, or application objects.

    Import-NAVData

    Imports data into a Microsoft Dynamics NAV database from a file. You can import all data in the file, or you can choose to include specific companies, global data, application data, or application objects.

    You can only import an application into an empty database.

    Get-NAVDataFile

    Gets information from a file that has been exported from a Microsoft Dynamics NAV database.

    The extracted information includes the types of data that the file contains and any company names.

    The cmdlets take different parameter sets depending on how you connect to the database that you want to export data from or import data into. You can access the database through the Microsoft Dynamics NAV Server instance, or you can access the database directly as described in the following table.

    Access

    Description

    Through the Microsoft Dynamics NAV Server instance.

    Use parameter sets that include –ServerInstance when the database that you want to access is mounted against a Microsoft Dynamics NAV Server instance.

    The user account for the Microsoft Dynamics NAV Server instance must have access to write to the location that is specified by the –FileName parameter.

    Through a direct connection to the database.

    Use parameter sets that include –DatabaseServer and –DatabaseName when the Microsoft Dynamics NAV Server instance is stopped or not available. For example, if you want to import an updated application into a database, you stop the service so that users cannot access the database.

    You must have access to write to the location that is specified by the –FileName parameter.

    The following table describes the Windows PowerShell cmdlets that are modified in Microsoft Dynamics NAV 2013 R2 Cumulative Update 8.

    Name

    Description

    Get-NAVCompany

    Gets a list of the Microsoft Dynamics NAV companies in the specified tenant database or exported Microsoft Dynamics NAV data file.

    The cmdlet has been updated to be able to get information from a Microsoft Dynamics NAV data file.

     

    However, the Help for the Export-NAVData and Import-NAVData Windows PowerShell cmdlets does not show the correct syntax when you run a command such as the following:.

    PS C:\WINDOWS\system32> Get-Help Export-NAVData

     

    Refer to the following syntax for the Export-NAVData cmdlet:

    1. Export-NAVData -DatabaseName <string> -FileName <string> [-DatabaseServer <string>] [-ApplicationDatabaseServer <string>] [-ApplicationDatabaseName <string>] [-Description <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-CompanyName <string[]>] [-Force]  [<CommonParameters>]

    2. Export-NAVData [-ServerInstance] <string> [[-Tenant]< TenantId>] -FileName<string> [-Description <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-CompanyName <string[]>] [-Force]  [<CommonParameters>]

    3. Export-NAVData [-ServerInstance] <string> [[-Tenant] <TenantId>] -FileName<string> -AllCompanies [-Description <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-Force]  [<CommonParameters>]

    4. Export-NAVData -DatabaseName <string> -FileName <string> -AllCompanies [-DatabaseServer <string>] [-ApplicationDatabaseServer <string>] [-ApplicationDatabaseName <string>] [-Description <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-Force]  [<CommonParameters>]

     

    Refer to the following syntax for the Import-NAVData cmdlet:

    1. Import-NAVData [-FileName] <string> -DatabaseName <string> [-DatabaseServer <string>] [-ApplicationDatabaseServer <string>] [-ApplicationDatabaseName <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-CompanyName <string[]>] [-Force] [-WhatIf] [-Confirm]  [<CommonParameters>]

    2. Import-NAVData [-ServerInstance]< string> [[-Tenant] <TenantId>] [-FileName] <string> [-IncludeApplicationData] [-IncludeGlobalData] [-CompanyName <string[]>] [-Force] [-WhatIf] [-Confirm]  [<CommonParameters>]

    3. Import-NAVData [-ServerInstance]< string> [[-Tenant] <TenantId>] [-FileName] <string> -AllCompanies [-IncludeApplicationData] [-IncludeGlobalData] [-Force] [-WhatIf] [-Confirm]  [<CommonParameters>]

    4. Import-NAVData [-FileName] <string> -DatabaseName <string> -AllCompanies [-DatabaseServer <string>] [-ApplicationDatabaseServer <string>] [-ApplicationDatabaseName <string>] [-IncludeApplication] [-IncludeApplicationData] [-IncludeGlobalData] [-Force] [-WhatIf] [-Confirm]  [<CommonParameters>]

     

    You can find more information about this functionality, and the new or changed objects, in the following documents on the W1 version of the Microsoft Dynamics NAV 2013 R2 CU8 download media:

    • MicrosoftDynamicsNAV2013R2CU8_ExportImportDataUsingNavDataFiles.pptx
    • MicrosoftDynamicsNAV2013R2CU8_ImportExportData.pdf

    In subsequent cumulative updates, the documents will be available in the country-specific downloads as well.

  • Microsoft Dynamics NAV Team Blog

    NAV Design Pattern - Instructions in the UI

    • 3 Comments

    Meet the Pattern

    To mitigate usability problems with learnability or discoverability of Microsoft Dynamics NAV functionality, it is possible to embed instructions in the user interface (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’s productivity after user has learned how to use a feature.

    Know the Pattern

    Users must often go through a few days of training to learn how to use Microsoft Dynamics NAV, and even then, many users rely on super users to help them mitigate difficulties using Microsoft Dynamics NAV. In addition, because of low discoverability and learnability, many useful features are not being used at all.

    Users’ expectations are changing. They expect the software to be usable out-of-the-box because this is the trend in software generally.

    One of the cheapest and most effective methods to solve usability issues is to embed instructional messages in the product. From a user-experience point of view, this should be used as a last resort. UI should be self-explanatory, efficient, and simple to use. Accordingly, you should only implement this pattern if simplifying and improving a scenario is not possible or is too expensive.

    In this connection, the most important requirement is not to impair productivity of the users. One of the biggest and most common UX mistakes that developers make is to “optimize for new users”. After the user has learned how to use the product, all the instruction texts and dialogs that we added to the UI will clutter the page and make information less visible. Instructional dialogs on routine tasks will become annoying. Therefore, we must make all instructions dismissible.

    In the Mini App solution we have used following elements:

    1. Dismissible dialogs
    2. FastTabs with instructional text
    3. Help tiles on a Role Center
    4. Tooltips on actions and fields
    5. Task-oriented page Help

    Use the Pattern

    The following pattern applies to dismissible parts in the UI.

    We have a table that stores the instructional code ID and the UserID, so that we can track which user has turned off which instruction. All the logic handling is done from a codeunit. It is the responsibility of the codeunit to show/hide dialogs if needed. 

    Dismissible Dialogs

    Dismissible dialogs show the instructional message about the functionality, with the user option to... read more on the NAV Design Patterns wiki.

    Best regards,

    Nikola Kukrika at Microsoft Development Center Copenhagen

  • Microsoft Dynamics NAV Team Blog

    Cumulative Update 15 for Microsoft Dynamics NAV 2013 has been released

    • 1 Comments

    Cumulative update 15 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013. The cumulative update includes hotfixes that apply to all countries and hotfixes specific to the following local versions:

    • AU - Australia
    • AT - Austria
    • BE - Belgium
    • CH - Switzerland
    • DE - Germany
    • DK - Denmark
    • ES - Spain
    • FI   - Finland
    • FR - France
    • IS  - Iceland
    • IT   - Italy
    • NA - North America
    • NL - Netherlands
    • NO - Norway
    • NZ - New Zealand
    • SE - Sweden
    • UK - United Kingdom

    Where to find cumulative update 15

    You can download cumulative update 15 from KB 2971745 – Cumulative Update 15 for Microsoft Dynamics NAV 2013 (Build 36919).

    For a full list of all hotfixes included in the cumulative update, see the following CustomerSource and PartnerSource pages:

    CustomerSource:

    PartnerSource:

    More Information

    For more information about cumulative updates for Microsoft Dynamics NAV 2013, see Announcement of update rollups for Microsoft Dynamics NAV 2013.

  • Microsoft Dynamics NAV Team Blog

    Cumulative Update 8 for Microsoft Dynamics NAV 2013 R2 has been released

    • 11 Comments

    Cumulative update 8 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013 R2. 

    The cumulative update includes hotfixes that apply to all countries and hotfixes specific to the following local versions:

      • AU - Australia
      • AT - Austria
      • BE - Belgium
      • CH - Switzerland
      • DE - Germany
      • DK - Denmark
      • ES - Spain
      • FI  - Finland
      • FR - France
      • IS - Iceland
      • IT - Italy
      • NA - North America
      • NL - Netherlands
      • NO - Norway
      • NZ - New Zealand
      • RU – Russia
      • SE - Sweden
      • UK - United Kingdom

    Cumulative update 8 also introduces new functionality for exporting and importing companies and other data. You can export a company from a Microsoft Dynamics NAV database and import it into another database, and you can export and import other types of data such as global data, application data, and application objects.

    In earlier versions of Microsoft Dynamics NAV, you exported and imported this type of data as part of backing up and restoring databases. In Microsoft Dynamics NAV 2013 R2 CU8, you can do this by using the Export-NAVData and Import-NAVData Windows PowerShell cmdlets. You can also import and export data in the Microsoft Dynamics NAV Windows client.

    For more information, see the following documents on the W1 version of the Microsoft Dynamics NAV 2013 R2 CU8 download media:

    • MicrosoftDynamicsNAV2013R2CU8_ExportImportDataUsingNavDataFiles.pptx
    • MicrosoftDynamicsNAV2013R2CU8_ImportExportData.pdf

    Please note that there is very limited support for exporting and importing data in the Microsoft Dynamics NAV Web client. Use the Microsoft Dynamics NAV Windows client or the Windows PowerShell cmdlets instead.

    Where to find cumulative update 8

    You can download cumulative update 8 from KB 2971746 – Cumulative Update 8 for Microsoft Dynamics NAV 2013 R2 (Build 36897).

    For a full list of all hotfixes included in cumulative updates for Microsoft Dynamics NAV 2013 R2, see the following CustomerSource and PartnerSource pages: 

    CustomerSource:

    PartnerSource

    More Information

    For more information about cumulative updates for Microsoft Dynamics NAV 2013 R2, see Announcement of update rollups for Microsoft Dynamics NAV 2013 R2

  • Microsoft Dynamics NAV Team Blog

    NAV Design Pattern - Journal Template-Batch-Line

    • 2 Comments

    This week, the pattern is familiar to most C/AL developers, but if you are new to Microsoft Dynamics NAV, or if you need a refresher, here is the pattern behind journal templates, batches, and lines.

    Meet the Pattern

    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. Journal batches usually serve to group journal lines, such as lines created by two different users.

    Know the Pattern

    Journal templates and journal batches are used if there is a need to create and post one or more entries. They are implemented in multiple areas of the application, like Sales, Purchases, Cash Receipts, Payments, Fixed Assets1.

    Journal Templates

    The journal templates are located on the Journal Template page. A Journal Template definition contains a series of attributes, such as:

    • Name
    • Description
    • Type
    • Recurring
    • No. Series

    The Journal Template table stores the relevant attributes that define the nature and behavior of the journal templates, for example:

    Journal Template Table Field

    Description

    Test Report ID

    The journals offer the possibility of running test reports3. The role of a test report is to simulate the posting process. The verification criteria for the journal lines is ran, and the report can be displayed, all without doing the actual posting. This helps finding and correcting any errors that might exist in the data.

    The name of the test report is the same with the name of the corresponding journal, plus the suffix " - Test". For example, the General Journal has the associated test report named General Journal - Test.

    Posting Report ID

    This report is printed when a user selects Post and Print4.

    Page ID

    For some journals, more UI objects are required. For example, the General Journals have a special page for bank and cash.

    Source Code

    Here you can enter a Trail Code for all the postings done through this Journal4.

    Recurring

    Whenever you post lines from a recurring journal, new lines are automatically created with a posting date defined in the recurring date formula.

    Each journal template defines a default value of those attributes. The values that are defined in a template will be inherited by the journal batches, which will be created from a journal template.

     

    Microsoft Dynamics NAV is released with a number of standard journal templates predefined in the Journal Templates page. More templates can be defined by the users.

    Journal Batches

    Journal batches are created with the help of the journal templates.

    A journal batch is typically used to make a distinction between collections of logically grouped journal lines. A typical design is to have a journal batch for each user who enters lines. The batches are used during the posting process, in order to post one or multiple lines at once.

    Journal Lines

    Journal lines contain the actual business data (posting dates, account numbers, amounts) that will be posted as ledger entries.

    During posting, only the information from the journal lines is needed. However, the information has been created with the help of the journal templates and grouped together using the journal batches.

    Posting creates ledger entries from the temporary content that is stored in the journal lines. Ledger entries are not created directly. Instead, they are posted from journal lines.

     

    Aggregation

    There is a 1:n aggregation relationship between journal templates and journal batches, as well as between journal batches and journal lines. Deleting a template will cascade deletion of the related batches and lines. Deleting a batch will cascade into deletion of related lines.

    Read more on NAV Patterns Wiki...

    Best regards,

    Bogdana Botez at Microsoft Development Center Copenhagen

  • Microsoft Dynamics NAV Team Blog

    NAV Application Design Pattern - Feature Localization for Data Structures

    • 1 Comments

    Meet the Pattern

    This pattern shows a solution for integrating W1 features to pre-existing country features that use different tables to achieve similar functionality.

    Know the Pattern

    It sometimes happens that certain features are requested in a country/region that is supported by Microsoft, 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.

    Then, at some point in time, a decision is made to create a W1 feature that is closely related to the local functionality but uses a completely different set of tables, pages, etc. The developers now face the following problem: How to enable the newly-developed W1 feature into a country, such that the customers who are accustomed to their local structures can seamlessly continue working without completely (or immediately) switching to the W1 objects.

    This was the issue that was tackled in the Microsoft Dynamics NAV 2013 R2, in relation to the SEPA Credit Transfers functionality.

    Using a Proxy

    The generic Proxy pattern is "a class functioning as an interface to something else" (Wikipedia).

     

    Figure 1. Proxy in UML

    Pattern Elements

    The Microsoft Dynamics NAV data model translation of the proxy pattern can be used as explained below.

    In the diagram, RealSubject is the Microsoft Dynamics NAV data model. Variations in table structures, relationships, and numbers are particular to each country. The W1 model is the base for the localized data models. However, some countries have heavy localizations which cannot be directly processed by the W1 core objects.

    The proxy is a codeunit that gathers data from wherever it is stored and transforms it to fit into a standard table, which is later used across all localizations.

    The interface is the fixed form in which the data is presented to be consumed by the client.

    The client can be an XML port that is fed from the common data interface. It can also be any other data processor (a codeunit fed to another table, etc.) or data display object (page or report).

    Pattern Steps

    1. The user creates records in the local tables.
    2. The user invokes an action that must be processed using the W1 feature code.
    3. The proxy codeunit moves the data from the local tables to the W1 tables, either into a temporary or persistent set of records, as needed.
    4. The W1 code now performs the action on the W1 table data.    

    Use the Pattern

    In Microsoft Dynamics NAV 2013 R2, Continue reading on NAV Patterns Wiki...

    Best regards,

    Bogdan Sturzoiu at Microsoft Development Center Copenhagen 

  • Microsoft Dynamics NAV Team Blog

    Using the Quick Filter in Microsoft Dynamics NAV

    • 12 Comments

    Many of you that have installed Microsoft Dynamics NAV 2013 R2 have for sure noticed that the quick filter behavior has been redesigned in this release and that is why, in this post, we will go through all the changes and the intention behind them.

     

    So let’s start with a bit of history; the first version of the quick filter was released in the Microsoft Dynamics NAV 2009 Windows client, where we replaced the filter window available in the development environment with a filter pane integrated on all Microsoft Dynamics NAV pages. Here the user both has the option of entering filter criteria as plain text and the ability of composing an advanced filter. If you would like to quickly search for a certain record, the recommended practice is to use the quick filter.

    Let’s say, for example, that we want to find a contact in the contact list starting with “Man”. We can construct the filter by selecting the Name field and entering the text “man” in the search field.

    Notice that all the contacts starting with “man” now appear in the results list. How is this working? Whatever we add to this filter will be internally translated to a string by adding ‘@’ in front and ‘*’ in the end. So our filter string ‘man’ becomes ‘@man*’ and the Windows client filters for any contact name that starts with “man” in upper or lower case.  

    The following table illustrates more Quick Filter search examples in Microsoft Dynamic NAV 2013.

    Search Criteria

    Interpreted as…

    Returns…

    Man

    @man*

    All records that start with the string man and case insensitive.

    Se

    @se*

    All records that start with the string se and case insensitive.

    Man*

    Starts with Man and case sensitive

    All records that start with the string Man

    'man'

    An exact string and case sensitive

    All records that match man exactly

    *1

    Ends with 1

    All records that end with 1

    @*man

    Ends with and case insensitive

    All records that end with man

    @man*

    Starts with and case insensitive

    All records that start with man

    As part of our development process we regularly perform usability studies and some of them showed the users instinctively thought of the quick filter as a search field and that is why we decided to modify the quick filter behavior to a “contains” rather than a “starts with”. So what does this mean?

    Let’s construct the same filter in the Microsoft Dynamics NAV 2013 R2. Notice that the search results list includes contact names which start with “Man” and even have “Man” in the middle of the name. 

    What has changed? The entered filter will be translated to a string by adding ‘@*’ in front and ‘*’ in the end. So our filter string ‘man’ becomes ‘@*man*’ and the Windows client filters for any contact name that contains “man” in upper or lower case.  

    To start with in the RTM version of Microsoft Dynamics NAV 2013 R2 we have considered the simple user approach where the special characters in the filter criteria are ignored. However, in the Cumulative Update 13 for Microsoft Dynamics NAV 2013, we have refined the user experience and now respect the entered filter criteria.

    The following table illustrates the Quick Filter search examples for the Cumulative Update 13 and later for Microsoft Dynamics NAV 2013.

    Search Criteria

    Interpreted as…

    Returns…

    Man

    @*man*

    All records that contain the string man and case insensitive.

    Se

    @*se*

    All records that contain the string se and case insensitive.

    Man*

    Starts with Man and case sensitive

    All records that start with the string Man

    'man'

    An exact string and case sensitive

    All records that match man exactly

    *1

    Ends with 1

    All records that end with 1

    @*man

    Ends with and case insensitive

    All records that end with man

    @man*

    Starts with and case insensitive

    All records that start with man

    We encourage you to check out the Cumulative Update 13 and we hope that this blog demystifies some of the behavioral differences of the quick filter across Microsoft Dynamics NAV product versions.

  • Microsoft Dynamics NAV Team Blog

    Zetadocs Express zero-client install option: One add-in for all

    • 0 Comments

    It’s becoming less desirable to install any client side software and ease of deployment is becoming a key factor when choosing software. Modern software needs hybrid options and using deployment methods like ClickOnce, it looks likely to remain that way - for a while longer at least.

    Equisys has now released an update to Zetadocs Express that includes the option of a Document FactBox installed on the server than runs Microsoft Dynamics NAV server to support the Microsoft Dynamics NAV Web client. It is also automatically available to the Microsoft Dynamics NAV Windows client, deployed remotely using ClickOnce, and Microsoft Dynamics NAV Windows clients that are installed directly on the desktop. This cross-client support now gives partners the option of zero client-side software deployment to achieve simple document management across all Microsoft Dynamics NAV clients.

    Touch and Choose

    One of the main benefits of Zetadocs Express is the ability to drag and drop related documents which are stored in the electronic archive for viewing in context within Microsoft Dynamics NAV. However, drag and drop to capture is very much a Windows invention for enhanced usability.

    A Microsoft Dynamics Web client in a browser on a tablet makes that more complicated, especially when you want to drag and drop emails and attachments from Outlook to Microsoft Dynamics NAV records. That sort of action - between two separate programs - is just not possible yet in the web world, especially with most touch devices.

    Consequently touch and choose was born as the way to add documents in the Microsoft Dynamics NAV Web client, which works just as well irrespective of the device you happen to be using.

    Coexistence

    If PC-based users using the Microsoft Dynamics NAV Windows client want the ability to capture emails using drag and drop from Outlook they can with an additional client-side install.

    The Zetadocs Document FactBox detects whether the Zetadocs Client is installed locally on the desktop, and if so it automatically shows the additional drag and drop functionality and Outlook email integration.

    Both add-ins happily coexist in the same Microsoft Dynamics NAV system - you just need to decide if the additional functionality is needed by the client and install Zetadocs Client on those desktops that need it.

    Try it today

    Zetadocs Express is the foundation member of the Zetadocs for the Microsoft Dynamics NAV family of products available at no additional cost to users of Microsoft Dynamics NAV 2013 & Microsoft Dynamics NAV 2009 on a Business Ready Enhancement Plan, download it and try it with the Microsoft Dynamics NAV 2013 R2 Web client today!

  • Microsoft Dynamics NAV Team Blog

    Journal Error Processing

    • 0 Comments

    Today’s pattern changes the paradigm of how we’ve done error processing in Microsoft Dynamics NAV earlier by providing less-intrusive, more user-productive error processing.

    Meet the Pattern

    This pattern describes an optimized way to handle invalid, incomplete, or inconsistent data that users enter in journals.

    Know the Pattern

    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. Microsoft Dynamics 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.

    One design is that when an error is found, stop execution and prompt the user to correct the error. After correcting the error, the user restarts processing and is stopped again at the next error, and so on. Stopping and showing each error is time-consuming and frustrating for the user.

    Another design is that processing does not stop when an error is found. Instead, all errors are gathered in a table and displayed all at once at the end of processing. This way, the processing is ideally invoked only once, reducing the time and effort spent by the user to expose and correct all data validation errors.

    In both designs, the processing is not finalized if any errors are found (for example, exporting to electronic payments is not done, until the data error is resolved).

    This document describes how to implement the second error-handling design: Showing all errors at the end.

    Use the Pattern

    The example below comes from the implementation of SEPA Credit Transfer.

    After setting up SEPA-specific configurations, the user can start entering vendor payments that will later be exported to the payment file. (The setup depends on the country, but generally involves choosing number series for SEPA export files, choosing the export format, and enabling SEPA Credit Transfer.)

    In the W1 solution (and most of the country-/region-specific versions), payment lines are created in the Payment Journal page, from where the user can invoke the Export Payments to File action, which will attempt to create a SEPA-compliant XML file containing the description of the journal payments that are to be made by the bank.

    When the Export Payments to File function is invoked, Microsoft Dynamics NAV validates the journal line data. If the data must be completed or updated, then no file will be created and the user sees the following message:

    To give a visual overview, the lines that need corrections are highlighted in red. The factbox is context-sensitive, meaning that it shows only the errors that relate to the currently selected line.

    When the first payment journal line is selected, the FactBox show errors for the first line.


    When the second payment journal line is selected, the FactBox shows errors for the second line. 


    Application Objects

    In the following table, the Generic Object column contains the objects that you can use as a base for your implementation.

    Generic Object

    Description

    Sample W1 implementation of SEPA Credit Transfer*

    Journal Page

    This is the journal list page where the user invokes the processing action.

    Payment Journal

    Action on Page

    The processing action invoked by the user on the journal list page.

    Export Payments to File

    Errors Page List Part

    A FactBox that displays any journal line validation errors.

     

    To improve user experience, the developer can highlight the lines with errors in red and conveniently sort the lines with errors at the top.

    Payment Journal Errors Part

    Validation codeunit

    Contains code that checks that the journal line contains correct, complete, and coherent data and that the line is ready for whatever process must be done next.

    SEPA CT-Check Line

    Processing codeunit

    Executes the processing of the journal lines.

    SEPA CT-Export File

    Journal Error Text Table

    Contains

    • The error messages
    • Link information about where the error messages belong. For example, in table 1228, Payment Jnl. Export Error Text, the error is linked uniquely to a journal line by the following fields:
      • Journal Template Name, with TableRelation="Gen. Journal Template"
      • Journal Batch Name, with TableRelation="Gen. Journal Batch".Name WHERE (Journal Template Name=FIELD(Journal Template Name))
      • Journal Line No.

    Other related information can be added, such as document number of the original source document, if the current journal line originates from a document.

     

    An extra improvement would be to add a drilldown or a link to the page where the user can fix the error. This would significantly simplify the scenario by excluding manual navigation and investigation by the user to find the page where the error can be fixed.

    Payment Jnl. Export Error Text

     

     * The W1 implementation of file export for SEPA Credit Transfer contains the generic SEPA functionality. However, due to differences in data models and user scenarios in various country implementations, the selected local versions contain adaptations of the generic functionality.

    Flow

    Find below a diagram describing the flow between the objects involved in the journal error processing.

    Code

    Following the flow above, the code (in the SEPA Credit Transfer example) is as follows.

    Read more on NAV Wiki...

    Best regards,

    The NAV Application Patterns team

  • Microsoft Dynamics NAV Team Blog

    Owner ID field became obsolete in Dynamics NAV

    • 0 Comments

    On MSDN it is written that the Owner ID field became obsolete and should be removed from specific pages. This means that anyone can start up the Windows Client and configure a Role Center without any restrictions. Reasoning behind this is explained in this small blog posting among a new approach that does give a better handling of this.

    The Owner ID was removed from the profile table during the multitenant work. The Profiles are in the application table and can’t have references to users which are in the tenants. The feature itself was not that well thought through. On all other records we have a last person saving wins.

    The proposed workaround / solution is to use a permission set per profile and use record level security to restrict access to that particular profile ID.

    To resolve the issue and get the old behavior back, you need to create a new Permission Set. E.g.:

    TEST PROFILE
    Following details:
    Object Type   Object ID        Object Name         R/I/M/D   Security FIlter
    Table Data     2000000072  Profile Metadata     Yes          Profile: Profile ID=ACCOUNTING MANAGER

    After logging on with a user in configuration mode that has two permission sets applied (BASIC and TEST PROFILE) with a profile called IT Manager, it is no longer possible to change the role center and make changes.

    Kindest regards,

    Marco Mels
    Microsoft Dynamics Netherlands

    Microsoft Customer Service and Support (CSS) EMEA

  • Microsoft Dynamics NAV Team Blog

    Cumulative Update 7 for Microsoft Dynamics NAV 2013 R2 has been released

    • 9 Comments

    Cumulative update 7 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013 R2. 

    The cumulative update includes hotfixes that apply to all countries and hotfixes specific to the following local versions:

    • AU - Australia
    • AT - Austria
    • BE - Belgium
    • CH - Switzerland
    • DE - Germany
    • DK - Denmark
    • ES - Spain
    • FI  - Finland
    • FR - France
    • IS - Iceland
    • IT - Italy
    • NA - North America
    • NL - Netherlands
    • NO - Norway
    • NZ - New Zealand
    • RU – Russia
    • SE - Sweden
    • UK - United Kingdom

    Where to find cumulative update 7

    You can download cumulative update 7 from KB 2964528 – Cumulative Update 7 for Microsoft Dynamics NAV 2013 R2 (Build 36703 - our apologies for originally posting the wrong build number).

    For a full list of all hotfixes included in cumulative updates for Microsoft Dynamics NAV 2013 R2, see the following CustomerSource and PartnerSource pages: 

    CustomerSource:

    PartnerSource

    More Information

    For more information about cumulative updates for Microsoft Dynamics NAV 2013 R2, see Announcement of update rollups for Microsoft Dynamics NAV 2013 R2

  • Microsoft Dynamics NAV Team Blog

    Cumulative Update 14 for Microsoft Dynamics NAV 2013 has been released

    • 2 Comments

    Cumulative update 14 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013. The cumulative update includes hotfixes that apply to all countries and hotfixes specific to the following local versions:

    • AU - Australia
    • AT - Austria
    • BE - Belgium
    • CH - Switzerland
    • DE - Germany
    • DK - Denmark
    • ES - Spain
    • FI   - Finland
    • FR - France
    • IS  - Iceland
    • IT   - Italy
    • NA - North America
    • NL - Netherlands
    • NO - Norway
    • NZ - New Zealand
    • SE - Sweden
    • UK - United Kingdom

    Where to find cumulative update 14

    You can download cumulative update 14 from KB 2964546 – Cumulative Update 14 for Microsoft Dynamics NAV 2013 (Build 36605).

    For a full list of all hotfixes included in the cumulative update, see the following CustomerSource and PartnerSource pages:

    CustomerSource:

    PartnerSource:

Page 5 of 47 (691 items) «34567»