| **Navigation:**  [[abc library reference.htm|ABC Library Reference]] > FileManager > FileManager Methods >====== PreDelete(trigger delete action pre-processing) ====== | [[postupdate trigger update action post processing .htm|{{btn_prev_n.gif|Previous page}}]][[abc library reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[preinsert trigger insert action pre processing .htm|{{btn_next_n.gif|Next page}}]] | | || **PreDelete( **//ErrCode, ErrMsg //**), **//returncode// {{blk2blue.jpg|blk2blue.jpg}} | **PreDelete** | Returns confirmation that valid dictionary trigger activity has occurred before a delete action is executed, and optionally sets an error code and message to be processed. | | //ErrCode// | A string constant, variable, EQUATE, or expression that represents an error code. | | //ErrMsg// | A string constant, variable, EQUATE, or expression that represents an error message. | | //returncode// | Indicates if an error occurs. | The **PreDelete **method is a virtual method that returns a TRUE value by default if pre-delete trigger activity was processed normally. The developer must set the return level to FALSE if any problems occurred in the pre-delete trigger activity code. When **PreDelete** returns FALSE, an ERRORCODE 100 (trigger error) is posted. If //ErrCode// is set, then FILEERRORCODE will be set to the contents of //ErrCode// when the error is processed by the ErrorClass object for the associated file (table). Similarly, FILEERROR will be set to //ErrMsg//. **The ****PreDelete**** method is accessible from a table's trigger properties located in the Dictionary Editor, or, in the Global Embeds of a target application** **Implementation:** **PreDelete** is implemented using the file driver callback mechanism, therefore, this method will have access to all variables that the File Manager has access to. These variables and the ones added in the Data section of the method will allow the developer to insert code that will be executed after a CHANGE action for a file. **Return Data Type:**     BYTE **Example:** **  CODE** **!Push any pending errors on stack, to allow trigger error detection** **  PUSHERRORS()** **  ReturnValue = PARENT.****PreDelete****(ErrCode,ErrMsg) !returns TRUE by default** **  !trigger processing here ' optionally set ErrCode, ErrMsg and ReturnValue** **  POPERRORS()** **!restore errors saved on the stack** **  RETURN ReturnValue** **See Also:**     [[postdelete trigger delete action post processing .htm|PostDelete]] , [[preinsert trigger insert action pre processing .htm|PreInsert]] , [[preupdate trigger update action pre processing .htm|PreUpdate]]