Q: Is it possible to move 1 file to 1 location and another file to a different location but only when a file with a specific extension is present? I’m processing a job where I create a data file with print information and a PDFfile, in the Main location there will be .csv file
Main Location
.csv
At some point a pdf file will appear in the main location i.e.
.csv
Can I create a rule where
- It only starts when a .pdf is present
- Moves the .pdf file to 1 location and the .csv file to a different location?
A: Yes this is possible using a bit of Pascal Script. We added some screenshots from an example to get you started.
- We added a local Windows folder as Source:
- Important is to add the following FileName Include Filters. We’ll scan for ‘*.csv’ and ‘*.pdf’ files.
- Open the Pascal Script option:
- Enable and Add the following ‘On Rule Begin’ Pascal Script:
Begin psExitCode:= 1; // ... add your code here psVSA := ''; End.
- Enable and Add the following ‘On Destination’ Pascal Script:
Var tmpExt: String; tmpFile: String; Begin psExitCode := 0; // ... add your code here tmpExt := ExtractFileExt(psFileName); // Check for pdf if csv exists If tmpExt = '.csv' Then Begin tmpFile := psStringReplace(psFileName, tmpExt, '.pdf'); If FileExists(psFilePath + tmpFile) or (Pos(psFilePath + tmpFile, psVSA) <> 0) Then Begin psLogWrite(1, '', 'File ' + tmpFile + ' Exists'); psVSA := psVSA + ';' + psFilePath + psFileName; psExitCode := 1; End; End; // Check for csv if pdf exists If tmpExt = '.pdf' Then Begin tmpFile := psStringReplace(psFileName, tmpExt, '.csv'); If FileExists(psFilePath + tmpFile) or (Pos(psFilePath + tmpFile, psVSA) <> 0) Then Begin psLogWrite(1, '', 'File ' + tmpFile + ' Exists'); psVSA := psVSA + ';' + psFilePath + psFileName; psExitCode := 1; End; End; End.
- Enable and Add the following ‘On Destinations‘ Pascal Script:
Begin
psExitCode := -1;
// .csv files to Destination ID1
If (psDestinationID = 'ID1') And (ExtractFileExt(psFileName) = '.csv') Then
psExitCode := 1;
// .pdf files to Destination ID2
If (psDestinationID = 'ID2') And (ExtractFileExt(psFileName) = '.pdf') Then
psExitCode := 1;
End.
- Add two Destinations. Important, the first Destination (ID1) should receive hte csv files and the second Destination (ID2) should receive the pdf files.
- RunTime Log Result. The Csv file goes to the first Destination and only when a pdf file with the same name exists. The pdf file itself goes to the second Destination.
#Filetransfer #Filemanagement
If you need any info about this request, please let us know.
Best regards,
Limagito Team