Question

Combining two FME workbenches, where one creates a parameter (new directory) for the other to use?

  • 24 April 2019
  • 2 replies
  • 21 views

Badge

I have two simple FME workbenches that I would like to combine into one/ or into a single process.

The first workbench “PostProcessingPublishingFolderCreation.fmw” creates a new directory, sub directories and copies across two .pdf files contained in one of the sub directories. One of the sub directories is called “processed stereo imagery”.

The second workbench “CopyJpegsAndDeleteUncompressed.fmw” copies some compressed tiffs to the newly created processed stereo imagery sub directory and deletes some uncompressed tiffs.

I’ve investigated using a workspace runner, but ran in to trouble trying to provide one of the parameters/inputs for the second workbench as this had not yet been created, the new directory, and sub directories including “processed stereo imagery”.

Essentially “PostProcessingPublishingFolderCreation.fmw” creates a new directory and sub directories, specifically a sub directly called “processed stereo imagery”. Then use the folder path for “processed stereo imagery” as an input to a Directory and File Pathnames Reader in “CopyJpegsAndDeleteUncompressed.fmw”.

Is there a way of combing these workbenches or streaming/ further automating the workflow? Something like waiting for the first work flow to finish then pausing and entering the newly created directory as a new parameter for the workbench and continuing running?

Workbenches posted below;


2 replies

Userlevel 1
Badge +21

I would have thought it could be all combined into one workspace, if you use a featurewriter to write to the file copy format and then carry on the process from the summary port.

Userlevel 4

I prefer the solution proposed by @egomm, but it's also possible to create a third "master" workspace that executes the two existing workspaces one after another.

If you need to retrieve the result from the first workspace in the second workspace, the easiest solution is to let the first workspace write the result to some intermediary file which is then picked up by the second workspace.

Alternatively, if you want to get (very) advanced, you can look into using the TransporterSender and TransporterReciever transformers.

Reply