Hi all,
since Version 6.x I always have problems to copy an updated version of any kind of script library into any kind of Notes database and it has still not changed in Notes 8.
In the destination db I first delete manually the old library and paste then the new version of the library. Up to this point no problem, but if I open one of the forms which use the library concerned I get a “Type mismatch on external name : {name of the script library}” and even recompiling the database does not help.
The only way to solve this problem is a 2 step procedure that forces Notes to really rebuild some internal references:
-
Edit the script library and just add somewhere a blank and save the library
-
Edit one of the forms that use this library. Go to the USE list and move the line which contains the libraries USE reference with a CR LF one line down and save this design element.
Would it be possible for the Lotus/IBM to solve this problem finally, please ?
This was no problem before Notes 6.x and I had mentioned it twice over the years here.
TIA (thanks In Advance)
Joe Herrmann
Subject: You could use templates
Why not have the script libraries inherit the design from a template? Then when you want to update the libraries all of you have to do is refresh the design.
Same result but a lot easier and shouldn’t give you those errors you are seeing now.
Subject: Thats only a partial workaround cause …
David,
thanks for your idea, but that may work with the transfer from the template to the NSF databases, but you still will have the problem while copying updated libraries from templates to templates and, even worse (!), if you create a template, where the internal references for a library are not updated and you are not aware of it, you might spread the chaos onto your clients databases.
So using your method one has to test for every script library in a template wether the corresponding database after an update via template is still working or not … that eats a lot of time and money … too inefficient
But to be absolutely sure I will test wether Notes is able to really update the internal references in an template update process to a NSF if the script library was just updated in the template. But I think the chances are pretty low, as Iris/Lotus/IBM couldn’t solve the problem with “Recompile all Script”
Joe Herrmann
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled. (Richard P. Feynman)
Subject: I would think most libraries that are re-used would have one source
Create a template called Design Library, or some such, and have all your “master” libraries in that. Create your new application template, copy whatever libraries you need over where they can be updated with a design refresh and then you only have to copy something over once, which I have never had a problem with.
Then you can make your change in the one template, test from there, then update each application template, testing if you want, then the application itself.
Subject: Templates cuase the same problem
David,
thanks for you answer.
I meanwhile have found the time to test design object specific templates.
I have created a master template db with all libraries and have given the libraries in a test application (a notes DB) the reference to the template name.
Those libraries indeed inherit the updated libraries from the template file (I called the db’s refresh procedure) . But if I then open the test application I get, as usual, the usual error messages and I have to solve them as described before. Too bad, would be a really nice feature if it would work.
Uh, nearly forgotten to mention that I added a blank to each library before saving them in the template db and afterwards I even recompiled the template DB … nada, still the same problem.
I even tested it on another computer in our company … nada, errors.
Joe
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled. (Richard P. Feynman)
Subject: old code in design objects
Hi David,
by testing the whole thing again, I found out that, after I stored a new updated version of the script library but kept the old script lib under a different name, the forms concerned all ran without any error message, but … you probably guess it … with the old code from the old script library. Notes does not update the internal references in a design object until you MANUALLY force the system to recompile it.
Guess IBM/LOTUS/IRIS have still a big problem/bug to solve.
Joe Herrmann
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled. (Richard P. Feynman)