[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dein Fehler ist, dass er das Serviceprogram QZDMMDTA nicht findet.
    Das hat mit deinen Programmen ja erst mal nichts zu tun.
    Schau also mal, wo du das Programm aufrufst bzw. welche Prozedur in diesem Programm.
    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

  2. #2
    Registriert seit
    Oct 2015
    Beiträge
    109
    Ich frage mich, wie er auf den Namen kommt?
    Muss ich in dem aufrufenden Programm das Serviceprogramm angeben?
    Vllt bei der Wandlung oder so etwas?

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Ich glaube, dein EXTPROC ist falsch. Das darf nicht der Name der Prozedur im Serviceprogramm sein. Es muss der Name des Programmobjektes sein, in dem sich die exportierte Prozedur befindet.

    Also nicht:

    dcl-pr D1KO_Chain ind extproc('PR_D1KO_CHAIN');
    DS_D1KO likeds(DS_ARTS);
    Lock char(1) const;
    end-pr;

    sondern:

    dcl-pr D1KO_Chain ind extproc('D1KO000');
    DS_D1KO likeds(DS_ARTS);
    Lock char(1) const;
    end-pr;

    Dieter

  4. #4
    Registriert seit
    Oct 2015
    Beiträge
    109
    Dankeschön,
    hab das ausprobiert, es läuft aber auf das Gleiche raus
    Objekt QZDMMDTA der Art *SRVPGM in Bibliothek QSOC nicht gefunden.
    Definition für Symbol 'PR_D1KO000' nicht gefunden.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wie heißt denn nun deine Prozedur?
    EXTPROC(Prozedurname) im rufenden und EXPORT(Prozedurname) im gerufenen Programm müssen genau übereinstimmen.
    Zur Compilezeit wird das Programm gebunden. Sind Importe (wie EXTPROC) nicht vorhanden, kann das Objekt eigentlich nicht erstellt werden.

    Außerdem fällt mir auch auf, dass deine DCL-PROC und DCL-PI unterschiedlich sind.
    DCL-PROC definiert den Prototyp incl. Parameter der vom Compiler gebunden wird.
    DCL-PI definiert die Aufrufschnittstelle der Prozedur selber.
    Eigentlich sollte hier der Compiler schon meckern, wenn der selbe Name unterschiedlich definiert ist.
    Ggf. ist das der Fluch des Free-Compilers, dass er da nicht mehr zurechtfindet?
    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

  6. #6
    Registriert seit
    Oct 2015
    Beiträge
    109
    ich werde die Groß und Kleinschreibung anpassen.
    PR und PI passen jedoch zusammen, die Datenstrukturen heißen zwar unterschiedlich, sind aber identisch. Das verwende ich öfter in so einer Kombination.
    Ich verwende DS_D1KO likeds(DS_ARTS); und DS_Input likeds(DS_Datei);
    nur mit unterschiedlichen Namen, da das eine Programm generiert wird.
    Hatte das ganze schon einmal lauffähig, hab es heute aber Stundenlang nicht hinbekommen
    (vermutlich aufgrund der Wandlungsart (Da bin ich aber noch dran)).

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich bezog mich nur auf diese Definition im ersten Post, da fehlte halt die komplette Definition.
    Diese muss auch im gerufenen Programm übereinstimmen.
    dcl-proc pr_D1KO_chain export ;
    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

  8. #8
    Registriert seit
    Oct 2015
    Beiträge
    109
    achso, ja das stimmt.
    Hab ich vllt nicht gut aufgeschrieben.

    Ich hab mich jetzt doch für ein Bindeverzeichnis entschieden.
    Es wäre sonst kompliziert, sich jedes Mal zu merken,
    mit welchem Befehl erstellt wurde und
    das nächste Serviceprogramm zu ergänzen.
    Da finde ich die Bindeverzeichnismethode einfacher.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    D*B ist da massiv anderer Meinung wobei ich dir da eher zustimme.
    BNDDIR's setzen eben Genauigkeit voraus.
    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

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Das sind zwei verschiedene Fehler, wobei wahrscheinlich nur der zweite ein Problem ist.

    Objekt QZDMMDTA der Art *SRVPGM in Bibliothek QSOC nicht gefunden.
    Definition für Symbol 'PR_D1KO000' nicht gefunden.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wie erstelltst du denn dein Programm, dass das Service-Programm aufrufen soll?
    Dort musst du die Module alle mit aufführen.

    Arbeitest du nicht mein einem BNDDIR, musst du dein Programm in 2 Schritten erstellen:
    1. CRTRPGMOD (bzw. dei SQL-Variante)
    2. CRTPGM ... MODULE( Liste der Module ) ... BNDSRVPGM( Liste der Serviceprogramme)

    Bei der Fehlermeldung mal F9 drücken und schauen, an wen denn die Nachricht ging.
    Per DSPSRVPGM ggf. mal die Exporte prüfen, hier ist Großkleinschreibung wichtig.
    BNDDIR's vereinfacht zwar die Sache, macht es allerdings ein wenig komplexer.
    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

  12. #12
    Registriert seit
    Oct 2015
    Beiträge
    109
    F9 sagt:
    Von Programm . . . . . . . . . : QBNBIND
    Von Bibliothek . . . . . . . : QSYS
    Von Modul . . . . . . . . . : QBNBSYMR
    Von Prozedur . . . . . . . . : QBNBSYMR__UnresolvedReferenceIterator
    Von Anweisung . . . . . . . : 31

    An Programm . . . . . . . . . : QBNBIND
    An Bibliothek . . . . . . . : QSYS
    An Modul . . . . . . . . . . : QBNBSYMR
    An Prozedur . . . . . . . . : QBNBSYMR__SignalUnresolvedReferences
    An Anweisung . . . . . . . . : 8
    Ich hab CRTBNDRPG verwendet.

    ich denke CRTRPGMOD war der wichtige Schritt den ich vergessen hatte.
    Ich werde jetzt mal versuchen das auf diese Art zu erstellen.
    Dankeschön

Similar Threads

  1. CL-Programm aus C# mit Rückgabeparameter aufrufen
    By Armin in forum NEWSboard Programmierung
    Antworten: 16
    Letzter Beitrag: 04-03-16, 16:07
  2. Berechtigung Job mit anderen User aufrufen
    By Paul_Hofmann in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 20-01-16, 09:23
  3. Wie kann man über SQL ein I5-Programm aufrufen
    By MR-BN in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 02-10-15, 15:40
  4. Batch-Programm aus RPG aufrufen?
    By hansr in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-11-02, 16:38
  5. IBM Nadeldrucken in einem anderen Gebäude als die AS 400
    By Markus H in forum NEWSboard Drucker
    Antworten: 11
    Letzter Beitrag: 12-02-02, 13:22

Tags for this Thread

Berechtigungen

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