Libraries

3 views
Skip to first unread message

Alex

unread,
Oct 11, 2009, 10:18:23 AM10/11/09
to EsiObjects Community
Hi all,

I haven't come across anything in the programmer guide regarding
Libraries.

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?

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?

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?

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.

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.
Do I need any globals set up in the production environment to support
class projections (Java )?

Cheers


Alex

Terry L. Wiechmann

unread,
Oct 12, 2009, 11:44:40 AM10/12/09
to EsiOb...@googlegroups.com
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



  
Reply all
Reply to author
Forward
0 new messages