[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2008
    Beiträge
    70

    Alle Prozeduren mit Parameter auflisten

    Hallo,
    ist euch eine Tabelle (QSYS2?) bekannt, in der zu allen Prozeduren/Prototypen mit Eingabe/Ausgabe Parametern ausgewertet werden können?


    Theoretisch müsste es diese Möglichkeit ja geben, denn wenn ich im RDI die IntelliSense aufrufe, werden mir diese Informationen ja auch angezeigt.

    Mir sind diverse QSYS2 Tabellen bekannt, in denen SQL-Prozeduren angezeigt werden können (zb. QSYS2/SYSPARMS), aber keine in der die Prototypen mit Parametern ausgewertet werden könne.

    Vielen Dank für eure Hilfe.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... einfach geht das mit DSPMOD DETAIL(*EXPORT) und DSPMOD DETAIL(*IMPORT), wenn man die Module beim compile mit erstellt und nicht löscht. Über APIs geht das auch ohne die Module, kann aber bei der Verwendung von UPDSRVPGM und UPDPGM Unschärfen haben.
    Natürlich könnte man da auch eine UDTF drumherum stricken, wenn das dann langsam sein soll.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Sep 2008
    Beiträge
    70
    ...allerdings bekomme ich zu den Prozeduren mit DSPMOD nicht die Ein-/Ausgabeparameter angezeigt.
    Ich bekomme nur die Prozedurnamen.

    Erreichen möchte ich damit einen Prozedurkatalog, den ich für alle Programmierer zur Verfügung stellen kann.
    Da die Prozedurnamen weitestgehend sprechend sind, benötige ich auch keine weiteren Beschreibungen dazu.

    Für SQL-Prozeduren gibt es diese QSYS2-Tabellen ja aber für Serviceprogramm-Prozeduren habe ich noch nichts gefunden.

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... die Parameter sind nur in der Quelle zu finden. Für diesen Zweck würde ich mir mal RPGDOC anschauen, hab ich aber selber noch nicht ausprobiert. Üblicherweise schreibe ich die blackbox Kurzdoku in die Header Copystrecken.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    RDi interpretiert alle Importe (Copy/Include) einer Quelle um daraus eine ItelliSense-Liste zu generieren.
    Eine Art Reflection, wie man sie von anderen Sprachen kennt (Java/.NET) gibt es für ILE nicht.
    In QSYS2 findest du ausschließlich SQL-Definitionen und da gibt es natürlich ein Repository für Funktionen/Prozeduren sowie deren Parametern, da diese von SQL zur Laufzeit geprüft werden.

    In ILE gibt es keine Laufzeitprüfung außer unerwarteten MCH-Fehlern.
    D.h., deine Aufrufe werden ausschließlich durch die Source-Prototypen kompiliert.
    Ob der Prototyp tatsächlich zum Aufruf später passt, interessiert weder den Linker (CRTPGM) noch der ausführende Befehe.
    Man erinnere sich DSPPGM wird die Anzahl der Parameter angezeigt:
    Bei CLP steht da dann z.B "2 - 2", d.h., dass genau 2 Parameter erwartet werden.
    Bei ILE/RPG/COBOL steht da dann 0 - 255, d.h., du kannst beliebige Parameter zwischen 0 und 255 übergeben.
    Leider verhält sich das genauso bei ILE-Prozeduren.
    Hier gilt die Regel: Der Programmierer wird schon wissen, was er tut.
    Bei Objekt-Sprachen (Java, .Net., Delphi o.ä.) gibt es diesbezüglich eben Laufzeitprüfungen über Typen und Parameter.

    Deshalb wird da kein Repository angeboten.

    Es gibt allerdings für Programme (nicht für Module), einen Parameter, mit dem man sich XML-Strukturen im IFS erzeugen lassen kann da diese für irgendwelche Remote-Aufrufe benötigt werden.
    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
    Jan 2012
    Beiträge
    1.102
    Wir standen vor dem gleichen Problem. Da wir keine andere Lösung gefunden haben, haben wir in unser Compile-Script einen Aufruf eines selbstgeschriebenen Programms eingebaut, das den Source des erfolgreich gewandelten Programmes interpretiert und einen passenden Prototyp erzeugt und in ein Repository schreibt.

    Das war ganz schön aufwendig. Schade, dass IBM da keine Standardlösung anbietet.

    Wenn du da etwas findest (z.B. passende APIs), lass es uns wissen!

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Vielleicht basiert der RDi-Editor ja auf OpenSource und man kann sich die Quell-Analyse daraus entnehmen, da ja dort alle Variablen analysiert werden könnte dies ebenso hilfreich für ein Repository sein.
    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
    Jan 2012
    Beiträge
    1.102
    Coole Idee. Ich muss unser Java Kollegen mal fragen, ob die da etwas herausfinden können.

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Ist bei denen wohl wichtig, um die richtige Funktion/Prozedur/Methode zu finden, da sie überladen sein kann?

    Zitat Zitat von Fuerchau Beitrag anzeigen
    In QSYS2 findest du ausschließlich SQL-Definitionen und da gibt es natürlich ein Repository für Funktionen/Prozeduren sowie deren Parametern, da diese von SQL zur Laufzeit geprüft werden.
    ...
    Bei Objekt-Sprachen (Java, .Net., Delphi o.ä.) gibt es diesbezüglich eben Laufzeitprüfungen über Typen und Parameter.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    RPG kennt keine Überladungen, hier muss man immer neue Funktionsnamen erfinden.
    In SQL wiederum ist das natürlich möglich.
    Aus der Eingangsfrage (RDi und Intellisense) habe ich aber entnommen, dass es sich nicht um SQL handelt.
    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. User defined Functions auflisten
    By msost in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 18-08-16, 15:59
  2. Prozeduren in Servicepgm von einem Anderen Programm aus aufrufen.
    By dholtmann in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 22-07-16, 09:57
  3. SQLRPGLE Get und Set Prozeduren
    By iseries_user in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 11-05-16, 11:13
  4. Interne Prozeduren mit DFTACTGRP
    By DEVJO in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 16-09-15, 14:14
  5. Probleme mit SQL-Prozeduren
    By AnjaS in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 16-01-03, 10:18

Berechtigungen

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