Pseudo Variables

There are a number of pseudo-variables you can specify within the GLOBAL_SECTION and SUB_SECTION definitions.

Pseudo-variables act as placeholders that are replaced at translation time with the appropriate values, as described in the following table. Pseudo-variable names are always enclosed within exclamation marks.

Pseudo-variables are used to customize the behavior of the FME Engine for the following purposes:

  • to assist with creating files and directories
  • to incorporate specific information in response messages

The pseudo-variables that you can specify are described in the following table.

Pseudo-Variable Name

Replacement Value Description

!FME_AUTO_FILE_NAME!

A file path value with an auto-generated filename component whose name is guaranteed to be unique.1

The file path represented by this pseudo-variable is the path specified by the FME_WORKING_DIR global directive plus the unique filename appended to it. The filename itself is generated before the translation so that multiple references to !FME_AUTO_FILE_NAME! will identify the same file throughout a single translation.

!FME_AUTO_FILE_NAME_SIMPLE!

The unique filename component in the !FME_AUTO_FILE_NAME! file path.

!FME_AUTO_DIR_NAME!

A directory path value with an auto-generated final directory component whose name is guaranteed to be unique.

The directory path represented by this pseudo-variable is the path specified by the FME_WORKING_DIR global directive plus the final unique directory name appended to it. The final directory name itself is generated before the translation so that multiple references to !FME_AUTO_DIR_NAME! identify the same directory throughout a single translation.

!FME_AUTO_DIR_NAME_SIMPLE!

The name of the unique final directory component in the !FME_AUTO_DIR_NAME! directory path.

!FME_ERROR_MSG!

The contents of the error message that contains the reason the translation failed.

This value isn’t available to the PRE_COMMANDS.

!FME_ERROR_NUMBER!

The FME Engine internal error number associated with the error message that’s returned.

!FME_INSTANCE_NAME!

The name of the FME Engine instance as configured with a given fmeEngineConfig.txt file.

FME Engine instance names are usually assigned in the Engine startup commands, which are defined in the processMonitorConfigEngines.txt file. The user-definable names typically reflect site-specific usage aspects of the FME Engine that’s started.

!FME_NUM_FEATURES_OUTPUT!

The number of features in the translation output.

!FME_RESULT_LIFETIME!

The value assigned to the FME_RESULT_LIFETIME global directive.

!fmeMacroName!

The value assigned to the named FME macro.

A pseudo-variable with the same name as the macro name can access the value of any macro defined to the FME Engine during translation.

Macros are defined to the FME Engine for a translation in one of the following three ways:

  • as parameters in the translation request
  • as defined in an FME workspace
  • as defined in the FME Engine configuration file