ERP and Business Processes: a new book

There is a new book available about ERP business practices. It is titled “ERP and business processes” and is written by Hans van der Hoeven, MSc, a senior lecturer in ERP, Business Management and Accounting at Avans University of Applied Sciences in the Netherlands.

The book is targeted primarily at business and management students and managers running ERP projects, and explains what ERP business processes are about, rather than focusing on technical issues or specific products.

This book gives an introduction in ERP and Business Management, that focuses on ERP and business processes, rather than on the buttons, is very needed for students of all kinds of business educations and also for managers who want to understand the meaning of ERP for their company.

The book focuses on business processes, rather than addressing the buttons you must use in the ERP-software. To keep it practical, all illustrations and examples are dedicated to Microsoft Dynamics NAV 2009. It’s not a manual, nor a training in using parts of Dynamics NAV 2009.

The book has been written from starting level on this subject, it’s an introductory book.

It will not cover any software, but uses Microsoft Dynamics NAV 2009 throughout the book as illustrating ERP system.

The book discusses the business processes a company has to use in order to run the SMB company professionally.

If you are unsure whether the book is for you, you can download a sample chapter and check it for yourself. From what I know about the author, and from what I’ve read in the sample chapter, I can only recommend it.

Click here (or here) to learn more about the book. At least make a look!

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.

Related

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.

Related

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.

Related

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);