[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    163

    Prozedur in CLLE

    Guten Tag,

    wir haben ein Modul zur Prüfung, ob ein Benutzer bestimmte Funktionen benutzen darf. Es ist in RPGLE geschrieben. Das Modul heißt BERPRU_P. Darin ist die Prozedur ber_pru.

    Code:
    P ber_pru         b                   export
    Diese möchte aus aus einem CLLE Programm aufrufen. Ich erstelle das CLLE Modul und versuche dann dann das Programm zu erstellen.

    Code:
    CRTPGM PGM(MSPBH02) MODULE(MSPBH02 BER_PRU)
    Dabei erhalte ich den Fehler

    CPD5D02
    Definition für Symbol 'BER_PRU' nicht gefunden.

    Kann mir jemand sagen, was ich ändern kann/muss, um das Programm zu erstellen?

    Herzlichen Dank im Voraus
    Hubert

  2. #2
    Registriert seit
    May 2007
    Beiträge
    295
    Ich habe das immer mit einer BNDDIR in ein CLLE eingebunden. Versuch es mal damit.

    Code:
     DCLPRCOPT LOG(*NO) USRPRF(*OWNER) AUT(*EXCLUDE) DFTACTGRP(*NO) ACTGRP(*NEW) +
                BNDDIR(MYLIB/MYBND)
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    163
    Leider nicht.

    Ich habe ein BNDDIR angelegt:
    Code:
    Objekt       Art          Bibliothek 
    MSPBH02      *MODULE      *LIBL      
    BER_PRU      *MODULE      *LIBL
    und versucht, das Programm zu erstellen:

    Code:
    CRTPGM PGM(MSPBH02) MODULE(*PGM) ENTMOD(*PGM) BNDDIR(MSPBH02)
    Das Ergebnis ist das gleiche.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Schau dir die Exporte mal per DSPPGM genau an.
    Die Aufrufe sind Casesensitive.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Hubert Beitrag anzeigen

    _______________________ Das Modul heißt BERPRU_P.
    CRTPGM PGM(MSPBH02) MODULE(MSPBH02 BER_PRU)
    Hubert
    ... meistens hat der Blechkasten Recht!!!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    May 2007
    Beiträge
    295
    Blöde Frage... müsstest du das CLLE nicht mittels CRTBNDCL umwandeln?
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von prsbrc Beitrag anzeigen
    Blöde Frage... müsstest du das CLLE nicht mittels CRTBNDCL umwandeln?
    ... einfache Antwort: Nein!!!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    May 2007
    Beiträge
    295
    Klar. Bin noch im Mittagsschlafmodus. Wenn alles schon fix fertig in Module verpackt ist dann nicht, hast recht :-)
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Module können nur direkt gebunden werden, wenn es sich bei der aufzurufenden Prozedur um die Main-Procedure handelt (globale C-Bestimmungen).
    Bei sonstigen exportierten Prozeduren, muss das Modul zunächst in einem Service-Programm gebunden werden.
    Wenn dann das Service-Programm in einem Binderverzeichnis eingetragen ist, kann man das Programm direkt mit CRTBNDCL erstellen.
    Voraussetzung ist allerdings, dass das Programm nicht in der Default-Aktivierungsgruppe erstellt wird und dass das Binder-Verzeichnis angegeben wird. Beides kann man beim CRTBNDCL angeben. Besser ist allerdings, man hinterlegt die Aktivierungsgruppe und das Binder-Verzeichnis im DCLPRCOPT-Befehl im CL-Quellcode.
    ... ich würde allerdings eine benannte Aktivierungsgruppe der Aktivierungsgruppe *NEW vorziehen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Module können nur direkt gebunden werden, wenn es sich bei der aufzurufenden Prozedur um die Main-Procedure handelt (globale C-Bestimmungen).
    Bei sonstigen exportierten Prozeduren, muss das Modul zunächst in einem Service-Programm gebunden werden.

    Birgitta
    ... noch jemand im Mittagsschlafmodus?!
    Ich sage nur: Bind by Copy, bind by Reference.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Module können auch ohne Serviceprogramm gebunden werden.

    Module müssen keine Main-Funktion haben da sie ja nur ein Modul sind.
    Beim CRTPGM kann ich eine Liste der Module angeben, wobei das Modul mit der Main-Prozedur explizit angegben werden kann, die ich zu einem Programm binde, bei CRTBNDxxx eben Binderverzeichnisse, die auch nur Module enthalten können.

    ACTGRP(*NEW) wird auch häufig verwendet um Programme ohne Main rekursiv aufrufen zu können.
    Zusätzlich ist sichergestellt, dass nach dem Ende alles aufgeräumt wird und nicht Reste in der ACTGRP hängenbleiben (z.B. geöffnete Dateien, Satzsperren, u.v.m.).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL und CLLE
    By camouflage in forum NEWSboard Programmierung
    Antworten: 26
    Letzter Beitrag: 15-03-21, 14:13
  2. clle TYPE(*LGL)
    By dibe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 18-09-15, 10:55
  3. CLLE als Prozedur ins Serviceprogramm
    By Etherion in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 30-09-14, 14:36
  4. CLLE / CLP
    By muadeep in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-02-06, 17:35
  5. ILE RPG + CLLE
    By Ludger Muhmann in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-10-02, 15:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •