Hi,
It would be awesome if you could provide more details on features when they output from the Succeeded and Failed ports, such as:
- The process ID associated with the job.
- The workspace name used.
- The full path of the workspace.
- A list of parameters used (since parameters can be linked with attributes, this would help determine the values being passed).
- If possible, the log filename created during the execution.
I know the Summary provides some information, but it’s impossible to determine which output port (Succeeded or Failed) the information is linked to.
The reason for this request is that when using Wait for Job to Complete = No, it's difficult to take full advantage of multitasking while ensuring that the subprocess has truly succeeded. Right now, the Succeeded port only confirms that the WorkspaceRunner was able to launch the process, but not whether the subprocess actually completed successfully.
If the Succeeded port included the process ID, we could implement a waiting mechanism to verify that the subprocess has fully completed by checking the associated log file. Some tasks after the WorkspaceRunner must be fully successful before continuing. Currently, in a multitasking scenario, there's no built-in way to ensure everything has finished correctly without running in waiting mode.
Right now, I use a Python script to:
- Retrieve the Summary information.
- Loop through the process IDs to confirm that no subprocesses are still running before proceeding.
- Verify that the process ID is still associated with
fme.exe
and not another process. - Ensure that each subprocess generates a unique log filename so I can check whether the result state is SUCCESS or FAILED.
I know that with the FMEJobSubmitter, you can use the FMEServerJobWaiter to ensure the Job ID is complete and retrieve the result afterward. However, in FME Form, I haven’t found an easy workaround for this.
Thanks,
Jean