Tag Archives: Dynamics

I’ve just got the news about Part III of Panorama’s ERP Report in my inbox. If you missed my analysis of the report, please read it first: part three builds on findings of the first two. I know that I am biased when writing about this, but how can I not be? Microsoft Dynamics is the best choice ERP and the report (as a whole) clearly shows why exactly.

Microsoft’s Sure Step team has been pretty busy recently. They have just published the new update to Microsoft Dynamics Sure Step methodology, which includes several important new features and many content updates worth your attention.

I’ve just downloaded and installed it and I am impressed with the improvements.

Usually I do not write about local Croatian affairs, but this particular occasion and this particular topic deserve an exception.

As a part of Microsoft Dynamics promotion campaign in Croatia, Zoran Šegić, Microsoft Business Solution Lead in Microsoft’s Croatian subsidiary, has given an interview for eBizMags, a Croatian e-business blog/portal.

For a long time, the ruler of project reports was Standish Group’s (in)famous Chaos report, which analyzed IT project success/failure factors. While many of the Chaos report’s findings applied to ERP implementation, the report as a whole was primarily about software development projects. And as we all know, implementing ERP is not the same thing as software development. Hopefully.

Panorama Consulting Group, an independent ERP consulting firm from Denver, Colorado, has conducted a market research in 2008, that explains ERP implementation project success factors and reveals some interesting metrics about real ERP costs, duration and benefits. Finally, we have a decent ERP project report, which reveals some important facts about Microsoft Dynamics.

Posts navigation

When comparing .NET variables, including Enums, you cannot use C/AL comparison operators. To compare .NET variables, you must use the Equals method (of the System.Object type) that all .NET types implement or inherit. So, instead of IF var1 = var2, or IF var1 = var1.EnumValue (in case of an Enum), just write IF var1.Equals(var2), or IF var1.Equals(var1.EnumValue).

I see this mistake often being made or attempted by developers, even though it has been documented inside .NET Interoperability documentation since it was introduced with 2009 R2.

Make sure that you don’t access the Microsoft.Dynamics.NAV JavaScript object before the document ready event fires. If you do so, you might experience problems on Chrome when the user refreshes the browser (F5). It appears that on refresh Chrome loads (and runs) scripts in different order, and depending on how complex scripts included in your project are, your code might get executed before Microsoft’s script is loaded, and it will cause nasty script errors. This occurs only on Chrome on PC.

When you have to format C/AL variables (numbers, dates/times, booleans) for exchange with other apps, call FORMAT(variable,0,9) instead of simply FORMAT(variable). The format 9 formats the variable according to XML standards, and this value can then be interpreted correctly on any system with any regional settings. This is useful also when passing string-formatted values from C/AL to C# or JavaScript.

To check if a BLOB field has a value, you call its HASVALUE function. For example: IF Item.Picture.HASVALUE THEN;

In older versions, earlier than NAV 2009, you had to call CALCFIELDS before you could check HASVALUE, which – if you think of it, did not make much sense. This was changed in NAV 2009, so ever since that version you can check HASVALUE before you decide to call CALCFIELDS first. It makes all the sense – you don’t need to pull up to 2GB of data over just to see if anything is inside.

If you are an old-school guy (or just old, as me), and you CALCFIELDS first, HASVALUE next, maybe it’s time for you to reconsider it.

Rembember – the pattern is: IF Field.HASVALUE THEN Rec.CALCFIELDS(Field);