Quantcast
Channel: IT Answers » AS/400 Procedure Pointer
Viewing all articles
Browse latest Browse all 2

RPGLE Getting around recursive calls

$
0
0

With proceedures I read that recursive calls are allowed.  No time to get into proceedures.

clp calls, pgm1.

pgm1 add function displays scrn2, then calls pgm2, pgm2 calls pgm3, pgm3 calls pgm4.

pgm1 update function calls pgm4.

Issue is that pgm4 can call pgm1, pgm2, pgm3, pgm5, pgm6.  On the call to pgm1 a recursive call occurs resulting in RNX8888. 

I added

HDFTACTGRP(*NO) ACTGRP(*CALLER)

to all programs, to no avail.

My thoughts on this are: since all parms used between the programs are loaded to the *LDA, end the RPG’s with LR = *on and return to the clp.  Let the CLP rtvdtaara *lda and sort out which program to go to next.  Flds in the LDA are;



D LDA_DS         UDS                  dtaara(*LDA)                                            D  LDACNUM                1      9  0                                      Claim number       D  LDAMODE               10     18                                         Mode               D  LDARTNIND             19     20  0                                      Return Indicator   D  LDACUST               21     28  0                                      Customer/Location # D  LDACODE               31     38  0                                      Plumber Code       D  LDADETLN              39     41  0                                      Detl/DetD line #   D  LDASEQ#               43     45  0                                      DetD Sequence #   



I could easily add caller and called pgm to the lda.

What are your thoughts on getting around this?  Is there a quicker way?

The better way may be to use proceedures.  Iam not sure about what all would have to be changed.   I have never used them, now is when I don’t have the time to learn it.

All ideas welcomed.

nick


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images