PDA

View Full Version : Datei in QTEMP übergeben an SBMJOB



Kaufmann
26-09-07, 08:13
Ich habe ein Problem.
Bei einem interaktiven Programm soll die daraus erfolgende Druckausgabe per BATCH erstellt werden. Soweit stellt dies kein Problem dar. Zu meinem Problem.
Der Benutzer soll die Möglichkeit haben Andruckmengen zuverändern. die veränderten Werte speichere ich in einer kleinen Datei in der QTEMP. Diese Informationen gehen mir aber verloren sobald ich den SBMJOB anstosse, da dies wieder ein eigener Job ist und somit auch eine eigene QTEMP hat. Im Moment umgehe ich diese Problematik in dem ich die Datei in eine allgemein zugängliche Bibliothek kopiere. Dies hat aber den Nachteil das wenn zwei Benutzer gleichzeitig das Programm nutzen die Möglichkeit besteht das Daten überschrieben werden.

kuempi von stein
26-09-07, 08:40
Hallo,

zusätzlich einen Key mitführen, womit die Daten identifiziert werden können.
Und dann zum Ende hin das löschen der Daten nicht vergessen.

k.

Fuerchau
26-09-07, 12:01
Da gibt es noch einen Trick aus der Klamottenkiste:

SBMDBJOB !

Man erstellt ein Member in einer SRCPF (kann auch QTEMP sein) in der man Job-Controls ablegt:
//BCHJOB ...
//DATA
Meine Daten ...
Meine Daten ...
// Ende der Daten
//ENDBCHJOB

Die Daten werden dann in eine interne Datei Namens QINLINE bereitgestellt, die dann das RPG-Programm (FQINLINE IF 80 DISK) einfach lesen kann.

Die Daten sind Jobspezifisch und werden auch automatisch gelöscht.

wwg
28-09-07, 19:08
Für solche Werte empfehle ich die gute alte 'local data area' DTAARA(*LDA). Die wird an den aufgerufenen Job übergeben.

-Werner.

Fuerchau
29-09-07, 15:09
Wenn die LDA denn da nicht die Beschränkung von 1KB hat (aber stimmt, meistens reicht die ja aus).

Rincewind
09-10-07, 22:47
Oder auch einfach eine Parameterdatei mit mehreren Membern definieren und jedem neuen Job ein anderes Member der Datei zuweisen.

Dann muss man nur den Membernamen als Parameter weitergeben an den Batchjob und man kann dort automatisch die passenden Daten zugreifen, ohne dass sonst jemand dazwischenfunkt.
Man braucht nur 2 kleine Verwaltungsprogramme für die Memberverwaltung (eins zum festhalten wer welches member hat und eins zum freigeben wenn man das member nicht mehr braucht).
Wenn man die membernamen numerisch behandelt (oder auch alphanumerisch) kann man die auch übers program ganz locker neu generieren wenn mehr benötigt werden.

Lg
Rince

Kaufmann
10-10-07, 06:35
Ich habe das Problem jetzt so gelöst:
Die Workdatei wird nicht mehr in Qtemp erstellt und hat einen Index im Key. Den Index zähle ich einfach hoch und selektiere damit später die für den Job relevanten Sätze. Die Sätze die verarbeitet wurden lösche ich dann wieder.