[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Nov 2003
    Beiträge
    19

    Post MSG vom Drucker

    Hallo *all,

    da jetzt alles neu ist versuche ich es nochmal:

    Ich arbeite gerade an einer Anwendung die den Befehl
    WRKSPLF ersetzten soll.
    Dabei habe ich folgendes Problem :
    Wenn im WRKSPLF eine Liste auf MSGW steht kann man mit der Auswahl 7 die Nachricht sehen und beantworten.

    Genau diese Funktionalität möchte ich in meinem Programm nachbauen.
    Ich habe über die API's die Infos
    SPLFNAME,JOB,USER;JOBNR,SPLFNR und über das API QSPRWTR den Druckernamen, Jobnamen etc. u.a. auch ein Feld MSGKEY. Das Feld ist lt.Doku 4 A definiert. Der Inhalt scheint aber binär zu sein.

    Hat jemand eine Idee wie ich per Programm an die
    Druckernachricht komme und wie man diese per Programm beantworten kann ?

    Danke an alle
    Gruss Michael

  2. #2
    Registriert seit
    Dec 2000
    Beiträge
    450
    Im CL-Befehl RCVMSG bzw. im API QMHRCVM kann man mit dem Feld MSGKEY was anfangen.

    Und zum Beantworten ist API QMHSNDRM das richtige Werkzeug.


    Gruß
    Bruno

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Mittels RCVMSG ... MSGKEY(&KEYVAR) kann die Nachricht abgefragt werden.
    Mittels SNDRPY kann bezogen auf den Schlüssel die Antwort gesendet 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

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    19
    Hallo,

    danke für die Info's.
    Ich bin auch jetzt ein Stückchen weitergekommen.

    Ich bekomme mit dem MSG Key die CPF Nachricht.
    Da bei dem Drucker allerdings die MSQ QSYSOPR
    eingetragen ist und der QSYSOPR angemeldet ist
    schlägt mein RCVMSG mit folgender Meldung fehl.

    Nachrichtenwarteschlange QSYSOPR ist anderem Job zugeordnet.


    Habt Ihr noch andere Ideen ?
    Danke und Gruss Michael

  5. #5
    Registriert seit
    Dec 2000
    Beiträge
    450
    Parameter RMV (Nachricht entfernen) auf *NO setzen. *YES geht nur, wenn die MSGQ exclusiv zugeordnet werden kann.

    Gruß
    Bruno

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    19
    Hallo Bruno,

    RCVMSG MSGQ(QSYS/QSYSOPR) MSGTYPE(*ANY) MSGKEY(X'0000BA30') RMV(*NO) MSG(&MSG) MSGLEN(&MSGLEN) MSGDTA(&MSGDTA) MSGDTALEN(&MSGDTALEN)
    MSGID(&MSGID)
    Nachrichtenwarteschlange QSYSOPR ist anderem Job zugeordnet.

    Der Parameter RMV ist auf (*NO) eingestellt.
    Irgendwie will es nicht klappen.

    Noch eine Idee ?

    Gruss Michael

  7. #7
    Registriert seit
    Dec 2000
    Beiträge
    450
    Hallo Michael,

    sorry, Fehler von mir. Parameter RMV(*KEEPEXCP) ist besser. Damit bleibt die Nachricht als neue Nachricht stehen. Und das muss so sein, wenn die MSGQ einem anderen Job zugeordnet ist.

    Gruß
    Bruno

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    19
    Hallo Bruno,

    das war es leider auch nicht. Auch mit dem Parameter
    bekomme ich die Meldung:
    Nachrichtenwarteschlange QSYSOPR ist anderem Job zugeordnet.

    Es liegt daran das der User QSYSOPR die MSGQ QSYSOPR
    exclusiv ( Breakmodus ) zugeordnet hat.

    Bei dem WRKSPLF kann man allerdings auch wenn die QSYSOPR
    MSGQ jemandem zugeordnet ist die Nachricht ganz normal
    sehen und beantworten.

    Irgendwie muss es doch einen Trick geben
    diese Funktionalität zu programieren.


    der verzweifelte
    Michael

  9. #9
    Registriert seit
    Dec 2000
    Beiträge
    450
    Hallo Michael,

    wie das mit dem Breakmodus ist, weiss ich nicht. Bei uns ist die QSYSOPR-MSGQ von einem Batch-Job gesperrt:

    QSYSOPR QSYSOPR *EXCL HELD *THREAD 00000001

    Folgende REXX-Procedur liest dann von einem interakt. Job die letzten paar Nachrichten aus der MSGQ aus. Habe die Procedur auch getestet und geht:

    Code:
    mkey = d2c(0,4)                                                     
    text1 = copies(" ",50)                                              
                                                                        
    "RCVMSG     MSGQ(QSYSOPR) MSGTYPE(*last) RMV(*KEEPEXCP)",           
               "MSG(&TEXT1) SECLVL(&TEXT2) MSGDTA(&DATEN)",             
               "MSGID(&MSGID)"                                          
    SAY msgid text1                                                     
    do 5                                                                
    "RCVMSG   MSGTYPE(*PRV) MSGKEY(&MKEY) RMV(*KEEPEXCP) KEYVAR(&MKEY)",
               "MSG(&TEXT1) SECLVL(&TEXT2) MSGDTA(&DATEN)",             
               "MSGID(&MSGID) msgq(Qsysopr)"                            
    SAY msgid text1                                                     
    end                                                                 
    exit
    Vergleiche doch mal Dein RCVMSG mit meinem oder probiere die REXX-Procedur auch mal aus.

    Gruß
    Bruno

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    19
    Hi Bruno,

    ich habe deine Prozedur mal ausprobiert.

    Wenn man die MSGQ bei einem Bildschirmjob auf break
    stellt bringt deine Prozedur nur einen Screen mit dem Text
    Die Eingabetaste drücken, um die Terminalsitzung zu beenden.

    Damit ist zumindest klar das die REXX Prozedur auch die Daten
    nicht erhält.
    ( Ist zwar schön zu wissen...... nur nützt mir das nichts )

    Ich will es einfach nicht glauben das eine simple Sache
    wie ( Auswahl 7 WRKSPLF ) auch per Programm zu lösen ist.
    Das muss doch irgendwie gehen ............

    Sind noch Vorschläge da ?

    gruss Michael

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    Mal ganz dumm gefragt: warum willst Du eigentlich WRKSPLF nachbauen???

    mfg

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

  12. #12
    Registriert seit
    Nov 2003
    Beiträge
    19
    Hallo Dieter,

    der Grund ist eigentlich ganz simpel .
    Ich habe eine Aussage eines GF gehört :
    Es ist kompliziert mit der AS zu arbeiten.

    Daraufhin habe eine VARPG Anwendung erstellt die mit Spooleinträgen arbeitet.
    Sieht auch schon ganz gut aus. Mir fehlt eben nur noch
    die Meldungsbearbeitung.

    Gruss Michael

Similar Threads

  1. Drucker MSGID auslesen
    By TheDevil in forum NEWSboard Drucker
    Antworten: 11
    Letzter Beitrag: 14-12-06, 09:25
  2. Status nach Druck nich SAV, sonder Drucker auf END
    By zannaleer in forum NEWSboard Drucker
    Antworten: 6
    Letzter Beitrag: 13-09-06, 10:35
  3. Drucker einrichten
    By dino in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 24-07-06, 11:14
  4. Antworten: 1
    Letzter Beitrag: 07-03-06, 19:45
  5. Drucker GFC/Timesys 6225 zu verschenken
    By Bill Gates in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 14-02-06, 21:59

Berechtigungen

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