-
Aufruf Prozedur im Serviceprogramm ohne Prototypdefinition im aufrufenden Programm
Hallo zusammen,
ich habe eine Prozedur von einem Copy Bound(per Copystrecke) auf eine Prozedur in eine Serviceprogramm umgestellt.
In der Copy Bound Version brauchte ich für das Compilieren keinen Prototyp.
Mit der Version als Serviceprogramm braucht man einen Prototyp.
Kann man die Definition des Prototyps in RPG irgendwie umgehen(ausser Copystrecke)?
Im CL mus z. B. auch kein Prototyp angelegt werden. Da holt der CL-Compiler die Daten wohl aus dem Binderverzeichnis.
Beispiel-CL, beim dem ich nicht dediziert einen Prototyp angebe:
PGM
DCLPRCOPT BNDDIR(MYLIB/BDSL)
DCL &z1$gue *CHAR 1
DCL &a1$dat *DEC (8 0) VALUE(01012014)
DCL &r1$d8n *DEC (8 0)
DCL &r1$d6n *DEC (6 0)
DCL &r1$tag *CHAR 2
DCL &r1$mon *CHAR 2
DCL &r1$jah *CHAR 4
DCL &r1$wot *DEC (1 0)
DCL &r1$ttx *CHAR 10
DCL &r1$rvd *DEC (5 0)
CALLPRC PRC(#DATUMPRUE) PARM((&A1$DAT) (&R1$D8N) +
(&R1$D6N) (&R1$TAG) (&R1$MON) (&R1$JAH) +
(&R1$WOT) (&R1$TTX) (&R1$RVD)) +
RTNVAL(&Z1$GUE)
CHGVAR VAR(&A1$DAT) VALUE(32012014)
CALLPRC PRC(#DATUMPRUE) PARM((&A1$DAT) (&R1$D8N) +
(&R1$D6N) (&R1$TAG) (&R1$MON) (&R1$JAH) +
(&R1$WOT) (&R1$TTX) (&R1$RVD)) +
RTNVAL(&Z1$GUE)
CHGVAR VAR(&z1$gue) VALUE(&z1$gue)
ENDPGM
Beispiel-RPG: Hier ist der Compile nur erfolgreich, wenn ich den Prototyp angebe:
H ACTGRP('ACTGRPSL') BNDDIR('MYLIB/BDSL')
*----------------------------------------------------------------
* DS #ddatprue - Variablen für Datumsroutine
d#ddatprue ds inz
d a1$dat 8p 0
d r1$d8n 8p 0
d r1$d6n 6p 0
d r1$tag 2
d r1$mon 2
d r1$jah 4
d r1$wot 1p 0
d r1$ttx 10
d r1$rvd 5p 0
* Datumsprüfung
d#datumprue pr 1
d a1$dat 8 0 const
d r1$d8n 8 0
d r1$d6n 6 0
d r1$tag 2
d r1$tag 2
d r1$mon 2
d r1$jah 4
d r1$wot 1 0
d r1$ttx 10
d r1$rvd 5 0
*================================================= ===============
* VARIABLEN
*----------------------------------------------------------------
d z1rueckgabe s 1
*================================================= ===============
* PROGRAMMERÖFFNUNG
*----------------------------------------------------------------
* Parameterliste
*----------------------------------------------------
* Aufruf Datumsprüfung
clear #ddatprue;
a1$dat= 01012014;
z1rueckgabe = #datumprue(
a1$dat : r1$d8n : r1$d6n :
r1$tag : r1$mon : r1$jah :
r1$wot : r1$ttx : r1$rvd);
a1$dat = 32012014;
z1rueckgabe = #datumprue(
a1$dat : r1$d8n : r1$d6n :
r1$tag : r1$mon : r1$jah :
r1$wot : r1$ttx : r1$rvd);
*inlr = *on;
Freundliche Grüße
Stefan
-
Für den Aufruf einer Prozedur in einem Service-Programm benötigst Du auf alle Fälle einen Prototypen.
Erst seit Release 7.1 ist die Definition und Verwendung eines Prototypen für interne Prozeduren optional.
Übrigens der Befehl CALLP, der im RPG-Free-Format optional ist, steht für "CALL WITH PROTOTYPE".
Mit Hilfe der Prototypen werden die Parameter-Definitionen zu Compile-Zeit geprüft. Stimmen die Parameter-Definitionen nicht überein wird das Programm oder Modul erst gar nicht erstellt. Im Gegensatz zum CL. Hier werden Abweichungen zwischen den Parameter-Definitionen nicht vor der Laufzeit festgestellt.
Birgitta
-
Hi Brigitta,
Danke für die schnelle Antwort.
Gruß
Stefan
Similar Threads
-
By rr2001 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 27-05-14, 13:44
-
By Tonazzo in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 11-03-14, 09:26
-
By loisl in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-11-13, 16:37
-
By it-wolf in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 19-07-02, 16:27
-
By hs in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 09-10-01, 12:06
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks