Method for compiling entities of a given type (stored procedures, events, datasets, or windows) into an executable form, as well as all the entities within it, such as code associated with window events within a window or $INSERT records in a stored procedure.


retval = Repository("TCOMPILE" entID, parameter1, parameter2, parameter3)

The arguments in parameter1, parameter2, and parameter3 vary depending on entity type.


The TCOMPILE message has the following parameters

entIDentID consists of four elements, which are '*' (asterisk) delimited:
  • Application name
  • Type ID
  • Class ID
  • Entity name
 Methods are executed as follows: if class specific, execute at the class level; if type specific, execute at the type level; otherwise, execute the method.
parameter1a boolean indicating whether or not the entity should be compiled if it has not been changed since the last compilation
parameter2for windows, a boolean indicating whether cleanup of orphan entities should be done. Ignored for other entity types
parameter3for windows, a boolean indicating whether or not linemarks should be kept.


null = Compilation failed. Use Get_Status() to test for error return.

1 = Compilation not needed.

2 = Compilation successful. Field 2 returns the date and time of compilation.

Note: Stored procedures can be recompiled using the Recompile_Proc subroutine.

Note: Always call the Get_Status function after calling Repository().

See also

Repository() functionRecompile_ProcRepository("COMPILE")Get_Repos_Entities().


/* Compile the window INV_ENTRY, as well as event code in the window */
Declare Function Repository, Get_Status
AppID = @APPID<1>  ;* current application
TypeID = "OIWIN"  ;* OpenInsight windows
ClassID = ""  ;* Not Applicable
Win_Name = 'INV_ENTRY'
recompile_if_unchanged = ''
cleanup_orphan_entities = ''
creserve_linemarks = ''
entid = AppID : '*' : TypeID : '*' : ClassID : '*' : Win_Name
result = Repository("TCOMPILE", entid, recompile_if_unchanged, cleanup_orphan_entities, preserve_linemarks)
*  test result
begin case
   case result = ''
     If Get_Status(ErrCode) then
        call msg(@window, 'Error Message returned: ' : ErrCode)
   case result = 1
        call msg(@window, 'Tree Compilation not needed')
   case result<1> = 2
        call msg(@window, 'Tree compilation successful, compiled at ' : result<2>)
end case
  • No labels