One Star

File name with a timestamp

Hi,
I have one question.
I want to give my file's name with a time stamp
It will be like "filename_yyyyMMdd_HHmm.dat"
But I have to find this file again in the job so, I want to store the "yyyyMMdd_HHmm" value in a context or variable.
and assign that context or variable to the file name.
Can you direct me how it can be done???
I've tried making a context of type string whose value is TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate())
But when i run it i got a file not found exception (I'm to create a file not find for the first time).
and I think the context returns as a string of "TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate())" not the actural date time value.
Thank You.
8 REPLIES
One Star

Re: File name with a timestamp

Hi Kyaw,
you have to set the content of the context variable in the running job by using the "Context Load" component.
At the start of the job insert a tFixedFlowInput Component and a "Context Load" Component.
Establish a "main" link from fixedFlowInput to the ContextLoad and set the schema of the fixedFlowInput equal to the ContextLoad.
In the fixedflowInput enter one row. In the "key" Field enter a String with the name of your context variable. In the value field enter the Expression TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate()).
When you run the job, the context will be set dynamically with the actual time in the given format.

Re: File name with a timestamp

Hi
Or you could make a context variable - I called it filename (String).
and before you save the file add a tjava component. In this component paste the following Code
context.filename = "filename_"+TalendDate.getDate("yyyyMMdd_HHmm")+".dat";

and whenever you need to use the name simply just use it as you would a normal context by typing context.filename
Six Stars

Re: File name with a timestamp

Hi Kyaw Lwin Phyo,
so first of all I created tLoop, context variable named timeStamp, then somewhere in process I asigned it the value of current time using tJava component and connected it to the first iteration
context.timeStamp = TalendDate.formatDate("yyyyMMdd_HHmmssSSS",TalendDate.getCurrentDate());

then I just used tRowGenerator to generate random ascii values for the tFileOutputDelimited and that's it.
Ladislav
One Star

Re: File name with a timestamp

Instead, No need of Context Variable or Context load component. 
Directly provide the expression in the filename property - it works
"D:/filedirectory/fileout_"+TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate())+".csv"
One Star

Re: File name with a timestamp

Instead, No need of Context Variable or Context load component. 
Directly provide the expression in the filename property - it works
"D:/filedirectory/fileout_"+TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate())+".csv"

A W E S O M E ! Smiley Happy

Re: File name with a timestamp

if u want ur output file with time stamp try this one:


One Star

Re: File name with a timestamp

Instead, No need of Context Variable or Context load component. 
Directly provide the expression in the filename property - it works
"D:/filedirectory/fileout_"+TalendDate.formatDate("yyyyMMdd_HHmm",TalendDate.getCurrentDate())+".csv"

It worked perfectly. Thank You Smiley Happy

Re: File name with a timestamp

Do we have any option for giving regular expression in file path