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.
Short Format | Long Format | Description |
---|---|---|
FEM= StringTabId
|
FLDENTMOD= {Field.}Entity.Model |
Field or entity in application model |
|
|
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 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 |