ECMAscript 基础

创建一个新的FlowFile

1 var flowFile = session.create();

从父FlowFile创建新的FlowFile

1 var newFlowFile = session.create(flowFile);

向流文件添加属性

1 flowFile = session.putAttribute(flowFile, 'myAttr', 'myValue')

向流文件添加多个属性

1 var attrMap = {'myAttr1':'1', 'myAttr2': number2.toString()}
2 flowFile = session.putAllAttributes(flowFile, attrMap)

从流文件中获取属性

1 var myAttr = flowFile.getAttribute('filename')
2 
3 var attrs = flowFile.getAttributes();
4 for each (var attrKey in attrs.keySet()) {
5     //attrs[attrKey]
6 }

将流文件传输到关系

1 session.transfer(flowFile, REL_FAILURE)
2 session.transfer(flowFile, REL_SUCCESS)

使用回调读取传入流文件的内容

1 session.read(flowFile,new InputStreamCallback(function(inputStream) {
2     var text = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
3     // Do something with text here
4 }));

使用回调将内容写入传出流文件

1 flowFile = session.write(flowFile,new OutputStreamCallback(function(outputStream) {
2     outputStream.write("Hello World!".getBytes(StandardCharsets.UTF_8))
3 }));

使用回调覆盖带有更新内容的传入流文件

1 flowFile = session.write(flowFile,new StreamCallback(function(inputStream, outputStream) {
2     var text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
3     outputStream.write(text.split("").reverse().join("").getBytes(StandardCharsets.UTF_8))
4 }));

处理脚本处理过程中的错误

1 var flowFile = session.get();
2 if(flowFile != null) {
3       try {
4           session.transfer(flowFile, REL_SUCCESS)
5     } catch(e) {
6       log.error('Something went wrong', e)
7       session.transfer(flowFile, REL_FAILURE)
8     }
9 }

以指定的日志记录级别向日志发送消息

1 var ObjectArrayType = Java.type("java.lang.Object[]");
2 var objArray = new ObjectArrayType(3);
3 objArray[0] = 'Hello';
4 objArray[1] = 1;
5 objArray[2] = true;
6 log.info('Found these things: {} {} {}', objArray)

 

posted @ 2021-07-28 14:19  木章  阅读(126)  评论(0)    收藏  举报