Filters

  • 19 Nov

    How to move files based on data from a csv file

    How to move files based on data from a csv file

    Q: I have the Limagoto X software installed, and I would like to know if it’s possible to move files, based on some information from a csv file? I have an csv file with some order numbers, and the folders I want to move, are label with these order numbers.

    A line in the csv file would look like this:

    The file structure looks like this:

    limagito file mover folder structure example

    So I would have to extract “D” first letter of “Donald Duck” -> then look in folder “Donald Duck”\ordre and search for 9999999 and move that folder to a new location with the same folder structure.

    A: We asked and received a dummy csv file, data content lookes like:

    Art;Ordrenr.;Arkiveret;Arkivdato;Jobnavn;Kundenavn;Statuskode;Ordretype;S‘lger;Ordrestyrer
    Ordre;9876543;SAND;17-11-2023;Arkiveringstest;Limagito Complete;AABEN_ARKIV;ARK;TEAM-E;MHOE

    So in this example:

    • We would strip the first char of the ‘Kundenavn’ field:  L
    • Next it would be the full name of the same ‘Kundenavn’ field:  Limagito Complete
    • Add fixed text:  Ordre
    • And finally the value of data field ‘Ordre’:  9876543

    Result as Directory filter: *\L\Limagito Complete\Ordre\9876543\*

    • As source we used a Windows folder, root folder to start from is ‘Jobs’ :

    limagito file mover windows folder as source

    • Next we’ll need to add a ‘Pascal Script’ to strip data from the csv file and use it as directory filter:

    limagito file mover pascal script option

    • Enable and add the following ‘On Rule Begin’ Pascal Script:

    You can download the script: here

    Do not forget to adjust the ctDataPath const (must end with a \ ). In this path we’ll search for .csv data file(s) with a date structure in its filename like ‘YYYY-MM-DD’. This can, of course, be adjusted.

    limagito fil emover move files based on data from a csv file

    • Directory filter setup:

    limagito file mover directory filter setup

    The %VSA (= Var String A) configured by the previous script will be used as ‘Directory Name Include Filter’:

    limagito file mover directory filter

    This ‘Allow parameters in Directory Name Filter’ option should be enabled by default:

    limagito file mover directory filter

    • As Destination we used a Windows folder:

    limagito file mover windows folder as destination

    • RunTime log result:

    limagito file mover runtime log result

    #csv #managedfiletransfer #filetransfer #filemanagement

    If you need any help with this ‘move files based on data from a csv file’ request, please let us know.

    Best Regards,

    Limagito Team

  • 05 Nov

    How to setup a rule that reads a list of folders from a file

    How to setup a rule that reads a list of folders from a file

    Q: I wonder can you help me. I have a Source folder with hundreds of subfolders, each with a 5-digit numeric name –
    c:\source\23432, c:\source\76453 – you get the idea

    Inside each subfolder is a list of .txt and/or .inp files. – that’s kind of irrelevant.

    I’m trying to setup a rule that reads a list of folders from a file, one per line

    I want the rule to move t or copy the contents of just those subfolders to a destination which will also have the entry from the file somewhere in the destination path – e:\destinatio\<foldername>\target for eample

    I’ve tried use %FSA in various ways, but I’m hitting a brick wall. Any ideas?

    Limagito: Could you send me an example of such a file which contains the folders to copy

    It’s as simple as these  – so the source folders would, for example, be c:\source\<linefromfile> and the destination would be e:\dest\<linefromfile>

    list of folders from a file

    List of folders from a file\list of folders from a file

    Limagito: ok both text files are just examples I guess. Th text file to read from would always have the same name or would there be multiple txt files?

    For each rule, the text file will always be the same – one text file per job. The contents of each source folder however will change

    A: This is possible using a custom script.

    • We are using a Windows folder as source.

    limagito file mover windows folder as source

    • This folder contains subfolders, each with a 5-digit nummer.

    limagito file mover test folder setup

     

    • Please open our ‘Pascal Script’ option:

    limagito file mover pascal script option

    • Please enable and add the following ‘On Rule Begin’ Pascal Script. Don’t forget to adjust the ctTxtFile const. The script will read the content of the external text file and will set to our %VSA variable. This %VSA variable will be used in the Directory setup later.

    You can download the script: here

    limagito file mover pascal script option

    • The Directory Filter setup is very important in this case:
      • Enable ‘Include Subdirectories’
      • ‘Exclude Basedirectory’, because we only are interested in the content of the subfolders
      • Set ‘Subdirectory Filter Depth’ to ‘1’. Only the first level folder name is the one that will be used to check if it exists in the txt file.

    limagito file mover directory filter setup

    • Switch to the ‘Dir Name’, ‘Include’ tab:
      • Add  %VSA  as Directory Include Filter

    limagito file mover directory filter setup

    • Switch to ‘Advanced’ tab:
      • Set ‘SubDir Search Mode (WIN) to ‘Exclude Complete Invalid SubDirs’
        • The reason is that we will not scan invalid subfolders. So, if we can not find the folder name (5-digit numeric name) in the external text file, we’ll skip the subfolder completely.

    limagito file mover directory filter setup

    • We used a Windows Folder as Destination with default setup options:

    limagito file mover windows folder as Destination

    limagito file mover windows folder as destination setup

    limagito file mover windows folder as destination setup

     

    • RunTime log result:

    limagito file mover runtime log result

    • Destination output result:

    limagito file mover test folders

    #filetransfer #filemanagement

    If you need any help with this ‘list of folders from a file’ request, please let us know.

    Best Regards,

    Limagito Team

  • 02 Nov

    How to filter files based on reading their content header data

    How to filter files based on reading their content header data

    Q: How to filter file from read content in file. Header data date=today yyyymmdd

    I want is as shown in the picture below.

    filter files based on reading their content header data\filter files based on reading their content header data

    A: In this case the Source must be a Windows folder or share:

    limagito file mover windows folder as source

    Test file inside of: C:\Test\Customer\In\

    limagito fil emover test file example

    Please open our Pascal Script option:

    limagito file mover pascal script option

    Please enable and add the following ‘On Destination’ Pascal Script:

    Var
      iList: Integer;
      tmpCurrentDate, tmpEntry, tmpFile: String;
      tmpList: TStringList;
    Const
      ctRunDate = 'RUNDATE=';
    Begin
      psVSA := '';
      psExitCode:= -2;
      tmpCurrentDate := FormatDateTime('YYYYMMDD', Now);
      tmpFile := psFilePath + psFileName;
      psLogWrite(1, '', 'Searching for RUNDATE inside File: ' + tmpFile);
      tmpList := TStringList.Create;
      Try
        Try
          tmpList.LoadFromFile(tmpFile);
          // Iterate
          For iList := 0 to (tmpList.Count - 1) Do
          Begin
            tmpEntry := AnsiUpperCase(tmpList.Strings[iList]);
            If pos(ctRunDate, tmpEntry) <> 0 Then
            Begin
              tmpEntry := psStringReplace(tmpEntry, ctRunDate, '');
              If tmpEntry <> '' Then
              Begin
                If SameText(tmpEntry, tmpCurrentdate) Then
                Begin
                  psExitCode := 1; // Filter found
                  // Debug
                  psLogWrite(1, '', 'Valid RUNDATE found: ' + tmpEntry);
                  // Break
                  Break;
                End;  
              End;
            End;
          End;
         Except
           psLogWrite(1, '', 'LoadFromFileError, ' + tmpFile);
         End;
      Finally
        tmpList.Free;
      End;
    End.

    limagito file mover pascal script option

    We added the following filename include filter because it is important to only process text based files:

    limagito file mover file filter setup

    We added a Windows folder as Destination:

    limagito file mover destination setup

    RunTime Log result:

    limagito file mover runtime log result

    #filehandling #filetransfer #filemanagement

    If you need any help with this ‘filter files based on reading their content header data’ request, please let us know.

    Best Regards,

    Limagito Team

1 2 3 4 5 6 7 8 9
SEARCH