Some people over here are celebrating Columbus's
birthday today - he's the guy that got lost in 1492 and found America... :-[
Answers below - right or wrong :-\
Terry L. Wiechmann
978-779-0257
http://www.esitechnology.com
Alex wrote:
Hi all,
I haven't come across anything in the programmer guide regarding
Libraries.
EsiObjects libraries not only provide a mapping to the
underlying globals, they are a very flexible construct that can be used
in creative ways. They need to be documented within the Programmers
Guide. I will add a section titled 'Using Libraries'.
You can find a description of Libraries in the Tools Guide at:
Class Development Environment Tools -> Session Browser Explained
-> Session Structures -> Library Structures
I created one in the ESI IDE and quickly found that I couldn't change
my mind for locations.
I had to delete the whole library and start again. Learning :)
So I've just followed the postfix of location style from the ESI
library:
Library: ^XXXOBSL
Class: ^XXXOBASE
Documentation: ^XXXOBSDC
Source code: ^XXXOBSSC
Source Code Prefix: XXXob
... now I can see globals are being created and that int routines are
now turning up.
Maybe I need to look at an export and import to understand how to
update these prefixes?
Currently, when you create a library, since it is where
all information relevant to the library is stored, you have to export
the library, delete it, create a new one and then import it. I'm
assuming that it could be made to 'move' the contents of one global
structure to another simply by changing the mapping in the libraries
property sheet (or something like that). That does not exist at this
point.
I have a question regarding routine names and versions:
The first one has been created as an Int called XXXob001.
So for every class I create is there a new postfix number?
What happens when I get to XXXob999? Is there a limit on the number of
routines that I create?
OK, I'm going to do some math - this is where I usually
embarrass myself.
You chose a constant 5 character prefix 'XXXob'. That leaves 3 variable
character positions. Only alphanumerics are generated consequently you
can have 62**3 =238,328 methods/routines within that library. If my
math is correct, it will take a while to fill that library up... ;-)
I will have to check this but I believe routine names are recycled if
they were deleted - not sure about that??
In Cache the maximum size of an Int file is 32K. What happens if I
have a class with a lot of methods? Am I going to run into the 32K
limit or does ESI support some automatic spanning Int routines?
Each EsiObjects method maps to an Int file so I'm assuming that
limit applies to each generated routine. Of course, you will find that
methods are usually relatively small. EsiObjects does not pack a
classes methods into one routine. Each method/property gets maps to its
own routine. I don't think we ever ran into a problem with this.
I've had a look at the generated Int file and can see that it has
static references to VESO* routine labels so I know that to deploy my
code I need to also ensure that the target environment has the same
version of ESI installed and mapped.
Correct - application code depends on the environment being
there.
When I deploy what do I need to add to the target environment:
Can I deploy just object code of routines or do I also need to import
a set of globals in the test / production environment.
You need the EsiObjects server side implementation installed and
the application imported.
Do I need any globals set up in the production environment to support
class projections (Java )?
I'm assuming when you say 'class projections' you are referring
to Java Proxies? The Java Proxy of an EsiObjects class relies on the
EsiObjects class structure to be there.
Cheers
Alex