In my last Web service gotcha post, I wrote about how a User Personalisation record is needed to ensure dates are handled correctly when executing Web services. Today I discovered that if you fill in the Company field on the user personalisation, you get a whole new set of problems. My process was executing the Companies method of the SystemService Web service to get a list of companies. It was then using the list of companies to call an interface job Codeunit Web service for each company in the database.
If a company is entered in to the Company field on the User Personalisation record that exists for the Windows account that the Web service is being run under, that user cannot use the Companies method to get a list of all companies. Take the company out and all is fine.
I tried this out in the NAV 2009 SP1 Marketing Beta VPC and it looks like this is not an issue in SP1. I remember reading in Freddy’s blog that there were some changes around a user’s default company in Web services – maybe this is what he meant.