Anmelden

View Full Version : [SOLVED] CHAIN im Modul macht mich Wahnsinnig



VisioX
09-06-05, 18:26
Hi ihr Leidensgenossen :-)

Ich bin gerade dabei mir eine kleine Modul-Sammlung in RPG anzulegen. Ein Modul allerdings streikt.
Wenn ich einen CHAIN mache erzaehlt es mir immer das kein passender Satz vorhanden ist. Erstelle ich die Source als ganz normales Programm laeuft alles wie geplant.

Das ganze ein wenig gekuerzt sieht in etwa so aus:

F PGML2 IF E K DISK
C KEYPGM KLIST
C KFLD PGMNA
C KFLD PGMSUB
C*
C EVAL PGMNA = 'PRGNAM1 '
C EVAL PGMSUB = ' '
C*
C KEYPGM CHAIN PGMP2 66
C If *in66 = *on
C clear PgmDS
C EndIf
C move *on *inlr

Als MODULE compiliert geht *IN66 immer an, als Program compiliert klappt es bestens.

Habt ihr evtl. eine Loesung fuer mein Problem?

mfg
Guido

Muchi
10-06-05, 08:20
Hi Guido,

hast Du schonmal die Bezugszahl 60 durch "%found" ersetzt?

C KEYPGM CHAIN PGMP2
C If %found(PGMP2)

Gruß Michael


Hi ihr Leidensgenossen :-)

Ich bin gerade dabei mir eine kleine Modul-Sammlung in RPG anzulegen. Ein Modul allerdings streikt.
Wenn ich einen CHAIN mache erzaehlt es mir immer das kein passender Satz vorhanden ist. Erstelle ich die Source als ganz normales Programm laeuft alles wie geplant.

Das ganze ein wenig gekuerzt sieht in etwa so aus:

F PGML2 IF E K DISK
C KEYPGM KLIST
C KFLD PGMNA
C KFLD PGMSUB
C*
C EVAL PGMNA = 'PRGNAM1 '
C EVAL PGMSUB = ' '
C*
C KEYPGM CHAIN PGMP2 66
C If *in66 = *on
C clear PgmDS
C EndIf
C move *on *inlr

Als MODULE compiliert geht *IN66 immer an, als Program compiliert klappt es bestens.

Habt ihr evtl. eine Loesung fuer mein Problem?

mfg
Guido

VisioX
10-06-05, 08:59
Hi

ich habe schon %found probiert. Vor lauter langeweile hab ich auch schon %eof, %error und was auch immer getestet.
Selbst das CHAIN habe ich schon durch SETLL und READE ersetzt.
Das gleiche Ergebniss. :-(

Aber so wie es aussieht hat die Maschine hier wohl eh ein paar Probleme mit Modules und Service-Programm. Beim Compilieren eines Programmes erzaehlt er mir jetzt was von Doppeldefinitionen.... "DEFINITION SUPPLIED MULTIPLE TIMES FOR SYMBOL 'PGMNDS'"
Angeblich 2 mal als EXPORT definiert. Dabei ist es nur im Modul als EXPORT definiert, im Serviceprogram als IMPORT.

Guido


Hi Guido,

hast Du schonmal die Bezugszahl 60 durch "%found" ersetzt?

C KEYPGM CHAIN PGMP2
C If %found(PGMP2)

Gruß Michael

VisioX
10-06-05, 09:48
Hi Ho

Hab's hinbekommen. Hatte ausversehen mein Service program als *MODULE und *SRVPGM im BNDDIRE stehen. Nachdem ich den eintrag fuer das *SRVPGM geloescht habe klappt alles wie am Schnuerchen ;-)

Danke,
Guido