Groovy 从nifi流文件中提取文本并将其用作参数

Groovy 从nifi流文件中提取文本并将其用作参数,groovy,apache-nifi,Groovy,Apache Nifi,我有这样的groovy代码,我想提取TickSolution的值,然后将其用作调用服务的参数,我应该使用哪个nifi处理器来执行此任务 import java.nio.charset.StandardCharsets import org.apache.commons.io.IOUtils import org.apache.nifi.processor.io.StreamCallback import java.text.SimpleDateFormat import java.util.G

我有这样的groovy代码,我想提取TickSolution的值,然后将其用作调用服务的参数,我应该使用哪个nifi处理器来执行此任务

import java.nio.charset.StandardCharsets 
import org.apache.commons.io.IOUtils
import org.apache.nifi.processor.io.StreamCallback
import java.text.SimpleDateFormat
import java.util.GregorianCalendar

def flowfile = session.get()
if(!flowfile) return
def date=flowfile.getAttribute('fromDate')
 SimpleDateFormat format=new SimpleDateFormat("yyyy-mm-dd");
  def d=new Date(format.parse(date).getTime());
  def newdate=new GregorianCalendar(d.getYear(),d.getMonth(),d.getDay() )
 def TICKS_AT_EPOCH = 621355968000000000;
 def TICKS_PER_MILLISECOND= 10000;
  def TickSolution=(newdate.getTimeInMillis() - TICKS_AT_EPOCH) / TICKS_PER_MILLISECOND

flowfile = session.putAttribute(flowfile, 'filename','Info'+'_'+date)
session.transfer(flowfile, REL_SUCCESS)
萨利

您可以尝试下面的代码来处理解决方案的值

import java.nio.charset.StandardCharsets 
import org.apache.commons.io.IOUtils
import org.apache.nifi.processor.io.StreamCallback
import java.text.SimpleDateFormat
import java.util.GregorianCalendar

def flowfile = session.get()
if(!flowfile) return
def date=flowfile.getAttribute('fromDate')
 SimpleDateFormat format=new SimpleDateFormat("yyyy-mm-dd");
  def d=new Date(format.parse(date).getTime());
  def newdate=new GregorianCalendar(d.getYear(),d.getMonth(),d.getDay() )
 def TICKS_AT_EPOCH = 621355968000000000;
 def TICKS_PER_MILLISECOND= 10000;
  def TickSolution=(newdate.getTimeInMillis() - TICKS_AT_EPOCH) / TICKS_PER_MILLISECOND

flowfile = session.putAttribute(flowfile, 'filename','Info'+'_'+date)
flowfile=session.putAttribute(flowfile,'TickSolution',TickSolution)
session.transfer(flowfile, REL_SUCCESS)

如果您遇到任何问题,请告诉我。

您必须使用ExecuteScript处理器。我在iti中编写了此groovy代码,我还需要再使用一个。您的意思是什么?NiFi有一个ExecuteScript处理器,可以在其中运行groovy脚本。我运行此代码(我已经输入了我的问题)在executescript处理器内部,它不会出现异常,但现在我不想提取TickSolution的值。您知道我该怎么做吗?欢迎sally。如果答案对您有效,请随意接受,因为它可能对某人有帮助。