Skip to main content

Hi,

Probably
overlooking something.

The
situation:

I have a
workflow that moves x amount pdf’s to a new location with as goal mailing all
the files created by a sub workflow, when starting this workflow asynchronous via
REST with the data download service all files are zipped and mailed to the given
e-mail address via a subscription and topic connected to this flow. 

Using the following
format with a GET via rest. 

<SERVERURL>/fmedatadownload/<REPOSITORY>/
/<WORKFLOW.FMW>?<PARAMETER>=X&opt;_servicemode=sync&opt;_requesteremail=<USERMAIL>

And the following
mail format

<fmeblock
type="optional">Your job with
id {id} is finishedDownload
your file here: {downloadUrl}</fmeblock>

Returning a
mail with:

Your job
with id 1 is finishedDownload
your file here: <URL TO THE ZIP>

The
problem:

I’m trying
to get the job ID included in the REST return json but this does not work for
data download. When using the POST to <SERVERURL>//fmerest/v3/transformations/submit/
(with email information and topic in the body) the Job ID is given in the return.
Like: 

{  "id": 1}

The
workflow makes the pdf’s but the file copy writer (logically) does not generate
the ZIP files that are made with the data download service. The mail is send
like this:

Your job
with id 1 is finishedDownload
your file here: _undefined_

The question

Is there a
way to (preferably):

Get the jobID
within the data download REST return?

 


 


or

Make and send
the ziplink like the datadownload (zip name needs to be random) in the mail without using a extra transformer in the workflow.

Hi @JeroenR

 

 

I noticed that you're using the REST call 'submit' which is asynchronous so all you'd be able to get is a job id returned - as it can't give you anything else (like download url) because it doesn't wait for the job to finish first.

 

 

The first example you mentioned is the direct url method of calling a workspace, which is different to how the FME Server REST API calls a workspace. In the parameters for that url, if you add opt_showresult=true that should give you the job id in the response.

 

If you want to stick with REST API over the direct url, have you tried using the POST /transformations/transactdata/<repository>/<workspace>? Once the workspace has finishing running, it has the resultDatasetDownloadUrl (string, optional) in the response. I don't know whether that will also give you what you're after.

 

 

These threads might also be relevant to what you're trying to do: https://knowledge.safe.com/questions/77309/rest-api-run-jobworkspace-with-notification-by-fme.html

 

https://knowledge.safe.com/questions/65306/fme-server-direct-url-result-page.html


Thanks for the reply @jlutherthomas, due to
vacation i was not able to react sooner.

I tried the workflow
with transact/transactdata/submit but all with an unsatisfying result.
Some extra info about what i did. 

0684Q00000ArJM3QAN.png


What does the workflow do:

 


The main flow that I trigger starts a pdf page generating workflow (FMEServerJobSubmitter_2) for each
page based on a dynamically generated table. The pdf's are
saved to the server with a FeatureWriter transformer within this flow. The feature holder
waits till all (sub)workflows are finished and i then use the filecopier to copy all
the created pfd's to a new location. While using REST in combination with the DataDownload service the result is that the pfd's are zipped (with a not traceable name) and due to my topic and subscription an mail is send with the following format: 
Hi,
Your job with id 1 is finished
Download your file here: htttps://linktofmeserverresult.zip


The disadvantage is that the JobID is not returned when starting the workflow.

When using this workflow and the transact, transactdata or submit via REST the downloadlink is absent in the topic monitoring. Both with async and sync requests. Seeing the Topic Monitoring and the REST return it does not contain this information.

 

0684Q00000ArJrvQAF.png

 Could my writer be the problem or do i overlook a option/parameter/variable where i can choose to zip the end result (with random name generation like the DataDownload Service)


Thanks for the reply @jlutherthomas, due to
vacation i was not able to react sooner.

I tried the workflow
with transact/transactdata/submit but all with an unsatisfying result.
Some extra info about what i did. 

0684Q00000ArJM3QAN.png


What does the workflow do:

 


The main flow that I trigger starts a pdf page generating workflow (FMEServerJobSubmitter_2) for each
page based on a dynamically generated table. The pdf's are
saved to the server with a FeatureWriter transformer within this flow. The feature holder
waits till all (sub)workflows are finished and i then use the filecopier to copy all
the created pfd's to a new location. While using REST in combination with the DataDownload service the result is that the pfd's are zipped (with a not traceable name) and due to my topic and subscription an mail is send with the following format: 
Hi,
Your job with id 1 is finished
Download your file here: htttps://linktofmeserverresult.zip


The disadvantage is that the JobID is not returned when starting the workflow.

When using this workflow and the transact, transactdata or submit via REST the downloadlink is absent in the topic monitoring. Both with async and sync requests. Seeing the Topic Monitoring and the REST return it does not contain this information.

 

0684Q00000ArJrvQAF.png

 Could my writer be the problem or do i overlook a option/parameter/variable where i can choose to zip the end result (with random name generation like the DataDownload Service)

Anyone an idea? The Best Answer is currently not really the best answer, or at-least i do not get it working like this. Help would be much appreciated. Thanks! 

 

 

For a mod: Could the best answer label be removed?

Reply