This post I will describe you how to name a file with Timestamps in Talend. File name format depends upon your business requirement, for example your business requirement is to name file with time stamp like “Order_yyyyMMdd_hhmmss.dat” so it will have time stamp up to seconds hence you want to get the same file for reading or any other purpose you will not find out easily therefore you can maintain file names in variable to access it later.
In our scenario we will create a file with above name format and then same file will be used to read and display result after reading will use same file copy to the same day folder name.
This is our final job design.
- Create context variable context.FileName as string to hold the file name.
- Add tJava and write below code in it.
- Now add tRowGenerator to generate dummy data ( you can use your source e.g. database, file or anything) and link with tJava using “OnSubJobOk”.
- Add tFileOutputDeimited component and connect with tRowGenerator using main flow then configure as shown in below image.
As you can see we have assign file name from context variable, in the same way you can add dynamic file name like “D:/Orders”+TalendDate.getDate(“yyyyMMdd_hhmmss”)+”.csv” this.
Our source file created with expected file name that is “Orders_20150129_134310.csv”, now we want to read same file so follow below steps.
- Add tFileInputDelimited and connect with tRowGenerator using “OnSubJobOk” link.
- Configure tFileInputDelimited component as shown in below image.
You can observe that we are using file name in same way we did for file creation, because we don`t know how long file creation will take if it exceed in more than one second then you will miss the file name previously created to avoid that we are storing file name in context.FileName variable.
Now you have read the file and want to copy it to some other location, but it should be stored in folder with today’s date when it was created to do so,
- Add tFileCopy component and link with tFileInputDelimited using “OnSubJobOk” link.
- Configure tFileCopy component as shown in image.
You can notice that we are using same file name as we are using for rest of the component above. And the only change here is we are creating directory with Dynamic name by using “D:/”+TalendDate.getDate(“yyyyMMdd”) this code. This component allows us to create directory if it is not exist with provided name.
We have moved entire file from source location to dynamically created folder. Same you can use dynamic file or directory name as per business need.