|
Prior to V5R3 CLLE had only one syntax enhancement above CLP. That was
the command of CALLPRC. Prompt the command and pay close attention to
RTNVAL.
Or I can use an RPGLE example:
/free
MyVar=MyProc(InputVar1:InputVar2:InputVar3);
/end-free
You call the procedure, MyProc, passing it the variables InputVar1,
InputVar2 and InputVar3. It assigns a result to MyVar.
In CLP you might have to do
CALL PGM(MYPGM)
PARM(&INPUTPARM &OUTPUTPARM)
Some bound procedures do not use the concept of the &OUTPUTPARM. They use
what I showed in the RPGLE example, which is the same as the RTNVAL
concept.
Thus, some api's may only be usable from CLLE.
Other enhancements to CLLE include the ability to compile it down to a
*MODULE instead of a program. Then you can bind multiple modules, some of
different languages, (like CLLE and RPGLE), into one program.
Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
"Adam Lang" <aalang@xxxxxxxxxxxxxxxxxxxx>
Sent by: midrange-l-bounces@xxxxxxxxxxxx
07/09/2004 12:58 PM
Please respond to
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
To
"Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx>
cc
Subject
Re: Check existence of a directory?
What is a CALLPRC? Also, what is the significance of CLLE? Am I able to
hack the code and paste it into my CL or is there a problem because of the
CLLE?
----- Original Message -----
From: "Wayne McAlpine" <wmcalpine@xxxxxxxxxxxxxxxxx>
To: <midrange-l@xxxxxxxxxxxx>
Sent: Friday, July 09, 2004 12:03 PM
Subject: Re: Check existence of a directory?
> I recently had a need for a command to do the same thing and I found
> some code at one of the AS/400 sites to do it. Here's the source for my
> CL command processing program. The command is called CHKIFSOBJ and it
> simply passes a path name to the program. The program will check for
> the existence of both IFS directories and files, returning CPF9897
> escape message if not found, very similar to CHKOBJ. My apologies for
> not crediting the author; I've lost the link to the site. Note that the
> source type is CLLE, not CLP.
>
>
>
>
> > I have a CL program that uses CHKDLO to determine the existence of a
folder.
> > We are changing things around to use directories. What would the
equivalent
> > command be to check for the existence of a directory? I assume we
can't
use
> > wrklnk, because that will actually display the screen. Also, what
would
the
> > correct msgid be?
> >
> > Adam Lang
> > Systems Engineer
> > Rutgers Casualty Insurance Company
> > http://www.rutgersinsurance.com
> >
> > --
> > This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
> > To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> > or email: MIDRANGE-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/midrange-l.
> >
> >
>
----------------------------------------------------------------------------
----
> Columns . . . : 1 80 Browse
QGPL/QCLSRC
> SEU==>
CHKIFSOBJC
> FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6
...+... 7 ...+... 8
> *************** Beginning of data
****************************************************************************
***********
> 0001.00 PGM PARM(&PARM) /* CPP for CHKIFSOBJ
command.
+ 040707
> 0001.01 Checks for the existence of an IFS +
040707
> 0001.02 file(s). Source type is CLLE, not CLP.
*/ 040707
> 0002.00
040707
> 0003.00 DCL VAR(&PARM) TYPE(*CHAR) LEN(256)
040707
> 0004.00 DCL VAR(&RTNVALINT) TYPE(*CHAR) LEN(4)
040707
> 0005.00 DCL VAR(&RTNVAL) TYPE(*CHAR) LEN(2)
040707
> 0006.00 DCL VAR(&PATH) TYPE(*CHAR) LEN(100)
040707
> 0007.00 DCL VAR(&BUF) TYPE(*CHAR) LEN(4096)
040707
> 0007.01 DCL VAR(&NULL) TYPE(*CHAR) LEN(1)
VALUE(X'00') 040707
> 0008.00
040707
> 0009.00 CHGVAR VAR(&PATH) VALUE(&PARM *TCAT &NULL)
040707
> 0010.00
040707
> 0011.00 CALLPRC PRC('stat') PARM(&PATH &BUF) +
040707
> 0012.00 RTNVAL(%BIN(&RTNVALINT 1 4))
040707
> 0013.00
040707
> 0014.00 CHGVAR VAR(&RTNVAL) VALUE(%BIN(&RTNVALINT))
040707
> 0015.00
040707
> 0016.00 IF COND(&RTNVAL *NE '00') THEN(SNDPGMMSG +
040707
> 0017.00 MSGID(CPF9897) MSGF(QCPFMSG) +
040707
> 0018.00 MSGDTA('Object ' *BCAT &PARM *BCAT
'not
+ 040707
> 0019.00 found.') MSGTYPE(*ESCAPE))
040707
> 0020.00 ENDPGM
040707
> ****************** End of data
****************************************************************************
**************
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
----------------------------------------------------------------------------
----
> --
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
> To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
>
>
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.