Problem Statement
The DatabaseJoiner transformer in FME currently requires users to hardcode the database name, making it less flexible in situations where the target database changes based on data attributes or workflow conditions. While more complex transformers such as SQLExecutor or FeatureReader can handle dynamic database selections, they often come with added complexity and overhead for some usage. DatabaseJoiner, on the other hand, is lightweight and convenient but lacks the ability to select databases dynamically.
Current State
At present, the database name must be specified manually in the DatabaseJoiner parameters, which limits its usefulness in workflows involving multiple or changing databases. This constraint makes it challenging to integrate the transformer into more dynamic FME workspaces where workflows adapt based on data or business rules.
Proposed Enhancement
Introduce dynamic database selection to the DatabaseJoiner by allowing the use of:
-
Attributes: Enable users to specify the database name using an attribute, making it possible to choose the target database based on runtime conditions. For instance, an attribute that holds the database name could be used to direct data flows to the correct database connection.
-
Conditional Values: Introduce support for conditional expressions, allowing users to select the database connection based on criteria derived from data values.
Key Benefits
-
Increased Flexibility: With dynamic database selection, DatabaseJoiner would better adapt to varying data sources and workflows without requiring manual intervention.
-
Streamlined Workflows: Automating database selection based on attributes or conditions would reduce the need for user input and enable smoother integration across different databases.
-
Improved Reusability: FME workspaces could become more generic and adaptable, capable of handling multiple database connections without extensive modifications