Learning Dynamics NAV - Introduction

Learning Dynamics NAV - Introduction to good programming techniques in Navision. Explaining what you need to learn to be good at it. To program successfully in Dynamics NAV you need many skills. And there are many different opinions as to what is usefull and what is not. Obviously there are things such as the ability to write and understand a spec, being able to take instructions from a PM, testing documenting etc. but at this point I want to concentrate on three issues. 1/ Dynamics NAV code. The basic building blocks of the language. 2/ Tips and Tricks to write code “The Navision Way”. (I’m not quite ready to say “The Dynamics NAV Way” [B)] 3/ The application. 1/ Dynamics NAV code - you can learn from books, or one of many available courses out there. Its all about knowing when to use REPEAT and when to use WHILE; what’s the difference between SETRANGE and SETFILTER. In reality you learn most of this by reading the Dynamics NAV developers guide. And by looking at code in the applicaiton. 2/ Tips and Tricks - really you can’t learn until you know why you need them. Generally they will come when you are sitting with a client trying to do something that seems odd, and you just know there has to be a short cut. Either you will experiment and find these tricks your self, or you can look in the base application to find somethign similar and copy it, or you can post on MBSOnline and ask for help. 3/ The applicaiton - is in the Dynamics NAV the key to successfully programing effective efficient code. In my experience, I have found that the really good Dynamics NAV developers, are the ones that wite the simplest code, because they know the application well, and are ale to find an effective solution, instead of just using a bigger hammer. There are a small number of developers that believe that you can be a good Dynamics NAV developer without understanding the application, but we will just agree to disagree, and move on. And whilst some people will go on to be good Dynamics NAV developers, I will work with those that want to to be GREAT Dynamics NAV developers. So step one to learning to be a Great developer is to know the application backwards. For this you need (obviously) to learn two things: 1/ The data structure, 2/ The functionality.

The Dynamics NAV Data Structure: Install a new Navision Database, which will be your test database. For this learning exercise, you will only need the Cronus license. If you have questions or issues, post them here. Although you will be tempted; at this stage, avoid looking at or touching code at all costs. Programming/coding is a trivial part of Dynamics NAV, but still, its very easy to get caught up in it at the beginning, and many potential developers do so, and thus never learn Dynamics NAV, and never become great developers. Be prepared to open the Table designer, and just start scanning through tables, looking at links (preferably do this with F6, NOT by looking at field properties), and reviewing data. Have a look at all the Base tables: ID : Name 14 : Location 15 : G/L Account 17 : G/L Entry 18 : Customer 21 : Cust. Ledger Entry 23 : Vendor 25 : Vendor Ledger Entry 27 : Item 32 : Item Ledger Entry 36 : Sales Header 37 : Sales Line 38 : Purchase Header 39 : Purchase Line 45 : G/L Register 46 : Item Register 48 : Invt. Posting Buffer 49 : Invoice Post. Buffer 50 : Accounting Period 81 : Gen. Journal Line 83 : Item Journal Line 92 : Customer Posting Group 93 : Vendor Posting Group 94 : Inventory Posting Group 110 : Sales Shipment Header 111 : Sales Shipment Line 112 : Sales Invoice Header 113 : Sales Invoice Line 230 : Source Code 250 : Gen. Business Posting Group 251 : Gen. Product Posting Group 252 : General Posting Setup 307 : Inventory Buffer 308 : No. Series 309 : No. Series Line 339 : Item Application Entry 370 : Excel Buffer 379 : Detailed Cust. Ledg. Entry 380 : Detailed Vendor Ledg. Entry 5740 : Transfer Header 5741 : Transfer Line 5744 : Transfer Shipment Header 5745 : Transfer Shipment Line 5802 : Value Entry 5803 : Item Journal Buffer 5813 : Inventory Posting Setup 6660 : Return Receipt Header 6661 : Return Receipt Line You can look at these both from the Table Designer, and from the application. HINT if you need to know which table you are in, then you can press CTRL+F8 to find out which table you are looking at. For more detail, then go to the table designer, so you can run the whole table. You will be trying to understand how these tables link to one another, and which fields they are related by. At this stage, try to concentrate just on these code tables, and don#8217;t spend too much time on otheres. That will come later.

