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?

Thanks

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