NAV 2013 R2 | The Incident with removing FBK features is under investigation by the stewards

Since NAV 2013 R2 was released there has been a lot to do about removing the backup feature (fbk) from the classic client. Especially the part that allowed people to backup and restore a specific company.

Honestly I cannot recall when I last used this feature other than copying a company within a database. I would be curious to hear real business cases for this feature, especially end-user cases.

But I have some good news.

Just like an indicent in Formula 1, this incident is under investigation. Maybe it will be back.

Last Monday there was a MVP call with Microsoft about issues in NAV 2013 R2 and the feedback about this issue is that they realize that they’ve broken functionality that causes something that could be done before not to be possible anymore.

They are currently looking at if and how a similar feature could be reintroduced. We will be hearing from Microsoft within few weeks.

I’ll keep you updated via my (new) blog!

BackupRestore

NAV 2013 R2 | Keys, Keygroups and SetCurrentKey

With NAV 2013, the Classic Client and the Native Navision database were discontinued.

One of the possibilities that arised was improving the SQL story in NAV.

This was done first by implementing SETAUTOCALCFIELDS and the possibility to do CALCSUMS and FlowFields without specifying a SumIndexField. This is released in NAV2013.

In NAV2013 R2 the story continues

Keys

In the Native database the structure how Navision maintained Keys was perceived as revolutionairy and a main part in the success of the Application and its architecture.

Within a Key one could specify SumIndexFields. These are decimals that then would be totalled in the background without writing code.

Everything in NAV like G/L, Inventory and Jobs is based on that principle. You will not find any Application code in NAV that totals entries.

To be able to sort something a Key was required in the Native database. A maximum of 40 keys were allowed. This is different in SQL Server.

SQL Server can sort without having an Index (the name for Key in SQL Server). Therefore with the Native database being discontinued the possibility opened to change the Key story in NAV.

Therefore with the introduction of NAVA 2013 R2 it is no longer required to define a Key on a table to sort data.

It is now possible to sort on any column in the UI.

And it is also possible to sort on any field from AL code.

SetCurrentKey no longer requires a Key to be created in the table.

KeyGroups

Another change that has been imlemented is the discontunation of KeyGroups.

After internal debate and investigation Microsoft decided that the active use of the feature was not enough to justify the effort of moving the feature from Classic Client to PowerShell.

Do you agree with this?

NAV 2013 | No more Indexhinting

By Marije Brummel, founder of NAV-Skills

UPDATE: I’ve heard this was fixed in 2016. Dit not test this myself.

Well, that sounds cool right? Like, never index hinting in NAV anymore after all the discussions in the past.

http://mibuso.com/forum/viewtopic.php?f=34&t=13154&hilit=hinting

http://www.mibuso.com/dlinfo.asp?FileID=896

With NAV 2013 it is no longer possible to setup index hints using the $ndo$dbconfig table.

Does it mean it’s no longer nescesairy.

Unfortunately not.

I found out about this during an upgrade of one of my customers from NAV2009 RTC to NAV2013.

We experienced extremely slow performance in an area where NAV2009 was much faster than NAV2013. And here I promised better performance… DAMN. Stick out tongue

Off course with our perfect documentation (not) it took some time to figure out it might be that index hinting was used in NAV2009 to force SQL using an index it would not use normally.

The process is selecting shipments to be planned in a trip for a taxicompany. We use a common method to select a shipment using the user id, just like you would when applying customer and vendor ledger entries. When selected it’s an extremely selective field (only one or two record of a million have this value) but SQL does not pick it up because… because… shoot me, I don’t know why not. DAMN 2. Stick out tongue

So with index hinting no longer possible (confirmed by Microsoft, done on purpose, by redesign) I needed to be creative.

The solution is to save a pointer to a shipment in a second table called “Selected Shipment”. All shipment that need to be planned in a trip are temporarily stored there and picked up and deleted afterwards. Depending on the architecture of your transaction this could even be done in a temporary table and/or a single instance codeunit.

So recap: no more indexhinting, be carefull with upgrades and creative with solutions.

And PS: The general performance of NAV 2013 is AWESOME!!!

NAV 2013 | SETAUTOCALCFIELDS

NAV 2013 | SETAUTOCALCFIELDS

In NAV 2013 we have a new command SETAUTOCALCFIELDS.

What does this command do.

