Counter

  • 30 Aug

    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

SEARCH