Skip to main content
Question

How to use Variable Setter and Retriever together?


mattwilkie
Supporter
Forum|alt.badge.img+11

New workspace >> add Creator >> add VariableSetter >> define a variable name and a value >> add VariableRetriever >> connect Setter to Retriever.

>> Run --> I get warning about Retriever being used without corresponding Setter. This doesn't make sense, they are clearly connected.

2021-04-15 14_51_34-_NONE → NONE (Untitled) - FME Workbench 2020.2Question 2: why does the Setter output use the name of the Creator (_creator_instance) and not the name I defined in the settings?

 

2021-04-15 14_58_16-_NONE → NONE (Untitled) - FME Workbench 2020.2 

 

 

 

 

4 replies

redgeographics
Celebrity
Forum|alt.badge.img+49

Q1:

I think this only occurs when you're using Feature Caching and do a partial run that does include the VariableRetriever but not the VariableSetter. In other words: in that case the variable is not set. The solution is to include the VariableSetter in that run (e.g. by running from that transformer) or simply not using feature caching.

 

Q2:

_creation_instance is the attribute created by the Creator, the variable you're setting is not actually an attribute of the feature yet, that's what the VariableRetriever is for.


mattwilkie
Supporter
Forum|alt.badge.img+11
  • Author
  • Supporter
  • April 16, 2021
redgeographics wrote:

Q1:

I think this only occurs when you're using Feature Caching and do a partial run that does include the VariableRetriever but not the VariableSetter. In other words: in that case the variable is not set. The solution is to include the VariableSetter in that run (e.g. by running from that transformer) or simply not using feature caching.

 

Q2:

_creation_instance is the attribute created by the Creator, the variable you're setting is not actually an attribute of the feature yet, that's what the VariableRetriever is for.

Q1: Yes feature cache is on, but the variable has been set, or at least it should have been. See screenshot and the (1) on the connectors preceeding Retriever. Turning feature caching off isn't really an option at this stage. It's too important to be able to inspect what's passed through the processing chain as I develop.

 

Something wierd here. If I select a "Creator-->Set-->Retrieve" chain from a workspace where it doesn't work, paste into a new workspace, change nothing, run it: It works. Now, if I select this 3-part chain in the new workspace and copy-paste it back to the old workspace: it continues to work. And: the original chain continues to not work. Inspecting all the properties of the 3 components shows nothing different other than the component name (appended underscore and number: Creator_2, VariableSetter_2, ...).

Attached is a workspace that demonstrates this, on my machine anyway.

 

I tried various combinations of Run (F5), Run Entire (Shift-F5), Run To This, and disabling caching, running, and then enabling caching and running again. I did not identify a path where setting and retrieving would work or not work reliably. Meaning I did not identify a workspace creation sequence where I could reliably get the var-set-retrieve sequence to always work, or always not work.

 

 

 


david_r
Celebrity
  • December 13, 2022
mattwilkie wrote:

Q1: Yes feature cache is on, but the variable has been set, or at least it should have been. See screenshot and the (1) on the connectors preceeding Retriever. Turning feature caching off isn't really an option at this stage. It's too important to be able to inspect what's passed through the processing chain as I develop.

 

Something wierd here. If I select a "Creator-->Set-->Retrieve" chain from a workspace where it doesn't work, paste into a new workspace, change nothing, run it: It works. Now, if I select this 3-part chain in the new workspace and copy-paste it back to the old workspace: it continues to work. And: the original chain continues to not work. Inspecting all the properties of the 3 components shows nothing different other than the component name (appended underscore and number: Creator_2, VariableSetter_2, ...).

Attached is a workspace that demonstrates this, on my machine anyway.

 

I tried various combinations of Run (F5), Run Entire (Shift-F5), Run To This, and disabling caching, running, and then enabling caching and running again. I did not identify a path where setting and retrieving would work or not work reliably. Meaning I did not identify a workspace creation sequence where I could reliably get the var-set-retrieve sequence to always work, or always not work.

 

 

 

I realize this is an old thread, but I just created an Idea for this issue, feel free to upvote to gain visibility: https://community.safe.com/s/bridea/a0rDm000000CbI9IAK/variableretriever-variablesetter-should-play-nice-with-feature-caching


mattwilkie
Supporter
Forum|alt.badge.img+11
  • Author
  • Supporter
  • December 13, 2022
mattwilkie wrote:

Q1: Yes feature cache is on, but the variable has been set, or at least it should have been. See screenshot and the (1) on the connectors preceeding Retriever. Turning feature caching off isn't really an option at this stage. It's too important to be able to inspect what's passed through the processing chain as I develop.

 

Something wierd here. If I select a "Creator-->Set-->Retrieve" chain from a workspace where it doesn't work, paste into a new workspace, change nothing, run it: It works. Now, if I select this 3-part chain in the new workspace and copy-paste it back to the old workspace: it continues to work. And: the original chain continues to not work. Inspecting all the properties of the 3 components shows nothing different other than the component name (appended underscore and number: Creator_2, VariableSetter_2, ...).

Attached is a workspace that demonstrates this, on my machine anyway.

 

I tried various combinations of Run (F5), Run Entire (Shift-F5), Run To This, and disabling caching, running, and then enabling caching and running again. I did not identify a path where setting and retrieving would work or not work reliably. Meaning I did not identify a workspace creation sequence where I could reliably get the var-set-retrieve sequence to always work, or always not work.

 

 

 

done!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings