Part 2: Object Types, Tables, Pages, Reports, XML Data, Code Units, Query Object Types and Menusets in Dynamics NAV

We have identified that each Microsoft Dynamics NAV system has lots of objects that control the information the system stores and how that information is processed and displayed. These are broken into different types each of which has a specific purpose.

Tables

Control what information is stored by your Dynamics NAV system and its structure. It’s the filing system of your ERP system. Think of the database as the draw in your cabinet (your SQL server is the cabinet itself) and each table as a file. In that file you have sheets of forms or what we call records of information and on each form you have boxes or what we call fields. The table definition defines each file and box, all the sheets in a file have to have the same format form but maybe you don’t fill all of it in.

Dynamics-nav-table-designer

Pages

Pages are objects that form how a set of information is displayed on screen. A Screen in Dynamics NAV is actually made up of several pages with a page maybe displaying a list and then other pages displaying more information depending on the record you point to I. The list. Pages don’t define the exact layout grid reference style as they are designed to be display independent. That means they will display correctly on your mouse driven windows client but also differently and more useable on your touch screen tablet and differently again on the small screen on your phone (when Dynamics NV 2016 get here for the phone).

For those with older Classic versions of NAV, pages have replaced forms and one of the major tasks to upgrade is to recreate your customised forms as pages.

Customer-card-edit

Reports

Pretty obviously these define what the reports that come out of your system look like. There can be extensive scripting logic in C/side behind the report to draw together the required data, and sort or filter it in the required way. Then the report sections point to these either derived or actual table records. When a report is run this logic is executed and the resulting ‘data’ is created by executing and compiling that logic in hopefully a summarised way one the middle tier as close to the database to be as fast as possible.

That report ‘data’ is then passed to a price of software called the Microsoft’s SQL Report Viewer running on whatever client you are using. That report viewer then ‘renders’ that data into the report you see on screen depending on the option you have chosen. As part of the report object the system holds what we call the Report Design Language (RDL) layout definition, which is created and uploaded to the report.

The only exception to this is it’s defined to run as a ‘word’ report in which case the appropriate word template is extracted from the database and used for the merge instead.

The new RDL layouts are the biggest single task on upgrade from 2009 and earlier system as all the reports have to be started again!

XML Ports

So these can be used to export or import information to Dynamics NAV. That information can either be in XML (the best most modern reliable format) or fixed or variable length text files. This is the object you can use to import or export to CSV files! There are a lot less of these as standard in a Dynamics NAV system, really there to be used if you need any import or export capability.

Note for you 2009 and before users, XML Ports have replaced dataports, and yes, I’m afraid they do all have to be redone as part of an upgrade process.

Code Units

These hold the logic, procedures, processes or instructions for what the system does. There are functions that can be executed when you press enter on a field, press a toolbar icon or start a process from the job queue. They lookup and update different tables and may start either pages or reports display the results. They are the core of your system and the most important objects after tables (nothing beats the data structure for importance).

Dynamics-nav_-_code-units

Querys

A new object type for the 2013 version, they allow retrieval of data from across multiple tables in the SQL database in an especially efficient way. Rather than having to send a request to the server for one record and then another for the related records in another table (customers and that customers outstanding ledger entries for instance) before going on to the next record, it can just send the one request and received the whole set of data back in one go.

This makes the process much faster and puts less load on the system. Especially import is that Query’s can be queried from Excel using the Internet compliant OData protocol. A great way to extract a whole set of data without having an impact elsewhere.

Menusets

Simply put they define the options on the departments page in Dynamics NAV. When new pages or functionality is created it often needs adding to a menusuite.

Hopefully you now understand the critically important role that objects play in building your NAV solution and what each type is for.

Note

This post is part of a 6-part series. A link to all the posts in this series are below;

Author: James Crowter

I’m passionate about how businesses can improve their efficiency by getting process optimal more of the time. For the last twenty five years I’ve worked to help organisations of all sizes and types implement the ERP & CRM software that typically they decide they need when things are going wrong. I’ve seen that work unbelievably well and enabled those organisations to rapidly grow but I’ve also had some hard projects over that time where it’s felt more like warfare at times. Since 1996 (and version 1.01) I’ve been working with a small Danish product called Navision that’s now become Microsoft’s Dynamics NAV and I’ve also been using and consulting around Microsoft CRM since 2005. As managing Director of one of the longest established first Navision and now Microsoft Dynamics partners I’ve been involved in the complete history including numerous product councils and system design reviews. It’s my privilege to know many of the key Microsoft executives and product designers and have insight into both where the products are now and their future direction. So colleagues & clients have asked me to start this blog to share some of the insight that both this knowledge (obviously where not restricted by NDA’s or client confidentiality) and experience can help. Specifically I want to concentrate not on the specifics of how (there are some great blogs already for that) but why. If any user helps their business make better decisions or consultant can give better advice then that will be objective achieved. I founded Technology Management in 1992 and have led from the front ever since. Helping clients use technology to grow their business is my passion through explaining technology in terms that everyone can understand. My interest in computing began at the age of eight, long before my school had the equipment to cope. Throughout school and university I developed software commercially. I hold many IT certifications, such as Microsoft Dynamics NAV (for over 17 years), Microsoft Dynamics CRM (for over 10 years), as well as Microsoft Windows Server, Exchange and SQL. In October 2015, I was awarded the title of Most Valuable Professional (MVP), a title given to a select few individuals (31 currently) across the world specifically for Dynamics NAV. After years of working with a range of distribution and manufacturing software for hundreds of organisations, I focus on understanding the business requirements of an organisation, what it will take to deliver the systems required to maximise their potential. Follow me online via my other social channels: - Twitter: @jamescrowter - LinkedIn: linkedin.com/in/jamescrowter Or email me directly at james[.]crowter[@]tecman.co.uk.

Leave a Reply

Your email address will not be published. Required fields are marked *