Solved

Set Database Joiner parameter dynamically


Badge +6

I have created a workbench that includes a DatabaseJoiner transformer that I want to pass a specific file too that will change each day (basically the file has the days date as its filename). However if I do this, I then cannot join on a field as the transformer reads the Dataset as a text string.

I did try an alternative to this using FeatureReaders (excel and generic) and passing them the dataset, however that has its own problems identifying the data fields.

What might be the best way to avoid these issues?

icon

Best answer by dbryantgeo 11 July 2018, 16:47

View original

6 replies

Badge

Could you share your workspace?

I think it is possible to use a scripted parameter and put it as a database name in joiner?

Badge +6

Hi @jneujens

Thank you for your reply, however it's not feasible to upload the workbench due to embedded connections. Therefore hopefully a clearer picture of my issues might suffice;

Database Joiner - I am trying to feed @Value into the dataset field, however it simply tries to find an .xsl called @Value

 

I then attempted to use a FeatureReader and use a FeatureMerger to do the join, however a FeatureReader does read in the .xsl file, but there are empty output values, presumably because it cannot read the schema. I'm also unable to identify the attributes of the records for use later on (in the FeatureMerger);

Badge +2

It would help to see a minimum-working-example of what you are trying to accomplish. What you're asking seems possible using a Published Parameter, but I think I don't really understand what you want to do. I've attached a small example workspace with a DatabaseJoiner. Perhaps you can show us what you hope to do using this as as an example. Example workspace: featurejoinsfmw.fmwt

Badge +6

Hi Guys, attached is a very simple version of what I'm trying to achieve;

Hopefully you can now see that I either want to feed the databasejoiner, or feature reader with parameter, or attribute and in either case it correctly expose the attributes.

If you were to run the workbench using the feature reader flow you'll see that the attributes and their values aren't exposed after the feature reader is hit, therefore I can't compare them with another dataset later on in the process.

If you view the databasejoiner, half the required information is missing as it doesn't appear to interrogate the .xls so that the data within is exposed for comparison and then use later on.

example.fmwt

Badge

Hi Guys, attached is a very simple version of what I'm trying to achieve;

Hopefully you can now see that I either want to feed the databasejoiner, or feature reader with parameter, or attribute and in either case it correctly expose the attributes.

If you were to run the workbench using the feature reader flow you'll see that the attributes and their values aren't exposed after the feature reader is hit, therefore I can't compare them with another dataset later on in the process.

If you view the databasejoiner, half the required information is missing as it doesn't appear to interrogate the .xls so that the data within is exposed for comparison and then use later on.

example.fmwt

Then I do not see your problem? Using the FeatureReader with the @Value(Date) in the filepath works fine for me?

 

 

Unless the schema is variable too, this approach should work. The FeatureReader needs somekind of fixed schema, so you have to refer to one file. But once the schema and feature types are set, you should be able to reuse this.

 

Badge +6
Then I do not see your problem? Using the FeatureReader with the @Value(Date) in the filepath works fine for me?

 

 

Unless the schema is variable too, this approach should work. The FeatureReader needs somekind of fixed schema, so you have to refer to one file. But once the schema and feature types are set, you should be able to reuse this.

 

You are abslutely correct, I was getting myself confused about choosing a feature to output would only ever read the file I chose, rather than use the dataset parameter of the FeatureReader.

 

 

Thank you very much, I'm a little annoyed I wasted everybody's time and spent ages trying different things myself for something so simple!

 

Reply