Skip to main content
Hello

 

 

I am currently trying to call a FME 2013 32bit script out of a FME 2013 64bit script.

 

I do this because 64bit does not support the 3D-PDF writer. I chose the SystemCaller transformer because in the WorkspaceRunner I could not find any options to choose the FME engine I would like to run and so it will always start the script in 64bit mode.

 

 

So with a concatenator i prepare my command that I pass over to the SystemCaller. I prepare following string:

 

 

"C:\\Program Files (x86)\\FME2013_x86\\fme.exe" D:/Path/3DPDF.fmw D--Parameter1 {$(Parameter1)}] e--AttributeA{@Value(AttributeA)}] t--AttributeB {@Value(AttributeB)}] t--Parameter2 {$(Parameter2)}]

 

 

It seems that at least starting the 32bit enginge is working because I get:

 

SystemCaller: Executing `"C:\\Program Files (x86)\\FME2013_x86\\fme.exe...etc...

 

FME 2013 SP1 (20130319 - Build 13448 - WIN32)...etc...

 

...FME Version Infos and Licensing infos and so on...

 

 

But then it says:

 

Parameter 'Parameter1' must be given a value.

 

Program Terminating

Translation FAILED.

 

SystemCaller: Failed to Execute

 

 

I think there is a problem in the format of my string. How do I need to format it so the 3DPDF script starts and all parameters are handed over correctly?

 

 

Thank you very much for your help!

 

Simon
Open up the FME32bit and run your workspace (D:/Path/3DPDF.fmw)

 

In the LOG-window you see the correct syntax. For instance the demo-workspace - easyTranslater.fme gives the following on top of the LOG-window:

 

    fme.exe easyTranslator.fmw

--SourceDataset_GENERIC C:\\temp\\demo.shp

--SourceFormat GUESS_FROM_EXTENSION

--COORDSYS EPSG:25833

--GENERIC_OUT_BASE_NAME_GENERIC translated_data

--DestinationFormat ACAD

--COORDSYS_Dest EPSG:25833

 

 

Just Copy-Paste:

 


Hi SigTill

 

Thank you for your answer! Unfortunately if I copy paste the log it does not work because fme.exe is again the 64bit version. So i modified the format a little bit to:

 

 

    "C:\\Program Files (x86)\\FME2013_x86\\fme.exe" D:/Path/3DPDF.fmw

 

          --Perimeter D:\\Perimeter.shp

 

          --Attribute1 123.2;124.2

 

          --Outputfolder D:\\Output

 

  

 

Now again fme32 is loaded and I get the same error message again:

 

 

Parameter 'Perimeter' must be given a value.

 

Program Terminating

 

Translation FAILED.

 

 

Maybe I need some () or p] or {}?

 

If I run the wokspace in 32bit fme with the same inputs it works perfekt...
This works for me in 64bit FME, it runs 32bit FME from the SystemCaller.

 

 

Just Copy-Paste

 

http://pastebin.com/rWcZ9Gjt
Sorry I am quite new to FME so maybe I just don't get it right. So now I am copying the blue text from the top of the log and paste it in the SystemCaller and don't change a thing so it says:

 

 

    fme.exe 3DPDF.fmw

 

          --Perimeter D:\\Perimeter.shp

 

          --Attribute1 123.2;124.2

 

          --Outputfolder D:\\Output

 

 

Now I get following error:

 

CRC check within license file failed. Invalid license file. (-500)

 

Program Terminating

 

Translation FAILED.

 

But I since it works in the standalone 32bit script I don't think licensing is the problem.

 

 

I tested different kinds of Syntax and when I wrap Perimeter in {} then Attribute1 causes an error and Perimeter seems to be accepted:

 

 

    "C:\\Program Files (x86)\\FME2013_x86\\fme.exe" D:/Path/3DPDF.fmw

 

          --Perimeter {D:\\Perimeter.shp}

 

          --Attribute1 123.2;124.2

 

          --Outputfolder D:\\Output

 

 

Parameter 'Attribute1' must be given a value. 

 

Program Terminating

 

Translation FAILED.

It seems that the path of Perimeter here must be wrapped in {}, so what about texts ({} are not working for Attribute1)

 

 

And Sorry, I don't get it what to do with your pastebin link.

 

 

 
Weird, it works now! Thanks for your help! What I did is used your approach and combined it whith my findings from the tests I did. What helped as well was to simulate starting the script with WorkspaceCaller and copy its comand and modify it a bit.

 

 

So now I have following command line which works:

 

"C:\\Program Files (x86)\\FME2013_x86\\fme.exe" D:/Path/3DPDF.fmw --Perimeter D:\\Perimeter.shp --Attribute1 123.2;124.2 --Outputfolder D:\\Output

 

 

unsing published parameters I have something like this:

 

"C:\\Program Files (x86)\\FME2013_x86\\fme.exe" $(3dpdfSkript) --Perimeter $(Perimeter) --Attribute1 @Value(attr1) --Outputfolder $(Outfolder)

 

 

I think one really has to pay attention in formatting: NO line breaks, NO unecessary spaces... and in my case wrap the fme.exe path in quotation marks...

 

 

Have a nice weekend!

 

 


Reply