Groovy代码无法正常工作

时间:2017-10-25 06:23:54

标签: groovy apache-nifi

我想先得到一个flowFile,def flowFile=session.get(1)因为我知道它会返回一个flowFile列表,其中会有一个flowFile。然后我想从中获取一些数据并删除此会话。

之后我想获取具有特定名称的文件,如果他们不匹配此名称,我想删除或回滚会话(哪一个最适合此任务?)但是当我运行此代码时不会抛出异常,但不会做任何工作。

  1. 我应该改变什么?
  2. 我应该使用session.remove()还是回滚哪一个更适合撤回不匹配的流文件?
  3. 这是我的代码:

    import org.apache.commons.io.IOUtils
    import java.nio.charset.StandardCharsets
    import java.lang.*
    
    def flowFile= session.get(1)
    def name=""
    def count=0
    def value=0
    
    List<FlowFile> flowFiles = new ArrayList<FlowFile>()
    
    for(def k in flowFile) {
      name = k.getAttribute("realName")
      count = k.getAttribute("amount")
      value = count as  Number
      value = Math.round(value)
      session.remove(k)
      flowFile.clear()
    }
    
    def flowFile1 = session.get();
    
    if(flowFile1.getAttribute("filename").substring(0,10) == name) {
      flowFiles.add(flowFile1)
    } else {
      session.remove(flowFile1) 
    }
    
    if(flowFiles.size() == value) {
      for( def m in flowFiles) {
        session.transfer(m,REL_SUCCESS)
      }
    
      flowFiles.clear()
    }
    

0 个答案:

没有答案