|
Yes, there is a way. Unfortunately, I burned so much time dealing with a Midrange-L thread on CPYF this morning that I can't spend time looking up the specifics. Did you try searching the RPG400-L archives for "display time out". Since the search in the archives is fairly weak on search terms, you may have better luck using Google and site:midrange.com. You're in luck. I just remembered I had an example app provided by none other than Scott Klement a few years back. You may be able to glean what you need from this: DSPF TIMEOUTD: A DSPSIZ(24 80 *DS3) A R SCREEN1 A INVITE A FRCDTA A 9 17'There is a timeout on this- A screen. Press ENTER' A 10 27'or wait for it to time out.' A MSG 50 O 14 16 RPGLE TIMEOUTR: fTimeOutD cf e Workstn UsrOpn d RunCmd pr ExtPgm('QCMDEXC') d Cmd 200a Const d Len 15p 5 Const d RcvDtaQ pr ExtPgm('QRCVDTAQ') d dqname 10a Const d dqLib 10a Const d dqLen 5p 0 d dqData 80a d dqWait 5p 0 Const d DQLen s 5p 0 d TimeOut s 5p 0 d DQData s 80a c* create a data queue in QTEMP. c Callp RunCmd('CRTDTAQ DTAQ(QTEMP/TESTDQ) - c MAXLEN(80) SEQ(*FIFO)': 200) c* Make the display file use the new data queue c Callp RunCmd('OVRDSPF FILE(TIMEOUTD) DTAQ(' + c 'QTEMP/TESTDQ)': 200) c* open the display file. c Open TimeOutD c* Show the screen the user. This format has the c* "FRCDTA" keyword so the screen will show up immediately, and the c* "INVITE" keyword so the keyboard isn't locked. c Write Screen1 c* Wait for one of two conditions... c* 1) an entry to appear on the data queue or c* 2) A timeout while waiting for the data queue. c Eval DQLen = 80 c Eval Timeout = 10 c Callp RcvDtaQ('TESTDQ':'QTEMP': DQLen: DQData: c Timeout) c* Show the results... (if Len=0, no data was received...) c If dqLen = 0 c Eval Msg = 'TIMEOUT! Press ENTER to quit.' c Else c Read SCREEN1 99 c Eval Msg = 'ENTER! Press ENTER again to quit' c Endif c Write SCREEN1 c* Wait "forever" for enter to be pressed, this time. c* (Timeout=-1 means that it'll never timeout) c Eval Timeout = -1 c Callp RcvDtaQ('TESTDQ':'QTEMP': DQLen: DQData: c Timeout) c Read SCREEN1 99 c* Do some cleanup and end... c Close TimeOutD c Callp RunCmd('DLTOVR FILE(TIMEOUTD)':200) c Callp RunCmd('DLTDTAQ DTAQ(QTEMP/TESTDQ)':200) c Eval *inLR = *On hth, db > -----Original Message----- > From: rpg400-l-bounces.com@xxxxxxxxxxxx / Andy Hautamaki > Sent: Thursday, October 07, 2004 9:45 AM > > Is there a way from a RPGLE interactive program to track how long it has a > record locked in update and after a certain amount of time has elapsed, > gracefully unlock the record. Then the interactive program would show some > info message to inform the User that they will need to retrieve the > transaction again. > > Thanks > Andy
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.