It is used in C/AL like this:

Cust.SETAUTOCALCFIELDS(Balance)

IF Cust.FINDSET THEN REPEAT

Some Code

UNTIL Cust.NEXT = 0;

This leads to this query in SQL Server:

SELECT

ISNULL(“Customer”.”timestamp”,@0) AS ISNULL(“Customer”.”No_”,@1) AS “No_”,…,

ISNULL(“SUB$Balance”.”Balance$Detailed Cust_ Ledg_ Entry$SUM$Amount”,@77) AS “Balance”

FROM “CRONUS Nederland BV$Customer” AS “Customer” WITH(READUNCOMMITTED)

OUTER APPLY (SELECT TOP (1) ISNULL(SUM(“Balance$Detailed Cust_ Ledg_ Entry”.”Amount”),@76) AS “Balance$Detailed Cust_ Ledg_ Entry$SUM$Amount”

FROM “CRONUS Nederland BV$Detailed Cust_ Ledg_ Entry” AS “Balance$Detailed Cust_ Ledg_ Entry” WITH(READUNCOMMITTED)

WHERE (“Balance$Detailed Cust_ Ledg_ Entry”.”Customer No_”=”Customer”.”No_”)) AS “SUB$Balance”

Hence, a single SQL Statement that joins two tables.

This dramatically changes the teaching that has been done about T-SQL generation in NAV from the last few years.

Also, notice that the SIFT view is not used.

BE AWARE

Like a filter,  SETAUTOCALCFIELDS keeps being active on a variable until it is reset.

To reset this command Cust.SETAUTOCALCFIELDS should be used. So without any fields, just like resetting a filter with SETRANGE.

Thanks to Luc van Vugt to bring this to my attention.

NAV 2013 R2 | Companies and Backups

I should have had this one seen coming but forgot all about it. During the development of NAV 2013 R2 the “native” backup feature was removed.

There has been much to do about this the last few days. Some even suggested it was removed because of Multi Tenancy. This is not the case. It was removed from the classic environment into the managed environment.

Unfortunately though it has been implemented in a different way. It is no longer designed primarily as a backup feature, but as a company management feature.

The way to do backups is SQL Server, not NAV. Therefore the new feature does no longer use files to move data around.

Part of what people used backups for was reproducing companies. One could easily create a backup of a company, rename the old company and restore the backup creating a copy of the company for testing purposes.

Another reason why end-users need to create companies is consolidation. This has been implemented kinda awkward in NAV hence it needs a consolidation company.

A scenario that no longer works is taking one company out of a database, take it to another database and then restore it.

Multi-Tenacy does have a feature that is kind of like that, this is where the confusion starts.

Creating and managing companies in NAV 2013 R2

Via Departments -> Administration -> IT Administration -> General you can access the Company menu. Here you can create, rename and delete companies. Just like you could in the classic client.

Company 1

This is also where you can find the new feature Copy that allows you to copy one company to another.

CopyCompany

If you investigate the code you’ll see that Microsoft has added a new C/AL command to copy companies. COPYCOMPANY

Company 2

Move data from one database to another database

So the only scenario that we no longer have is moving data around. Fortunately I can help you there with a piece of C/AL Code that generates a SQL script for that.

bear with me here, I never intended to share this, I created this because I was upgrading from one CTP build to another and I could not open my database anymore.

Here is the code :

Company 3

I will see if I can clean this up and put it on Mibuso as download.

The general idea is to create a new database with a company that has the same objects and then generate and run this script. It is very close to making a FBK file and take it with you.

Issues with restoring companies the old way

Everyone that really worked with this feature knows that once you start having more than 40 companies you will have issues with this feature anyway. I had a customer once with 2.500 companies in one database and they could not use this feature anymore.

Moving forward

In general we are moving forward. This change has nothing to do with Multi Tenancy, it’s just a feature moved from classic to managed.

Now, I am not saying the implementation of Multi Tenancy speeded the requirement for this change up. No, I am not saying that.

NAV 2013 R2 | Are you “IN and ON” or “OUT and OFF”

Back home from Directions USA for a few days now. Normally this is where I write a wrapup of some kind like I did in Vienna or like Alex Chow did.

But honestly I think it is time to write up something more than a wrapup of an event.

Vienna-Key-Notes-01

In Vienna the title “IN Office 365 and ON Azure” was new and people need time to digest new stuff. Since Vienna I presented “What’s new in Dynamics NAV 2013 R2” for all Dutch partners and some customers. I noticed in Nashville that many people had started thinking about the impact of 2013 R2.

Released

Microsoft shipped 2013 R2 last sunday (October 6th) meaning everyone has access to the bits now. Therefore I was not surprised to see some interesting threads on Mibuso when I came home with titles like “NAV 2013 R2 from Awesome to Crap!” and “Microsoft has gone barking mad…“.

The market is changing. having worked for endusers, partners (both VAR and ISV), freelance and being linked to Microsoft I think I know the change and the market better than anyone else so let me give my opinion.

After reading this, you may choose if you want to be “IN and ON” or “OUT and OFF”.

Before defining a changing market we first need to describe the market as it is today.

The Market

Currently there are roughly 98.000 companies worldwide using Dynamics NAV. Of these companies 99.9% use a database with customisations done and 95% are different from all other NAV systems.

This was and is where NAV is strong.

This is a market of undocumented customised solution. It is a market of slow growth. As a consultant you can easily stick to one single enduser for a decade or longer. Simply because the real added value is knowing the customer.

In the current market there is no repeatability

Add-On’s and Verticalisation

This problem has been with us for more than two decades. I still remember my boss comming back from some Navision meeting (we’re talking 19’s here) where they introduced “Verticalisation”. The message was: Go vertical or die. Before that Navision Solution Centers were focussed regional. This was the time before internet, email and rdp.

During the next decade I helped building a handful of vertical solutions and during my freelance years I worked with and met many many more.

If there is one thing I learned about vertical solutions that succeed is that it needs dicipline. Worldwide there are only few vertical solutions that are trully successful.

CfMD

So what happened to the rest? For NAV 2009 Microsoft had a database of thousands of registered add-ons. Imagine a number of 5000 (which is not the real number, you’ld be stunned if I put that online which I won’t). Let’s say of the 98.000 customers half use an add-on the add-ons that are successful are only implemented 10 times in a period of over a decade. That is one implementation per add-on per year.

That’s not doing repeatable business. And this is what Microsoft realises.

Growth

So let’s say we have an ambition of making NAV grow double digits to half a million companies using the software in a few years.

We cannot grow the channel double digits.

Here’s why:

I’ve been to countless meetings and presentations about successful sizes of NAV businesses. Endless theories of which sizes work while making a profit and people having fun. NAV partners have problems growing. Some succeed and most of those are (what a coincident) the partners that have a successful repeatable business.

On top of that we have a combined issue of ERP not being sexy and NAV being a strange animal in the hurd of ERP applications. To be successful in (traditional) NAV you need to be an accountant that can develop software or an engineer that understands business processes.

Only the partners that are successful in repeatable business can make their companies attractive enough for people to join them and start working there.

The Change

So I’ve done my best in describing our current situation and I am sure many of you will recognise this. So how do we move this thing forward.

The new Market

I think there is nothing better than this video that demonstrates how customers change in buying software.

Personally I do not think it is that new. When I had to buy a new ERP system back in 1995-1997 when we ended up buying Navision I already hated salespeople using BANT (altough I learnt wat this is only this year).

When I investigated I had to move around and visit events to see what software is out there and then make up my mind.

What changed us is a new generation (my generation) and internet.

Internet changed and will continue to change the way we do business. For my freelance business I don’t run a server anymore with exchange and AD, instead I use G-Mail (sorry microsoft), Azure and Skydrive. (Guess I’ll have to move gmail to O365 now 🙂 )

The Classic (Old) Market

Does that mean that the old market no longer exists?

No. They are just different markets. The thing is that Microsoft tries to serve both markets with the same software.

With the current software (2013R2) we can still develop and implement the way we did in the last 20 years. We just need to realise that this market won’t give us double digit growth figures, and the latter is what Microsoft wants us to do, or at least have for themselves.

So what about NAV 2013 R2

With NAV2013R2 Microsoft did a major investment in making NAV more than ever ready for the cloud. They solved two very important issues needed for this

Multi Tenancy

In ERP 2013 everything is about cost of ownership. In smaller repeatable implementations companies are not going to spend 200.000 euro’s or dollars on infrastructure, installation, conversiontools and training. They want it now and try it out for three months for free befure they subscibe. They want a wizard that helps them get started in 6-12 steps.

