Pascal Script

  • 23 May

    Get content of text file and use this as body for email

    Q: If I use Filemover to move or copy a txt file, is it possible to get the contents of that file, and then maybe include it in a Rule Event e-mail? I would like it as the e-mail body please.

    A: Yes this is possible. We’ll use some Pascal Script to read the content of the text file into a variable (%VSA). This variable will be used in the email setup of the SMTP destination.

    In our example we’ll scan for text files in a local Windows folder.

    Limagito File Mover get content of text file

    The ‘Include File Name’ filter is set to *.txt because we only want to pick up text files.

    Limagito File Mover Filename Include Filter

    Important, set the Function > Destination Option to ‘Exit Cyclus on Error’. The reason is that we are going to use two destinations. The first destination which is a Pascal Script will read the content of the text file in to the %VSA variable. If this doesn’t succeed then we should not go to the second ‘SMTP’ destination. We only want to sent the email (SMTP) if the read content of the source text file is successful.

    Limagito File Mover Function Setup

    As previously described, we are going to use two destinations. Important, the first one must be the ‘Pascal Script’ destination.

    Limagito File Mover Destination Setup

    Var
      tmpFile: String;
      tmpList: TStringList;
    Begin
      psExitCode:= 0;
      // ... add your code here
      tmpFile := psFilePath + psFileName;
      tmpList := TStringList.Create;
      Try
        Try
          tmpList.LoadFromFile(tmpFile);
          psVSA := tmpList.Text;
          psExitCode := 1;    
        Except
          psLogWrite(1, '', 'Error loading ' + tmpFile); 
        End;  
      Finally
        tmpList.Free;
      End;  
    End.

    Limagito File Mover get content of text file

    The second destination is SMTP. Some screenshots of the setup we used. We added the %VSA varaible in the Body of the email.

    Limagito File Mover get content of text file

    Limagito File Mover SMTP as Destination

    Limagito File Mover SMTP as Destination

    RunTime log result:

    Limagito File Mover RunTime Log

    Received email with the content of the text file in the body of the email:

    Limagito File Mover text content as body of email

     

    #Filetransfer #Filemanagement

    If you need any info about this request, please let us know.

    Best regards,

    Limagito Team

  • 22 May

    Manage the rule status change with the help of Pascal Script

    Q: We would like to manage the rule status change : turn HOLD, turn Release, etc. I didn’t find any “ps” command related to this need. Could you help us to stop/hold/enable status rules? Just missing this PS command to change rule status 😉

    Hope it exists…. based on type “psRuleChangeStatus( RuleID : Integer, newStatus : String/Integer… )” or something like that…
    A: In our latest version v2022.5.22.0 we added two new functions that will help you.
    ===============================================
    – Use psRuleSetHoldStatus to set the status of moving rule to HOLD. The RuleId can be found in the statusbar information.Function psRuleSetHoldStatus(_RuleId: Integer): Boolean;

    i.e. psRuleSetHoldStatus(1);
    ===============================================
    – Use psRuleSetReleaseStatus to set the status of moving rule to RELEASE. The RuleId can be found in the statusbar information.

    Function psRuleSetReleaseStatus(_RuleId: Integer): Boolean;

    i.e. psRuleSetReleaseStatus(1);
    ===============================================

    FYI: In this version we also added some new Pascal Script var that can be used for example in the ‘On Destination’ and ‘On Destinations’ Pascal Script options.
    • psFileDir
    • psFileSubDir
    • psFileSubDirFirst
    • psFileSubDirLast
    • psFilePath
    • psFileSubPath
    • psFileSubPathFirst
    • psFileSubPathLast
    Example:
    • WIN as Source, Root Path is C:\Scan\
    • During scan the following file was found: C:\Scan\Sub1\Sub2\Intro.pdf
    Result when using the new Pascal Script var will be:
    • psFileDir > C:\Scan\Sub1\Sub2
    • psFileSubDir > Sub1\Sub2
    • psFileSubDirFirst > Sub1
    • psFileSubDirLast > Sub2
    • psFilePath  > C:\Scan\Sub1\Sub2\
    • psFileSubPath > Sub1\Sub2\
    • psFileSubPathFirst > Sub1\
    • psFileSubPathLast > Sub2\

    #Filetransfer #PascalScript

    If you need any info about this ‘Manage the rule status change’ request, please let us know.

    Best regards,

    Limagito Team

  • 05 May

    Check pdf pagewidth in order to move files to a different folder

    Q: A big help would also be a width check. If pdf width > 300 mm move to another folder. Then I could use some system tools on the pdf.

    A: In version v2022.5.5.0 we added some Pascal Script function to achieve this.

    -First we added two WIN destinations.

    • Destination with ID1 should contain the pdf files with a width <= 300 points
    • Destination with ID2 should contain the pdf files with a width > 300 points

    Limagito File Mover multiple Windows destinations

    -Next you’ll some Pascal Script

    Limagito FileMover Pascal Script option

    -Please Add and Enable ‘On Destinations

    Var
      tmpCount: Integer;
      tmpHeight, tmpWidth: Double;
      tmpFile: String;
    Const
      ctMaxWidth = 300;  
    Begin
      psExitCode:= -1;
      // ... add your code here
      tmpFile := psFilePath + psFileName;
      If psPdfGetPageCount(tmpFile, '', tmpCount) Then
        psLogWrite(1, '', 'Page Count of ' + tmpFile +' : ' + IntToStr(tmpCount));
      If psPdfGetPageHeight(psFilePath+psFileName, '', 1, tmpHeight) Then
        psLogWrite(1, '', 'Page Height of ' + tmpFile + ' : ' + FloatToStr(tmpHeight));
      If psPdfGetPageWidth(psFilePath+psFileName, '', 1, tmpWidth) Then
      Begin
        psLogWrite(1, '', 'Page Width of ' + tmpFile + ' : ' + FloatToStr(tmpWidth));
        // Check Width
        // Pdf Files <= ctMaxWidth should go to DestinationID 1 
        // Pdf Files > ctMaxWidth should go to DestinationID 2    
        If (psDestinationID = 'ID1') And (tmpWidth <= ctMaxWidth) Then psExitCode := 1; 
        If (psDestinationID = 'ID2') And (tmpWidth > ctMaxWidth) Then psExitCode := 1;  
      End
      Else
      begin
        // Error Loading Pdf File, set psExitCode to 0
        psExitCode := 0;
      End;   
    End.

    Limagito File Mover Pascal Script

    – RunTime Log Result:

    Limagito File Mover RunTime Log result

    #Filetransfer #PDF

    If you need any info about this ‘Check pdf pagewidth’ option, please let us know.

    Best regards,

    Limagito Team

    By Limagito-Team Pascal Script PDF ,
1 13 14 15 16 17 18 19 29
SEARCH