! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! SDDL Name: ZQGARRAY_INDX.SDDL ! ! Purpose: This file defines the array index parameter relation. ! ! Modification History: ! ! Date PR Who Reason ! -------- ------- --- ------------------------------------------------- ! 11/14/94 27329 SXT Original implementation ! 05/08/98 36870 MRB Add C output ! 03/12/99 38555 MRB Remove instruction versions (version_num field) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! LANGUAGE C, FORTRAN, SQL INCLUDE ZSPSS_USER_TYPES.SDDL RECORD QGAIDX_TYPE !------------------------------------------------------------------------------ ! ! RECORD INFORMATION ! !------------------------------------------------------------------------------ DESCRIPTION "In this relation, both array indices and values may be specified. The indices may be specified as variables and may identify a single array element or a range of array elements. Array parameters can be used as table parameters when the instruction type is table. They are not currently used by SOGS. When array parameters are specified for a table, INSTRUCT/EXPAND or SMSG/GEN calls a special routine(QXUBTB) to resolve the table array parameter values so the table may be written to the Logical SMS later. For an array parameter, in addition to the parameter name and value, the index value is required to uniquely identify the array element. Two relations are provided for this task. The first is relation QGARRAY_PAR and the second is this relation QGARRAY_INDX. This relation is populated with table array parameters in Pass3 of command INSTRUCT/CLP. This is during the process of storing component parameter values for an instruction." !------------------------------------------------------------------------------ ! ! FIELD INFORMATION ! !------------------------------------------------------------------------------ FIELD instr_name TYPE INSTRUCTION_NAME_TYPE DESCRIPTION "This field holds the name of the instruction to which the array data applies." END_FIELD FIELD param_name TYPE C8 DESCRIPTION "This field holds the name of the parameter of the component for which its array element is defined here." END_FIELD FIELD comp_seq TYPE I4 DESCRIPTION "This field is the component sequence number to which this array element belongs. A component is defined as a statement of SCPL instruction. A component of a defined instruction is accessed by instruction name and component sequence number." END_FIELD FIELD order_no TYPE I4 DESCRIPTION "This field holds the order number, which is the index for a component parameter since each component may have more than one parameter." END_FIELD FIELD arg_no TYPE I2 DESCRIPTION "This field contains the argument number for a list parameter. A list parameter is a single parameter that contains a list of one or more values to be passed into a PDB-defined primitive command, data block or table. If this is a list parameter, this field contains the number of the argument within the list. The various values of a list parameter are stored in this relation with the same parameter name and order number, but a different argument number. The argument number indicates the position of the value within the list. This field is set to zero if this is not a list parameter." END_FIELD FIELD array_index TYPE C34 DESCRIPTION "This field holds the array index value. For an array parameter, in addition to the parameter name and value, the index value is required to uniquely identify the array element. The index for a table array parameter has the following three forms: - The first form is the specification of a particular element. If the element is part of a multi- dimensional array, then the index for each dimension must be separated by a colon. The index specification may be either a literal integer or a parameter or variable with an integer value. - The second form is a range specification. Specifying an integer value followed by a dash and another integer value, has the effect of assigning arguments to all elements between and including the elements specified. - The third form is the slash. The slash effectively says that this element follows the previously specified element." END_FIELD FIELD param_value TYPE C32 DESCRIPTION "This field contains the value of this array parameter, which is the value to be assigned to array elements by the expander." END_FIELD END_RECORD !------------------------------------------------------------------------------ ! ! RELATION DECLARATION ! !------------------------------------------------------------------------------ RELATION qgarray_indx TYPE QGAIDX_TYPE DESCRIPTION "Array Index Parameter Relation" SUBSYSTEM_USING "SPSS", "SCS", "IM" RELATED_FIELDS "qgarray_par.*" INDEX qgarray_indx_1 TYPE unique, clustered FIELDS instr_name, comp_seq, param_name, order_no, arg_no END_INDEX END_RELATION !------------------------------------------------------------------------------ ! ! INSTANCE DECLARATION ! !------------------------------------------------------------------------------ INSTANCE qgarray_indx GLOBAL TYPE QGAIDX_TYPE END_INSTANCE