Hello,
We are in the process of migrating our PFC based PowerBuilder 2021 application to PowerBuilder 2022 R3. We have successfully migrated the entire application and have removed (commented out) objects that are now Obsolete (we have one window that was using the deprecated/obsolete JAVAVM object to create a Java doc).
We are currently running a number of regression tests on the entire application before we update the PFC layer to the latest.
What we have found out and do not fully understand why this is happening, but it appears that the pfc_dberror() EVENT is NEVER being triggered in the pfc_save() EVENT when there is a database error and li_save_rc = -1. This happens in both the debugger (stepping into just goes on to the next line instead of entering the EVENT) and in the runtime application (the EVENT does NOT fire).
What we have tried so far:
1. Regenerate, regenerate, regenerate
2. Removed the "if" statement and just call this.EVENT pfc_dberror()
3. Deleted the pfc_dberror() EVENT and commented out the call in the pfc_save() EVENT (ONLY place it is called), Full Build/Regenerate, then added the event back in with a full build/regenerate again
4. Made a "comment" change in the pfc_dberror() EVENT, saved, regenerated.
The only thing that appears to have worked is to Duplicate the pfc_dberror() EVENT and naming it something like test_dberror(), then changing the pfc_save() EVENT to call the test_dberror() EVENT.
So far this is the only case we've uncovered where an EVENT is not being triggered, but it is unsettling to know that there could be other instances of this happening, we just don't know yet.
First, has anyone else ever come across a situation like this?
Secondly, is anyone else in a situation where they can test this case on their PB 2022 R3 Build 3356 application and confirm if this is happening to others?
And thirdly, how would we even go about providing a test case if we were to open a Support Ticket with Appeon? I suppose we could try and create just a very simple PFC based application using the SQLAnywhere Demo database. Let's hope someone has a solution before we have to go there.
As always, any feedback is very much appreciated.
Kind Regards,
Greg
I now think I see the issue. We have a number of levels of inheritance even before the PFC layer. And in a descendant object of pfc_w_master the pfc_dberror() EVENT was being overridden. So even though the pfc_dberror() is being triggered in the pfc_w_master object in the pfc_save() EVENT, since the descendant pfc_dberror() EVENT was being overridden, it was NOT being fired in pfc_w_master.
I'm glad you found the cause of your issue, Gregory!