Thursday, May 28, 2009

Product builder performance tip

I recently had the client/server trace on, while opening the production builder configuration form. Boy, I wish I didn't…

Depending on how complex your product model is, this for generates an excessive number of calls between the client and server.

In my case, the largest group of calls was calls made to \Data Dictionary\Tables\PBALanguageTxt\Methods\label.

The method is tied to be executed on the server, with the "server" keyword.
But, the table itself is cached as EntireTable, and this means that the client is likely to holds its own cache of the values and thus there is no need, and in particular, no gain of forcing AX to run the method on the server.

When I remove the "server" keyword from this method, I get rid of the majority of client/server calls while opening and navigating in this form.

There is however still room for improvement, as the form still generates a huge amount of calls.