Hi Andy, apologies for the delay in replying. I have come back to the task
and tried to write a simple Groovy script in order to make the substitutions
coming from the mapping files. In order to have something working, I have
modified the mapping files, so that each of the incoming Json values
initially translate into "some text". I am harcoding the substitution in the
below script:
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
import java.nio.charset.StandardCharsets
def flowFile = session.get();
if (flowFile == null) {
return;
}
flowFile = session.write(flowFile,
{ inputStream, outputStream ->
def content = """
{
"field2": "some text",
"field3": "some text"
}"""
def slurped = new JsonSlurper().parseText(content)
def builder = new JsonBuilder(slurped)
builder.content.field2 = "A"
builder.content.field3 = "A*"
outputStream.write(builder.toPrettyString().getBytes(StandardCharsets.UTF_8))
} as StreamCallback)
session.transfer(flowFile, ExecuteScript.REL_SUCCESS)
The substitutions work fine, but obviously the approach is very much
hardcoded. First off, how do I map the attribute 'content' to my flowfile?
The preceding processor is UpdateAttribute where I simply map the incoming
flowfile to the filename = myResultingJson.json. Secondly, is it possible to
load the mapping file with the replacements via Groovy in the script and
make Groovy to work out the mapping in a more generic way?
Thank you so much for your help,
Ilaria
--
View this message in context:
http://apache-nifi-developer-list.39713.n7.nabble.com/Help-with-ReplaceTextWithMapping-processor-multi-column-mappings-tp10280p10864.html
Sent from the Apache NiFi Developer List mailing list archive at Nabble.com.