Simple way to programmatically check OE Version?

Posted by olivier.dunemann on 01-Dec-2010 01:44

Hi there,

I would like to check the OE version at application startup in order to avoid error 1987 (Operation number not supported in this release).
The easiest way I was thinking about is to check the shared memory version. Unfortunately, it seems there is no function nor session attribute that returns this value.
Checking the PROVERSION function value is a bit tricky, since it combines integer, decimal and alphanumeric informations (For instance, we can't simply encode IF PROVERSION > "10.2B" since a kind old v9 engine would be considered as higher than an oe10 one)

Does someone have an easy way out for this?


All Replies

Posted by Marko Myllymäki on 01-Dec-2010 02:19

We use PROVERSION like this:

IF PROVERSION BEGINS "1" AND PROVERSION >= "10.1A" THEN... (or sometimes &IF ... &THEN...)

That should do the trick until we reach version 20.0A :-)

To make it more compact, you could create a function and/or an include file to handle the check, e.g.: IF {version.i 10.2B} THEN...

We use also CAN-SET and CAN-QUERY functions to check if some attribute/method is available or not.

Posted by Stefan Drissen on 06-Dec-2010 08:25

Yes it is a bit awkward, but the following provides a character comparable PROVERSION:

STRING( INTEGER( ENTRY( 1, PROVERSION, ".":U ) ), "99":U ) + ".":U +  ENTRY( 2, PROVERSION, ".":U )
This thread is closed