Greetings everyone! Yes, it's been a while, my apologies. I'm struggling with the motivation to write and hope it comes back soon!
Today I wanted to post a short blog on a support issue I had. It is something I can find a couple of references to online, but not many, which tells me it's worth sharing my experience to validate some of the other threads that confirmed the solution.
Brief background
What made this particular situation SO WEIRD is it happened to a user who (a) has been with the client's company for several years, (b) does not have any new equipment or change to their Dynamics GP installation (or environment), and (c) does the same activities that triggered the error regularly.
My reaction was "What the heck"? (It might have been WTF, but I digress…). Random problems drive me crazy, and the user indicated it had happened recently but had no particular other event to correlate to why it started happening now.
The error
The exact error text is "Resource not found in dictionary". No extra info, no "more info" link, nothing.
The user got the error when posting a journal entry, something they do regularly. The user also got it trying to print the equivalent report from the Journal Entry Inquiry window.
Troubleshooting
TL; DR: Skip to the next heading to read the solution.
In the spirit of sharing my process to help others learn how they might troubleshoot something like this, this is what I looked at, and approximately the order in which I looked at it.
- In a screenshare session with the user, they confirmed that they were working at the office, and on the LAN (network). Nowadays, users are just as often working from home and on WiFi, and often, using WiFi at home while attempting to use Dynamics GP over a VPN. PLEASE DON'T, but again, that is a topic for another day. What I wanted to confirm was the connectivity, that it was not some potential weak connection thing. It was not.
- I confirmed the computer they were working on was their computer (laptop), not a terminal server. This is potentially relevant in subsequent steps depending on where the troubleshooting goes, because "try another workstation" is often one angle I could have taken.
- I had the user navigate to the installation directory for GP (Program Files (x86) > Microsoft Dynamics > GP) and looked at the DYNAMICS.SET file. The launch file appeared to be the same as what I expected from this client. I was on another workstation at the time so I could compare it to my own .SET file.
- While I was looking at the .SET file with the user, I also confirmed it was pointing to the centrally-shared reports dictionaries that I was also using successfully, so it was not likely a version of a report issue or a local dictionary issue. While I was on my GP instance, I pulled up the same JE # and attempted to print, successfully.
- Next, I spot-checked security for the user. "Resource not found in dictionary" + "while attempting to print" = could be an alternate/modified ID issue possibly if it wasn't a "the product is not installed on the workstation" issue. All looked fine, they were assigned an Alt/Mod ID that everyone has so I know it is working, as I have the same one assigned to my user ID.
- At that point, I was feeling a little stumped. The client uses David Musgrave's GP Power Tools product, so I had them enable the logging, attempt to print the report again to capture the logs, and then disable the logging again. I took a quick look and the DEXSQL.log file seemed to stop abruptly at a statement that did not make contextual sense for the type of transaction the user was attempting to print.
At this point, I was still in screensharing mode with the user so I let them go so I could review the logs in more detail to see if they gave me any clues. They did not. Now, I was at the point where I had validated "does this happen for all users?" (No), and "does this happen on all workstations?" (No). It was feeling like it would be specific to their workstation OR their user ID.
There are two choices at this point:
- Have the user try the same thing for another machine if possible. That will typically narrow down if it's a User ID or Machine issue.
- Google the error. :)
I opted to google the error first, in case it was hard to find many hits on the issue. One thread was going down the same road I expected one might find which is "Oh, this must be a corrupt dictionary, it needs to be recreated". In my humble opinion, in this case, that wasn't the problem.
I stumbled across an old cached link that wasn't even for a valid website BUT the text that Bing showed gave me enough that I viewed the cached data. RIGHT ON, it gave me something strange but workable. It worked.
Here is a screenshot of that cached site, I can't even identify what the original site might be as nothing about it was familiar. As I wrote the blog post, I happened upon another forum with the answer as well, and that link is here (but it's not related to what the screenshot is, go figure).
The issue
In this case, the issue was nearly exactly as the screenshot (and linked forum post) says: it had something to do with the "Windows Command Display" selection in this user's User Preferences. In both the screenshot and the linked post, the user had the setting as Menu Bar. In my case, the user's setting was BLANK! I have no idea how it became blank, or when it became blank. because that's not a valid option (and this user is not a new user!). However, it is what it is.
The solution
The user needed to select a valid option in this window, then exit Dynamics GP and relaunch. After doing that, it worked as expected. I have no idea why this is even related to printing a report, but I gave up trying to wrap my head around it.
In the other cases above, it sounds like the user needed to select something OTHER than Menu Bar. In my limited testing, I was not able to reproduce the error when I had my user at the Menu Bar setting (and yes, that is after closing and relaunching GP). But both of the cases above seem to indicate the user needed to change to Action Pane or Action Pane Strip.
I hope this helps someone at some point!