[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    29

    Funktion in WRKACTJOB wiederherstellen

    Hallo!

    Ich habe eine Bedienoberfläche mit UIM und RPGLE programmiert, die auch Befehle ausführt. Beim Ausführen dieser Befehle wird im WRKACTJOB beim Job die Spalte "Funktion" auch aktualisiert. Bei der Rückkehr aus dem Befehl, bleibt der Inhalt der Spalte "Funktion" jedoch bestehen. Es wird nicht wieder der Name der Bedienoberfläche angezeigt, so wie es z.B. bei PDM der Fall ist. Woran liegt das?

    Habe schon alles probiert: API QCAPCMD mit ProcType 2 oder auch Anforderungsnachricht (Nachrichtenart *RQS) mit darauf folgendem Verarbeitungsprogramm.


    Titus

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Was WRKACTJOB anzeigt ist eher zufällig.
    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
    Mar 2006
    Beiträge
    29
    Zitat Zitat von Fuerchau
    Was WRKACTJOB anzeigt ist eher zufällig.
    Naja, das glaube ich nicht so ganz. Soweit ich weiß, hat es irgendwas mit den Ausführungsebenen zu tun. Die Bedienerhilfe im Befehl WRKACTJOB dazu lautet "Die letzte vom Anfangs-Thread eingeleitete Funktion höherer Ebene...".

    Soweit okay. Das passiert ja auch. Aber wieso wird bei Rückkehr in eine vorherige Ebene nicht die Ausgangsfunktion (Befehl) wieder eingestellt?!?

    Titus

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Nun, das Senden einer Nachricht vom Typ RQS und abholen derselben ohne Remove setzt genau diesen Status.
    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 2006
    Beiträge
    29
    ...ja, ich dachte auch erst, es liegt am fehlenden Entfernen der Anforderungsnachricht. Ich habe es aber auch mal mit REMOVE(*YES) probiert und bekomme das selbe Ergenis.

    Titus

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Nein, das ist es nicht.
    REMOVE(*NO) ist erforderlich um als Anforderungsprozessor erkannt zu werden (Systemanfrage 2 gibt dann eine überwachbar CPF1907 aus).

    Im Moment des Empfangens einer RQS-Nachricht ohne Remove wird dieses Programm für WRKACTJOB eingestellt.
    Beim Verlassen der Aufrufebene wird dies für WRKACTJOB nicht aktualisiert (siehe Hilfetext), d.h., um den Status dieser Anzeige zu wiederholen, ist ein erneutes Senden und Abholen einer RQS-Nachricht nötig.

    Da aber Kommandos aus einer PNLGRP eigentlich ohne eigene Programmaktivität ausführbar sind kommt das Programm ggf. dieses gar nicht mit.
    Man muss dann ggf. noch ein Exit für diese Fälle belegen.
    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

  7. #7
    Registriert seit
    Mar 2006
    Beiträge
    29
    Zitat Zitat von Fuerchau
    Da aber Kommandos aus einer PNLGRP eigentlich ohne eigene Programmaktivität ausführbar sind kommt das Programm ggf. dieses gar nicht mit.
    Man muss dann ggf. noch ein Exit für diese Fälle belegen.
    Ich verarbeite die Eingaben in der PNLGRP mit ACTOR=CALLER. Das geschieht deshalb, weil ich die auszuführenden Befehle nicht alle in der PNLGRP vordefinieren kann, sondern dynamisch im Programm aufbaue. Meinst Du, ich komme statt dessen mit einem Exit-Program eher zum gewünschten Ergebnis?

    Titus

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Jein.
    Bei CALLER rufst du selber die Befehle mit QCMDEXC auf. Nach der Rückkehr musst du deine RQS-nachricht erneut senden.

    Der Vorteil, CMD's von UIM auszuführen ist im Zusammenhang mit Mehrfachauswal und Kommandozeile zu sehen.

    Beispiel ist ja WRKSPLF:
    Mehrere Eintrage mit Option auswählen und in der Kommandozeile mit Parametern ergänzen. Z.B. Auswahl 2 und in der Kommandozeile OUTQ(NEWQ).
    UIM ruft dann selber jede Zeile mit dem zusammengebauten Kommando auf.

    In der Action-Liste kannst du auch auf andere Listenvariablen verweisen, auch auf Elemente die keiner View zugeordnet sind, also Hidden-Fields.

    Es gibt daher selten einen Grund, Kommandos selber aufzurufen, insbesonders habe ich dann Probleme die Fehlermeldungen (ggf. mehrere) in der Nachrichtenzeile anzuzeigen. Dies übernimmt UIM automatisch.
    Das selbe Gilt im Übrigen auch bei Mehrfachauswahlen. Beim 1. Fehler wird automatisch angehalten.

    Bei Action CALLER sind Mehrfachauswahlen nicht möglich, da ja jeder Eintrag einzeln behandelt wird und das Programm nicht weiß, ob weitere Auswahlen noch folgen oder die vorherige Auswahl fehlerhaft war.

    Auch das Handling von Bestätigungs-Listen (Auswahl 4) kann UIM automatisch vornehmen.

    Da würde ich die Anzeige des WRKACTJOB eher vernachlässigen da sie eigentlich nicht relevant ist.
    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

  9. #9
    Registriert seit
    Mar 2006
    Beiträge
    29
    Zitat Zitat von Fuerchau
    Jein.
    Der Vorteil, CMD's von UIM auszuführen ist im Zusammenhang mit Mehrfachauswal und Kommandozeile zu sehen...
    Das ist mir auch bekannt. Ich habe bereits einige Dialoge auf diese Weise programmiert.

    Im aktuellen Fall ist es aber so, dass es benutzerdefinierte Auswahlmöglichkeiten geben soll, für die beliebige Befehle vorgegeben werden können. Diese sind also erst zum Zeitpunkt der Programmausführung bekannt und werden auch erst dann ggf. durch Parameter ergänzt. Meines Wissens nach hört's da für UIM auf?!?

    Da würde ich die Anzeige des WRKACTJOB eher vernachlässigen da sie eigentlich nicht relevant ist.
    Das von mir geschilderte Problem ist sicherlich eher Schönheitssache. Ich hatte mich auch nur hier für den Fall an's Forum gewendent, dass es eine ganz einfache Lösung gibt. Denn mit Doku lesen und rumprobieren war ich irgendwie nicht weitergekommen.

    Um der Vollständigkeit halber nochmal zu erzählen, worum es geht: Ich will mir mit möglichst wenig Aufwand ein kleines PDM nachbauen, bei dem ich die Quellen aller Arten in einer gemeinsamen Sicht habe und nicht ständig wie bei WRKMBRPDM zwischen den Quellendateien (z.B. QDDSSRC und QRPGLESRC) wechseln muss. Bis auf kleine Feinheiten funktioniert das ganze auch schon.

    Titus

Similar Threads

  1. Datei Delete wiederherstellen
    By jojoschluckfirma in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 13-06-17, 13:35
  2. SQL: Ausführungsverhalten einer Funktion in einem CASE-Statement
    By mwithake in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-08-09, 14:57
  3. OUTQ Beschreibung sichern und wiederherstellen
    By SL in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 07-12-06, 10:46
  4. sql funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  5. Funktion in WRKACTJOB
    By Robi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 28-07-04, 10:30

Berechtigungen

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