project QadFinancials > class BQBudgetActual > method ExitInstance

Description

This method can be extended with code to execute when an instance of a business class is stopped.

Standard functionality in this method is
- Clean up instance data in the fcInstance table.
- Create or update a draft instance if applicable.

plus transaction handling
- Remove the instance from the transaction if it was added to a transaction in InitInstance.
- Abort the transaction if one was started from inside the business code.

PreCondition

This method is executed when :
- A business instance is stopped (release object + delete instance data)
(icDraftReference = "" + viCurrentDraftInstanceId = 0)
- A business instance is saved as a draft (release object + create draft)
(icDraftReference <> "")
- A draft instance is stopped (release object, delete copy of draft, release original draft)
(icDraftReference = "" + viCurrentDraftInstanceId <> 0)

This method is NOT run when a business instance is only closed (release object + keep instance data).


Parameters


icDraftReferenceinputcharacterDescription for the draft instance.
This parameter will have a value when creating a draft instance.
icDraftFormNameinputcharacterThis parameter will have a value when creating a draft instance.
ilDraftIsSharedinputlogicalThis parameter will have a value when creating a draft instance.
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program/bqbudgetactual.p)

<ANCESTOR-CODE>
    
    
    /* ====================================================================================================================== */
    /* Most classes are keeping data in their class-tables (or other instance-dependant temp-tables) even when the functional */
    /* flowshave been completed. This is not a memory-leak but as these temp-table still occupy memory, it is better to empty */
    /* these class-tables once they are no longer needed. We just do this for some main and often used classes.               */
    /* Tackled temp-tables and their classes:                                                                                 */
    /*  BJournalEntry:  "tPostingLineEnabling"                                                                                */ 
    /*  BQPosting: "tQPostingLine" and "t_iQPostingLine"                                                                      */
    /*  BQBudgetActual: "tQBudgetLinkActual" and "t_iQBudgetLinkActual"                                                       */
    /* ====================================================================================================================== */
    empty temp-table tQBudgetLinkActual.
    empty temp-table t_iQBudgetLinkActual.