While the representation of the file is the same after being received by GetFTP, the attributes will not be. To follow the same dynamic as above, you would likely need to use a PutFile to take the results from GetFTP and place it in the same location you the other GetFile is pulling from.
Again, ideally the JAR handles STDIN, but the above method would provide the same end result albeit with a longer approach. On Mon, Sep 28, 2015 at 12:23 PM, Odin Guillermo Caudillo Gallegos < [email protected]> wrote: > Ok it work with GetFile and keeping the source, then deleting in the code, > now if i use GetFTP should i use the same Expression Language as input > parameter? > Thanks > > 2015-09-28 10:58 GMT-05:00 Aldrin Piri <[email protected]>: > >> Odin, >> >> * Saw Rick's message come in while typing this and I believe this may >> very well be causing your issue, but don't think changing that will resolve >> your issues. >> >> * Saw your response just come in. This has been a highly interrupted >> email process spanning a long interval! :) >> >> Part of the issue is that the file, when brought into the flow by GetFile >> is that the filename is its name within NiFi and not in the external >> environment. The best way to handle the invocation of the jar would be to >> handle the content via STDIN for the JAR. filename itself will not give >> your jar a path where it can find a file. >> >> Depending on your use case, you could approximate that by having the >> GetFile keep the source files and then using absolute.path in conjunction >> with filename in expression language: ${absolute.path}/${filename}. This >> would not remove files from that directory, so you would need some way to >> clean these up after carrying out your processing. >> >> We have had talk of creating a ListFile processor which seems like it >> would be helpful for this situation, but has yet to be implemented. [1] >> >> [1] https://issues.apache.org/jira/browse/NIFI-631 >> >> On Mon, Sep 28, 2015 at 11:30 AM, Rick Braddy <[email protected]> >> wrote: >> >>> Ignore STDIN = true (you don’t have anything flowing into stdin, as I >>> understand it) >>> >>> >>> >>> *From:* Odin Guillermo Caudillo Gallegos [mailto: >>> [email protected]] >>> *Sent:* Monday, September 28, 2015 10:06 AM >>> >>> *To:* [email protected] >>> *Subject:* Re: Run process after getting a file >>> >>> >>> >>> Ok, so i'm using the following configuration on the >>> ExecutingStreamProcess: >>> >>> command args = -jar;myJar.jar;${filename};/outputfolder >>> >>> command path = java >>> >>> Ignore STDIN = false >>> >>> It gives me a :Failed to write flow file to stdin due to >>> java.io.IOException: Broken pipe: java.io.IOException: Broken pipe >>> >>> >>> >>> I'm using GetFile->ExecutingStreamProcess do i miss something? i run the >>> jar from a terminal and works fine. >>> >>> Thanks >>> >>> >>> >>> 2015-09-25 19:01 GMT-05:00 Joe Witt <[email protected]>: >>> >>> command path = java >>> command args = -jar;${filename} >>> >>> That might do the trick. >>> >>> Thanks >>> Joe >>> >>> >>> On Fri, Sep 25, 2015 at 7:59 PM, Rick Braddy <[email protected]> >>> wrote: >>> > Expression language in ExecuteStreamProcess could be your friend here >>> to use >>> > the filename attribute to set the process arguments. >>> > >>> > >>> > On Sep 25, 2015, at 6:12 PM, Odin Guillermo Caudillo Gallegos >>> > <[email protected]> wrote: >>> > >>> > Great it works, now, is it possible to get like a .txt from the >>> GetFile flow >>> > and use it to execute a java -jar <file from flow> as an input value? >>> > >>> > 2015-09-25 17:56 GMT-05:00 Odin Guillermo Caudillo Gallegos >>> > <[email protected]>: >>> >> >>> >> Ok i'll give it a try >>> >> >>> >> 2015-09-25 17:40 GMT-05:00 Rick Braddy <[email protected]>: >>> >>> >>> >>> I think I misread your inquiry. ExecuteProcess is scheduled only by >>> >>> Timer or Cron schedule today; however, ExecuteStreamCommand support >>> the >>> >>> "Event" trigger method, which may meet your needs. >>> >>> >>> >>> Rick >>> >>> >>> >>> -----Original Message----- >>> >>> From: Rick Braddy [mailto:[email protected]] >>> >>> Sent: Friday, September 25, 2015 5:32 PM >>> >>> To: [email protected] >>> >>> Subject: Re: Run process after getting a file >>> >>> >>> >>> Not today. GetFile must start a flow. >>> >>> >>> >>> There are discussions underway on a proposal to introduce some new >>> file >>> >>> processors that are event triggered and dynamically configured >>> (incoming >>> >>> FlowFile contains path to file) >>> >>> >>> >>> Rick >>> >>> >>> >>> > On Sep 25, 2015, at 5:28 PM, Odin Guillermo Caudillo Gallegos >>> >>> > <[email protected]> wrote: >>> >>> > >>> >>> > Hi, is it possible to run the ExecuteProcess after using GetFile? >>> The >>> >>> > idea is to not use the scheduling feature but trigger it with >>> GetFile. >>> >>> > >>> >>> > Thanks >>> >> >>> >> >>> > >>> >>> >>> >> >> >
