Problems with BeforeDelete and AfterDelete events


Author
Message
choyt
choyt
StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)
Group: Forum Members
Posts: 78, Visits: 246
Hi All

I am having problems with the BeforeDelete and AfterDelete events not firing. I have tried setting it up both of the ways shown below.

Private Sub MemberFamily_AfterDelete(ByVal e As MicroFour.StrataFrame.Business.AfterDeleteEventArgs) Handles Me.AfterDelete

       Call Me.SetIncomplete()

End Sub

and as

AddHandler Me.CheckRulesOnCurrentRow, AddressOf MemberFamily_AfterDelete (in the constructor)

Private Sub MemberFamily_AfterDelete(ByVal e As MicroFour.StrataFrame.Business.AfterDeleteEventArgs)

       Call Me.SetIncomplete()

End Sub

When I put a breakbpoint on Call Me.SetIncomplete() it is never reached.

I have quite a bit of code in other events (specifically CheckRulesOnCurrentRow, SetDefaultValues and the AfterSave which is setup with an inline Handles Me.AfterSave) which works just fine. I am deleting the records using DeleteByPrimaryKey(FamilyMemberID) and the records are deleting successfully.

Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.5K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
Are you handling this at the BO level or at the form level?



If you are handling it at the form level, and you have multiple BOs on the form and this BO isn't the primary bo, it could be a configuration issue. You'd need to configure the BO to be included in Form deletes.



If this is at the BO level....no idea Blush
choyt
choyt
StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)
Group: Forum Members
Posts: 78, Visits: 246
Hi Greg

This is all at the BO level...I'm stumped...have you used the BeforeDelete/AfterDelete events before?

Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.5K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
I've handled them in forms for BOs (the code was in the form)...I.e. I have a form that has a BO (MyBO) and I have handlers for that handle MyBO_BeforeDelete and MyBO_AfterDelete. I've also created inherited business layers that handled the base business layers before and after delete events.



I have not handled the events right in a BO though. I can't think of any reason why it would be different.
StrataFrame Team
S
StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
Actually, it is different... the DeleteByPrimaryKey does not raise the Before- or AfterDelete events... because there is no guarantee that the record is in the business object when you call DeleteByPrimaryKey().  So, if you want those events, you need to have the record selected in the BO and call DeleteCurrentRow() and pass False to the OnlyMarkAsDeleted parameter, which will delete it from the server immediately and not require a save.
choyt
choyt
StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)
Group: Forum Members
Posts: 78, Visits: 246
Thanks much Ben!
choyt
choyt
StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)StrataFrame Novice (98 reputation)
Group: Forum Members
Posts: 78, Visits: 246
Are there thoughts to add transactions to the delete routines in a future version? This is something I run up against a lot. I try to still use transactions and just put the delete last so if it fails all else dies...but this model doesn't work if multiple deletes are needed.
Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.5K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
the DeleteByPrimaryKey does not raise the Before- or AfterDelete events...


Ah, I missed that. Now it makes sense!
Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Yeah,  the DeleteByPrimaryKey goes straight to "smoking" the records. Smile  You probably want to use the DeleteCurrentRow method if you do not want the records to be immediately deleted from the database.  The DeletePrimaryKey method does not require that the PK in which you are trying to delete is within the BO itself, whereas the DeleteCurrentRow method is going to delete a record with the BO.
StrataFrame Team
S
StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)StrataFrame Developer (4.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
As for the transactions, if you retrieve the record into the business object and then use the DeleteCurrentRow(True) and Save() combination, then the deletes will happen on whatever transaction the Save() uses.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search