[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2013
    Beiträge
    15

    Probleme mt OPNQRYF

    Hallo zusammen, vielleicht kann mir wer mein aktuelles Problem erklären.

    Mir ist bewusst, dass ich OPNQRYF gegen SQL tauschen könnte. Leider kann ich aber
    nicht alle Programme immer sofort komplett umstellen, muss aber trotzdem betroffene
    Programme ggf. compilieren.

    In einem CL-Programm ist folgender Code
    PHP-Code:
    OVRDBF     FILE(LOGL1TOFILE(&LIB/LOGL5SHARE(*YES)                          

    OPNQRYF    FILE((LOGL1)) OPTION(*INP *UPDFORMAT(*FILE) +
         
    QRYSLT(&QRYBEDKEYFLD(*FILEOPNID(SPED3)        

    CALL MYRPG1
    CLOSE SPED3 
    In MYRPG1 findet keine direkte Dateiverarbeitung statt. Diese erfolgt über ein *SRVPGM,
    welches mit logischer Sicht LOGL5 arbeitet.

    Hier hätte ich jetzt erwartet, dass Datei LOGL5 nach dem Statement OPEN nochmals geöffnet wird und die neue Instanz als Basis herangezogen wird (Filter wird ignoriert).
    Die bisherige Programmversion hat den *SHARE, sowie den OPNQRYF aber berücksichtigt und die Datei LOHL05 nicht nochmals geöffnet und die gefilterten Datensätze verwendet.

    Jetzt wurden am CL-Programm Änderungen vorgenommen (nicht auf den OPNQRYF bezogen) und das CL-Programm, sowie MYRPG1 neu compiliert.

    Nach der Neuerstellung ignoriert das SRVPGM nun den *SHARE sowie den OPNQRYF und liefert
    mir alle Datensätze.

    Das CL-Programm wurde mit Aktivierungsgruppe *NEW, das MYRPG mit Aktivierungsgruppe *CALLER
    umgewandelt. Dies gilt für die aktuelle und bishere Umwandlung.

    Kann mir jemand diese Verhaltenweisen erklären?

    Vielen Dank im voraus für die Antworten.

    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    OPNID(SPED3) !?
    Der OPNQRYF öffnet eine Datei mit Namen SPED3.
    Dein Programm muss also die selbe Datei, nämlich SPED3 öffnen. Tut sie das nicht, ist der OPNQRYF wirkungslos.

    Reihenfolge:
    OVRDBF ... TOFILE(XXXX) SHARE(*YES) OVRSCOPE(*JOB) <= ggf. erforderlich
    OPNQRYF ... OPNID(XXXX)
    CALL ... (OPEN XXXX)
    CLOSE XXXX
    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

  3. #3
    Registriert seit
    May 2013
    Beiträge
    15
    Hallo Fürchau,

    da sagt mir aber die Übersicht der geöffneten Dateien etwas anderes.
    Demzufolge ist LOGL05 schon geöffnet, die Verarbeitung erfolgt ja auch
    weiterhin hierüber.

    Nur die Filterung des OPNQRYF greift nicht mehr, obwohl weder der Bereich
    des OPNQRYF angefasst, noch das SRVPGM hinsichtlichtlich Dateiverarbeitung
    angepasst wurde.

    Den OVRSCOPE werde ich allerdings noch mal ausprobieren, denn der fehlt
    tatsächlich. Wobei ich hier eigentlich sicher bin, dass dies der Default-Wert
    des OVRDBF ist.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Der Default ist *ACTGRP.
    Wenn die Datei bereits auf ist bevor der OVRDBF und OPNQRYF läuft, wirken diese natürlich nicht mehr.
    Wichtig ist:
    Welche Datei wird im Programm geöffnet?
    Genau diese ist per OVRDBF auf SHARE und ggf. auf einen neuen Namen zu überschreiben.
    Der OPNQRYF ist mit dieser ID dann zu öffnen.
    Zu diesem Zeitpunkt darf das Serviceprogramm noch nicht zur Ausführung bzw. zum Open gekommen sein. Ist eine eigene ACTGRP für das Serviceprogramm definiert (statt *CALLER) ist beim OVR *JOB erforderlich.
    Wenn das Serviceprogramm die Datei am Ende nicht schließt wirkt ein 2. OVR/OPNQRYF nicht mehr.
    Das killen der ACTGRP mit RCLACTGRP kann u.U. zu Folgefehlern führen.
    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. Probleme mit SQL und xmlserialize
    By Lesca in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 16-04-15, 07:25
  2. OPNQRYF im RPG-Programm durch SQL ersetzen
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 18-05-14, 16:26
  3. Probleme im IFS
    By Der Gute in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 09-04-02, 15:36
  4. Probleme mit AFP
    By Flappes in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-08-01, 16:54
  5. PTF-Probleme
    By Winni in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 30-03-01, 07:29

Berechtigungen

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