| In most organizations, systems and processes have | | | | If (dirStatus 1) Then |
| grown organically. Over a period of time, manual | | | | 'MsgBox ftp.LastErrorText |
| scripting and 'workarounds' have been implemented | | | | 'WScript.Quit |
| by skilled IT experts to automate what were once | | | | Main = DTSTaskExecResult_Failure |
| time consuming and resource hungry manual filing | | | | End If |
| tasks. Such workarounds would have been welcomed | | | | 'MsgBox ftp.getCurrentRemoteDir()localInvoiceFile = |
| into their various settings at the time of | | | | "C:Documents and Settings My |
| implementation, but with business environments | | | | Documents2dRMedInvoice_RMed.txt"localPatientFile = |
| forever in flux, they may become harder and harder | | | | "C:Documents and Settings My |
| to track, implement and integrate. New systems and | | | | = "C:ClientsStratFile UploadsCustomer |
| infrastructure may mean new scripts, different ways | | | | UploadsRMedInvoice_RMed.txt"remotePatientFile = |
| of working, driven by efficiency savings or regulatory | | | | "C:ClientsStratFile UploadsCustomer |
| compliance may render original scripting obsolete. New | | | | UploadsRMedPatient_RMed.txt" |
| programming standards, turnover of skilled staff, and | | | | 'MsgBox remoteInvoiceFile |
| mergers and acquisitions can all expose an | | | | 'MsgBox remotePatientFiletransferStatus = |
| organization to expensive costs and out of data | | | | ftp.getFile(remoteInvoiceFile, localInvoiceFile)if |
| systems. Will the new systems, staff, processes and | | | | (transferStatus 1) then |
| programming integrate with the old? As experts on | | | | 'MsgBox ftp.LastErrorText |
| Managed File Transfer solutions and Automated | | | | Main = DTSTaskExecResult_Failureelse |
| Workflow Engines, we believe that it is important not | | | | Main = DTSTaskExecResult_Successend |
| to let the tail wag the dog. | | | | iftransferStatus = ftp.GetFile(remotePatientFile, |
| We have provided two simple examples which stand | | | | localPatientFile)if (transferStatus 1) then |
| up on their own to present our case for a | | | | 'MsgBox ftp.LastErrorText |
| coordinated approach when it comes to automation | | | | Main = DTSTaskExecResult_Failureelse |
| of workflow for your File Transfer needs. | | | | Main = DTSTaskExecResult_Successend if |
| Below is an example of a rudimentary script to set | | | | END IFftp.Disconnect |
| up an automated file transfer between a host and a | | | | End Function |
| client. This script transfers a file from client to server | | | | Here is how an MFT Automated Workflow Solution |
| and back again. The script logs the command and | | | | would do it: |
| return values to a file. | | | | 1. Select Originating folder |
| #!/bin/bash | | | | 2. Select Files by name abc*.* |
| DATE=`date +%d.%m.%Y-%H.%M` | | | | 3. Select Destination Folder |
| SRV=sftexa | | | | 4. Export Filenames to.csv |
| #scpg3 putecho "/opt/xxxxx/bin/scpg3 -B -q testfile | | | | 5. Schedule frequency of task |
| $SRV:test" >> scpg3_put_$DATE | | | | 6. Save task |
| /opt/xxxxx/bin/scpg3 -B -q testfile.dat | | | | These two examples are for simple tasks. These |
| $SRV:testecho $? >> scpg3_put_$DATE | | | | two tasks do not have any element of security or |
| #scpg3 getecho "/opt/xxxxx/bin/scpg3 -B -q | | | | encryption written into them, which would be |
| $SRV:test test" >> scpg3_get_$DATE | | | | standard for an MFT automated workflow solution. |
| /opt/xxxxx/bin/scpg3 -B -q $SRV:test testecho $? | | | | There will be savings and improvements that your |
| 0>> scpg3_get_$DATE | | | | business can make, and from casting your eye briefly |
| Here is how an MFT Automated Workflow Solution | | | | at the two examples, you will know where these |
| would do it. | | | | areas are. You may have reservations because of |
| 1. Select Originating folder | | | | the complexity of the scripting you currently employ, |
| 2. Select Destination folder | | | | however rest assured that mature Automated |
| 3. Select File(s) by name/type/size/date etc | | | | Workflow Solutions do not just perform simple tasks. |
| 4. Schedule frequency of transfer | | | | Generally they possess a rich and configurable suite |
| 5. Save task | | | | of preset workflows to cover off the majority of |
| Here is an example of a script to extract files | | | | your file transfer needs, and these can be |
| beginning with "abc" from an FTP server. The file | | | | customized with minimal training, and without |
| names are then exported to a csv file.ftp.Hostname | | | | programming expertise. Even for those tricky little |
| = "ftp.test.com"ftp.Username = "User"ftp.Password = | | | | processes where you need something that can be |
| "Pass"ftp.Passive = 1ftp.AuthTls = 1ftp.Ssl = | | | | refined even further, a good Workflow Engine will |
| 0connectStatus = ftp.Connect() | | | | have modules and APIs that allow further |
| If (connectStatus 1) Then | | | | programming access. |
| 'MsgBox ftp.LastErrorText | | | | There is irony in manually scripting automated |
| 'WScript.Quit | | | | processes; Automated Workflow Engines just does |
| Main = DTSTaskExecResult_Failure | | | | not see it. |
| ElsedirStatus = ftp.ChangeRemoteDir("RMed") | | | | |