Pascal Script

  • 12 Nov

    How to merge and add filenames to csv datafiles

    How to merge and add filenames to csv datafiles

    Q: I have a new daily job where I will receive 3 CSV files. I need to merge these together and also add a new field to the data that contains the original filename as I need to split them later on in the process and use the original filename to send back to the client. Also, I may not always get all 3 files so the rule needs to work for receiving 1,2, or all 3 files.

    We will run the rule at 18:00 for example and process however many files have been uploaded, then run the rule every 1 hour after to pick up any files that the client has uploaded late. The ideal scenario would be for all 3 files to be uploaded by the client by the scan time, but they want us to be able to pick up any files they may upload late.

    The data does not contain headers either. I’m sure I have asked this before but I can’t find the solution if I have, I have found similar and have tried to amend it to suit but failed miserably.

    A: We asked and received the following example files:

    • BTW_Invites_20231023_1.csv
    • BTW_Reminders_20231023_1.csv
    • BTW_Results_20231023_1.csv

    We used a Windows folder as Source:

    limagito file mover windows folder as source

    We added the following ‘Include Filename’ Filter because we want to be sure to only process .csv files:

    limagito file mover filename filter setup

    As Destination we add our ‘Pascal Script’ option:

    limagito file mover destination setup

    Destination Pascal Script, do not forget to adjust the ctOutputPath const (Path must end with a \ ).

    The script will add the filename of the source csv file to the end of each entry of the merged csv file. The Destination merged csv file is determined by stripping parts of the source filename. In our example it will be: ‘BTW_Merged_20231023_1.csv’.

    This script is just an example and it can be adjusted so it fits your needs, just let us know.

    You can download the script: here

    limagito file mover merge and add filenames script

    RunTime Log Result:

    limagito file mover runtime log result

    #csv #filetransfer #filemanagement

    If you need any help with this ‘merge and add filenames’ option, 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

  • 05 Nov

    How to adjust text in a xml file

    How to adjust text in a xml file

    Q: How can I setup a watch folder for any xml files come in and search for specific wording and change it to another word and move it out to an output directory.

    For the attach example:

    • If you see the word “  <Main>1</Main>”  then change to <Main>Good</Main>
    • If you see other word beside “1” then chang to <Main>NoGood</Main>

    Example content:

    <?xml version=”1.0″?>
    <Header>
    <Main>1</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    A: Yes this is possible using ‘Pascal Script’ as Destination.

    Source is a Windows folder:

    limagito file mover windows folder as source

    We adjusted the ‘Include Filename Filter’ to *.xml because we only want to handle xml files here.

    limagito filemover include filename filter

    We added our ‘Pascal Script’ option as Destination:

    limagito file mover pascal script as destination

    We added the following script. Please do not forget to adjust the ctOutputPath const which must end with a \

    You can download the script: here

    limagito file mover adjust text in a xml file

    RunTime Log result:

    limagito file mover runtime log result

    Content of the 3 source test files we used:

    1. TEST.Good.xml

    <?xml version=”1.0″?>
    <Header>
    <Main>1</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    2. TEST.NoGood.xml

    <?xml version=”1.0″?>
    <Header>
    <Main>0</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    3. TEST.NoGood.blanc.xml

    <?xml version=”1.0″?>
    <Header>
    <Main></Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    Content of the 3 resulting Destination files:

    1. TEST.Good.xml

    <?xml version=”1.0″?>
    <Header>
    <Main>Good</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    2. TEST.NoGood.xml

    <?xml version=”1.0″?>
    <Header>
    <Main>NoGood</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

    3. TEST.NoGood.blanc.xml

    <?xml version=”1.0″?>
    <Header>
    <Main>NoGood</Main>
    <name>Geen</name>
    <Date>221023</Date>
    </Plan>

     

    #xml #filetransfer #filemanagement

    If you need any help with this ‘adjust text in a xml file’ request, please let us know.

    Best Regards,

    Limagito Team

1 2 3 4 5 6 7 26
SEARCH