Symbolic Parameters

The individual model utility definitions contain the text, options, symbolic parameters (automatic and user-defined), and logic that is used to dynamically generate appropriate statements for different tasks and situations during analysis based on changeable criteria like data set size, part numbers, and so on.
carcmdb220
The individual model utility definitions contain the text, options, symbolic parameters (automatic and user-defined), and logic that is used to dynamically generate appropriate statements for different tasks and situations during analysis based on changeable criteria like data set size, part numbers, and so on.
Many pre-defined symbolic parameters (automatic symbols) are available for use. Their values are determined during analysis and are replaced automatically when the utility is executed. You can also create your own symbols and assign your own values to them. The specified value replaces the symbolic when the utility is executed.
The symbols can be embedded within the text that is defined in a model utility definition (control statements, options, and so on) and within the IF/ELSE logic to dynamically control the specific statements and options that you want generated as part of the output at analysis time. You can use these variables to add conditional testing, change data set names, use different space calculations, and so forth. For example, you can:
  • User-defined symbolics, which require the entry of a value. The specified value replaces the symbolic when the utility is executed.
  • Customize the generated data set name that is set in each model utility
  • Specify the storage devices to be used by each model utility
  • Edit the strategy data set or recovery data set in all space allocations
  • Calculate the required data set size at analysis time when using
    Fast Load
  • Change the space allocation statement in the utility models
The symbolic parameters are automatically expanded at processing time to full data set names, devices units, or whatever they represent. The symbolic variable capability lets you automatically generate unique data set names without editing the resulting strategy data set or table.
3
Usage Rules
Note the following usage rules:
  • A symbolic parameter must start with a percent sign (%).
  • An IBM Db2 symbolic parameter must start with an ampersand (&). 
  • The Batch Processor symbolics start with two percent signs (%%). For more information about these symbolics, see Batch Processor Automatic Symbolics.
  • To separate a symbolic parameter from the next field in the name with a period (.), use two periods (..).
  • If you change a symbolic, like DSN, its value is changed everywhere the symbolic is used.
  • The symbolics are stored in a Db2 table. Only one row can exist per symbolic.
  • Symbolics that can be used in user models are marked with an asterisk (*).
