You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

If you use the JobSchedulerFTPReceive job in a job chain, then you have often the situation that the successor job wants to know which files have been transferred successfully.
The documentation of the JobSchedulerFTPReceive.xml job describes that the job generates the parameter ftp_result_filenames and ftp_result_filepaths where the successfully transferred files are listed.

Unfortunately, this feature is buggy. Both parameters are always empty.

Workaround:
You can insert the JobSchedulerExistsFile job as first successor job into the job chain.

Job Chain: ftpReceive.job_chain.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job_chain.xml job_chain]  orders_recoverable = "yes">
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job_chain_node.xml job_chain_node] state       = "receive"
                      job         = "ftpReceive"
                      next_state  = "check"
                      error_state = "error"/>
 
    <job_chain_node   state       = "check"
                      job         = "checkSuccessFiles"
                      next_state  = "process"
                      error_state = "error"/>
 
    <job_chain_node   state       = "process"
                      job         = "processSuccessFiles"
                      next_state  = "success"
                      error_state = "error"/>
 
    <job_chain_node   state       = "success"/>
    <job_chain_node   state       = "error"/>
 </job_chain>
 

Job: ftpReceive.job.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job.xml job] order="yes" stop_on_error="no">
    <description>
       <include file="jobs/[http://www.sos-berlin.com/download/scheduler/jobs/JobSchedulerFTPReceive.xml JobSchedulerFTPReceive.xml]"/>
    </description>
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/script.xml script] language="java" java_class="sos.scheduler.ftp.JobSchedulerFTPReceive"/>
 </job>

Job: checkSuccessFiles.job.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job.xml job] order="yes" stop_on_error="no">
    <description>
       <include file="jobs/[http://www.sos-berlin.com/download/scheduler/jobs/JobSchedulerExistsFile.xml JobSchedulerExistsFile.xml]"/>
    </description>
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/script.xml script] language="java" java_class="sos.scheduler.file.JobSchedulerExistsFile"/>
 </job>

Job: processSuccessFiles.job.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/job.xml job] order="yes" stop_on_error="no">
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/script.xml script] language="shell">
        <![CDATA[
 # here you can do somethimg with the result set
 echo "FTP RESULT FILES = $SCHEDULER_PARAM_SCHEDULER_SOSFILEOPERATIONS_RESULTSET"
        ]]>
    </script>
 </job>

Order: ftpReceive,test.order.xml

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/order.xml order]>
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/params.xml params]>
 
       &lt;!-- Parameter of the ftpReceive job --&gt;
       <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/param.xml param] name="ftp_host"          value="ServerA"/>
       <param   name="ftp_port"          value="22"/>
       <param   name="ftp_protocol"      value="sftp"/>
       <param   name="ftp_user"          value="my_user"/>
       <param   name="ftp_password"      value="my_pass"/>
       <param   name="ssh_auth_method"   value="password"/>
       <param   name="ftp_remote_dir"    value="/ftp_out"/>
       <param   name="ftp_local_dir"     value="/home/my_user/ftp_in"/>
       <param   name="ftp_file_spec"     value=".*"/>
       <span style="color:green"><param   name="ftp_atomic_suffix" value="~"/></span>
 
       &lt;!-- Parameter of the fileExists job --&gt;
       <param   name="file"              value="/home/my_user/ftp_in"/>
       <span style="color:green"><param   name="file_spec"         value="[^~]$"/></span>
 
    </params>
    <[http://www.sos-berlin.com/doc/en/scheduler.doc/xml/run_time.xml run_time]/>
 </order>

NOTICE:

The parameter ftp_atomic_suffix is set with "~".

Only successfully transferred files are renamed at the target to its original filename without the "~" at the end.

The file_spec parameter of the check looks for all files without a "~" at the end.

  • No labels