Thanks Joe and Pierre,

Yep, that was the way to go indeed and thanks for your confirmation, time and 
replies [😊]


I've moved matching the static part to the ListSFTP regex with File Filter 
Regex = test.file.\d{8}-\d{6}.csv

and matched with Pierre's expression to simplify the route condition. Further 
down in GetSFTP, I had to specify ${path}/${filename} to fetch the file.


Best regards,

________________________________
From: Pierre Villard <pierre.villard...@gmail.com>
Sent: April 21, 2016 1:18 PM
To: users@nifi.apache.org
Subject: Re: datetime argument to the GetSFTP processor

Hi Ashraf,

I believe you are right, RouteOnAttribute is certainly what you should use.
Regarding the expression, it sounds good to me. Depending of the filename 
format characteristics, may be you can directly use

${filename:contains( ${now():toNumber():minus(86400000):format('yyyymmdd')} )}


2016-04-21 19:11 GMT+02:00 Ashraf Hasson 
<ahas...@windmobile.ca<mailto:ahas...@windmobile.ca>>:
Hi there,

Okay, so I should use RouteOnAttribute I think.

Here's the source filename: test.file.20160420-015931.csv

I've configured the RouteOnAttribute to route the `filename` to success when 
the following is matched:

property: filename == value: 
${filename:substringAfter('test.file.'):startsWith( 
${now():toNumber():minus(86400000):format('yyyymmdd')} )}

Maybe this is not the right way but I'd highly appreciate some help.

Thanks,

________________________________________
From: Ashraf Hasson
Sent: April 21, 2016 12:50 PM
To: users@nifi.apache.org<mailto:users@nifi.apache.org>
Subject: Re: datetime argument to the GetSFTP processor

Hi James,

Thanks for your reply.
The source has multiple files generated per day and I'm interested in one of 
those, so filtering is required I guess.
I don't know how to filter based on the filename, was trying to pipe things 
like this: ListSFTP -> UpdateAttribute -> FetchSFTP
but I'm sure there's a better way to filter. Can you help by giving me a 
pointer or two please?

I also tried to pipe directly from ListSFTP -> FetchSFTP and used 
${now():toNumber():minus(86400000):format('yyyymmdd')}-*.csv but then this 
doesn't match the remote file guessing because FetchSFTP doesn't do globing.

Thanks,
________________________________________
From: Joe Witt <joe.w...@gmail.com<mailto:joe.w...@gmail.com>>
Sent: April 15, 2016 1:35 PM
To: users@nifi.apache.org<mailto:users@nifi.apache.org>
Subject: Re: datetime argument to the GetSFTP processor

Ahh - great idea James!

On Fri, Apr 15, 2016 at 1:34 PM, James Wing 
<jvw...@gmail.com<mailto:jvw...@gmail.com>> wrote:
> Have you looked at a combination of ListSFTP -> FetchSFTP?  I believe
> ListSFTP has built-in support for tracking recent files, and it might
> satisfy your use case.  If not, you can certainly filter the listed files by
> the "filename" attribute before calling FetchSFTP.
>
> On Fri, Apr 15, 2016 at 7:40 AM, Ashraf Hasson 
> <ahas...@windmobile.ca<mailto:ahas...@windmobile.ca>>
> wrote:
>>
>> Hi there,
>>
>>
>> I've been trying to use the GetSFTP processor to fetch files that have a
>> 'yyyymmdd' part but the only option I have is to use Java Regular
>> Expression, not sure how to specify today or yesterday's date dynamically.
>>
>>
>> I thought an alternative is to use a locally generated file that contains
>> the datetime string, use a GetFile + UpdateAttribute to pass in a custom
>> attribute to the GetSFTP processor that way, but sounded a bit cumbersome
>> tbh.
>>
>>
>> Any thoughts/hints please?
>>
>>
>> Thanks,
>>
>> Ashraf
>
>

Reply via email to