View Full Version : Von AS/Menu über WRKSPLF zu Custom-Funktion
Hallo an alle :)
Wir wollen SPOOL FILES direkt per Email versenden. Das Problem sollte so gelöst sein, dass man per WRKSPLF eine Datei auswählen kann und dann per Auswahl 1 direkt eine Eingabemaske mit Empfänger, Betreff... und was noch dazu gehört, erscheint.
Ich denke, dafür muss man irgendwie die Befehle mit eigenen Auswahlfunktionen versehen.
Weiss jemand, ob das möglich ist?
Danke schön für die Infos :D
An den Standard-Funktionen läßt sich nichts ändern.
Du kannst nur ein eigenes WRKSNDSPLF entwickeln und dann die Funktionen selber steuern.
Hmm, komisch.. wir haben das gleiche bereits mit dem Versenden von Faxmeldungen, nur habe ich keine Möglichkeit, das ganze in der Source anzuschauen :(
Kann ich WRKSPLF nicht im "Auswahlmodus" aufrufen und die angezeigten Dateien an meine obere Funktion zurücksenden?
Hallo,
ich habe gerade meine Möhre nicht am laufen, muss also aus dem Gedächtnis einiges ergänzen:
Hallo an alle :)
Wir wollen SPOOL FILES direkt per Email versenden. Das Problem sollte so gelöst sein, dass man per WRKSPLF eine Datei auswählen kann und dann per Auswahl 1 direkt eine Eingabemaske mit Empfänger, Betreff... und was noch dazu gehört, erscheint.
Ich denke, dafür muss man irgendwie die Befehle mit eigenen Auswahlfunktionen versehen.
Weiss jemand, ob das möglich ist?
Danke schön für die Infos :D
geht net gibbds net, sagt man bei uns.
Hinter der Auswahl 1 steht wohl SNDNETSPLF 1. Ansatzpunkt ist an diesen Command einen Validity Checker anzuhängen, damit kommt man vor dem Versenden des Objektes an den Command dran und kann sich einklinken. Wir haben mal auf diese Art den CHGSPLFA aufgebohrt; wenn in der Formularart z.B.: #H13272 drinstand, haben wir mit APIs den Druck umformatiert, damit er auf ein bestimmtes Formular gepasst hat.
Das mit der eigenen Auswahl Maske, da müsste man mal unter Prompt Overwrite Programm suchen, ich meine da ist noch was, wo man den F4 in den Commands fummeln kann.
nette Herausforderung, früher hat mir sowas mal Spass gemacht.
mfg
Dieter Bender
Hallo,
ich habe gerade meine Möhre nicht am laufen, muss also aus dem Gedächtnis einiges ergänzen:
geht net gibbds net, sagt man bei uns.
Hinter der Auswahl 1 steht wohl SNDNETSPLF 1. Ansatzpunkt ist an diesen Command einen Validity Checker anzuhängen, damit kommt man vor dem Versenden des Objektes an den Command dran und kann sich einklinken. Wir haben mal auf diese Art den CHGSPLFA aufgebohrt; wenn in der Formularart z.B.: #H13272 drinstand, haben wir mit APIs den Druck umformatiert, damit er auf ein bestimmtes Formular gepasst hat.
Das mit der eigenen Auswahl Maske, da müsste man mal unter Prompt Overwrite Programm suchen, ich meine da ist noch was, wo man den F4 in den Commands fummeln kann.
nette Herausforderung, früher hat mir sowas mal Spass gemacht.
mfg
Dieter Bender
Hört sich nett an..
Ich müsste irgendwie an den FILE-Parameter rankommen und überprüfen ob er NICHT leer ist. Wenn nicht, dann verzweige ich in den befehl STRSNDMAIL, wo die Eingabemaske kommt.
Zu Prompt Overwrite Programme:
Da habe ich jetzt so ziemlich alles durchsucht, aber das einzige, was ich gefunden habe ist der Befehl PMTCTL (Prompt Control). Irgendwie lässt sich der Befehl aber nicht in der CLP-Umgebung ausführen..
Ich schaue mal noch nach einem brauchbaren RTV-Befehl.. Vielleicht gibt es den ja.
Hallo FrEEk!
Doch das geht, man kann dem WRKSPLF für Auswahl 1 einen eigenen Befehl mitgeben, der dann bei dieser Auswahl aufgerufen wird.
Dazu muss man eine Nachrichtendatei (so eine wie QCPFMSG) anlegen, und in diese die Nachrichten CPX3438 und CPX3439 eintragen, entsprechend den Nachrichten in QCPFMSG, jedoch anstelle dem SNDNETSPLF einen eigenen Befehl und die Übergabeparameter entsprechend anpassen.
Dieser eigene Befehl muss in die Bibliothek QSYS kopieren werden, da der WRKSPLF nur in der Systembibliotheksliste sucht (V5R2).
Jetzt noch ein OVRMSGF MSGF(QCPFMSG) TOMSGF(MYMSGF) und dann ein WRKSPLF.
So, ich hoffe ich habe nichts vergessen ...
Viele Grüße
Jürgen
Hallo FrEEk!
Doch das geht, man kann dem WRKSPLF für Auswahl 1 einen eigenen Befehl mitgeben, der dann bei dieser Auswahl aufgerufen wird.
Dazu muss man eine Nachrichtendatei (so eine wie QCPFMSG) anlegen, und in diese die Nachrichten CPX3438 und CPX3439 eintragen, entsprechend den Nachrichten in QCPFMSG, jedoch anstelle dem SNDNETSPLF einen eigenen Befehl und die Übergabeparameter entsprechend anpassen.
Dieser eigene Befehl muss in die Bibliothek QSYS kopieren werden, da der WRKSPLF nur in der Systembibliotheksliste sucht (V5R2).
Jetzt noch ein OVRMSGF MSGF(QCPFMSG) TOMSGF(MYMSGF) und dann ein WRKSPLF.
So, ich hoffe ich habe nichts vergessen ...
Viele Grüße
Jürgen
Hallo Pikachu!
Das ist ja genial! ;)
Danke schön für Deine Antwort.
Funktioniert bestens.. habe einen Test mit einem einfachen Befehl (DSPLIBL) gemacht und der hat prompt richtig reagiert :)
Nochmals danke!
MfG
Florian
Beim OVRMSGF muss man allerdings aufpassen, dass ALLE Nachrichten zu diesem Zeitpunkt überschrieben werden. Nachrichten, die nicht gefunden werden, führen ggf. zu unerwarteten Abstürzen oder Fehlverhalten. Insbesonders, wenn e.g. eine Kommandozeile geöffnet ist und weitere Befehle ab dieser Ebene aufgerufen werden können. Der OVRMSGF gilt für alle Programme ab der Ebene des OVR's.
Da ist es schon einfacher, direkt die QCPFMSG zu ändern und ggf. bei jedem Release/PTF diese Änderungen zu wiederholen.
Prompt-Overwrite ist eine Funktion des CRTCMD bzw CHGCMD und hat mit PMTCTL nichts zu tun. PMTCTL ist eine Anweisung in einer CMD-Quelle um bestimmte Abhängigkeiten beim Prompting zu steuern.
Hallo Fuerchau!
Beim OVRMSGF muss man allerdings aufpassen, dass ALLE Nachrichten zu diesem Zeitpunkt überschrieben werden. Nachrichten, die nicht gefunden werden, führen ggf. zu unerwarteten Abstürzen oder Fehlverhalten. ...
Der Hilfetext zum OVRMSGF sagt da aber was anderes. Da steht, dass die überschreibende Nachrichtendatei nicht alle Nachrichten enthalten muss. Wird eine Nachricht nicht gefunden, wird einfach in der überschriebenen Nachrichtendatei nach dieser Nachricht gesucht. ;)
Viele Grüße
Jürgen
Danke für den Hinweis, man lernt halt immer was dazu.