DEFINE SessionBase AS Session oParent = .NULL. *************************** PROCEDURE Init (oParent) SET TALK OFF IF VARTYPE(m.oParent) = "O" This.oParent = m.oParent ENDIF SET DELETED ON SET EXCLUSIVE OFF SET MULTILOCKS ON SET NOTIFY OFF SET SAFETY OFF SET EXACT OFF SET NULLDISPLAY TO " " SET CENTURY ON SET REPROCESS TO 1 RETURN ENDPROC ENDPROC DEFINE Example AS SessionBase PROCEDURE Init(oParent) DODEFAULT(m.oParent) USE People NOUPDATE ENDPROC PROCEDURE CallMe(tcEmpno) LOCAL RetVal RetVal = '' IF SEEK(m.tcEmpNo, "EmpNo", "People") RetVal = IIF(EMPTY(TermDate),'','*') ; +ALLTRIM(CallName)+' '+EmpName ENDIF ENDPROC PROCEDURE Destroy IF USED("People") USE IN People ENDIF ENDPROC ENDDEFINE * Example CallMeObject = NEWOBJECT("Example", "ThisPRGFile") then Name = CallMeObject.CallMe(EmplNo) * As needed.when the CallMeObject goes out of scope, it's done. There no need to reset anything.