Introduction
The FME Platform provides users with a tremendous number of tools and techniques for managing and transforming a staggering variety of data formats. In order to generate the best possible outputs from FME workflows, these tools require precise instructions on what to do and how and where to do it. These instructions are derived from the parameter values that authors and users supply while building and running their FME workflows. This article will provide a high-level overview of the categories and types of parameters found throughout the FME Platform.
Parameters in FME
Every workspace and job executed by FME requires the specification of at least one parameter value before it will run successfully. Put another way, nothing happens in FME without the application of meaningful, contextually appropriate parameter values. Parameters, then, are very deserving of some careful consideration when planning and building an FME workflow.
Think about a given FME canvas object, like a Tester transformer, as if it were its own paragraph of an instruction manual. This paragraph, however, contains some task-specific fill-in-the-blanks.
A Tester transformer, written as an instructional fill-in-the-blank paragraph.
Parameters are those blank spaces in the paragraph. Once the instruction manual user completes each blank space with a task-specific word or phrase, the full paragraph’s instructions are much easier to understand and follow. In an FME context, the workspace user or author fills in those blanks with meaningful, contextually appropriate parameter values to complete each canvas object’s set of instructions. Once all canvas objects have relevant values specified for their parameters, a complete instruction manual (i.e. the workspace) is produced, which FME can readily execute.
In general, parameters in FME occur anywhere information can be entered or selected somehow. This information can be provided by a workflow author, user, or by reference to some other workflow parameter value.
This is a fairly broad definition considering the various dialogs, windows, and prompts users might encounter throughout the FME Platform. To make this definition more manageable, parameters in FME can be grouped into a series of categories and types, based on where they’re found in the platform, and the functionality with which they’re associated. The remainder of this article will first walk through each parameter category, and then each parameter type, found across the FME Platform.
Parameter Categories in the FME Platform
The following categories group FME's various parameters based on where they are found and, generally, how they're applied throughout the platform.
Reader and Writer Parameters
Reader and writer parameters provide instructions to FME on how data should be read into or written out of a workspace. These parameters are accessible from within the Add Reader or Add Writer dialogs.
From the Add Reader or Add Writer dialogs, users can click the Parameters button to access the more format-specific reader or writer parameters. All of these parameters are fully accessible from the Navigator window of FME Workbench after a reader or writer has been added to the workspace.
Users should pay careful attention to a workspace’s reader and writer parameters, as data will be brought into or out of a workspace differently (often significantly so!) based on the values applied to these parameters. If data looks unusual or behaves unexpectedly coming into or out of a workspace, there’s a good chance a reader or writer parameter needs some attention.
Feature Type Parameters
Feature type parameters provide instructions on how FME should handle each individual reader or writer feature type. These parameters may be accessed by simply double-clicking on a reader or writer feature type sitting on a workspace canvas or by expanding the Feature Types node of a reader or writer listed in the Navigator window.
It’s important to note that feature type parameters are applied in addition to reader and writer parameters. In other words, reader and writer parameters apply to all of their associated feature types, while feature type parameters are specified and applied on a per-feature type basis. Think of feature type parameters as a means of fine-tuning the reading or writing of data.
Transformer Parameters
Transformer parameters and their values help complete the specific instructions for how FME should execute each individual task of a workflow, beyond the reading or writing of data. These parameters are accessible after a transformer has been added to the canvas, by either double-clicking on the transformer itself or by expanding the Transformers node of the Navigator window.
If there are transformers missing parameter values throughout the workspace, and the workspace is run, FME will throw a warning alerting users to these missing parameter values:
The warning mentions by name the affected canvas object, and where to look to quickly remedy the situation. This is FME’s friendly way of telling users that it is missing some key instructions, highlighting just how important these parameter values are to the correct functionality of any given workflow. Providing meaningful values for all transformer parameters in a workspace is thus crucial to obtaining valuable outputs.
Custom Transformer Parameters
Custom transformer parameters help control the actions that are specific to custom transformers. These actions might include looping behavior or parallel processing.
These parameters are available under the Transformer Parameters node of the Navigator window when viewing the definition of a custom transformer in FME Workbench. Custom transformer definitions can be viewed by either opening an exported custom transformer’s .fmx file in FME Workbench, or by right-clicking a workspace’s embedded custom transformer and choosing to edit it.
Custom transformer parameters as viewed while editing an embedded custom transformer
It’s important to note that there may be slightly different options available in the Transformer Parameters node of the Navigator window when viewing the exported .fmx file vs. when viewing an embedded custom transformer's definition.
User Parameters
User parameters are created by workspace authors and are referenced by the values of other (target) parameters in a workflow. User parameters may be:
- Published: where users are prompted to provide their values at workspace runtime
- Private: where they are only visible to those users who have workspace editing privileges
User parameters are often employed to give workspace users / authors more convenient control over the values of key target parameters found throughout a workspace. Instead of having to hunt through a complex workspace to adjust the value of a particular target parameter, authors can instead define and apply a user parameter to the value of this target parameter, and then conveniently adjust the value of the user parameter from the User Parameters node of the Navigator window, or from the Parameter Prompt at runtime.
Adjust user parameter values from the Navigator window (at left) or the Parameter Prompt (at right)
User parameter definitions can be managed from the Parameter Manager. Access the Parameter Manager dialog by right-clicking the User Parameters node of the Navigator window, and selecting Manage User Parameters.
Note: Creating user parameters from the Parameter Manager dialog should be considered an advanced user task. Instead, user parameters are best created from the dropdown menu options available when specifying the target parameter's value. Please see the FME Support Center article, Published Parameters in FME Form, for details.
Workspace Parameters
Workspace parameters provide instructions on a variety of translation preferences, such as the preferred Python interpreter or Esri ArcGIS product license. These parameters also help authors specify metadata for the workspace. Expand the Workspace Parameters node of the Navigator window to see these parameters.
The metadata parameter options under the Workspace Parameters node are particularly useful for workspaces shared by many FME authors and users.
FME Parameters
FME parameters and their values reference specific FME system settings. Some examples of the type of values contained in FME parameters include:
- (FME_MF_DIR) - the file path to the current workspace
- (FME_MF_NAME) - the current workspace’s name
- (FME_BUILD_NUM) - the build number of the FME version in use
Combining an FME parameter with a string function to specify a target workspace parameter's value
FME parameters can be accessed and applied from text editors found throughout FME Workbench. These parameters can be applied in the same ways that user parameters are applied; in fact, FME parameters are private user parameters that have been configured to work with specific FME system settings.
FME Flow Parameters
Similar to FME parameters, FME Flow parameters and their values reference specific FME Flow system settings. These parameters can be applied while building a workspace in FME Form, but the values they reference are only available when the workspace is run from FME Flow. Some examples of the type of values contained in FME Flow parameters include:
- (FME_JOB_ID) - the identifier of the job that invoked the workspace
- (FME_SERVER_HOST) - the FME Flow hostname used to invoke the workspace
- (FME_SHAREDRESOURCE_LOG) - the FME Flow resources folder used to store job log files
FME Flow parameters may be accessed from text editors found throughout FME Workbench, or from the FME Flow Parameters node of FME Workbench's Navigator window. Since FME Flow Parameters are published user parameters, they can be applied in the same ways that user parameters are applied throughout a workflow.
Deployment Parameters
Deployment Parameters are a unique type of user parameter that can be created in FME Form or FME Flow and are applied to any target parameter whose expected value is a text string, web connection, or database connection.
Creating a deployment parameter via the FME Flow Web UI
Deployment parameters are stored for reuse in an FME Flow Deployment Parameter Store, and offer a convenient way to standardize and manage the application of shared resources amongst the users of a common FME Flow environment.
Parameter Types in the FME Platform
Every parameter found in the FME Platform has an underlying parameter type associated with it. Parameter types provide instructions to FME on how a given parameter's value should be interpreted and can be thought of as parameter definitions.
Generally, FME includes parameters of the following types:
These parameter types are also visible when the green plus icon is selected from the Parameter Manager in FME Workbench.
Careful attention must be paid to parameter type, particularly when setting one parameter (the target) to reference the value of another parameter (the applied). This is a common scenario for the application of user parameters. If there is a parameter type mismatch between the target parameter and the applied parameter, FME may misinterpret the referenced parameter's values, resulting in translation or job errors.
Additional Resources
Published Parameters in FME Form
Working With Conditionally Visible Published User Parameters in FME Form
Python Scripted Parameters in FME
Comments
0 comments
Please sign in to leave a comment.