Object References in Symbol Tables

Each object reference in a symbol table provides information about the object itself and where it is referenced, including the line number and source (trigger, IncludeScript, or local ProcScript), field, entity, model, and component.

Each object reference in a symbol table can provide the following information:

{ { { LineNumber.CodeSource.}Field.}Entity.}Component

  • LineNumber—line number in the source
  • CodeSource—trigger, IncludeScript, or global ProcScript
  • Field—field name
  • Entity—entity name
  • Component—component name

Symbol tables are self-contained, referencing items in a string table. For example, the string table starts with the following:

STRINGTAB=DATA; EDITBOX.MY_DUMMY.R; MY_PRINT:SYSTEM_LIBRARY; $INSTANCENAME; PRINT; MY_ACTHANDLER:SYSTEMThe symbol table reference then references items in the string table by their number. Thus, OBJ=2 refers to item 2 in the string table, EDITBOX.MY_DUMMY.R.

FFR=C!
    TRG=1!
    TFR=C!
    MID=t!
    SLN=5!
    LNR=1!
    TYP=55!
    OBJ=2!
    NUM=88!
...

This is not very readable, so extra but redundant information is added to make it readable and easier to process in cross-reference reports. The readable information for OBJ=2 is OBJECT=EDITBOX.MY_DUMMY.R.

_LIBRARY;
...
    FLDENTFROM=Component!
    TRIGGER=Execute!
    TRIGERFROM=Component!
    TYPE=Field!
    OBJECT=EDITBOX.MY_DUMMY.R!
    DBMSLINK=INIT.UFORM.DICT!

However, when stored, symbol tables contain only the string level references, not the extra information. This is created when reading and processing stored symbol tables.

Object References
Short Format Long Format Description
FEM=StringTabId FLDENTMOD={Field.}Entity.Model Field or entity in application model

FFR=T | M | C

FLDENTFRM=Template | Model | Component

Location where field or entity is defined
SRC=StringTabId SOURCE=SourceName Location of IncludeScript or local ProcScript
SID=I | P SOURCEID=IncludeProcSource | GlobalProcSource) Type ProcScript module
TRG=StringTabId TRIGGER=TriggerAbbreviation Trigger containing the source code, for example EXEC, RETR, FMOD, READ, and so on.

 

DBMSLINK=Field.Entity.DICT Location of the reference in DICT
TFR=T | M | C TRIGGERFROM=Template | Model | Component If TRG is present, location where the trigger is defined.
MID=c | m | o | t MODULE=Central | Entry | Operation | Trigger  
MOD=StringTabId MODULE=ModuleName Not Available if ModuleName == Trigger
SLN=SourceLineNumber  

 

LNR=OutputLineNumber  

 

TYP=StringTabId TYPE=ObjectType Type of object; for example, COMPONENT, MENU, PROC (i.e., global ProcScript or IncludeScript), and so on
OBJ=StringTabId OBJECT=ObjectName Name of the referenced object
EXT=StringTabId

EXTRA=ExtraInfo

Extra information, depending on the object type.
For components, EXTRA=Operation/Attribute
For parameters, EXTRA=Scope/Interface
For global ProcScript and IncludeScript, EXTRA=Library
IND=I

 

Object is indirect or has wild card substitution
NUM=ObjectNumber

 

Additional information is provided depending on the object type.
For parameter references: PARAMNR=ParameterSequenceNumber Number of the parameter in the params block

 

DATATYPE=DataType Uniface data type

 

DIRECTION=In | Out | InOut Direction of parameter
For references to components and ProcScript modules: CALLTYPE=Declaration | Activate | NewInstance | Run | Attribute | Operation | Instance The way in which the component is called
PARAMNRS=NumOfParams The number of parameters declared for the component or ProcScript module