Q: I have another question we have big differences as far as the number of images some of our agencies sending us and the destination vendor receiving. They are asking if Limagito can count the number of files transferred to destination.
A: In this blog article we added some scripts to count the files sent to a Destination. Transferred files counter data will be written to a monthly csv file. Each scan will be an entry in the csv file (which can be handled in Excel). This is just an example and can be adjusted to your needs.
- Open our Pascal Script option:
- Enable and add the following ‘On Rule Begin’ script:
- psVIA: an Integer variable which will count the amount of files transferred during the scan
- psVSA: a String variable which will be used as the filename of the counter csv ( i.e. 2023.august.csv )
- psVSB: a String variable which will be used for the Date entry in the csv file ( first column )
Begin psExitCode:= 1; // ... add your code here psVIA := 0; // Current Month counter csv filename -psVSA psVSA := FormatDateTime('YYYY.MMMM', Now) + '.csv'; // Current Day - psVSB psVSB := FormatDateTime('YYYYMMDDHHNNSS', Now); End.
- Enable and add the following ‘On Rule End’ script. Don’t forget to adjust the ctCsvPath constant. This is where we will store the csv files.
Var tmpData, tmpFile: String; tmpSuccess: Boolean; tmpList: TStringList; Const ctCsvPath = 'C:\Test\Csv\'; // Must end with a \ Begin psExitCode:= 1; // Check if files were moved or copied If psVIA = 0 Then Exit; // Init Var tmpData := psVSB + ',' + IntToStr(psVIA); tmpFile := ctCsvPath + psVSA; tmpSuccess := True; tmpList := TStringList.Create; Try If FileExists(tmpFile) Then Begin Try tmpList.LoadFromFile(tmpFile); Except tmpSuccess := False; psLogWrite(1, '', 'LoadFromFile, ' + tmpFile + ' error, counter data will not be saved: ' + tmpData); End; End Else tmpList.Add('Date,Value'); // Check If tmpSuccess Then Begin tmpList.Add(tmpData); // Save To File Try tmpList.SaveToFile(tmpFile); psLogWrite(1, '', 'SaveToFile ' + tmpFile + ' successful'); Except psLogWrite(1, '', 'SaveToFile ' + tmpFile + ' error, could not save counter data: ' + tmpData); End; End; Finally tmpList.Free; End; End.
- Set Function Destination Option to ‘Exit Cyclus on Error’. This will skip a next Destination if an error occurs. The last Destination will be a Script where we increase the amount of files transferred so we want to make sure that the previous Destination(s) were successful.
- The last Destination should be the following Pascal Script:
Begin psExitCode:= 1; // ... add your code here psVIA := psVIA + 1; End.
- Counter values will be stored in a monthly csv file which can be handled in Excel (or alternative):
If you need any info about this ‘count the number of files transferred’ request, please let us know.
#mft #filetransfer #filemanagement
Best regards,
Limagito Team