[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2007
    Beiträge
    25

    Umwandlung bricht mit Fehler CPD5D02 ab (Definition für Symbol ... nicht gefunden)

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    19.095
    Die Reihenfolge stimmt schon:
    Service:
    CRTRPGMOD
    CRTSRVPGM

    Hauptprogramm:
    CRTRPGPGM ...

    Hier sind die einzubindenden Serviceprogramme aufzuzählen. Besse wäre es ein Binderverzsichnis zu erstellen, das Serviceprogramm hinzuzufügen und im Hauptprogramm CTL-OPT BNDDIR(); zu verwenden.
    Wichtig ist die Beachtung der Groß-Kleinschreibung.
    In der SRV-Source gibst du den Namen ohne Hochkomma an, dann wird er in Großbuchstaben übersetzt.
    Prüfe mal die Schreibweise im DSPMOD der Exporte.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jul 2007
    Beiträge
    25
    Die Großschreibung hat mein Problem gelöst. Ich danke dir für die schnelle Hilfe.

    Ich gebe jetzt in meinem Programm WAW165 die Prototype-Definition folgendermaßen an:

    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


    Und damit läuft es jetzt.

    Vielen Dank für die schnelle Hilfe.

    Gruß
    Artur Janzen

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    805
    HI,

    bei der dcl-pr Definition kann man auch extproc(*dclcase) angeben.
    Dann klappts auch

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    19.095
    Aber nur, wenn man in der SRVPGM-Quelle dann die Namen in Hochkomma packt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. SQL-Precompiler Fehler gefunden ?
    Von Fuerchau im Forum NEWSboard Programmierung
    Antworten: 16
    Letzter Beitrag: 20-03-20, 13:31
  2. SQL Fehlermeldung : Spalte oder globale Variable nicht gefunden!!!
    Von svente im Forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 05-12-16, 18:15
  3. Antworten: 4
    Letzter Beitrag: 23-02-16, 11:15
  4. V7R1 Fehler Umwandlung SQLRPGLE
    Von Peet im Forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 29-10-14, 07:54
  5. CRTRPGPGM nicht gefunden
    Von DEVJO im Forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-11-02, 09:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •