── FAMILY ─┬─<family specification>─────────────────────┬──────────────┤ ├─ = ──<task identifier>── ( ── FAMILY ── ) ─┤ ├─────┬─<string expression>──────────────────┘ └─ # ─┘
── <target family name> ── = ── <primary family name> ─────────────────► ►─┬─ ONLY ─────────────────────────────────┬───────────────────────────┤ └─ OTHERWISE ── <alternate family name> ─┘
── <family name> ──────────────────────────────────────────────────────┤
Explanation
The FAMILY attribute determines the families that the task will use when creating files or searching for files.
String expressions and string primaries that evaluate to constants can be used for FAMILY in the WFL job heading. WFL job parameters can be used in constant expressions.
Examples
The following is an example of a FAMILY assignment:
FAMILY DISK = DISK OTHERWISE MYPACK;
Note: | Most WFL statements can locate a file residing on either the primary family or the alternate family. However, the ADD, ALTER, ARCHIVE, CATALOG, CHANGE, COPY, MODIFY, MOVE, REMOVE, and SECURITY statements do not search the alternate family. |
The following FAMILY assignment uses a previously defined string variable named FAMSTRING:
FAMSTRING := "DISK = DISK ONLY"; . . . RUN OBJECT/FUGUE; FAMILY = #FAMSTRING1;
The following FAMILY assignment uses a string expression. STR1 and STR2 are string variables that were assigned values earlier in the job:
FAMILY = #("DISK = " & STR1 & " OTHERWISE " & STR2);
The following example assigns a task the family specification associated with the task variable named TASKVAR1. The task variable can receive a FAMILY assignment when it is declared, or it can inherit a FAMILY assignment from the task to which it was most recently assigned.
FAMILY = TASKVAR1 (FAMILY);
The FAMILY assignment is unique in that it does not require a number sign (#) before the expression <task identifier> (<attribute name>). Similar expressions, when used for other attributes, do require the number sign.