Automatic Symbolics for All Objects
The following automatic symbolics are available for all objects:
  • AUTH*
    The authorization ID (CREATEDBY or OWNER) that created the object. This value would be the value assigned to a .AUTH statement generated prior to a CREATE DDL statement to recreate the object with the same authorization ID.
    Use this symbolic only on user-defined utilities.
  • CCREATOR*
    The "true" creator of the object. This symbolic is similar to the CREATOR symbolic variable. However, for tablespaces, CREATOR is the database name and CCREATOR is the true creator of the tablespace.
  • DATE*
    The analysis date in YYMMDD format.
  • DTQUAL*
    The date and time string for the generated data set for analysis in XDMSS format. DTQUAL ensures that a unique data set name is created when allocated. XD represents the date. MSS represents the time.
    • XD
      The analysis date in an alphanumeric format. The analysis date is identified by the DATE automatic symbolic in the format YYMMDD.
      • X is determined by the first character of DD. Valid values are T, U, V, or W:
        • X is T when DD is 1 through 9 (01 through 09)
        • X is U when DD is 10 through 19
        • X is V when DD is 20 through 29
        • X is W when DD is 30 or 31
      • D is determined by the second character of DD. Valid values are: 0, 1, 2, 3, 4, 5, 6, 7, 8, or 9.
      Examples:
      When DD is 01 through 09, XD is T1, T2, T3, T4, T5, T6, T7, T8, or T9.
      When DD is 10 through 19, XD is U0, U1, U2, U3, U4, U5, U6, U7, U8, or U9.
      When DD is 20 through 29, XD is V0, V1, V2, V3, V4, V5, V6, V7, or V9.
      When DD is 30 or 31, XD is W0 or W1.
    • MSS
      The analysis time in minutes and seconds, where M is the last digit of the minute value in the TIME automatic symbolic. SS represents the seconds.
    Use this symbolic to ensure uniqueness from other model definitions that could be part of the same analysis output.
    The following utility models use %DTQUAL when it is included in your DSN override: CHECK, CHECK_R, COPY, COPY_B, COPY_PC, COPY_R, QCOPY, QCOPY_B, QCOPY_R, FUNLD, FUNLD_B, FUNLD_R, IBMULD, IBMULD_B, IBMULD_R, UNLOAD, UNLOAD_B, UNLOAD_R, XUNLD, OREORGT, OREORGTS, REORG, REORG_R, REORGI, REORGI_R, RREORG, RREORG_R, RREORGI, and RREORI_R.
  • FDATE
    The analysis date in DB2 ISO format (YYYY-MM-DD).
  • FROMSSID*
    The source (FROM) subsystem ID.
  • FTIME
    The analysis time in DB2 ISO format (HH.MM.SS).
  • FTMSTP
    The analysis timestamp in DB2 format with zero decimal positions (YYYY-MM-DD-HH.MM.SS).
  • LASTIMAG
    The data set name of the last image copy data set that was generated by model services.
  • LASTTDSN*
    The last tape data set name that was generated by the user-defined model.
    Use this symbolic only on user-defined utilities.
  • LASTUNLD
    The last unload data set that was generated by model services.
  • PREFIX*
    The TSO prefix for the user ID at the time that the analysis was run. The prefix is set by the TSO profile.
  • RECOVERY
    1 (True) or 0 (False). Conditional for all objects.
  • SQLPOSA
    Position for optional utility is after all SQL and standard utilities.
    1 (True) or 0 (False). Conditional for all objects.
  • SQLPOSB
    Position for optional utility is before all SQL to create objects and after the unload utility.
    1 (True) or 0 (False). Conditional for all objects.
  • SQLPOSO
    Position for optional utility is with the SQL to create an object.
    1 (True or 0 (False). Conditional for all objects.
  • STRATEGY*
    The strategy name.
  • TIME*
    The analysis time in HHMMSSH format.
  • TINCR
    The file sequence number to use in the LABEL parameter of the .ALLOC command for the tape data set.
  • TOSSID*
    The target (TO) subsystem ID.
  • TODB2V
    The DB2 version for the target DB2 subsystem in the format vvRnM1. For example, 12R0M1, where 12 is the DB2 release.
  • USERID*
    The TSO ID that submitted the analysis.
Automatic Symbolics Per Object
The following automatic symbolics are available per object:
  • OBJTYPE*
    The type of object. Valid values: SG (storage group), DB (database), TS (tablespace), T (table), I (index), V (view), S (synonym), A (alias), P (plan or package).
  • CREATOR*
    The object creator.
  • OBJECT*
    The object name.
  • DSNQUAL2*
    Used in data set name qualification and set to a value as follows:
    • For table and index-related utilities, this value is the database name (the same as %DBNAME).
    • For all other utilities, this value is the object creator (same as %CREATOR).
  • DSNQUAL3*
    Used in data set name qualification and set to a value as follows:
    • For table related utilities, this value is the 3-byte literal TID followed by the object identifier for the table in 5-byte character format.
    • For index related utilities, this value is the indexspace name (same as %TSNAME).
    • For all other utilities, this value is the object name (same as %OBJECT).
  • DBNAME*
    The parent database for the object. Not valid for view, synonym, or alias.
  • TSNAME*
    The parent tablespace for the object or, if the object is an index, the parent indexspace. Not valid for view, synonym, or alias.
  • LOBCOLS*
    The number of LOB and XML columns involved in the unload/load.
  • INCR
    The general increment, reset by utility.
For partitioned objects, the following values are automatically substituted according to the type of utility that is named in the model:
  • PART*
    • For image copy utilities, 001.
    • For reorganization utilities, partition number.
    • For non-partitioned objects, blank.
  • PARTLBL*
    • For image copy and reorganization utilities, 'PART'.
    • For non-partitioned objects, blank.
  • PARTNO*
    • For image copy utilities, 001.
    • For reorganization utilities, partition number.
    • For non-partitioned objects, 000.
    If a table is in a partition-by-growth (PBG) universal tablespace, PARTNO* is set to 0.
  • PARTNO4
    • For image copy utilities, 0001.
    • For reorganization utilities (optional). Partition number when you want the number of integers to appear consistently as four numbers. The maximum number of partitions is 4096.
    • For non-partitioned objects, 0000.
    If a table is in a PBG universal tablespace, PARTNO4 is set to 0.
  • PRTRANGE
    • For image copy utilities, blank.
    • For reorganization utilities and non-partitioned objects, 0 (no inline image copy) or 1 (generate inline image copy).
Batch Processor Automatic Symbols
You can pass the following variables through to the Batch Processor for resolution at analysis execution time by prefixing them with two percent signs instead of one. For example, DATASET( pduser.d%date ) in a model generates a data set name in the analysis using the date when the strategy was analyzed. DATASET( pduser.d%%date ) in a model generates a data set name in the analysis with a %date in it, which is resolved by the Batch Processor at execution time with the current date.
Batch processor symbolics are not supported for TEMPLATE data sets.
  • DATASET
    Specifies the name of the data set to be allocated. You can use the following variables to generate parts of the data set name:
    %HOST %USERID %DATE %TIME %SDATE %STIME %HGHLVL
    For more information, see the Batch Processor documentation for the ALLOC command and JCL Requirements.
Conditional Automatic Symbols for All Objects
Conditional automatic symbols have values that are set to true or false in the course of generating the analysis file, and indicate the stage of the analysis. These conditional symbols apply for all objects. Use these symbols to control when and how utilities are executed.
The automatic symbols RECOVERY, SQLPOSB, SQLPOSO, and SQLPOSA are conditional symbols whose values are set to either True or False. Within the model services conditional logic, True has a value of one. False has a value of anything other than one.
  • RECOVERY*
    The recovery setting.
    • 1 (True)
    • 0 (False)
  • SQLPOSB*
    The position for optional utility is before all SQL to create objects and after the UNLOAD utility.
    • 1 (True)
    • 0 (False)
  • SQLPOSO*
    The position for optional utility is with the SQL to create an object.
    • 1 (True)
    • 0 (False)
  • SQLPOSA*
    The position for optional utility is after all SQL and standard utilities.
    • 1 (True)
    • 0 (False)
Example
The COPY_PC model definition (used by @DEFAULT for pre-SQL image copy) illustrates the use of conditional automatic symbols. In this utility definition, %SQLPOSB is set to True after the unload and before the SQL. With this setting, the whole model is generated after the unload and before the SQL to create the objects. If %SQLPOSO had been used, the utility would have been generated with the SQL to create the objects, after the unload. If SQLPOSA had been used, the utility would have been generated after the SQL and the unload utility.
If this model is part of a recovery routine, the data set name to which the file will be allocated is the value of the user-defined symbol %RCOPYDSN. Otherwise, it will be allocated to the value of the user-defined symbol %COPYDSN. To see the values of the user symbols, see the COPY_PC utility in the @DEFAULT model ID.
Space Calculation Automatic Symbolics
The following automatic symbolics are available for space calculation:
When applicable for the utility, the following variables can be used for space calculation with the following utilities: CHECK, CHECK_R, FLOAD, FLOAD_R, LOAD, LOAD_R, REORG, REORGI, RREORG, and RREORGI.
  • BYTETRK
    The number of bytes per track, based on the device type used (DEVTYPE).
  • CALC
    Lets you define your own expression for performing automatic space calculations. The utilities also use this symbolic to calculate primary and secondary space allocations.
    For syntax rules, see %CALC Function.
    The following are sample calculations:
    • If your existing value is 1000 and you want to calculate the existing value multiplied by 10 (1000 * 10 = 10000), enter CALC(%*10).
    • If your existing value is 8000 and you want to calculate the existing value divided by ten (8000 / 10 = 800), enter CALC(%/10).
    • If your existing value is 500 and you want to calculate the existing value multiplied by two prefixed to the existing value (500 * 2,500 = 1,250,000), enter CALC(%*2%).
    • If your existing value is 1000 and you want to calculate the existing value added to 300 (1,000 + 300 = 1,300), enter CALC(%+300).
    • If your existing value is 8000 and you want to calculate the existing value minus 300 (8000 -- 300 = 7700), enter CALC(%-300).
    • If your existing value is 500 and you want to calculate the existing value added to two prefixed to the existing value (500 + 2,500 = 3,000), enter CALC(%+2%).
  • NROWS
    The number of rows in the table, based on the SIZE option.
  • REORGP*
    Estimated pages for a tablespace or indexspace. If no statistics are found, the default is 1800.
    When an analysis is done using an unload row limit, the value for REORGP is recalculated to specify the number of 4 KB pages that the unload data set will occupy.
    This value has the following three possible sources (R for RUNSTATS, P for PDASTATS, or I for IDCAMS), based on the SIZE option specified for the utilities.
    • When RUNSTATS are found, values are derived as follows:
      • For tables, values come from NPAGES from SYSIBM.SYSTABLES.
      • For auxiliary tables, N/A defaults to 1.
      • For tablespaces, values come from NACTIVE from SYSIBM.SYSTABLESPACE.
      • For LOB tablespaces, the value is estimated using these values:
        • PGSIZE from SYSIBM.SYSTABLESPACE.
        • CARDF from SYSIBM.SYSTABLEPART.
        • AVGSIZE, FREESPACE from SYSIBM.SYSLOBSTATS.
        Compute the values as follows:
        1. Round AVGSIZE up to the next PGSIZE.
        2. Multiply the result by CARDF.
        3. Add (FREESPACE * 1024) to the result.
        4. Divide the result by (PGSIZE * 1024).
      • For XML tablespaces, the value is estimated using these values:
        • PGSIZE from SYSIBM.SYSTABLESPACE.
        • CARDF, AVGROWLEN, PERACTIVE, SPACE from SYSIBM.SYSTABLEPART.
        • The average size is equal to SUM(CARDF*AVGROWLEN)/SUM(CARDF).
        • The free space is equal to SUM((100 - PERCACTIVE)*SPACE)/100.
        Compute the values as follows:
        1. Round average size up to the next PGSIZE.
        2. Multiply the result by CARDF.
        3. Add (free space * 1024) to the result.
        4. Divide the result by (PGSIZE * 1024).
      • For indexes, values come from NLEAF from SYSIBM.SYSINDEXES.
    • When PDASTATS statistics are found, values are derived as follows:
      • For tables, values come from RATB_PAGES_USED and RATB_ROWS_TOTAL from RATB_STATS_#.
      • For auxiliary tables, N/A defaults to 1.
      • For tablespaces, values come from RATS_PAGES_REORG from RATS_STATS_#.
      • For LOB and XML tablespaces, the value is estimated using these values:
        • PGSIZE from SYSIBM.SYSTABLESPACE
        • RAVL_PQTY_USED, RAVL_SQTY_USED from RAVL_STATS_#
        Compute the values as follows:
        1. Sum RAVL_PQTY_USED and RAVL_SQTY_USED for all volumes. This is the total space used represented in 4 KB pages.
        2. Divide the result by (PGSIZE / 4).
      • For indexes, values come from the following:
        • For partitioned indexes, RAIX_KEYS_F from RAIX_STATS_#.
        • For nonpartitioned indexes, RAIX_LEAF from RAIX_STATS_#.
        • For XML indexes, the sum of TOTALENTRIES from SYSIBM.SYSINDEXSPACESTATS.
    • When IDCAMS statistics are found, the values come from an IDCAMS LISTCAT:
      HIGH USED RBA divided by 4096 (bytes per page)
  • ROSORT
    Cylinders required for PTIOUT (SORTOUT). PTIOUT holds sorted keys on SORT output for the check data, load, and reorg utility processing. The default is 10 cylinders.
  • ROSYSREC
    Cylinders required for SYSREC. The SYSREC data set holds unloaded records for REORG.
  • ROSYSUT1
    Cylinders required for SYSUT1. SYSUT1 is the temporary data set that holds sorted keys on SORT output for check data, load, reorg, and rebuild utilities.
  • ROSORTWK
    Cylinders required for SORTWK
    nn
    . SORTWK
    nn
    is the work data set for sorting indexes. This data set is used with the check data, load, reorg, and rebuild utilities.
  • ROWLEN
    The maximum row length in the table.
    When LOB data is involved, the value represents the maximum row length in the table plus the average LOB size per base table row. The average LOB size per base table row is calculated by obtaining a total LOB byte count and dividing by the number of rows in the table.
Special Use Symbolics
The following special-use symbolics are available:
  • BLKLIMIT
    Specifies the maximum number of 4 KB blocks allowed in the primary and secondary space allocations when allocating data sets using 4 KB blocks. The value (655350 for a 3380 or 786420 for a 3390) is determined based on the DEVTYPE parameter in the MIGRATOR parmlib member in
    hlq.
    CDBAPARM.
  • CDSN
    Specifies the symbolic prefix for the image copy data set names that are generated for output in TEMPLATE statements when a utility is invoked during strategy analysis in CA RC/Migrator or alter analysis in CA RC/Update. To determine this value, we extract the current value of the Batch Processor DSN mask and change the %DSNQUAL2 and %DSNQUAL3 values to IBM symbolics &DB and &SN as follows:
    • %DSNQUAL2 to &DB (database name)
    • %DSNQUAL3 to &SN (space name–tablespace or indexspace)
    For example, when:
    • DSN is %USERID..%DSNQUAL2..%DSNQUAL3..%DTQUAL
    • CDSN is %USERID..&DB..&SN..%DTQUAL
    &SN is required in the PTICOPY TEMPLATE data set name so that LOB tablespaces have distinct data set names specific to their tablespace name.
    CDSN is only valid for the OREORGKL and OREORGKR utility models.
  • COLUMNS
    Unload or load list of columns with options.
  • CYLLIMIT
    Specifies the maximum number of cylinders allowed for the primary and secondary space allocations when allocating data sets in cylinders. The value is 4369.
  • DATADSN
    Contains the name of the data set that the table is unloaded into when parallel unloads have not been requested through Utility Profile Services (UPS). For IBM unload/load during recovery, change to %DSN..P&PA..RD.
  • ENFORCE
    Load disable referential integrity checking, if necessary.
  • GENIDOVR
    Specifies whether to prevent DB2 from generating unique values for identity columns. Valid values are 0 and 1. GENIDOVR is an automatic symbolic that is used only with the FLOAD, FLOAD_R, LOAD, and LOAD_R utilities.
    If the IDOVRRID symbolic is present and set to YES, the system determines the value for GENIDOVR based on the type of identity column in the table and the utility being processed.
    For the FLOAD and FLOAD_R utilities, the values have the following meanings:
    • 1–Generates the CA Fast Load IGNOREGA YES parameter specification. This specification prevents DB2 from generating unique values for an identity column that is defined with GENERATED ALWAYS.
    • 0–Does not generate the IGNOREGA YES specification. This value is the default.
    For the LOAD and LOAD_R utilities, the values have the following meanings:
    • 1–Suppresses the generation of %IGNORFLD and generates the IBM Load IDENTITYOVERRIDE parameter specification. This statement prevents DB2 from generating unique values for the identity column.
    • 0–Does not generate the IDENTITYOVERRIDE specification. This value is the default.
  • IDOVRRID
    Determines whether identity columns that are defined with GENERATED ALWAYS are loaded from existing values. IDOVRRID is a user-defined symbolic that you can use only with the FLOAD, FLOAD_R, LOAD, and LOAD_R utilities. The following values are valid:
    • YES–Allows identity columns to be loaded from the unload file. The system determines the value for symbolic GENIDOVR, based on the presence of an identity column that is defined as GENERATED ALWAYS. If the column names are listed in the control statements, the actual Identity column names are used.
    • NO–Invokes default load processing, which allows DB2 to generate unique values according to the table definition. NO sets GENIDOVR to 0.
    If IDOVRRID is not present or contains an invalid value, its value is interpreted as NO.
  • INDEX
    RUNSTATS index option for tablespace.
  • INFORM
    The
    Fast Load
    format of the unload data set. Valid values are LOAD or SEQ.
  • LARGE
    Threshold variable that can be used to determine whether data should go to disk or tape.
  • LIBRARY
    BIND list of unique PDS names from DBRMs.
  • LIMIT
    UNLOAD maximum number of rows.
  • LOADCALL
    Used with the IBM LOAD utility to identify whether data was unloaded with
    Fast Unload
    (CA Fast Unload) or with the IBM UNLOAD utility.
    • 0 (Unloaded with CA Fast Unload)
    • 1 (Unloaded with the IBM UNLOAD utility, .CALL UNLOAD)
  • LOBTS
    Specifies whether the tablespace type is LOB.
    • 1 (a LOB tablespace)
    • 0 (a non-LOB tablespace)
    This symbolic is used in REORG and STATS processing. The symbolic also lets you customize Model Services models by using #IF ... #ELSE conditional logic to control the invocation of the RUNSTATS or PDASTATS utilities.
  • LOADDSN
    Contains the name of the data set that the table was unloaded into.
  • MEMBER
    BIND list of DBRMs in plan.
  • OBID1
    Values used by
    Fast Load
    for object ID translation. Valid values are spaces or OBID.
  • OBID2
    Values used by
    Fast Load
    for object ID translation. If OBID1 is set to spaces, OBID2 is also set to spaces. Otherwise, OBID2 is the OBID of the data to be loaded.
  • OPTIONS
    BIND list of non-default options.
  • OUTCNTL
    The
    Fast Load
    OUTPUT-CONTROL parameter. Values are BUILD or ALL.
  • OUTFORM
    The format of the unloaded data set. Corresponds to the
    Fast Unload
    keyword OUTPUT-FORMAT.
    In CA RC/Migrator only OUTPUT-FORMAT LOAD and DSNTIAUL are supported. OUTPUT-FORMAT VARIABLE is only supported when LOB columns are present in the table.
  • PAGESIZE
    Unload page size of tablespace.
  • PARTDSN
    Identifies the TEMPLATE data set name for parallel unloads. The default is %DSN..P&PART..DATA. This symbolic can only be used with the IBMULD and IBMULD_R model utilities.
  • PENDDDL (Deprecated)
    Do not use. Use of this symbol has been deprecated and it will not be set during SQLPOSO processing.
    The online reorg utilities (OREORGTS, OREORGT, OREORGIX) have been updated and no longer use SQLPOSO and PENDDDL symbols.
  • PGSPTRK
  • The number of 4 KB pages that fit on a track. The value (10 for a 3380 or 12 for a 3390) is determined based on the DEVTYPE parameter in the MIGRATOR parmlib member.
  • RBNDNAME
    The plan or package being rebound.
  • SELECT
    Unload list of SQL columns.
  • SORTNUM
    Number of temporary data sets to be allocated dynamically for sorting.
  • TABLE
    RUNSTATS table option for tablespace.
  • TMPLTDSN
    Defines the TEMPLATE statements in the LOAD and LOAD_R models. TMPLTDSN contains the template used for the UNLDDN in the IBM UNLOAD.
  • TRKLIMIT
    The maximum number of tracks allowed for the primary and secondary space allocations when allocating data sets in tracks. The value is 65535.
  • UNLDBKSZ*
    Load data set blocksize from UNLOAD.
  • UNLDDSN*
    Load data set name from UNLOAD.
    Do not modify these symbols in the model utilities. UNLDDSN and UNLDBKSZ are useful in user-defined utilities to find the old name of an unloaded object or the size of an unloaded data set. SYSREC00 is changed to UNLDDSN in IBMULD and IBMULD_R.
  • UNLTMPLT
    Controls TEMPLATE statement generation. The following values are valid:
    • 0–IBM UNLOAD did not use a TEMPLATE statement to define the UNLDDN data set
      or
      a TEMPLATE statement was used to unload a partitioned tablespace in parallel, but we are not loading the tablespace in parallel.
    • 1–IBM UNLOAD used a TEMPLATE and the data was unloaded into a single data set
      or
      the data was unloaded by partition and we are loading by partition.
  • USETMPLT
    Generates an IBM TEMPLATE statement by default for the following IBM utility models:
    • CHECK
    • CHECK_R
    • COPY
    • COPY_B
    • COPY_PC
    • COPY_R
    • IBMULD
    • IBMULD_B
    • IBMULD_R
    • LOAD
    • LOAD_R
    • OREORGIX
    • OREORGT
    • OREORGTS
    • RECIXALL
    • RECOVIX
    • REORG
    • REORG_R
    • REORGI
    • REORGI_R
    USETMPLT is a user-defined symbolic. When set to YES (the default), an IBM TEMPLATE statement is generated. When set to NO or not present, a batch processor .ALLOC statement is generated for data set allocation.
    With the exception of image copy data sets (PTICOPY TEMPLATE), only the &PART and &PA Db2 symbolics are supported in TEMPLATE data sets and only one instance of these symbolics is allowed in the data set name. For image copy data sets specified with PTICOPY TEMPLATE, the use of IBM Db2 symbolics is unrestricted.
    Batch processor symbolics are not supported for IBM TEMPLATE data sets. The Batch Processor symbolics start with %%. For more information about these symbolics, see Batch Processor Automatic Symbolics.
Model Symbols Screen
To display the General Model Symbols screen, enter the S line command on the General Model Utilities screen. This screen lets you specify values for the symbolic variables that appear in the model utility. If the General Model Symbols screen was accessed using the SYMBOLS command, symbolics for all utilities are listed. You can insert (I), repeat (R), and delete (D) lines from the utility definition. The symbolic variables are displayed in alphabetical order.
To display a list of automatic symbolics, enter the AUTOSYMS (AS) command on the General Model Symbols panel. A list of automatic symbols is placed after the list of user symbolics. Use the QPRINT command to print the list of symbolics.
The following errors are flagged for the symbolics:
  • The symbolic name is invalid (N for name)
  • The symbolic replacement value is invalid (V for value)
  • A symbolic is used within the model, but it is not defined for the model (M for missing)
  • The symbolic is defined for the model, but it is not used (X for extra). This flag is informational only and does not indicate an error.
  • The symbolic uses itself as part of its definition (R for recursive)
You can specify a replacement value for the symbolic variable as needed. For example, you can replace SYSDA with DISK.
If the symbolic is assigned to an analysis model, the model name and model text are displayed.
Use the up and down scroll keys (PF7 and PF8) to scroll the symbolics list and analysis model text.
Press Enter on the General Model Utilities screen with no line commands. This will perform a model substitution, and the changes are saved. Once a value has been specified for all user-defined symbolics, press PF3 (End) to return to the General Model Utilities screen.
%CALC Function
You can use the %CALC function to calculate values based on the formula given. Values in the formula can be numeric literals or references to user or automatic symbolic variables that have numeric values. The %CALC function is commonly used on model utility definitions to calculate utility data set space requirements based on automatic symbolic variables.
Math is performed from left to right, and operations within parentheses are performed first. Examples are as follows:
(10+5*10) = 150 (10+(5*10)) = 60
Available operators are as follows:
  • (
    Serves as the left delimiter.
  • +
    Indicates addition.
  • -
    Indicates subtraction.
  • *
    Indicates multiplication.
  • /
    Indicates division.
  • )
    Serves as the right delimiter.
The following rules apply:
  • All equations must begin with a left delimiter and end with a right delimiter.
  • All equations must have a matching number of left and right delimiters. The equation (10+10(5*4)) is valid. The equation (10+10(5*4) is invalid.
  • All numbers must be integers from 0 to 999999. Leading zeros are allowed.
  • Blanks are
    not
    allowed. The equation (10+10) is valid. The equation
    (10 + 10) is invalid.
  • In division, all remainders are dropped.
%SUBSTR Function
When you edit a model utility from the General Model Symbols screen, you can derive substrings of symbolics by using the %SUBSTR function. %SUBSTR has three operands: start, length, and value. The following conditions apply when using substrings.
  • The operands can contain symbolics, calculations, or literals.
  • If the start operand has a value of 0, it is changed to 1.
  • The %SUBSTR( ) function is terminated when the closing parenthesis or a blank is found.
  • The value after all other substitutions has a maximum length of 128 bytes. The resulting value has its trailing blanks removed.