This was a menace for the past 4 days, to say the least.
I was reported of this issue, where a user when trying to enter a bank transfer for a checkbook, on a date in previous month, he got this error message (in the title of this post) as shown below:
The above message occurred only for one particular checkbook and not for others.
First step was to ensure the fiscal period was not closed. It was not.
Second step was to ensure that they had not run the reconciliation for this checkbook, so genuinely it had closed the period. It was not.
Third step was to run check links for Checkbook Master, to ensure that things are fine with Checkbook ID master record. It was perfect.
Fourth step was to take SQL Profile and see where exactly this message pops up. When I took twice, the results were different. Due to Analytical Accounting. But that I never got to know since, my focus was more on CB tables.
I referred to the ONLY AVAILABLE forum post, Date Entered is not for Current Period for CashBook, which was way back in year 2010. No solution was provided though.
I decided to take the SQL profile again, but this time without Analytical Accounting to avoid extra lines on the trace file. I took the profile twice and both matched line by line.
The last table where the buck stopped was CBINT605 (Reconciled Amounts) on DYNAMICS database. When I queried this table manually, following was the result:
As you see above, there was a record for this checkbook ID, with a date 30-Apr-2012. Due to which, if you enter any date on or before 30-Apr-2012, it fails.
I checked the user again to ensure that he had not run any reconciliation for this checkbook. He assured that he didn’t, but he also mentioned that he was demonstrating this process to a user, but did not complete it. Bad. Demonstrating on a live company is very bad.
I took a backup of this table and then deleted this record.
Now, my checkbook accepts any date for it’s bank transfer entry.
MORAL OF STORY #1: Messages never lie. If there is a message, it will most probably be correct.
MORAL OF STORY #2: Never ever do any R&D on live company. Never ever demonstrate anything on a live company. That’s why test companies are for.