Task FTP Extended

Wofür?

Die Task FTP Extended erweitert die FTP Task:

fileTrigger

Die FTP Extended kann direkt einen File Trigger setzen, wenn mindestens eine Datei übertragen wurde. Auf diesen File Trigger kann man dann entsprechend regieren, um z.B. eine Email Benachrichtigung rauszuschicken.

doneFileEnding

Die runtergeladenen Dateien können auf dem Server direkt umbenannt werden, z.B. in *.done. Dadurch kann man beim nächsten Durchlauf diese Dateien ausschließen.

regexPattern

Die Dateien die runtergeladen werden sollen, können über einen File Filter selektiert werden. Damit kann man aus einem Verzeichnis nur einen Teil der Dateien laden

Beispiel aus Praxis

Die FTP Extended wurde erweitert um den Ablauf bei Workflows mit FTP Zugriff zu vereinfachen. Es kann so in einem Schritt ein Herunterladen neuer Dateien und ein umbenennen der heruntergeladenen Dateien erfolgen. Außerdem kann über ein RegEx Ausdruck ermittelt werden, welche Dateien heruntergeladen werden sollen.

Konkrete Aufgabe: Es sollen alle neuen Dateien von einem FTP Server aus einem bestimmten Verzeichnis mit der Endung csv heruntergeladen werden. Diese sollen beim nächsten Mal natürlich nicht noch mal heruntergeladen werden. Außerdem soll der Fachbereich nur dann informiert werden, wenn es auch eine neue Datei gab. Die Umsetzung dieser Aufgabe mit der FTP Task war sehr umständlich und ergab einen Workflow mit 22 Task. Mit dem FTP Extended Task konnte die gleiche Aufgabe wesentlich übersichtlicher mit 12 Task realisiert werden. Der Nachteil der FTP Task:

  • man bekommt nicht mit ob eine Datei heruntergeladen wurde
  • man muss eventuell noch mal eine FTP Task durchführen um die Dateien umzubenennen
  • mit der normalen FTP Task werden alle Dateien aus einem Verzeichnis heruntergeladen

Setting

<?xml version="1.0" encoding="utf-8" ?>
<Tasks>
  <!--
    Ftp is a sequential task that allows to list, upload, download or delete files over FTP, FTPS(explicit/implicit) or SFTP.
  -->
  <Task id="$int" name="Ftp" description="$string" enabled="true|false">
    <!--  The files loaded by the task having as id $taskId will be sent. -->
    <Setting name="selectFiles" value="$taskId" />
    <Setting name="selectFiles" value="$taskId" />
    <!-- You can add as many selecteFiles as you want.-->
    <!--- FTP command. Possible values: list|upload|download|delete-->
    <Setting name="command" value="list|upload|download|delete" />
    <!--- FTP Protocol. Possible values: ftp|ftps|sftp-->
    <Setting name="protocol" value="ftp|ftps|sftp" />
    <!-- Encryption mode. This option is only necessary for FTPS protocol. Possible values: explicit|implicit.-->
    <Setting name="encryption" value="explicit|implicit" />
    <!-- The server host address. -->
    <Setting name="server" value="$string" />
    <!-- The server port. It should be 21 for FTP and 22 for SFTP.-->
    <Setting name="port" value="$int" />
    <!-- The user name to connect to the server.-->
    <Setting name="user" value="$string" />
    <!-- The user password to connect to the server.-->
    <Setting name="password" value="password" />
    <!-- 
         The private key file path to connect to the server. 
         This option is for SFTP only. You can remove it if it's not necessary.
    -->
    <Setting name="privateKeyPath" value="C:\WexflowTesting\Keys\key.key" />
    <!-- 
         The private key passphrase to connect to the server.
         This option is for SFTP only. You can remove it if it's not necessary.
    -->
    <Setting name="passphrase" value="wexflow" />
    <!-- The remote path. -->
    <Setting name="path" value="$string" />
    <!-- Example: .*\.mp4 will load only mp4 files. The regex is case sensitive.-->
    <Setting name="regexPattern" value="$string" />
    <!-- Optional and defaults to 3. Number of retry times in case of failures. -->
    <Setting name="retryCount" value="$int" />
    <!-- Optional and defaults to 1500 (milliseconds). The retry timeout between two tries. -->
    <Setting name="retryTimeout" value="$int" />
    <!--  The rename file with ending after download path.-->
    <Setting name="doneFileEnding" value="$string" />
    <!--  The filetrigger path.-->
    <Setting name="filetrigger" value="$string" />
  </Task>
</Tasks>

Workflow

<Workflow xmlns="urn:wexflow-schema" id="27" name="Workflow_Ftp_upload" description="Workflow_Ftp_upload">
	<Settings>
		<Setting name="launchType" value="trigger" />
		<Setting name="enabled" value="true" />
	</Settings>
	<Tasks>
		<Task id="1" name="FilesLoader" description="Loading files" enabled="true">
			<Setting name="file" value="C:\WexflowTesting\file1.txt" />
			<Setting name="file" value="C:\WexflowTesting\file2.txt" />
			<Setting name="file" value="C:\WexflowTesting\file3.txt" />
		</Task>
		<Task id="2" name="FtpExtended" description="Sending files" enabled="true">
			<Setting name="command" value="upload" />
			<Setting name="protocol" value="ftp" /> <!-- ftp|ftps|sftp -->
			<Setting name="server" value="127.0.1" />
			<Setting name="port" value="21" />
			<Setting name="user" value="user" />
			<Setting name="password" value="password" />
			<Setting name="path" value="/" />
			<Setting name="selectFiles" value="1" />
			<Setting name="file1" value="c:/WexflowTesting/filetrigger" />
		</Task>
	</Tasks>
</Workflow>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.