× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



In the DSPF, add INVITE to the file level. You probably don't need these
but I add KEEP, BLINK, OVRDTA, OVRATR at the record level unconditioned and
ALARM and PUTOVR conditioned at the record level.

The DSPF has to have WAITRCD:
OVRDSPF FILE(DSD301) WAITRCD(120) OVRSCOPE(*JOB)
for a 120-second timeout. I do this in the CLLE driver program, Yes, you
can do it in the program before you open the file and you can do CHGDSPF as
well. I'd like to see parameters like WAITRCD available on RPG's OPEN
{file} op code--it would be way cleaner. Having to invoke an API for an
override seems like a blunt-force approach.

In RPG, add MAXDEV to your display file definition:
dcl-f dsd301 workstn(*ext) usage(*input:*output) maxdev(*file);

In the display file management section of code, code, you WRITE the format
and READ the file. Then check the display file status/return code after
the read, and if it's 01331, it means you've timed out. Release your
record locks, execute ROLLBACK, return to your prompt screen, and post a
message explaining the previous entry timed out.

\reeve

On Sat, Jul 3, 2021 at 3:14 PM Javier Sanchez <
javiersanchezbarquero@xxxxxxxxx> wrote:

Hi everyone,

I have been boxing around with a very simple and dumb stuff that has to do
with when you send your output to your display file in an RPGLE program,
you are required to wait, say, 30 seconds for the user to type in only two
small fields of information from a customer who's on the phone. If the
user gets longer than that amount of time, they will be notified that they
are taking too long a period of fair enough time to do so as it is critical
information being taken on the phone line.

I have tried many things, like, adding the INVITE keyword on the record
format, and then to issue first a WRITE and then a READ(E) opcode, so that
I can then, either: (1) test the %STATUS opcode whether it returned 01331
value, or probably the feedback I/O area structure for that file in
particular. The latter should show me a value of major return code of 03
and a minor return code of 10.

But when I execute it, it simply doesn't run the timer and it just sits
there infinitely, so my timer is being ignored. While running this
program, I first close the display file. Then I use the QCMDEXC API to run
a OVRDSPF with a parameter like WAITRCD(30) which is run-time built using a
parameter variable, and then reopen the display file before I issue the
WRITE and READ opcodes.

What could I be possibly missing?

Thanks
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.