Jetzt muss ich mich doch mal an die Profis wenden.
Bei mir bricht die Umwandlung immer mit dem Fehler CPD5D02 ab (Definition für Symbol ... nicht gefunden). Das scheint im Bindeprozess stattzufinden. Ich verstehe nicht warum.
Jetzt aber von Vorne:
ich habe eine Prozedur in einem Serviceprogramm erstellt:
Code:
// Control Specifications
Ctl-Opt
Nomain;
.
.
.
// langen Barcode im Format GS128 parsen
Dcl-PR Parse_GS128_Barcode ind;
pi_Barcode char(74) const; //Input
po_EAN zoned(14); //Output
po_MHD date; //Output
po_Charge char(20); //Output
End-PR;
.
.
.
Dcl-Proc Parse_GS128_Barcode export pgminfo(*yes);
// Programm-Interface
Dcl-PI Parse_GS128_Barcode ind;
pi_Barcode char(74) const; //Input
po_EAN zoned(14); //Output
po_MHD date; //Output
po_Charge char(20); //Output
End-PI;
.
.
.
// Wurde eine wichtige Information im Barcode gefunden?
if po_EAN <> 0 //Ja
or po_MHD <> *loval
or po_Charge <> '';
return *on;
else;
return *off;
endif;
.
.
.
End-Proc Parse_GS128_Barcode;
Ich habe diese Prozedur auch im Bindeprogramm aufgeführt:
Code:
strpgmexp signature(*gen) lvlchk(*yes) pgmlvl(*current)
export symbol(Parse_GS128_Barcode)
endpgmexp
Dann habe ich das Serviceprogramm ohne Fehler erstellt.
Anschließend habe ich das Serviceprogramm in mein Bindeverzeichnis aufgenommen:
Code:
Aus- ------Erstellung------
wahl Objekt Art Bibliothek Aktivierung Datum Zeit
WAWSRV01 *SRVPGM TEST *IMMED 25.02.21 08:44:01
Und nun möchte ich diese Prozedur in meinem Programm WAW165 vom Typ SQLRPGLE nutzen:
Code:
* Control Specifications
h DftActGrp(*no) Actgrp(*new) BndDir('*LIBL/BIEBNDD')
.
.
.
d Parse_Barcode pr n extproc('Parse_GS128_Barcode')
d pi_Barcode 74a
d po_EAN 14s 0
d po_MHD d
d po_Charge 20a
.
.
.
// Langen Barcode parsen
if Parse_Barcode(bbarcdl:u25_ean:u25_mhd:u25_charge) = *on;
// Bildschirmfelder füllen
else;
// Fehler ausgeben
endif;
Leider bekomme ich bei der Umwandlung meines Programmes WAW165 über die Auswahl 14 folgende Meldung im Joblog (Fehler CPD5D02):
Code:
Nachricht . . . : Definition für Symbol 'Parse_GS128_Barcode' nicht
gefunden.
Ursache . . . . : Für Referenz Parse_GS128_Barcode in *MODULE Objekt WAW165
der Bibliothek QTEMP wurde keine Definition gefunden. Entweder ist die
Definition nicht vorhanden, oder sie gehört nicht zu demselben Datentyp oder
derselben Prozedurart wie die Referenz. Fehlerbeseitigung: Den Befehl
CRTPGM (Programm erstellen) wiederholen, wobei ein Objekt angegeben wird,
das eine Definition für Symbol Parse_GS128_Barcode enthält.
Ich habe schon alles mögliche ausprobiert:
- Programm WAW165 zuerst mit Auswahl 15 zu einem Modul wandeln (geht ohne Probleme)
- anschließend CRTPGM mit Angabe meines Serviceprogrammes
Aber es bleibt bei der gleichen Fehlermeldung.
Was mache ich falsch?
Gruß
Artur Janzen
Bookmarks