That "take a seat"-part of the title is just a suggestion because it's quite a long story .. and I think it's more comfortable than standing up all the time ;°) ... or do I mean something else....

It seems that about each year, we (Belgium) face a new update regarding VAT-stuff :(. And as you might have noticed from the title .. I'm not that fond of it. OK, may be finally we've got a government .. but if that means: a yearly intervat-update .. I'll choose not to have one :-/

Anyway .. may be you remember the previous adventure we went through .. you could follow it on my blog (http://dynamicsuser.net/blogs/waldo/archive/tags/Upgrade/default.aspx) as i tried (but wasn't always allowed) to make people aware of the fact that it really involved quite some work .. and back then .. Microsoft wasn't really making our life easier .. . But let's not "take old cows out of the ditch" (which is the litteral translation of something like "I do not want to go over old ground") of something that did leave some scars.

What update?

Intervat 8.0, of course. Never heard of it? Me neither .. until I received a mail from Microsoft on the 30th of December last year (which is only 5 days ago), saying that "Per 7th of February 2012" - only one month later - "new schemas for INTERVAT" - quite important, i guess - "will be applicable" - as in: go live - "and the old schemas will not be accepted anymore" - as in: upgrade is mandatory.

For customers .. this is why you pay maintenance, people! :-)

My first reaction was positive. OK, we have to organize ourselves to do this for possibly +200 customers within 20 working days, in a period where many customers are going live, in a period where many employees are taking holidays .. but hey .. you shouldn't have this amount of customers if you're not organised to do this unexpectedly. OK, may be they could have communicated it just a teeny weeny bit sooner (Dear partner, we're working on an update for intervat 8.0 - blabla - old stuff won't work anymore - blabla - get yourself organised - blabla - release at the end of december - full stop. Clear communication, everybody happy). I'm the last person that's compaining though ... . It's not like we, as partner, pay extra money to Microsoft for this kind of communication (oh wait .. we actually do ... PABS? :-/ ).

I do sense some kind of frustration, waldo .. wassup?

I expected it to be quite minor - and it actually is. It's only 5 objects:

-        New Table 11308 Representative

-        Updated Report 11307 VAT-Form

-        Updated Report 11309 VAT Annual Listing – Disk

-        Updated Report 11315 VAT – VIES Declaration Disk

-        New Codeunit 11308 INTERVAT Helper (New)

And if you don't care at all about code design and how things work down below .. then you'll be perfectly happy, because it's very simple to do this upgrade: send the fob to your customers, let them import it, and there you go.

Me, on the other hand, I do care about what's behind. Since we did some modifications (minor though) in these reports, I had to go into code. Just by importing our changes (thank you ReVision, of turning this into a 5-minute job) into it, I bumped into things I actually didn't like very much .. . It actually makes me wonder what that very-expensive-and-long-hotfix-approval-before-putting-on-partnersource-process is all about.

I want to stress out though that these are all just my opinions, and I would really appreciate that you don't base yours on mine ;°) . Some people tell me that I really go too deep, and make problems of minor things (how it's said in English, a fusspot?) .. so please pardon me if this makes you feel you about me like that. But anyway, I'm going to share .. :-):

Naming conventions

The naming conventions we're used to, are not applied decently:

  • The table name is "Representative". Uhm .. Representative of what? My Jobs? Certain jobs? Customers? CRM? Something else? It's actually "VAT Declaration Representative". I would have suggested it to call it like that.
  • There is a variable name "Company" which points to "CompanyInformation". We all know that there is also a company table ..

We all value the consitency that Microsoft already put into the naming conventions ... something we can rely on most of the times.

How can I fill the table?

Like said, there's a new table .. but how do I fill this table? There are no pages, no menu items, nothing. I asked this and the reply was: this table is filled and maintained from the request page of the report - it's by design.

First reaction: Eh?

Second reaction: oh...

So, it's only one record, so no second representative possible? It seems that the goal was to use as less objects as possible to make it look a very small update. First time I saw this, I was really stumbled, so it didn't feel natural that this was linked into the request page.. . What if I want to automate this report? What if I want to have more-than-one "representative"? My opinion? Not done..

And then my favorite: hardcoded stuff

These are belgian reports, and only apply to Belgian customers. So how to filter on "Belgium". Apparently there was only one way:

SETRANGE("Country/region Code", 'BE');

First reaction: Eh? (followed by quite a long silence...)

So we're assuming that all hundreds and hundreds of customers are using 'BE' as the code for Belgium? Not 'B' not 'BEL' not ... . We're not allowed anymore to use something else .. while it's just a code field which can contain any value? I read through the documentation, but I couldn't find anything of this being mandatory. I always assumed hardcoded stuff like this was "not done" .. but you're right .. also THAT is an assumption.

Conclusion

Don't get me wrong. Everyone is entitled to making mistakes. And I probably make many more than anyone of you. And even the word "mistake" is based on my own personal opinion. So please, take this with a big grain of salt (i think this litteral translation does make sense in English? :-) ).

The thing that made me a little bit upset though, was the fact that when I reported this, the statement was clear: "you're right, but if the functionality is working, and people can do their VAT-stuff ... we probably won't "fix" it right away, because there is no bug, and we'll only do this for the next release."

So .. when you make the summation:

  • Late communication
  • Bad designed code slips through thorough approval process
  • We're going to have to do our job twice (now, and when it's really fixed)

I hope you agree that some people (about 40 partners in Belgium) have the right not to be the happiest Microsoft partners in the world right now.

But I'm positive. From the information I have now, we have a working solution that we can provide to our customers, 40 days (ok, 20 working days, but I'm positive here!) before it actually has to go live. That's a LOT more than the previous VAT upgrade!