nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sally <sally.tkhilaishv...@gmail.com>
Subject Nifi: how to transfer only last file from the flowFile list?
Date Thu, 07 Dec 2017 12:12:18 GMT

I want to get all flowfile from the queu which fileSize is greater than 831
and then put them into the list after that catch last flowfile from the list
and transfer to success relationship and finally remove all other flowfiles
, here is my code which throws exception that transfer relationship not
specified , what should i change in this case?



import org.apache.nifi.processor.FlowFileFilter;
import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
import java.nio.charset.StandardCharsets
import org.apache.commons.io.IOUtils

def flowFile = session.get()
def  n=0;
if(!flowFile)return
def size = flowFile.getAttribute('fileSize');
log.error(size.toString())
int value = size as Integer;

if((value/831)>1){
def ffList = session.get(new FlowFileFilter(){
    public FlowFileFilterResult filter(FlowFile ff) {

        if( size == ff.getAttribute('fileSize') ) n++; return
FlowFileFilterResult.ACCEPT_AND_CONTINUE
        return FlowFileFilterResult.REJECT_AND_CONTINUE
    }

})
session.transfer(ffList.get(n-1),REL_SUCCESS)
//session.remove(ffList);
}
session.remove(flowFile);




--
Sent from: http://apache-nifi-users-list.2361937.n4.nabble.com/

Mime
View raw message