The Dynamics NAV Functionality: This is the harder part, and you will understand it better once you better understand the Data Structure. Of course you won’t really understand the Data Structure until you have good understanding of the Functionality, so in reality this is a bit of a Catch 22 situation. In other words, you really need to learn both at once. You should make the effort to run every function you can find. This going to be tough, so you need to start somewhere, and get a feel for what Navision does. As you progress through learning functionality, the Data structure will become more understandable. I recommend that you start from the Sales Order Form, from here (in Cronus) learn to create new customers and items, try out posting Item Sales part shipping etc. I will give more specific examples later, but for now, just get yourself to a position where you can comfortably create a new Customer, some Items, and ship and sell them. To get the items in stock, just go to an Item Journal and post a number of Positive Adjustments for that Item, and DON’T use warehousing or bins at this point. Basically from the Sales Order Form one by one, open each and every form, and try each and every function. If the function does not work, find out what you need to setup to make it work, but try everything. To start with, concentrate on GL, Inventory, Sales and Purchasing, get those understood first. Don#8217;t worry too much about the more complex Functions related to reservations, planning, manufacturing BOMs etc. Just get past the basics first.

Dynamics NAV - The first test. Once you have a good idea of how Dynamics NAV works, test your self. I suggest the following test for all those that think they know Dynamics NAV, and be honest, don’t cheat. Open or Create a new Dynamics NAV Database from the Install CD. In this database, delete all companies. Yes delete all company data. And for the rest of the test, DON’T open Cronus on another DB, that#8217;s just cheating. Now in this new completely empty Database, create a new company, and in that company do the following. Create 10 or so Items, Customer and Vendors. Purchase a few of each item from various vendors, Sell Items to various customers, Purchase Office supplies and pay salaries using Purchasing and GL Journals, Receive Payments from customers, Pay Vendors, Also throw in some vendor and customer credits or returns, Spread all the transactions over a year, Close the financial year Create and Print out a Trial Balance, Balance Sheet, and Profit Loss statements, and an inventory valuation report. If you get this far, then you will really understand Dynamics NAV. You would have had to create GL accounts, and setup all the posting groups and posting accounts. It will be a true though mini exercise in implementing Dynamics NAV. The next test is to introduce Dimensions, Reservations, Lot Numbers, Item Charges, Transfers, Locations, Manufacturing, Expected cost posting, Resources, and Jobs. Once you have that worked out, then its time for Warehouse RM, Fixed Assets, Service management etc.

Dynamics NAV - Navigate. One of your greatest tools when learning to develop in Dynamics NAV is the “Navigate function”. Using F6 on a field in a table, you can learn a lot about the Data structure and its relations. But it does not help in learning posting functionality when you are trying to workout how posted tables are linked. This is where Navigate comes in. When you start learning Navision, every time you post a document, you should Navigate the results to see what happened, and how the tables were created. Also when ever you develop a new customization or Add-On that generates Posted Tables or Entries, you should always link it into Navigate.

David, Thanks!!! i’m doing just this right now… what was that “book” u mentioned?? Shilpa

Link in my signature [:D]

For a “Newbie” this will take ages !!! I “think” that I know a bit of Navision [;)] and it would take me two days to setup the system and go through all the tasks you are giving here, David.

Yes its a big task, and for some it wil take a onth, for others it may take 3 months. If you are an end user, and have specific needs, then you can always do it much faster. If you work for an NSC, and have to be out billing, then it will take much longer. But in the end its a very worth while excercise. Even if you have a few years of Navision experience, its still worth at least doing the test part. If you have done a few implementations, it should be a breeze [:D]

bump for adnan


Once you have that worked out, then its time for Warehouse RM, Fixed Assets, Service management etc.

Then, just for fun, get Business Notification Server and Business Analytics working for you [:D] And on the creation of the company create more than 1 GL account and 1 relevant posting group in each area, that is just cheating!!


Once you have that worked out, then its time for Warehouse RM, Fixed Assets, Service management etc.

Then, just for fun, get Business Notification Server and Business Analytics working for you [:D] And on the creation of the company create more than 1 GL account and 1 relevant posting group in each area, that is just cheating!!
Originally posted by SBWEAVER - 2006 Feb 23 : 22:33:43

Nooooo this is the beginiers forum, none of that stuff here (well not yet at least) [:D]

It was only the natural progression from your: when you have done this, do this, then this then this!! [:D]

Yes I know, thus the [:D]

Hi David, I had just decided to learn Programming myself alongwith the Documentation available and redoing whatever customisations I got done as a Functional person on all my Navision Implementation. But I think the way you have started training ( Or even a Feel of it) is great. I postpone my self learning untill your classes are done. [;)] When is the next class scheduled?

BY the way, I am not going to do the exercises which you have suggested. After 6 Implementations and another Golive scheduled this month end. , I feel I need to pay myself for doing those exercises. [}:)] Can we not start right away with some deeper things? DD