× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Here's my take:

pgm0 is expecting and a two element array, a piece of contiguous memory that contains 4 7s 2 numbers. It receives a pointer to this memory.

pgm 1 passes 4 numbers as pgm 0 expects.

pgm 2 passes only 2 numbers. This may be problematic if pgm 0 tries to use the 3 and 4th numbers and if it doesn't crash it's a fluke. But maybe pgm 0 never access array element 2, so this may be why it is not crashing.

pgm 3 passes 8 numbers, but pgm 0 will only be able to access the first 4, so it won't crash and simply ignores array elements 3 AND 4.



On 8/14/2024 4:59 PM, K Crawford wrote:
I am confused, looking at some old programs.
I have a program called pgm0 that is called by three other programs, pgm1,
pgm2, and pgm3. The parms are confusing, specifically an amount parm (the
5th parm).
I am trying to wrap my head around the amtin parm (5th parm). In my mind
the length of the amtin is not the same as in the prams calling it.
Are all of those amount parms the same length in all programs?

This is the called program (pgm0) D spec of variable in question and the
entry parm.
All programs defined as RPGLE.
pgm0
Damtin DS
D AMTA 1 14s 2 Dim(2)
D AMTm2 1 7s 2
D AMTd2 8 14s 2

C *ENTRY PLIST
C PARM R
C PARM CLIENTin
C PARM rnumin
C PARM enumin
C PARM amtin
C PARM planyrin
C PARM CLAACD
C PARM CLAANB
C PARM REjauto
C PARM BATCHin
C PARM reviewerin
C PARM from
C PARM to

This is one of the programs that call pgm0. D spec of variable in question
and the call parms
pgm1
Diamt DS
D amta 7s 2 dim(4) inz(0)

dcl-pr CallPgm0 extpgm('PGM0') ;
p_Rejtype like(Rejtype);
p_client like(client);
p_irnum like(irnum);
p_ienum like(ienum);
p_iamt likeds(iamt);
p_epplanyear like(epplanyear);
p_abaacd like(abaacd);
p_abaanb like(abaanb);
p_rejauto like(rejauto);
p_inbat like(inbat);
p_as400user like(as400user);
p_from like(from);
p_todate like(todate);
end-pr;

This is the second of the programs that call pgm0. D spec of variable in
question and the call parms
pgm2
D AMT s 7s 2 Dim(2) inz(0)

C CALL 'PGM0'
*
C PARM 'I' R
*
C PARM CLIENT
*
C PARM rnum rnumin
*
C PARM enumi
*
c PARM AMT
*
C PARM PLYRds
*
C PARM BBAACD
*
C PARM BBAANB
*
C PARM 'DDR' rejauto
*
C PARM BATCH
*
C PARM reviewer
*
C PARM from
*
C PARM torejauto

This is the third of the programs that call pgm0. D spec of variable in
question and the call parms
pgm3
D iamt s 7s 2 Dim(8)

C CALL 'PGM0'
*
C PARM Rejtype
*
C PARM CLIENT
*
C PARM rnum
*
C PARM enumi
*
c PARM iamt
*
C PARM Planyear
*
C PARM aBAACD
*
C PARM aBAANB
*
C PARM rejauto
*
C PARM Inbat
*
C PARM reviewer
*
C PARM from
*
C PARM torejauto



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.