id (item ID) processing code

The id processing code is used by the Update processor to create new item-IDs. Originally implemented for the Update Processor, it was later implemented for all write operations within the D3 Windows FSI to facilitate transaction enqueuing for FSI Hot Backup.

When an item is written without a specified item-ID, a new item-ID is created for it. The item-ID is created according to the id function indicated in the corresponding subcode. If there is no id processing subcode, the item-ID is created by concatenating the current date with a system-wide sequence number. The general format is only valid in the correlative (attribute 8) of the file defining item.
System Processors Update
Code Type File Defining
Dictionary Attributes Correlative

Syntax

id{subcode}

Parameter(s)

subcode a.code Uses the specified a processing code to create the item-ID. Since an a processing code can call a FlashBASIC program, any user-defined item-ID can be created.

Example: ida1 creates an ID based on the first attribute of the item.

n (integer number) Creates numeric item-IDs, starting with n. As a protective mechanism to avoid the case of stepping on existing item-IDs, if the item-ID already exists in the file, n is automatically incremented until a unique item-ID is found. The system updates the value in the processing code with the latest value.

Example: id1 will first create item-ID 2, then increment until the ID reaches the maximum value stored in the File Control Block. Once this value is reached, the process starts over at 1.

Warning: If all item-IDs already exist on file, the next item in line will be overwritten.
n{-m} FSI Only: (integer number) Creates numeric item-IDs, starting with n and ending with m minus one. As a protective mechanism to avoid the case of stepping on existing item-IDs, if the item-ID already exists in the file, n is automatically incremented until a unique item-ID is found. The system updates the value in the processing code with the latest value. The m (maximum) option restarts at the item-ID at 1 once it reaches the maximum specified item-ID number.

Example: id1-4 will first create item-ID 2, then 3 then 1. 4 will not be used.

Warning: If all item-IDs already exist on file, the next item in line will be overwritten.
t Creates new item-IDs by concatenating the internal date with the internal time, measured in seconds. If two item-IDs are assigned within the same second, an alphabetic character, starting with the letter a, are appended to the item-ID to ensure that each item-ID is unique (see the system(19) BASIC function in the system() function topic).

Example: idt

call VME Only: Uses a BASIC or FlashBASIC subroutine to create the item-ID.

Example: idcall dm,bp, idncall.sub

Subroutine:
subroutine idncall.sub(id)
id=whatever
return