File Mover Blog

August 30, 2023

How to count the number of files transferred to destination

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:

limagito file mover 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.

limagito file mover on rule begin pascal script

  • 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.

limagito file mover on rule end pascal script

  • 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.

limagito file mover function setup

  • The last Destination should be the following Pascal Script:

limagito file mover destination setup

Begin
  psExitCode:= 1;
  // ... add your code here
  psVIA := psVIA + 1;
End.

limagito file mover pascal script as destination

  • Counter values will be stored in a monthly csv file which can be handled in Excel (or alternative):

limagito file mover count files transferred to destination

limagito file mover count files transferred to destination

 

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

By Limagito-Team Counter Pascal Script , Share:
SEARCH