Today I got a request in which the client was getting
"the date is not valid" error when they are trying to authorize
credit card using Navision Webservice. They were using chargelogic add-on and
exposed a codeunit in which it has functions to authorize credit card.
When I first saw that error my initial thought was it is
something related to settings in customsettings. config file. So we changed "WebServicesDefaultTimeZone”
setting to use "Server Time Zone". But unfortunately that did not fix
the issue and we kept getting the same error. Then I used my debugging skills
to find the part of code where the error was happening. Once I debugged it I found
that they have some customizations to improve performance in which one of them
was to use single instance codeunit to get data from setup tables. Instead of
using normal statement table.GET
statement they stored all these get statements in separate functions in a
single instance codeunit and they called this codeunit whenever they wanted to
use GET statement for setup tables.