Skip to main content

I have a work space setup with multiple reader types. One reader will read values from an HTML table to populate attributes within the work space. On rare occasions when reading the HTML table, there will be an empty value from which I currently have the work space set to terminate with a message stating that a certain value was not found.

Is there a way to prompt the user for that certain missing value if not found in the HTML table, instead of just terminating the session like I have it set to now? I know user parameters have to be set before the work space is run, just wanted an idea of how to combat this situation.

FME Desktop 2017 Beta

 

Hi @madwarren as you state yourself this will probably wont be possible in one workspace, but possibly by catching the empty value and using it in a second workspace, where the user can set the value, is a possible way to treat such situations.

Hope this helps


I'm not sure exactly how it would be implemented but could a SystemCaller be used to get the input from the user through running a batch file?


I'm not sure exactly how it would be implemented but could a SystemCaller be used to get the input from the user through running a batch file?

I was able to do a quick proof of concept using the SystemCaller to open up a command window running a batch file that asked for user input. That input was saved to a text file which was read in by a FeatureReader.

 

 

At the moment it's messy and using a decelerator to give time for the user to input the response rather than knowing when the batch file has finished but I'll work on it some more.

 

 


My solution for prompting the user for input during the run is:

1. Have a SystemCaller running;

start /wait cmd.exe /k "c:\\temp\\fmeprompt.bat"

2. The fmeprompt.bat file is:

@echo off

 

set Output="c:\\temp\\fmeprompt.txt"

 

del %Output%

 

set /p VarOne=Enter variable one value:

 

set /p VarTwo=Enter variable two value:

 

set /p VarThree=Enter variable three value:

 

set /p VarFour=Enter variable four value:

 

 

REM enter your desired output here

 

echo Variable One = %VarOne% >> %Output%

 

echo Variable Two = %VarTwo% >> %Output%

 

echo Variable Three = %VarThree% >> %Output%

 

echo Variable Four = %VarFour% >> %Output%

 

 

echo.

 

echo File has been placed %Output%

 

 

exit

3. Use a FeatureReader to read in fmeprompt.txt and process the results input by the user.

 


My solution for prompting the user for input during the run is:

1. Have a SystemCaller running;

start /wait cmd.exe /k "c:\\temp\\fmeprompt.bat"

2. The fmeprompt.bat file is:

@echo off

 

set Output="c:\\temp\\fmeprompt.txt"

 

del %Output%

 

set /p VarOne=Enter variable one value:

 

set /p VarTwo=Enter variable two value:

 

set /p VarThree=Enter variable three value:

 

set /p VarFour=Enter variable four value:

 

 

REM enter your desired output here

 

echo Variable One = %VarOne% >> %Output%

 

echo Variable Two = %VarTwo% >> %Output%

 

echo Variable Three = %VarThree% >> %Output%

 

echo Variable Four = %VarFour% >> %Output%

 

 

echo.

 

echo File has been placed %Output%

 

 

exit

3. Use a FeatureReader to read in fmeprompt.txt and process the results input by the user.

 

 

Thanks @imapping I'll give it a go.. Thanks for your help!

 


My solution for prompting the user for input during the run is:

1. Have a SystemCaller running;

start /wait cmd.exe /k "c:\\temp\\fmeprompt.bat"

2. The fmeprompt.bat file is:

@echo off

 

set Output="c:\\temp\\fmeprompt.txt"

 

del %Output%

 

set /p VarOne=Enter variable one value:

 

set /p VarTwo=Enter variable two value:

 

set /p VarThree=Enter variable three value:

 

set /p VarFour=Enter variable four value:

 

 

REM enter your desired output here

 

echo Variable One = %VarOne% >> %Output%

 

echo Variable Two = %VarTwo% >> %Output%

 

echo Variable Three = %VarThree% >> %Output%

 

echo Variable Four = %VarFour% >> %Output%

 

 

echo.

 

echo File has been placed %Output%

 

 

exit

3. Use a FeatureReader to read in fmeprompt.txt and process the results input by the user.

 

prompt-user-for-input-during-workflow.fmw

 

 

@madWarren Here's a workspace (2017 beta) that shows my idea in action.

 

 


Reply