Tutorial: Dynamic Workflows

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

A dynamic workflow references schema flexibly from the source, destination, and/or external sources, rather than being locked to predefined, fixed schema definitions. This schema-independent approach allows workflows to adapt by either determining the schema at runtime or, when available, incorporating fixed schema definitions (such as a reader resource). This allows dynamic workflows to handle varying inputs, reducing long-term maintenance requirements.

example-dynamic-flow.png

Files

Dynamic Workflow Basics

Basics of Dynamics: See this article for more information about dynamic workflows, including common uses and components.

Tutorial Series

The following tutorials display different methods for creating dynamic workflows. When creating a dynamic workflow, the destination Feature Types must know how to obtain the desired output schema. The source of this schema differs across the examples. The workflow is used when the desired schema differs, as shown below.

Dynamic Workflows: Destination Schema as a Mirror Image of the Source Dataset:
Demonstrates a simple dynamic workspace. This type of workflow can output an exact copy of the Source Feature Type schema when the schema is not known in advance.
HIStQa3Y0BjrPVYfPFiKUOvCNFTMrbVg3QidyAcZwQCg7gC6ekLKZlsb3QKkPblghjKe-JKfy7CCG_ITAmeF--qHCYVSR9QqixA51_9j0id2ovJ2SPaorNDL5i60yy-_4g
Dynamic Workflows: Destination Schema is Derived from an External Dataset: Demonstrates using workspace resources with an external dataset to provide a destination schema. This type of workflow is used when the desired schema is different from the source schema. YMF-VBa7My5MFdHoj_HYCxXCiSZnVJ5YzNxXhw5wiS0_P-qRfEh5c5KkBJ7oETGnzGdYX307Zy4vmboJj7CKH0XYFV2E2HOOe67ISpKmD-XdgY-Tvp-WyT8iuf_4IfKoOA
Dynamic Workflows: Destination Schema Contains Different Feature Type Names: Demonstrates how to handle a Source Schema and Destination dataset with different feature type names. When this occurs we need to use a special parameter called the 'Schema Definition Name'. The example also uses a database as the external Dataset. 19SKUCIcnaklG6R21KBbJBI-DoR5knbt80qEIuIvKsmvooEPmEbtFQfEtjqEduZsENREPUTX-lKuJt027KcIaXwNI0n7pBz7cCVxqWq-TJGR3tZTkO-9ib68X4y_4eLDJA
Dynamic Workflows: Destination Schema is Derived from a Lookup Table:
Demonstrates using an external lookup table to provide a destination schema. This type of workflow is useful when maintaining a schema outside of the FME environment.
2gTag5ThXzi6-MSi1-Mmgekv3eE9vWtnGLyunNwRZ1enyy4CcJKan-JyqBXSNgzibBEvsg7ReP6TZLyMA6wE5eozScR-vXgVTroQnCdrfXkw4lR5KnKNCKi1RRy61bUUrA
Dynamic Workflows: Destination Schema is Derived from a Schema Feature: Demonstrates using list attributes in a workspace to provide a destination schema. This is useful when defining the destination schema dynamically within the workspace. dbxJnHkl6I5hfOWstUKdMUG0L5tfJVygNl4zW-zNl4WwPtTgXNr4Gqlex-GnF7mydQy_n8aztj5erSca9EkM4K0GPrI3sN4JWSJ25Q34pLjCe3pviRFBERZciNyay3C6eg
Dynamic Workflows: Destination Schema Derived from Multiple Sources: Demonstrates using List Attributes in a workspace to provide a destination schema when there are multiple source schemas. This is useful when combining multiple source datasets with unknown schemas or adding unknown attributes to a static schema. multisourcedynamicicon.png

Additional Articles

Advanced Technique - Using the SchemaMapper
Discusses the use of the SchemaMapper transformer in a dynamic setting. This transformer can simplify the workflow and consolidate all schema mapping details into an external source.

Advanced Technique - Modifying the Schema Feature
Using the SchemaSetter custom transformer to build a schema feature, the feature will be manipulated using FME. This is a common pattern and should be used whenever you need to build a schema and edit its contents.

Dynamic Workflows: Dealing with Schema Drift
Using the SchemaScanner and ChangeDetector transformers, we can detect schema changes and alert the user before any changes are made to existing dataset schemas.
 

Additional Resources

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.