FME_END_PYTHON

The FME_END_PYTHON directive specifies a Python script file to execute just after translation has completed, either successfully or prematurely due to an error being encountered.

If the translation ended due to an error, the script is executed after all cleanup is done, all reader and writers are shut down, and the log file has been closed. If the translation was successful, the script is executed after all the readers and writers have finished their work, and the log file has been closed.

The script has access to any global Python variables set in the FME_BEGIN_PYTHON script.

The script has access to a number of variables and functions in the 'fme' Python module that contain statistics and other information about the translation.

Note   To import the 'fme' Python module, execute the statement import fme.

The script may access the following functions variables. Note that if the translation failed, only the fme.status and fme.failureMessage are guaranteed to contain valid values.

Global Function

Description

fme.resolveFMEMacros(value)

Resolve all FME macros in the input string and return the resolved string. FME macros are defined as all character sequences that match the pattern $(<alphanumeric characters including '_'>).

If a matching pattern does not resolve to an FME macro, the matching pattern will remain untouched.

fme.getAbsolutePath(fileName)

Given an input file name or FME macro of a file name, this method will return an absolute path of the file name.

Unless the resolved input file name is an absolute path itself, the absolute path will be determined with the assumption that the input is relative to the executing Workspace.

 

Global Variable

Contents

fme.cpuTime

The total CPU time in seconds from just before the FME_BEGIN_PYTHON script was called until just before the FME_END_PYTHON script was called.

 

fme.cpuUserTime

The amount of user CPU time in seconds from just before the FME_BEGIN_PYTHON script was called until just before the FME_END_PYTHON script was called.

 

fme.cpuSysTime

The amount of system CPU time in seconds from just before the FME_BEGIN_PYTHON script was called until just before the FME_END_PYTHON script was called.

 

fme.elapsedRunTime

The actual elapsed (wall clock) time in seconds from just before the FME_BEGIN_PYTHON script was called until just before the FME_END_PYTHON script was called.

fme.failureMessage

The failure message if the translation failed, blank if the translation succeeded.

fme.featuresRead

A Python dictionary, indexed by feature type, which holds the number of features read for that feature type.

fme.featuresWritten

A Python dictionary, indexed by feature type, which holds the number of features written for that feature type.

fme.licensing (FME 2013+) The edition information and FME license type.

fme.logFileName

The name of the log file used for this translation.

Note  Writing custom (user-defined) messages to the log file varies depending on whether it is during the start-up or shutdown phase. In a start-up script (because FME already has the log file open, and it is dangerous to open it more than once) you should use fmeobjects.FMELogFile().

fme.macroValues

A python dictionary, indexed by macro name, which holds the value of each macro known within the workspace or mapping file at the end of parsing.

fme.mappingFileId

The value of MAPPING_FILE_ID keyword if specified in the mapping file

fme.memoryUsage (FME 2013+) The amount of memory (in kilobytes) in use at the end of the translation.

fme.peakMemoryUsage (FME 2013+)

The maximum amount of memory that was used at any point during the translation.

fme.processID (FME 2013+)

The ID of the current process.

fme.numFeaturesLogged

This variable records the total number of requests for features to be logged. This can be helpful to detect features that a writer may have rejected.

Note that to avoid accumulating hundreds of features in the log, FME by default suppresses all log attempts after the first 20. Therefore, the actual number of features logged may be fewer than the number requested.

fme.status

False if the translation failed and True if it was successful

fme.totalFeaturesRead

The total number of features read

fme.totalFeaturesWritten

The total number of features written