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