Understanding "Cannot find external name <classname>"

Thursday, November 27, 2014 at 10:37 PM UTC

This is my error message of the month: "Cannot find external name <classname>" I just saw this a few days ago on a customer's Domino server console. Caused by a periodic agent running some code and using a class called <classname>. If you know the reason for that error message, then you can skip the next paragraphs. If not, read & learn :-)

First assumption: replication conflict in the design element "script lib" that contains the class

Short: no, not the reason. I checked the NSF via package explorer, ODP structure and stuff - no doubles detected.

Next assumption: rights of the agent's signer

Short: no, signed with server id which works fine here. Checked server document's security options - everything ok.

3rd assumption: I used a preserved name for my class

I went into several caveats in the past years when I used names for classes or variables that did collide with the system itself. In this case the class was named "AdminProcess". Sounds familiar? Yes, but that wasn't the reason, either - way to easy. I renamed the class and even put it into the agent itself instead of binding and calling the library.

Finallly: I checked the code and...

My class uses the NotesDirectoryNavigator class to lookup person document's informations. This class was introduced with Notes/Domino 8. When I was on the server console I finally typed

sh ser

and got the explanation. This was a test server and still running a release 7.0.3 (sic!)

So the simple reason just was that the server didn't know the NotesDirectoryNavigator class at all - but the error message didn't say that directly. I guess this is just a message of awkwardness, such as a "case else" outcome.

If you ever get this message then please look first if you are using stuff that the server just doesn't know because it's too old for that.






Latest comments to this post

Dominic wrote on 06.10.2017, 19:49

Just found another reason for that error - still not obvious one: Had a NotesUiWorkspace initialization in the libs Initialize event. Fine for the Notes Client, but throws this error when using this lib in a web agent. So keep in Mind. Smile

 Link to this comment

Leave a comment right here