-
DSPF INVITE samt OVRDSPF eines Batchjob
Hallo Freunde der gepflegten Programmierung.
Wir sollen hier eine Art Kundeninformation programmieren welche automatisch über die Auftragserfassung die notwendigen Infos anzeigen soll.
Unsere Theorie:
Eine eigene Sitzung welche in ein eigenes Subsystem startet mit einem Signon-Schirm welcher leer ist. Im Hintergrund startet die Auftragserfassung EINMAL einen Batchjob welcher sich über OVRDSPF den interaktiven Job schnappen soll um ohne Anmeldung sofort das Kundeninfoprogramm anzuzeigen. Soweit so gut nur muss die Aktualisierung der Daten (Kundenwechsel etc) autoamtisch erfolgen. Dies sollte ja über INVITE sowie einer DTAQ zu lösen sein. Nur leider funktioniert diese Methode mit INVITE (MAXDEV(*FILE)) in Kombination mit einer DTAQ nicht. Beim WRITE auf den Record des DSPF schießt sofort ein CPF5068 (Programmeinheit *N in Datei PROTO2DF in Bibliothek BRUNNER nicht gefunden.)
Im Auschlussverfahren hab ich das INVITE sowie MAXDEV und die DTAQ entfernt sowie von einem WRITE sowie READ(E) auf WRITE und einen EXFMT umgestellt und schon läuft das ganze Werk (jedoch ohne refresh).
Interaktiv aufgerufen funktioniert das Programm über INVITE etc hervorragend.
Es schaut so aus als ob die Methode des automatischen refresh mittels INVITE über das angeln eines Batchjobs auf einen interaktiven nicht funktionieren würde. Hat hier jemand schon eine ähnliche Problemstellung gehabt bzw gelöst?
Danke und LG
-
Bin nicht sicher, ob ich das verstanden habe.
Bei uns läuft das so, das sich die Anwender einmalig per F-Taste für die Teilname am Kunden Monitor anmelden.
Kommt ein Anruf vom Kunden öffnen wir einen GRPJOB der über die Telefonnr den Kunden, den aktuellen / letzten Auftrag ermittelt und die Daten anzeigt. Das was der Sachbearbeiter gerade gemacht hat, bleibt in der 1. Ebene aktiv, der Sachbearbeiter kommt nach beenden des GRP Jobs dahin zurück.
Da nicht sicher ist, das der Sachbearbeiter den Schirm zeitnah wieder verlässt, senden wir hier via dataq
VORHER ein verlassen des Schirms.
Das zwischen den 2 Telefonaten mind. 2,5 Minuten Bearbeitungszeit bleibt, regelt die Telefonanlage.
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Mit GRPJOBs hab ich mich ehrlich gesagt noch nie beschäftigt. :-)
Also wir hätten das gerne asynchron abgebildet da nicht ausgeschlossen werden kann das einige Berechnungen (zB Lagerstandes etc) etwas länger dauern können und somit würde dies ja die Erfassung bremsen wenn es im Erfassungsprogramm erledigt werden soll.
Daher wollten wir das so einfach wie möglich für den Benutzer gestalten indem dieser einfach eine spezifische Sitzung öffnet, diese wartet dann darauf das sich der übergebene Batchjob diese dann schnappt (mittels OVRDSPF) und die Informationen auf Basis einer DTAQ automatisch aktualisierend wiedergibt. Dieses Prinzip funktioniert hervorragend solang man brav das automatische aktualsieren mittels DTAQ und INVITE weg lässt :-( .
Vielleicht zeigt der Source für meinen Test besser worauf ich hinaus will
PROTO1RG schreibt in die DTAQ
Code:
**FREE
CTL-OPT DFTACTGRP(*NO) ACTGRP(*NEW) MAIN(Main);
DCL-F PROTO1DF WORKSTN EXTFILE('BRUNNER/PROTO1DF') USROPN;
DCL-PR Main EXTPGM('PROTO1RG') END-PR;
DCL-PROC Main;
DcL-PI *N END-PI;
/INCLUDE QRPGLECPY,SYSTEM
/INCLUDE QRPGLECPY,QRCVDTAQ
/INCLUDE QRPGLECPY,QCLRDTAQ
/INCLUDE QRPGLECPY,QSNDDTAQ
*INLR = *ON;
If Not %Open(PROTO1DF);
Open PROTO1DF;
EndIf;
System('CRTDTAQ DTAQ(BRUNNER/BRUNNER) MAXLEN(80)');
DoW ( 1 = 1 );
Write PROTO1A0;
ExFmt PROTO1A0;
If ( *INKC = *ON );
Leave;
EndIf;
SendToDataQueue('BRUNNER' :'BRUNNER' :%Len(%TrimR(A01KNR)) :A01KNR);
EndDo;
System('DLTDTAQ DTAQ(BRUNNER/BRUNNER)');
If %Open(PROTO1DF);
Close PROTO1DF;
EndIf;
Return;
End-Proc;
PROTO2RG liest die DTAQ und soll die Informationen anzeigen:
Code:
**FREE
CTL-OPT DFTACTGRP(*NO) ACTGRP(*CALLER) MAIN(Main);
DCL-F PROTO2DF WORKSTN MAXDEV(*FILE) EXTFILE('BRUNNER/PROTO2DF') USROPN;
DCL-PR Main EXTPGM('PROTO2RG') END-PR;
DCL-PROC Main;
DcL-PI *N END-PI;
/INCLUDE QRPGLECPY,SYSTEM
/INCLUDE QRPGLECPY,QRCVDTAQ
/INCLUDE QRPGLECPY,QCLRDTAQ
/INCLUDE QRPGLECPY,QSNDDTAQ
DCL-S Incoming_Data CHAR(80) INZ;
*INLR = *ON;
System('CRTDTAQ DTAQ(BRUNNER/BRUNNER) MAXLEN(80)');
System('OVRDSPF FILE(PROTO2DF) DEV(AZ_0815) OVRSCOPE(*JOB) DTAQ(BRUNNER/BRUNNER)');
If Not %Open(PROTO2DF);
Open PROTO2DF;
EndIf;
DoW ( 1 = 1 );
RecieveDataQueue('BRUNNER' :'BRUNNER' :%Size(Incoming_Data) :Incoming_Data :10);
If ( Incoming_Data <> '' );
Exec SQL SELECT K00FAK CONCAT '-' CONCAT K00KNR, K00NA1, K00NA2, K00ORT
INTO :A02Text1, :A02Text2, :A02Text3, :A02Text4
FROM K00 WHERE K00KNR = :Incoming_Data LIMIT 1;
Write PROTO2A0;
Read(E) PROTO2A0;
If ( *INKC = *ON );
Leave;
EndIf;
EndIf;
EndDo;
If %Open(PROTO2DF);
Close PROTO2DF;
EndIf;
System('DLTOVR FILE(PROTO2DF) LVL(*JOB)');
Return;
End-Proc;
Mit der Sitzung AZ_0815 bin ich am Anmeldeschirm somit ist dieser vorhanden...
PROTO2DF
Code:
DSPSIZ(27 132 *DS4) PRINT
R PROTO2A0
CSRLOC(A02CLIN A02CPOS)
RTNCSRLOC(*MOUSE &A02CLIN &A02CPOS)
OVERLAY INVITE
CF03 CA12
A02CLIN 3 0H
A02CPOS 3 0H
A02TEXT1 40A O 2 2COLOR(WHT)
A02TEXT2 40A O 3 2COLOR(WHT)
A02TEXT3 40A O 4 2COLOR(WHT)
A02TEXT4 40A O 5 2COLOR(WHT)
PS: Und bitte in "Programmierung" verschieben. Hab mich da leider vertan beim erstellen, sorry
Similar Threads
-
By E305GL in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 28-01-19, 09:37
-
By Dominic K. in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 15-08-18, 15:06
-
By Zuther in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 08-03-17, 09:12
-
By dibe in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 16-01-14, 13:05
-
By JoergZ in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 30-07-01, 15:44
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks