>Thanks for the response, Hilmar. I did finally stumble on the fact that I can chain the triggers, and that got me over the hump.
Yes, it is only a question of chaining with AND.
By the way, you can use shortcut boolean evaluation to your advantage.
In an expression like:
_ri_Table1_delete() AND udf_copy_to_history()
(Assuming that the first function is the built-in RI function, and the second your UDF)
Your UDF will only be invoked if the RI function was successful. This is because, if it returns .F., the AND will always be .F., no matter what the second part of the expression returns. In this case, then, VFP doesn't even evaluate the second part.
In other words, there is nothing for you to worry about, as long as you put the functions in the correct order (only copy to history data AFTER the delete was successful).
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)