Pascal Script

  • 25 Mar

    Email When Transfer Size is not Above 90GBs

    Q: Email When Transfer Size is not Above 90GBs. I have a job that runs everyday and 91GBs is transferred. On some days the job only transfers 60GBs because a file is locked. Is there a way to send an email when Limagito transfers anything under 90Gbs?
    A: Yes this is possible since version v2022.3.25.0. In this option we added some Integer (Int64) Var: psVIA (= Pascal Script Var Integer A).

    You’ll need to add some Pascal Script and Rule Event options to your existing transfer rule.

    1. Open our ‘Pascal Script’ option:

    Limagito File Mover Pascal Script option

    2. Enable and add the following ‘On Rule Begin’ Pascal Script (this script will set the integer psVIA Var to zero):

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

    Limagito File Mover Email When Transfer Size Pascal Script

    3. Enable and add the following ‘On Rule End’ Pascal Script (this script will return an error internally when the total transfered size is not ok):

    Const
      ctMaxSize = 97710505984; // 90 GByte
    Begin
      psExitCode := 1;
      // Debug
      psLogWrite(1, '', 'End Size: ' + '%VIA');
      // Check
      If psVIA <= ctMaxSize Then
      Begin
        psLogWrite(1, '', 'End Size not above 90GBs');
        psExitCode := 0;
      End;
    End.

    Limagito File Mover Email When Transfer Size Pascal Script

    4. In the Function setup set ‘Destination Options’ to ‘Destination Memory & Exit Cyclus on Error’:

    Limagito File Mover Function Setup

    5. Add a Pascal Script as Destination. If you have multiple Destinations then our Pascal Script must be the last one in the list.

    Limagito File Mover Destinations

    6. Add the following Pascal Script as Destination (this will add the transfered filesize to the psVIA Integer Var):

    Begin
      // ... add your code here
      psExitCode:= 1;
      psVIA := psVIA + psFileSize;
      // Debug
      psLogWrite(1, '', 'Sum of Bytes: ' + Int64ToStr(psVIA));
    End.

    Limagito File Mover As Destination

    7. Open our ‘Rule Events’ option:

    Limagito File Mover Rule Events

    8. Select and enable ‘On Pascal Script Error’ event. With this event selected enable ‘Enable Mail’ and setup the Email and SMTP Setup.

    Limagito File Mover On Pascal Script Error Event

    Limagito File Mover Email Setup

    9. Received email in case 90GBs were not transfered:

    Limagito File Mover Email When Transfer Size email

    10. RunTime log will also show yout when transfered size was not reached:

    Limagito File Mover Email When Transfer Size RunTime Log

     

    #Filetransfer

    If you need any info about this ‘Email When Transfer Size’ request, please let us know.

    Best regards,

    Limagito Team

  • 24 Mar

    Move txt files if the line count is more than one

    Q: I am looking to move txt files to a location. If the line count is more than 1 (more than just a header) move to processing.
    A: Yes this is possible using some Pascal Script.

    1. Be sure that you will only handle text files. We’ve added a File Name Include Filter:

    Limagito File Mover Filename Filter

    2.Please open the ‘Pascal Script’ option:

    Limagito File Mover Pascal Script option

    3. Enable and Add the following ‘On Destination’ Pascal Script. You can choose between 0 or -1 as result for psExitCode var. 0 will give an error when such a file is found, -1 will skip such a file.

    Var
      tmpFile: String;
      tmpList: TStringList;
    Begin
      psExitCode:= 1;
      // ... add your code here
      tmpFile := psFilePath + psFileName;
      tmpList := TStringList.Create;
      Try
        Try
          tmpList.LoadFromFile(tmpFile);
          If tmpList.Count < 2 Then
          Begin
            // Invalid count
            psExitcode := -1; // := -1 is Skip File and := 0 is Error on File
            psLogWrite(1, '', 'Invalid recordcount in ' + tmpfile);      
          End;  
        Except
          // Error
          psExitCode := 0;
          psLogWrite(1, '', 'Error loading ' + tmpfile);
        End;
      Finally
        tmpList.Free;
      End;  
    End.

    Limagito File Mover Line Count is more

    4. RunTime Log

    Limagito File Mover RunTime Log

    #Filetransfer

    If you need any info about this ‘line count is more than’ request, please let us know.

    Best regards,

    Limagito Team

    By Limagito Pascal Script
  • 23 Mar

    Keep a number of files in a specific delete Folder I’m watching in

    Q: Is there any option for a delete rule to keep a number of files, e.g. keep the last 10 Files, in the specific delete Folder I’m watching in?

    We’re trying to handle our LOG Folder with Limagito. These LOG Files are not written permanently within a specific timeslot so it would be great to have this Log Rotation Option. Maybe there is a scriptsolution?

    A: Yes this is indeed possible with Pascal Script (we tested this with version v2022.3.18.0).

    1.Function is set to Delete

    2.Source must be a Windows Folder or share

    3. Set ‘Source File Sort Order’ to ‘File last write date ascending (Old to New)

    Limagito Source File Sort Order

    4.Open Pascal Script setup:

    Limagito File Mover Pascal Script option

    5.Enable and add the following ‘On Destination’ Pascal Script (you can adjust the Const values of ctKeepFiles, ctSearchExt and ctSearchSubDirs):

    Var
      tmpCount: Integer;
    Const
      ctKeepFiles = 10;
      ctSearchExt = '*.log';
      ctSearchSubDirs = True; // True or False
    Begin
      // ... add your code here
      tmpCount := psCountFiles(psFilePath, ctSearchExt, ctSearchSubDirs);
      // Check
      If tmpCount > ctKeepFiles Then
      Begin
        psExitCode := 1;
      End
      Else
      Begin
        psLogWrite(1, '', 'Skip Delete, Minimum count reached');
        psExitCode := -2;
      End;
    End.

    Limagito File Mover keep the last 10 Files

    You’ll find ‘Skip Delete’ in the RunTime Log when the minimum amout of log files needed is reached. Further deletes will be skipped.

    Limagito File Mover RunTime log

    #Filetransfer

    If you need any info about this ‘keep a number of files’ request, please let us know.

    Best regards,

    Limagito Team

1 2 3 4 5 6 15