Business Logic on the ACE PSL Writer is reporting a “Type mismatch error” while running the PSL’s on a new APP server but the logic itself is known to be good, as it was working on a previous server.
The error is of the following form, though the exact rule, contract and ID names would vary from example to example:
SLALOM Run-Time error occurred while calculating service level for rule 'rule_name' (ID:12345) in version number 1 of the 'company 1' contract. The error occurred while calculating service level for the 'MONTH' time unit which is the tracking period of the rule. The error message is:
Type mismatch: '[string: "12345.6"]' (Unknown error 0x800A000D)
When looking at the logic itself, the error points to a line that performs a CDbl command. The command is typically used to avoid type mismatches when comparing values, so may even have been created to avoid a genuine type mismatch issue.
The ACE Engine (PSL Writer) brings data from the Oracle store using the local client, and can be affected by the Locale settings of the server. We state in the installation guide to always set this the same, to US English. If the new server was installed with the settings in a locale with a comma decimal delimiter (e.g. French) then this could cause the decimal to be read incorrectly. Correct the locale of the server accordingly and then restart the engine.