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