In the following example, RECORD_IDENTIFIER is the tag variable. The value of RECORD_IDENTIFIER at run time determines which VARIANT is current according to the translation table in the descriptive text. STOCK STRUCTURE. /* RECORD_IDENTIFIER determines field type: S --> In-stock record. B --> Back-order record. O --> Out-of-stock record. */ RECORD_IDENTIFIER DATATYPE IS TEXT SIZE IS 1 CHARACTER. VARIANTS OF RECORD_IDENTIFIER. VARIANT VALUE IS "S". IN_STOCK STRUCTURE. PRODUCT_NO DATATYPE IS TEXT SIZE IS 8 CHARACTERS. DATE_ORDERED DATATYPE IS DATE. STATUS_CODE DATATYPE IS BYTE. QUANTITY DATATYPE IS LONGWORD ALIGNED ON LONGWORD. LOCATION ARRAY 1:4 DATATYPE IS TEXT SIZE IS 30 CHARACTERS. UNIT_PRICE DATATYPE IS LONGWORD SCALE -2. END IN_STOCK STRUCTURE. END VARIANT. VARIANT VALUE IS "B". BACK_ORDER STRUCTURE. PRODUCT_NO DATATYPE IS TEXT SIZE IS 8 CHARACTERS. DATE_ORDERED DATATYPE IS DATE. STATUS_CODE DATATYPE IS BYTE. QUANTITY DATATYPE IS LONGWORD ALIGNED ON LONGWORD. SUPPLIER ARRAY 1:4 DATATYPE IS TEXT SIZE IS 30 CHARACTERS. UNIT_PRICE DATATYPE IS LONGWORD SCALE -2. END BACK_ORDER STRUCTURE. END VARIANT. VARIANT VALUE IS "O". OUT_OF_STOCK STRUCTURE. PRODUCT_NO DATATYPE IS TEXT SIZE IS 8 CHARACTERS. DATE_LAST_SOLD DATATYPE IS DATE. END OUT_OF_STOCK STRUCTURE. END VARIANT. END VARIANTS. END STOCK STRUCTURE.