NAV Development – Import Flat Files with XMLPorts

After reading this blog and watching this YouTube video, you should have enough information to start figuring out how to use XMLPorts to import flat text files, even when this file contains data for multiple tables.

When I first got started as a NAV developer, I was assigned a senior whose job it was to educate me about what it takes to be an effective NAV developer. Whenever I had a question he would always challenge me to figure it out myself, while maybe giving me a tiny little push in the right direction. At first I thought that was very annoying, but it forced me to develop what is probably the most important skill as a developer: the skill of “figuring out how stuff works”. Once he was satisfied that I had spent an adequate amount of time and brainpower to a problem, he would take the time to give me a lesson. Sometimes he would make these lessons up on the spot, because he had to figure it out himself. Those lessons are my favorite memories of my time learning how to be a NAV developer, and oddly enough most of them weren’t even about syntax or objects, but about “how to figure stuff out”.

Every day, I make my rounds through the online communities, in search of questions to answer. Sometimes, I find a question that makes me wonder myself how something works. When this happens, I take a standard NAV database, and spend some time in the evening hours to figure it out. The past few days there’s been a question about how to import data for multiple tables into the RTC from a flat file, using an XMLPort. Now, at ArcherPoint all the developers attend a weekly conference call, and one of us presents a technology, or some tips on how to do certain things. We had recently held one about XMLPorts for the RTC, so I felt confident that this one would not be too big of a problem for me.

While my wife took my daughter to dance class, I worked on a couple of XMLPorts for the RTC, to import Purchase Invoice information into NAV. The YouTube clip below describes the results of those efforts. Hopefully this will help you understand how this works.

First published April 24, 2012

NAV on SQL – SQL Backup and Restore

Creating a NAV database on SQL Server is very easy to do when you have a SQL Server backup, and it is much faster then restoring a NAV backup. In this YouTube clip I show you how to use SQL Server Management Studio to create a full database backup, and how to create a new NAV database with that backup file.

First published April 22, 2012

NAV on SQL – NAV Backup and Restore

It is very easy to create a new NAV database on SQL Server, using the proprietary NAV backup Mechanism. While it is preferred to use SQL Server to back up and restore your databases, the NAV backup can also be used. n additional benefit of the NAV backup is that you can back up individual companies. I’ve created a YouTube clip that shows you how to create a NAV backup and how to use that backup to create a new NAV database on SQL Server.

First published April 22, 2012

Performance on NAV 2013

The first performance impressions are in and it looks like NAV 2013 is the first version on SQL Server that is going to outperform the native database server.

When talking about whether to upgrade to NAV 2013, one of the things that my customers are interested in most is whether it will perform at acceptable levels. I’ve been wanting to do something elaborate and use the new testability capabilities in NAV 2013 to do a benchmark test for performance specifically. As often happens, plans don’t always come together, and by the time I started forming some ideas, other people have gone and done a much better job than I could have. So, what I thought I’d do is compile a number of links to performance related content that I’ve found so far.

First off, my fellow MVP Jörg Stryk wrote a very technical article about his impressions of NAV 2013 from a SQL Server point of view. He shares his sources, he’s done some comparisons between his own T-SQL and the queries that are generated by NAV 2013. Very interesting to read his train of thought, and, if you can keep up with him, you will learn a thing or two about SQL Server. Some of the key things that I picked up on are the modified locking mechanism, the promise of the query object, and the annoying fact that individual users cannot be identified from the SQL Profiler anymore.

Next, my coworker Faithie writes about some changes that were made to how Dimensions are handled in NAV 2013. This one has a huge potential to help improve performance. I work with customers that have millions of ledger entries, with hundreds of millions of ledger entry dimensions, and the prospect of eliminating pretty much all of those is a very compelling one.

Next up, another fellow MVP, Vjekoslav Babić, who lists his top 5 SQL Server improvements. With NAV 2013 being the first version on SQL Server only, we can finally start letting go of certain “SQL improvements” from previous versions, which were really just things to make NAV on SQL behave the same way as the native database server. If I were to list what I take away from this article, I would list all 5, so I’ll spare you and just refer you to the article itself.

Where it gets interesting is when‘s Per Mogensen puts together a couple of videos (here and here) to demonstrate how NAV 2013 stacks up against NAV 2009. These videos then inspired Vjeko to take it a couple of steps further, and put together his own test, and he even shares his test objects. This is turning into a real community effort!

With NAV 2013, it looks at though the potential is definitely there to get performance up to native database server expectations, which was always the argument against using SQL Server. What I am very much excited about is that finally the NAV team can let go of artificially making NAV on SQL Server behave the same way as the native database server and let SQL Server do what it is good at. I personally think that they have only just scratched the surface, and a ton of further improvements are possible. I think the query object will prove one of the most potent weapons against performance problems, and, hopefully, we’ll see a tighter integration of SQL Server capabilities from C/SIDE.

First published June 25, 2012