Page 1 of 1

OCL Error EAGREX4300E

PostPosted: Fri Mar 11, 2011 3:09 pm
by crazystorm
I try to execute some simple OCL statements using procedure EQQYRPRC to call rexx EQQOCL under TWS V8R3M0. But I got the following error messages:

---------------------------------------------------------------------------------------------------
EQQCL01I ======================================================================
EQQCL00I Processing: SET VAR1 = 'YES';IF VAR1 = 'YES' THEN ADD APPL(EQQTESTAD2); ELSE EXIT 16
828 +++ ADD APPL(EQQTESTAD2)
828 +++
7164 +++
348 +++
EAGREX4300E Error 43 running compiled EQQOCL, line 828: Routine not found
READY
END
---------------------------------------------------------------------------------------------------

Here the OCL statement I executed is:

---------------------------------------------------------------------------------------------------
//EQQOCL.SYSIN DD *
SET VAR1 = 'YES';,
IF VAR1 = 'YES' THEN ADD APPL(EQQTESTAD2); ELSE EXIT 16
---------------------------------------------------------------------------------------------------

but when I simply execute the below single OCL statement, job runs successfully and application EQQTESTAD2 is added to CP without any error.
---------------------------------------------------------------------------------------------------
//EQQOCL.SYSIN DD *
ADD APPL(EQQTESTAD2)
---------------------------------------------------------------------------------------------------

I searched out some one similar issue here(http://www-01.ibm.com/support/docview.w ... wg1PQ81169), but seems it can't help. It just tells:
---------------------------------------------------------------------------------------------------
1)The OCL SETUPD instruction doesn't work in TWS 8.2 because
a wrong handling is done when the parameters provide in
SETUPD are changed to upper case.
---------------------------------------------------------------------------------------------------

I think there is nothing mistake on the OCL syntax. Can anyone pls tell me where is the error and how to fix? Is it possible due to the TWS version issue?

Thanks

Re: OCL Error EAGREX4300E

PostPosted: Sat Mar 12, 2011 1:09 am
by dick scherrer
Hello,

I don't "do" tws/ocl, but:
//EQQOCL.SYSIN DD *
SET VAR1 = 'YES';,
IF VAR1 = 'YES' THEN ADD APPL(EQQTESTAD2); ELSE EXIT 16
why is there a comma after the set?

Re: OCL Error EAGREX4300E

PostPosted: Sun Mar 13, 2011 7:57 am
by crazystorm
Hi,

Thanks! you're right. It's due to the comma. I misunderstood the specification described in the reference doc. Here SET and IF-THEN-ELSE are two different instructions, so there should be no comma between them even if they are put into two different lines.

-------------------------------------------------------------------------------------------------------------
Specifying OCL Instructions
To correctly specify OCL instructions in your JCL, observe the following rules:
1. When you specify two or more REXX instructions on the same line, separate
one from the next by a semicolon followed immediately by one or more blank
characters (; ). For example:
IF VAR1 = ’OK’ THEN ADD APPL(TEST01); ELSE GOTO ESCI
2. Specify all the instructions in column 1 through column 72.
3. If the instruction continues on the next line, end the first line with a comma
(the continuation character).
For example:
IF RESULT > 0 THEN,
DEL APPL(TESTAPPL2)
IF SUBSTR(VAR2,3,1) = ’0’ THEN COMPL APPL(TEST03);,
ELSE ADD APPL(TEST04)
4. If you continue a list of keyword values on the next line, end the first line with
two consecutive commas (,,). For example:
CHKAPPL APPL(TEST01,TEST02,TEST03,TEST04,,
TEST05)
......
-------------------------------------------------------------------------------------------------------------

Re: OCL Error EAGREX4300E

PostPosted: Sun Mar 13, 2011 8:47 am
by dick scherrer
Good to hear it is working - thank you for letting us know :)

d