The call processing code calls a BASIC or FlashBASIC subroutine from the file-defining item or an ADI. Called subroutines are Flash compiled to improve performance.
If you attempt to file or restore a call in an FSI file-defining item, it will be commented-out with an asterisk (*).
This processing code is supported only from the VME.
System Processors |
Select, Update, List |
Code Type |
Attribute Defining, File Defining |
Dictionary Attributes |
Input Conversion, Output Conversion, Correlative |
Syntax
call {file.spec} module |
Parameter(s)
file.spec |
Full path to the file containing the FlashBASIC code. The full path database,file, must be used (for example dm,bp,). The account name in the file path must be an FSI account. file.spec can be omitted if the module has been cataloged in the Domain Catalog. |
module |
Record-ID of the BASIC or FlashBASIC module. |
Description
The syntax for calling a subroutine does not specify any parameters, but the subroutine is passed a parameter anyway, so one parameter must be specified in the subroutine statement. However, when a subroutine is called from the file-defining item, the entire item body is passed to the subroutine. When a subroutine is called from an attribute-defining item, the value of the calling attribute is passed to the subroutine.
Subroutines can be called from the correlative or input-conversion attributes for file-defining items, or the correlative, input-conversion, or output-conversion attributes for attribute-defining items.
When a subroutine is called from the correlative field of the file-defining item, control passes to the subroutine at file time.
When a subroutine is called from the input-conversion of the file-defining item, control passes to the subroutine before the operator gets into the file via the Update Processor. That is, after the Update Processor command has been executed (:u file.name) and before the user gets access to the item.
Subroutines for attribute-defining items that are called from the output-conversion attribute are executed on output for redisplay after entry. Subroutines called from the correlative attribute are executed prior to processing. Subroutines called from the input-conversion attribute are executed after input.
When passing a parameter value to the subroutine where the processing code is in a file-defining item, the entire item is passed to the subroutine. If the processing code is in an attribute-defining item, the current, single value is passed to the subroutine. If called from a hotkey, no parameters are passed automatically, and parameters are additionally forbidden. However, the FlashBASIC AQL function can be used in the called subroutine to obtain values from the processing code.
NOTE |
|
Data may be interrogated and modified in the subroutine using the FlashBASIC access statement.
Error conditions can be set if an inputerr statement is executed in the FlashBASIC subroutine.
Example(s)
Assume that there is an attribute-defining item that contains a call to a subroutine called st.name:
subroutine st.name(st) states = "alaska,washington,oregon,california,idaho" codes = "al,wa,or,ca,id" convert "," to char(254) in codes locate(st,codes;x) then st = field(states,",",x) end else st = "unknown" |
Press ENTER. The value is passed from AQL into the st variable. If the corresponding string is found, st is loaded with the appropriate code and control returns to AQL.
See Also
callx (Write Trigger) Processing Code
Correlative Processing Codes (ADI)
Input-Conversion Processing Codes