Question

To use comma in variable of WorkspaceRunner


Badge

Hello, would be glad to find the solution: to use comma in variable by WorkspaceRunner. For example, i have Mainprozess and subprozess. In mainprozess will be define: what IDs will be needed. And after in subprozess i Need by dataimport to Import only the data with these ID's (to Import all data takes too much time). So i need to write Comma in the WorkspaceRunner, like this:

obj_id in {'1000000000000106996011','1000000000000118176003'}

But this statement does not work as i needed. Do u have some ideas? Greetings, Anna


10 replies

Userlevel 2
Badge +12

Have you tried embedding the value in double quotes:

"obj_id in {'1000000000000106996011','1000000000000118176003'}"

Badge

Have you tried embedding the value in double quotes:

"obj_id in {'1000000000000106996011','1000000000000118176003'}"

Hi Erik, i tried but does not work. In LOG is for this case to see:

 

--WHERE_LTG' `obj_idin{'1000000000000106996011'' `--'1000000000000118176003'}'

 

 

Userlevel 4

Can confirm this issue, I suspect it's a bug. Can be reproduced by inserting a WorkspaceRunner into your workspace and hardcoding a comma-separated list in a parameter, e.g.

Close the dialog and re-open it, notice how the parameter has been truncated at the comma:

Surrounding the parameter values with double quotes doesn't help. Tested with FME 2017.0.

Can someone from Safe please confirm?

Badge +10

This issue has cropped up before

https://knowledge.safe.com/questions/36933/how-to-prevent-single-quotes-turning-my-parameter.html

https://knowledge.safe.com/questions/31426/published-parameter-values-gets-cutoff.html

Badge
Thanks a lot. I used as in example featureReader to get the data right.

 

 

Userlevel 3
Badge +13

Hi @greenroze. Please change the Type of the parameter in the child workspace from Text to Text (Multiline), then open the WorkspaceRunner in the parent workspace and re-choose the child workspace. This should fix the problem.

Setting the parameter to Text (Multiline) ensures that it is encoded when passed to the workspace being run, which is called using a command line. This prevents common delimiters from affecting the command line.

Badge

Hi @greenroze. Please change the Type of the parameter in the child workspace from Text to Text (Multiline), then open the WorkspaceRunner in the parent workspace and re-choose the child workspace. This should fix the problem.

Setting the parameter to Text (Multiline) ensures that it is encoded when passed to the workspace being run, which is called using a command line. This prevents common delimiters from affecting the command line.

Hi Natalie,

 

I tried same steps, but when i am trying to pass value `137665494,142465377', whereas it is passing '137665494<comma>142465377' resulting in child workspace failing.

 

 

Userlevel 2
Badge +19

Same error here using FME 2017.0. I have attached a simple workspace that shows it.

testworkspace.zip

This looks like a bug to me. Where can it be reported?

Userlevel 4

Same error here using FME 2017.0. I have attached a simple workspace that shows it.

testworkspace.zip

This looks like a bug to me. Where can it be reported?

Unfortunately this bug is also still present in FME 2018.0 Beta. @NatalieAtSafe: can you please check what the status is for this issue?
Badge

Same issue here regardless of resetting FME Workspace (child). Settings in parent workspace follow.

log outputs:

WorkspaceRunner: {C:/Program Files/FME/fme} //tfs.internal/shared/GIS/ESRIData/Scripts/FME/Server/vineyards.fmw --MAX 15000 --WhereClause fru_code<space>IN<space><openparen><apos>FEZ003BU<apos><comma><apos>FEZ004BU<apos><closeparen> >NUL: <NUL: 2>@1 &

Child:

Reply