With powershell it’s possible to start up new tenants without IT people. With SCOM it is possible to monitor the health of a Multi Tenant environment on management by exception bases.

This enables partners who invest in this technology to host a website that offers subscriptions and trials without interferance of them anoying sales people. By looking at what people do when they subscribe you can actively support them. And when you support them they are already in. A whole new concept of sales. What my generation wants.

Usability

When the primairy focus of NAV was doing one-of projects in 1995 Navision decided to on purpose ship software that was not usable. Partners had to finish.

Well yes, ofcourse this leads to 99,9% modified systems if Navision does not even ship with a decent sales invoice layout.

In NAV2013R2 this is starting to change with the MiniApp and Cash Flow.

During all these years with Navision I’ve never seen Microsoft ship software that is so usable out of the box. Especially the MiniApp is so usable that any 1-3 user company could start invoicing and banking with it in a few minutes.

We should expect to see more of this in future versions.

What does Microsoft do wrong

So if this is all so great, why do people start being confused or even angry.

In my opinion Microsoft is not telling a complete story to their partners or community and there is lack in guiding the partners into this new world.

What they don’t say

First. No one tells partners that this is optional. Yes, if you want to stay close to Microsoft, if you want Microsoft to think your partnerbusiness is important to them you should go with them.

But if you want to continue serving midsized busineses with customised solutions, no-one is stopping you. Everything Microsoft changes to NAV is done with tying not to break anything for the classic experience.

No, you cannot register an bunch of objects as add-on just to get a lower price on objects. But this was never what the add-on program was meant for in the first place. One should not tell a potential customer you sell them an “add-on” while you only sell one a year. That is not fair to customers.

Yes, Microsoft should change object pricing. 150 euro’s for a table in SQL Server is completely rediculous. This needs to be adressed and adressing this would solve the problems that some partners have with the classic model.

What they don’t do

Why is Microsoft hiding MiniApp and not barking around with it? Not in Vienna, not in Nashville was there not a single word about it except in my sessions.

The MiniApp is the future for NAV from a functional perspective. It is they new way all partners should look at their software and change it accordingly.

Product Change Guiding

Within the Road to Repeatability program that Microsoft offers their partners there is only marketing content, no product content.

What do they think these marketing guys will sell? Air? Cool Stories? The “add-ons” we did for 20 year?

Every single partner needs to rethink the way they do product development. They need to relook at their vertical market and on the way that their customers want to use the software in the future.

We should see MiniApp’s for all vertical solutions that are successful and for many new ones. This is a business opportunity, not a threat!

Money Talks

Time will tell how this will work out. Some people will leave the channel and some customers will leave NAV. Some of both maybe shoud have never been in.

New people will come in. NAV will be cool again. We need apps and interfaces. We need C# and internet people to come in and help us to make NAV sexy for small business owners.

Partner Ready Software

Within PRS we are trend-watching this as we have done in the last 3 years. Back in 2011 we started talking with partners about this changing market from a product perspective and we started talking with Microsoft about this from a development perspective.

As I say in all my presentations, it is so easy to ask for a new object designer. But is intellisense going to support us in this new market? No. Off course it will be cool but we need to focus on merging horizontal solutions with vertical solutions, implementing hotfixes and extending the application with flexible interfaces.

This is what we will keep focussing on.

Join us in Antwerp or ping us for more information.

Directions USA 2013 | Web Services and .NET Interoperability (Capabilities & Set-up)

Ok, now here is a confusing title of a session.

The session is presented by Vjeko Babic, a friend and fellow member of Partner Ready Software.

Truth is, no-one knows where the title came from and Vjeko was certainly not talking about just Capabilities and Setup, he was doing black-belt stuff.

Being in the session I started writing my blogpost like I did with Tom and Heidi’s sessions, but after 5 minutes I noticed that I was never able to keep up with his speed.

Therefore I am very happy that he wrapped up his presentation in his own blog post so I only have to link to his which is here:

http://vjeko.com/blog/long-time-no-see-vienna-nashville-demo-gods-and-other-things

As you will read in my next blog, the NAV world is changing. We need to start understanding this stuff and Vjeko’s blog is the perfect way of starting that.

picture033

 

Directions USA 2013 | Cash Management Features

Cash Management Features

picture013

One of the big new things in NAV 2013 R2 is cash management. Heidi Andreasen is doing a presentation on this.

Cash Management is a continue of the Cash flow features introduced in 2013.

Cash Management contains the following:

*  Payment registration

*  Bank reconciliation

*  Vendor Payments

*  SEPA Direct Debit to Customers

*  Data Exchange Framework & Schema viewer

picture014

Local vesions vs. generic features

Up until R2 cash management was mainly a local feature not being part of W1. Some countries had some, some had nothing.

NAV 2013 R2 introduces a new generic framework that talks to the local features where necessary and provides functionality in those countries who have nothing.

Introduction new features

Payment Registration

In W1 this is done in the general journals manually. Cash Management enables users to import statements.

These formats can be setup in the bank account card.

After the import has been done the system can suggest which entry to apply the payments to. The applied lines light up green.

picture016

For the ones who are left there is an option to create mapping rules, so everytime something similar happens the same application is done

Bank Reconciliation

Some customers choose to reconciliate from the bank ledger entries. This has changed t from a ui perspective

picture019

A new page has been designed that has two parts that allow matching a bank file with the bank ledger entries

Register Payments Manually

This is a new page for people who want to process payments manually

The difference here is that the new page shows all entries from all customers.

In this page users can go around and manually try to match from the paper bank statement to the outstanding invoices.

picture023

Here you can even search for amounts that have not been posted from within a min and max amount.

Vendor payments export

This is the possibility to have the system look at outstanding vendor invoices and suggest to pay them and then export them into a bank format.

When the journal is posted and the file was exported the history is kept in a register.

Bank Integration ISO 20022xml/SEPA

With 2013 R2 Microsoft ships a framework that allows users to describe a file format and NAV will generate the setup.

picture028

Bonus Feature

Microsoft has added the feature to expose account schedules as a webservice. This allows you to consume this data in NAV or in a graph.

Directions USA 2013 | Real World Upgrades

Real world upgrades

picture008

For those of you who don’t know him, Tom Wickstrom is THE upgrade specialist. He has done over 600 upgrades since 1999.

I’ve personally worked with Tom on more than 30 projects.

Estimating

Tom recommends quoting upgrades fixed price. However this requires to compile a list up front with objects that cannot be merged but need redesigned.

For comparing reports Tom has a tool that removes RDLC code to be able to see real changes to the report.

Another thing that needs to be considered are changes that cannot be brought forward or features that are now available in the standard solutions.

If programming is needed for redesign this needs to be included in the price, either fixed price or on hourly bases.

Customers also have to reconsider their hardware. Is the hardware still adequate for the new version.

Another advice is to add enough time for training and emotional support since end users will have to get used to new ways of working.

Expectations

Look at your customer organisation and try to estimate if there will be resistance. Resistance is a big risk in the project.

Make sure to schedule time for testing.

The customers license needs to be refreshed and tested. It happens sometimes that refreshed licenses are not good.

If it is necessary to replace hardware make sure it is there in time and test on this hardware.

Test with end user access rights, not with super. Make sure the real endusers do testing.

Make sure no one is on vacation or unavailable when you need them for the project.

During the final cutover the database will be down. This takes time and need to be calculated.

Testing

Make sure to have test script.

If you cannot test on the golive machine, make sure to test on hardware that is equivalent.

Track the test results and maintain software incidents. (SIR).

Just because a document got posted does not mean the posted document is ok. Test, test test and look at the results.

Testing is the most important part of an upgrade.

If something went wrong, why did it go wrong. Is it programming or setup? Or is the user using the system wrong. Or is the new version behaving differently and is the result good but no what the customer expects.

Go Live

Before go-live use a testing complete sheet where the customer signs that the upgrade has been tested and no more errors exist.

After this is signed new errors are no longer within fixed price. This is not to make more money but to encourage people to test.

Everyone within the team needs to be available.

Be sure to be onsite for the first 1-3 days. Help endusers and do emotional support.

Recipes for disasters

By far the biggest risk is programming in live databases after the upgrade has been started.

Little less complicated is programming in the testing database, but that needs to be synchronised with the upgrade objects.

picture007

Compressed item ledger entries in older versions cannot be upgraded, the costing will be messed off.

This feature does not exist anymore.

If someone of the team is unavailable and needed for something.