APPX is the Premier Development and Runtime Environment for Business Application Software
(Answer) (Category) FAQ's - APPX Software, Inc. : (Category) APPX Utility : (Category) APPX Runtime Environment : (Category) Runtime Messages :
Message; "No Record Currently Held"
For a single input process APPX uses a common area to store file information. A key element is the Held Record pointer. There is only one Held Record Pointer per file.

APPX can maintain three threads to the same file; one for the PCF, one for READ/READNEXT and one for BEG READ/END READ loops. When you READ the PCF in ILF (sub-process level), it resets the hold pointer depending on the READ specifications. That’s why the STORE, READ with hold, and RESTORE in Pre-PCF Update works. It re-established the hold on the record APPX automatically read from the PCF. Of course the interactive phase is import too. Appx won’t hold the record in Inquire mode for example. Also keep in mind that the data record is also stored in the common area and subsequent READ statements may replace the record read (and perhaps displayed) from the PCF. It can be a slippery-slop when you start messing around with the PCF in your application. There are certainly situations where it’s necessary but it could be done accidentally as well.

A record will be released by the REWRITE, DELETE, or CLOSE statements. Why, Appx assumes when you execute any of these commands you are done with the record.

As mentioned above, a READ or READNEXT creates a second thread into the file but uses the same common area as the parent. So if you access the PCF in ILF with hold, the hold pointer and record buffer are changed in the common area. When you return to your input screen after the events points, or sub-process child have executed APPX expects the PCF record to be held (in change mode). Since you re-established the hold in ILF, the hold at the PCF level has been lost. This might be what is happening in your case. That’s what the message is in the status line (in red) is telling you. If you tried to REWRITE or DELETE a record in ILF and didn’t have the hold, Appx would display the ILF code that was causing the problem.

You can also release the hold by invoking a sub-process child that uses the same PCF as the parent. Sub-process children share the common area with the parent. Basically the same thing happens as a READ, but APPX has read the file and may have reset the hold. This would happen on an input process invoked as a sub-process that has the same PCF as the parent.

You should analyze your system to determine where the hold is being released. We can’t tell you specifically where to look because, as described above, the hold can be release in any number of ways depending how your system is coded. If this just started happening, I would find out what has recently changed and investigate what the programmer may have done that resulted in this situation.

[Append to This Answer]
2006-Jun-14 11:39am
Previous: (Answer) Message "Cannot write to Cache - Invalid Prototype Record Length"
Next: (Answer) Message, Error - Request Not Allowed
This document is: http://board.appx.com/cgi-bin/fom.cgi?file=630
[Search] [Appearance]
This is a Faq-O-Matic 2.719.
Copyright 2003 by APPX Software, Inc. All rights reserved.