Syntax FACTORY_DEF RecorderFactory [INPUT FEATURE_TYPE [ ]* []*]* [FEATURE_FILE ]+ [MAX_FILE_BYTES ] [COMPRESSION_LEVEL (0-9)] [PASSPHRASE ] [BYTE_ORDER (NATIVE|LITTLE_ENDIAN|BIG_ENDIAN)] [STORE_SCANNED_SCHEMA (YES|NO)] [CREATE_SPATIAL_INDEX (YES|NO)] [MAX_FEATURES_TO_RECORD |[ ]+] [FEATURE_TYPE_ATTRIBUTE ] [LARGE_GEOMETRY_DATA_STORAGE (FULL|REFERENCE|NONE)] MODE (RECORD|RECORD_PASS_THROUGH|PLAYBACK|PLAYBACK_AT_END) [NO_LOGGING] [OUTPUT RECORDED FEATURE_TYPE [ ]* []*]* Overview This factory allows FME to record all FME features that pass through the factory pipeline and store the results in a file on disk. The disk file, referred to as a feature store, can be used later to insert the same features back into the feature pipeline for this or any other mapping file. See the FME Feature Store Reader/Writer chapter in the FME Readers and Writers manual for more details on this format. Applications of the RecorderFactory include: Archiving raw, partially processed, or fully processed features in a format-neutral manner Shipping feature data - especially from database-oriented systems - for processing at another site Making a snapshot of data imported from a particular format to assist in fine-tuning mapping files Note: If you do not have a current version of FME and you are using the FFS format for data exchange or storage, you may receive this error message: No geometry mapping entry found for 'fme_raster' in metafile 'C:\Program Files\FME_1378\metafile\FFS.fmf'. Program Terminating. FFS files that are created with recent FME builds cannot be read by some earlier versions of Workbench (build 1378 and earlier). The factory has the following modes of recording and playback: If the mode is RECORD_PASS_THROUGH, then the factory will record each feature it receives and immediately pass it through to the rest of the FME for further processing. If the mode is RECORD, then the factory will record each feature it receives but wait until the end of translation before it sends all recorded features through to the rest of the FME for processing. This method is useful because if one of the features causes the FME translation to fail, the feature file will be complete and usable, whereas if a failure occurs when using the RECORD_PASS_THROUGH mode, the feature file may not be usable. If the mode is PLAYBACK, the features will be restored to the FME factory chain before any other features created in previous factories or read from an input data source. If the mode is PLAYBACK_AT_END, the features will be restored to the FME factory chain after any other features created in previous factories or read from an input data source. Tip: When the factory is in playback mode, multiple feature files can be specified. In this case, it plays back each of the files in sequence. If any of the playback files is a directory, then all files in that directory which have an extension of .ffs will be played back. Note: Due to run-time library limitations, there is a maximum size limit (2^32-1 bytes) for an FME recording file. If this limit is exceeded when creating a recording, the output file will be split and a second recording will be created. The second recording will have a sequence number appended to it. When the recording is played back, the second recording file is also automatically played back. For example, if roads.ffs was being created and it exceeded the limit, the extra features would be output to roads_1.ffs. Both recordings would automatically be played back at playback time. The MAX_FILE_BYTES directive alters the size limit of individual recording files to the user-defined size. Recording This factory creates compressed feature stores. The user may specify a COMPRESSION_LEVEL value between 0 and 9. A lower compression level will result in faster operation for both reading and writing while a higher compression level will result in smaller file sizes. Note that if a spatial index has been requested then this forces a non-compressed output .ffs file to allow for efficient random access. Compressed feature stores may also be created with a PASSPHRASE to encrypt the output file for additional security. The default COMPRESSION_LEVEL is 6 and no PASSPHRASE is set. The directive BYTE_ORDER indicates if the resulting file should be optimized for either LITTLE_ENDIAN or BIG_ENDIAN machines. (For example, the architecture of machines running Microsoft Windows is little endian, while the Solaris architecture is big endian.) The BYTE_ORDER of NATIVE means the file should be optimized for the type of machine it is currently running on. Note: All files created can be read back on machines of any byte order; the only issue is that reading back files optimized for the opposite byte order will take slightly longer. The default BYTE_ORDER is NATIVE. The directive STORE_SCANNED_SCHEMA allows users to specify newly created FFS files to store scanned schemas automatically accumulated from all features passed into it. The default for this directive is No. The directive CREATE_SPATIAL_INDEX allows users to create spatial index (.fsi) files along side the newly created FFS files. This allows for efficient spatial queries on the resultant file such as clipping to a search envelope or finding a specified feature. Note that if a spatial index has been requested then this forces a non-compressed output .ffs file to allow for efficient random access. The default for this directive is No. The directive MAX_FEATURES_TO_RECORD allows users to specify the maximum number of features to record. This parameter may be specified as a single integer. Alternatively, this may be specified as a pairwise list of arguments to impose a limit only on specific platforms. If a specified platform matches the value of the FME_PLATFORM preprocessor definition, this limit will be applied on the current platform. Otherwise, the directive will be ignored. The FEATURE_TYPE_ATTRIBUTE directive specifies an attribute name containing the feature type for each feature. - When this keyword is present, the feature type for each feature will be set to the value of this attribute. If the keyword is present with no value, the fme_feature_type attribute will be used. If a feature is missing the specified attribute, the feature type will be set to __RECORDED__. - When this keyword is not present, the feature type of input features will be left untouched. The FSC_SCHEMA directive allows users to pass in the strict schema instead of scanning it through the features passed through. It is formatted as a comma-delimited name value sequence where each part is FMEParsableText-encoded. Additionally, a user facing display name for a feature type can be supplied as a FMEParsableText-encoded value via the FEAT_TYPE_DISPLAY_NAME directive. The LARGE_GEOMETRY_DATA_STORAGE directive specifies how the data for "large" geometries (e.g. rasters or point clouds) is stored - FULL will write the full geometry data to disk, typically in a sidecar file. - REFERENCE will write a reference to the source dataset. This is much faster to write out than FULL, but would be unreliable for files that are intended to persist. It's primarily intended to speed up Feature Caching. This mode is not supported in all cases; when unsupported, FULL will be the fallback. - NONE will drop the data, and write only metadata. Playing Back This factory plays back both compressed and non-compressed feature stores. If a PASSPHRASE was used when creating the compressed feature store, it must be specified during playback. Tip: If the feature store was recorded as PORTABLE using a version of the FME prior to FME 2002, the deprecated directive PORTABLE will be required; otherwise, this directive is no longer necessary. When the NO_LOGGING keyword is specified, the factory will not perform any logging except in the case of an error. This is useful for when the transformer is "hidden" and is not visible in a workspace, eg when feature caching is enabled. Output Tags