Troubleshooting an "Either BOF or EOF is True..." error

This is a very generic application error that means Acctivate could not find a value it needed. Report all relevant information to the Acctivate Support team to properly troubleshoot this error.

When something goes wrong in Acctivate, a message that may appear with a "BOF or EOF" error.  This error message indicates a problem in the application that wasn't caught by the code and replaced with a more user-friendly message. 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

What the message means, specifically, is that something Acctivate was looking for wasn't there and it doesn't know how to continue.  The "BOF" and "EOF" stand for "Beginning Of File" and "End Of File" respectively so the program is just saying what it was looking for is deleted or the item has nothing in it because it's already seeing the ends of the item.  It doesn't necessarily mean that a database value was missing since this error is about something in the application's memory.  However, missing data could still cause missing information in the application.

This type of error is typically considered a bug because, even if the Acctivate doesn't find something it needed, it should at least be returning a more descriptive message for the end user or the Acctivate team.

How To Start Troubleshooting This Error Message

Unfortunately, the vague nature of this error makes it difficult to know the cause.  Not only does it not specify what it was that Acctivate could not find, but it's also the kind of problem that any part of the application could run into when no specific error handling was written for it.  Because of this, it's recommended to report this error to Acctivate Support, along with any relevant information about the circumstances, in order to find the true source of the problem.  This way, the issue can be addressed in a future update.

BOForEOF

It's best to be as detailed as possible.  Sometimes, even the most mundane things might be the cause of an error.  Even clicking something versus using the keyboard can make the application behave differently!  The more information that can be provided, the better.  When submitting information for Acctivate Support, please provide as much as you can of the following:
  • Information within the Exception window:
    • Acctivate Version (11.1.0.6115 for example)
    • Error code
    • Module
    • Subroutine
    • NOTE: Acctivate support receives this information automatically if the "Send Exception Report" option was checked before closing the exception window.
  • Acctivate Log(s) for the day(s) this message appeared
    • The log may contain even more information than the exception itself.  If you're not sure how to get this log, check out this article.
  • What you were doing when the "BOF or EOF" error appeared?
    • Specify the window you were in if applicable.  For example, the Enter Sales Order window or the Edit Product window.
    • Specify the action you took such as the button clicked, value that was submitted, or hotkey was entered.
  • When this error appears, does it consistently show up after doing something in particular or does it only appear periodically?
    • Even if it does seem random, perhaps this error only appears on a particular computer or when trying to post a PO Invoice for a product with a negative quantity.  It may not happen every time but it's still good to know when it can in case that is a key criterion.

NOTE: If a "BOF or EOF" error is following another error, the first error is more likely to be the true problem because it is likely what caused a value to be missing in the first place.  For example, if your workstation lost connection to the database, it might throw some sort of SQL connection error then perhaps a "BOF or EOF" error right after it because Acctivate didn't fully query the data it needed.  In such a case, please report all errors related and not just the "BOF or EOF" error.

 

All of this information is so that the Acctivate team can find out how to reproduce the error in the same way that you're seeing it.  If this can be done, a cause can certainly be found eventually and the problem can be patched in a future update.  Also, the information can lead to a suitable workaround that can be used before the bug is fixed.