Excel Buffer & Ease of Upgrade

Microsoft is trying to make our life easier from an upgrade perspective with merge commandlets and upgrade codeunits. This is nice but sometimes you run into situations that are not fixable with tools like these.

I am currently upgrading one of my older customers from NAV2009R2 classic to NAV2016. Some code goes back to 3.60 and reports to 2.x.

During this upgrade I run into a number of issues that are disruptive to merge commandlets, even if I were using pages, even if I were using extensions and eventing.


This has everyting to do with Microsoft refactoring. There are three major application areas they have refactored that blow up my upgrade.

  • Dimensions
  • SMTP Email
  • Excel Buffer

This post is about the last one. I’ll write another blog about the SMTP Buffer. Dimensions we all know, I don’t think I have to write more of that.

Excel Buffer

The Excel Buffer has always been one of my best friends. It allows you to very quickly create “reports” for customers without writing a report, especially if you combine it with temporary tables.

I’ve written a few times about the Excel Buffer.

Microsoft has changed the way the Excel Buffer works. This screenshot displays NAV2009R2:


It is the code that exports the Account Schedule to Excel.

This is NAV2016CU1:


You can see that CreateBook now has parameters and WriteSheet has one parameter removed.

This kind of stuff is hard to fix with the merge commandlets. You have to go through all of your code that is using this and fix it.

Clean Code

This piece of code can probably be simplified into one new function. Instead of writing the same 10 lines in each report, create a function that takes an argument table and does the magic. This will make the next upgrade easier.

Trust me, I know what I am talking about. (I have to fix this at “you don’t want to know how many places”).


  1. Jens Glathe says:

    Not to forget posting codeunits refactoring since 2013R2… but mostly for the better. 🙂 If you have an AddOn that extends these codeunits at many places, you have quite a time where you have to redesign for the refactored codeunits. That’s more often now, but as I said, mostly for the better.

    Liked by 1 person

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.