Starts and defines a procedure.
PROCEDURE procname ([IN|OUT|INOUT] parm) [LOCAL (var)]
|procname||A valid object name. Procname must be the name of the existing application document that contains this procedure and must not conflict with a system keyword.|
|IN, OUT, or INOUT||Designates the direction in which the associated parm passes a value: Into the procedure (IN), out of the procedure (OUT), or both (INOUT).
If omitted, IN is assumed.
|parm||The name of a parameter (a type of variable used only to carry values into and out of procedures). When more than one parameter is specified, they are separated from one another by commas.
If no parameters are defined, the enclosing parentheses must still appear.
A corresponding expression for each parameter is provided in the call to the procedure.
|var||The name of the local variable whose use is restricted to within the local procedure. Local variables must be separated from one another by commas.|
PROCEDURE declares the start of a procedure program. (A procedure program can have many local procedures, but only one main procedure.)
The call to the procedure must contain a corresponding expression for each parameter. The order of the expressions in the call must match the order of the parameters in the procedure declaration. If the number of expressions in the call differs from the number of declared parameters, then the call is ignored. Within the procedure, formal parameters are treated as if they were variables.
A PROCEDURE command must always have a corresponding ENDPROCEDURE command that marks the end of the procedure.
The number of formal parameters, plus the number of local variables, must not exceed the maximum parameters entry in the configuration file. The parameter size entry in the configuration file determines the maximum size of each formal parameter and local variable.
procedure MyProc (item1, in item2, out item3, inout item 4)
Item1 and item2 are formal IN parameters, item3 is a formal OUT parameter, and item4 is a formal INOUT parameter.
procedure Summarize (DeptName, out AvgSalary) local (WorkVar)
WorkVar is a local variable (known only to procedure Summarize).