Opening another mail file is causing Type mismatch in method CoerStrToNum: STRING found, DOUBLE expected
Thomas Hampel
7 January 2015Problem:
Opening the mail file of another person is causing the message "Type mismatch in method CoerStrToNum: STRING found, DOUBLE expected" to be displayed:
While IBM Technote 1303181 only provides a basic idea of what is wrong, it does not give any idea what can be done to fix it.
So I had to look into details and quickly found the problem.
Steps to reproduce
In order to reproduce the problem, this is what you have to do:
- Make sure you have the Notes.ini variable CHECK_QUOTA_ON_MAIL_CREATE set to 1
- Open another person's mail file, this will write the current date at the end of the Notes.ini variable DELEGATED_MAIL_FILEx
- Close your Notes client
- Change the date format of your operating system from DD.MM.YYYY to MM/DD/YYYY (or the other way around)
- Open the same other persons mail file again.
Analysis
Trying to find the root cause with debugging enabled shows a different error "*CE39918+421: Type mismatch"
but at least it indiicates the problem is located in the Database Open script.
What is causing this problem?
Obviously it is a String to Date conversion issue. Storing a Date in a String to convert it back to a date is never a good idea. If you really need to do it you should not rely on the CDat function to work. Write your own function which does ignore the
Regional settings - in specific the date format - of this workstation have been changed.
Resolving the problem
Change the date format of your operating system back to what it should be.
If the date format of your computer is correct and the problem still persists, then manually update your Notes.ini and remove all lines starting with DELEGATED_MAIL_FILE or by updating the date format at the end of this line yourself.
Permanent solution
A perfect solution would require to update the mail template to be updated. in specific the script Library "CheckQuotas" contains a class called "CheckQuota" with the Sub "SetCalMgrINI"
This sub contains several references where a string is being converted to a date. This is where additional verification is required to ensure the string value is a date which can be converted using the current regional settings.