HELP: FLAM parameter for updating an existing archive TYPE: OBJECT SYNTAX: FLAM(MBRMODE=STOP/APPEND/OVERWRITE,RECMODE=SEQUENTIAL/INSERT/UPDATE/KEYED/DELETE/INSWRN/UPDWRN/DELWRN/INSIGN/UPDIGN/DELIGN/DELNOC/DELWNC/DELINC/DELFCL/DELWFC/DELIFC,KEYMODE=ADD/REPLACE,DECRYPT/IMPORT.{},ENCRYPT/EXPORT.{},MEMBER='str',STATE='str',DEFAULTS(),ROW[()...],NORLBK[=num],REMOVE,ARCCMT/COMMENT='str',MBRCMT='str')
This object defines how the FLAM archive will be open for update/append.
When an existing archive is opened, the behavior is determined on the one hand by the member mode and on the other by the record mode. Member mode is set to STOP by default, which means that an error occurs if a member that already exists is to be written. With APPEND, the existing member is opened and positioned at the end, where writing can then continue, which is the default when an archive is opened for modification (TO.MOD()). In addition to APPEND, there is also OVERWRITE, which causes the existing member to be deleted and a new one with the same name to be written.
The record mode determines how each individual record is handled. By default, the records are simply updated sequentially, which is particularly useful for a new member or a member that is overwritten. In this case, you can also use the INSERT record mode if you want to ensure that no duplicate records are added to the member, which of course always consumes more computing time with large files. If there are already records in the member, you can update or delete them. If you want new records to be inserted and existing records to be updated, you can use the KEYED keyword. Updates, inserts and deletes are of course only possible if at least one column has been indexed and labeled as the primary key. Other special modes can be used to set a warning or an ignore as error handling instead of an error if, for example, some records are not found during an update or delete or if one of the records already exists during an insert. When deleting, an entire matrix may end up empty. By default, a cleanup is performed when the member is closed, which can be deactivated with the no clean variants. If you also want to remove these empty matrices later, you must work with force clean so that all empty segments are removed from the member matrix.
Note: It is advantageous if the records are entered in the order in which they are to be manipulated later, so that the records concerned are as close together as possible.
Note: If you are sure that new records are unique when loading them, you should write them sequentially, as this is much faster than using the insert.
The KEYMODE defines whether any new encrypted keysets defined should overwrite the old ones used for reading or whether they should be added here, with the latter being the default.
The name of the file in the archive is determined via the member specification. INPUT TO OUTPUT NAME MAPPING is available for this purpose. You can overwrite the determined member attributes via the state specification, which is only recommended if you know what you are doing here.
NUMBER: MBRMODE=STOP/APPEND/OVERWRITE - Error handling if the same member name is used again [STOP if NEW/OLD or APPEND if MODIFY]
STOP - Stop processing with an error
APPEND - Add the new data to the existing file or member
OVERWRITE - Overwrite the existing file or member
NUMBER: RECMODE=SEQUENTIAL/INSERT/UPDATE/KEYED/DELETE/INSWRN/UPDWRN/DELWRN/INSIGN/UPDIGN/DELIGN/DELNOC/DELWNC/DELINC/DELFCL/DELWFC/DELIFC - Define record handling for keyed members [SEQuential]
SEQUENTIAL - Sequential processing (no verification of keys (simple and fast load))
INSERT - Only new records are inserted (error if record already exists)
UPDATE - Only existing records are updated (error if record not exist)
KEYED - Insert record if new and update record if exist
DELETE - Delete existing records (error if record not exist)
INSWRN - Only new records are inserted (warning if record already exists)
UPDWRN - Only existing records are updated (warning if record not exist)
DELWRN - Delete existing records (warning if record not exist)
INSIGN - Only new records are inserted (ignore if record already exists)
UPDIGN - Only existing records are updated (ignore if record not exist)
DELIGN - Delete existing records (ignore if record not exist)
DELNOC - Delete existing records but no cleanup (error if record not exist)
DELWNC - Delete existing records but no cleanup (warning if record not exist)
DELINC - Delete existing records but no cleanup (ignore if record not exist)
DELFCL - Delete existing records with forced cleanup (error if record not exist)
DELWFC - Delete existing records with forced cleanup (warning if record not exist)
DELIFC - Delete existing records with forced cleanup (ignore if record not exist)
NUMBER: KEYMODE=ADD/REPLACE - Define re-keying mode for existing archive [ADD]
ADD - Add the recipient to the existing encrypted keysets
REPLACE - Replace the exsiting keysets with the new recipiant
STRING: MEMBER='str' - Name of member in the FLAM archive [origin]
STRING: STATE='str' - State string with attributes of the member [origin]
NUMBER: NORLBK=num - No rollback as long as this amount of errors is not exceeded [FALSE]
SWITCH: REMOVE - Remove member from archive if an error occurs [FALSE]
STRING: ARCCMT/COMMENT='str' - User comment for FLAM archive (static no mapping) [KEEP]
STRING: MBRCMT='str' - Member comments in FLAM archive (with input output name mapping)