[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.120

    Prüfen, ob ein Objekt existiert

    Hallo,
    hat jemand eine einfache Idee, wie ich mit einem Programm herausfinden kann, ob ein bestimmtes Objekt existiert? Ich kenne den Objektnamen und die Bibliothek, in der das Objekt stehen müsste. Ein CHKOBJ geht nicht, da ich dabei den Objekttyp wissen müsste. Den kenne ich aber nicht. WRKOBJ kann das ja im Prinzip, indem es alle Objekte mit dem entsprechenden Namen auflistet.
    Mir fällt im Moment nur ein, mit irgendwelchen IFS APIs verzeichnismäßig an die Problematik ranzugehen und alle Dateien in dem Verzeichnis, das der Bibliothek entspricht, auszulesen.
    Aber vielleicht gibt es ja eine einfachere Lösung.

    Dieter

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Wenn Du das API QUSLOBJ verwendest, kannst Du beim Objekt-Typen den Sonder-Wert *ALL übergeben und solltest somit eine Liste aller Objekte mit dem vorgegebenen Namen und in der vorgegebenen Bibliothek erhalten.

    Hier ist die Beschreibung zu API QUSLOBJ:
    QUSLOBJ - List Objects

    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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Auf der AS400 besteht ein Objekt nun mal auch aus dem Objekt-Typ.
    Ich verstehe daher die Logik dahinter nicht, zu prüfen ob ein Objekt existiert oder nicht.
    Suchst du nun ein Programm *PGM oder eine Datei *FILE oder eine OUTQ *OUTQ oder oder oder.
    In so fern wäre die Prüfung mittels CHKOBJ auf die bestimmten Objekttypen das einfachste.
    Ansonsten hilft dir eben nur der DSPOBJD in eine OUTFILE bzw. das entsprechende API dazu.
    Für das API benötigst du noch die USRSPC-API's.
    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

  4. #4
    Registriert seit
    Jun 2006
    Beiträge
    5
    Anhang 289Anhang 290

    SRVOBJH.txt Prototyoes
    SRVOBJ.txt Source für SRVOBJ *SRVPGM

    Gruss
    Helge Bichel

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank für eure Anworten.
    Es geht um das Aufräumen einer Programmreferenzdatei, die mit DSPPGMREF ... *OUTFILE erzeugt wurde. Ich möchte alle Einträge löschen, zu denen es kein Objekt mehr gibt. In der Datei steht der Bibliotheksname und der Programmname, aber nicht der Objekttyp. Aber ich habe gerade festgestellt, dass es nur eine Handvoll Objekttypen sein kann: *PGM, *SRVPGM, *MODULE, *SQLPKG und *QRYDFN.
    Ich werde deshalb einfach pro Objekt diese 5 Arten prüfen.
    Aber auch nochmal Danke für das API. Dafür habe ich bestimmt auch noch mal Verwendung.

    Nochmals Danke für eure Mühe.

    Dieter

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Was ist mit dem Feld WHOTYP (Objektart)?

    SELECT WHLIB, WHPNAM, WHFNAM, WHLNAM, WHOTYP FROM QTEMP/PGMREF

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn du doch schon das DSPPGMREF per OUTFILE machst, mach doch auch einen DSPOBJD der entsprechenden LIB's in eine OUTFILE.
    Dann kannst du doch simple per SQL die beiden Dateien abgleichen ohne eine Zeile Code zu schreiben.

    Alternativ erstelle doch die PGMREF einfach neu .
    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
    Aug 2003
    Beiträge
    1.508
    Hallo,

    keine ahnung ob es abhängig vom Release ist, aber bei mir (7.1) gibt es die Objektarten.
    In kurzform: WHOBJT (P=Programm,...)
    Und normal: WHOTYP (*PGM=Programm,...)

    lg Andreas

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Klar, das Feld WHOTYP gibt es bei mir auch. Aber das ist der Typ der verwendeten Objekte. Es geht mir um den Typ der verwendenden Objekte. Es geht mir um die "linke" Seite der Datei. Also um die Typen von WHLIB und WHPNAM.
    Wir haben da eine Anwendung, mit der wir Programmreferenzen suchen können. Die Outfile von DSPPGMREF ist bei uns eine permanente Datei, die automatisch vom Wandlungsprogramm aktualisiert wid. So haben wir immer eine aktuelle Programmreferenzdatei, ohne jedesmal einen DSPPGMREF ausführen zu müssen. Aber wenn ein Programmierer ein Objekt einfach per CMD löscht, wird die Programmreferenzdatei natürlich nicht aktualisiert.
    Deshalb der Aufräumjob.

    Dieter

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Wie wärs mit dem Feld WHSPKG?

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dann ist die Liste der betroffenen Objekte genau 2 Einträge lang *PGM, *SRVPGM, da DSPPGMREF eben nur Programme bearbeitet.

    Dann kannst du ja doch einen DSPOBJD der PGMLIB's machen und per SQL einen
    delete from mypgmref where not exists (select * from myobjlst where fromnameundlib = tonameundlib)
    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
    Nov 2003
    Beiträge
    2.307
    Es könnte (je nach Release) auch ein SQL-Paket, ein Modul oder eine Query-Definition sein.

    DSPPGMREF Objektart

Similar Threads

  1. Job noch aktiv - wie kann ich dies am besten prüfen ?
    By falke34 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 14-05-14, 16:15
  2. API QMHRCVM Prüfen ob Nachricht bereits beantwortet ist
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 18-11-13, 08:52
  3. TCP/IP Port prüfen
    By wdom in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 19-05-03, 13:58
  4. prüfen ob STMF in IFS-Verzeichnis vorhanden
    By CZE425 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-10-02, 11:56
  5. TCP/IP FTP prüfen ob Rechner an ist
    By malzusrex in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-07-02, 10:07

Berechtigungen

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