qbfabs error msg (OpenInsight 32-Bit)
At 25 MAY 2006 09:10:21PM Karen Oland wrote:
When executing this line:
send_event( @window, "QBFABS", pos )on my development machine, I have suddenly developed an error msg (not seen until today and not on a test machine installed last week). It is:
REP200: No event found for controlid , controlclass , event NOTECLEAR
I am not using NOTES and cannot find "noteclear" anywhere in my code. Checking system tables, the only item on the test machine not on the dev machine is SYSPROCS, SCAN_REP that references NOTECLEAR (this code does not exist on the dev box). This message occurs before the promoted event handler for the window sees the QBFABS event.
The only changes I can think of that have been done recently was a reinstall of SLIST – if this has mucked things up, can the 7.2.1 upgrade and patches simply be reinstalled on top of the existing system?
A similar error msg is appearing during APPBACKUP (as of today, not there yesterday, and SLIST was installed yesterday before doing a backup). After the message displays that the backup is complete (with no errors during backup), a message titled "Application Backup Error" displays with the message text "An error was encountered. Error code: REP200 Detail:" (there is no detail).
Any assistance or ideas on how to track down what is causing this error are appreciated.
At 26 MAY 2006 09:43AM Gerald Lovel wrote:
Karen,
I'm totally guessing, but when a window form is compiled the list of event routine calls is compiled into the winexe. This has interesting implications for things like promoted events. When a promoted event is added, all the window forms must be recompiled to recognize the new event. Well, it SOUNDS like your forms or something connected with them were compiled with a changed (promoted) event chain. Changing the event chain back will not eliminate the rogue calls until the forms are recompiled. How this is connected with QBFABS I cannot say, as I have my own query system QIF and therefore do not use QBF.
Gerald
At 26 MAY 2006 11:21AM Karen Oland wrote:
Gereald,
I will keep looking - I recompiled one form and the error is still there (and it is in all forms at this point). It displays before the pre-read in the promoted event chain.
What's crazy is that it is a popup that moves in the browse list that causes the error msg and has been working fine for months. More testing this am shows that eitehr way it updates the qbflist causes the error (using qbfabs or setting a new qbflist). Issuing the same commands in some code that maintains the qbflist after a delete results in no error at all.
At 26 MAY 2006 12:42PM Karen Oland wrote:
Tracked it down … the qbfabs in the popup was triggering a qbfclear, which in turn ran some code that set the qbflist to nothing (something I had to add a while back, with some other management code to get the qbflists to behave properly.
Unfortunately, when done from a popup, there was no active mdi frame and thus, the qbflist command was sent to "" – which generated the error (although running send_event( "", "QBFLIST", "") doesn't do so from a test program - it does inside the app). Added some code to check that there was a current window and to return if not and the error has vanished…. such are the mysteries of OI.
At 27 MAY 2006 01:55PM Gerald Lovel wrote:
Karen,
Very interesting. The error you reported was:
REP200: No event found for controlid , controlclass , event NOTECLEAR
Your SYSREPOSEVENTEXES table should contain records SYSPROG*QBFABS..OIWIN* and SYSPROG*NOTECLEAR.WINDOW.OIWIN*. I can guess from your comments that you understand the event processing dispatch concepts, probably better than I do. I would guess that one of the two records mentioned above is changed, or the SYSREPOS record indexing them has gone missing or been corrupted.
I am vague on the connection between QBFABS and NOTECLEAR, but maybe the connection has to do with a development procedure. When I write a promoted event, I put a comment at the bottom to the effect of
* COPY_ROW( "SYSOBJ", "$objectcode", "SYSREPOSEVENTEXES", "appid*event.WINDOW.OIWIN*" )
To replace promoted event code, one would place the comment in the editor's execution line, remove the *, and execute it. This might not be the safest procedure, and an inadvertent action here could result in a corrupted event routine for which one would be severely punished. The Repository is bypassed when maintaining promoted events, so its versioning information is useless. However, the compiler leaves datetime stamps and size info which might provide useful clues if something happens to code.
At 31 MAY 2006 04:52PM Karen Oland wrote:
It was an odd error and occured at odd times.
Getting it when appbackup closed (at least a variation of the same error) led to tracking down the problem (which had nothing to to with NOTECLEAR, as far any application code went - it was code that kept the QBF lists for windows maintained: setting qbflist to "" during CLOSE is "not good"). 'Tis all gone now (and to be forgotten until some other bizarre erorr msg raises it's head).