You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by sally <sa...@gmail.com> on 2017/08/16 12:32:21 UTC
Rolling back service invokation when i get bad response
I want to make remote service invokation in nifi and i want to make one
flowfile for each startDate reponse here is my ecexutescript code for it,
but i want to konw how can i prevent service invokation as soon as i receve
bad request for example if service doesn't have data for
startDate=2017-07-07, I want to log this flowfile and then roll back service
invokation for date=2017-07-08 , how can i do it?
var flowFile = session.get();
function addDays(date, days) {
var result =new Date(date);
result.setDate(result.getDate() + days);
var dateFormated = result.toISOString().substr(0,10);
return formatDate(dateFormated);
}
function removeDays(date, days) {
var result =new Date(date);
result.setDate(result.getDate() - days);
var dateFormated = result.toISOString().substr(0,10);
return formatDate(dateFormated);
}
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
if (flowFile != null) {
var startDate= flowFile.getAttribute('startDate')
var endDate= flowFile.getAttribute('endDate')
var parameter=flowFile.getAttribute("parameter")
var dateToStart=new Date(startDate);
var dateToEnd=new Date(endDate);
var difference = dateToEnd- dateToStart;
for(var i=0;i<difference;i++) {
var flowFile1 = session.create();
dateToEnd = addDays(dateToStart, 1);
var flowFile1 = session.putAttribute(flowFile1, 'filename',
formatDate(dateToStart));
var command = '<soapenv:Envelope xmlns:soapenv="url"
xmlns:tem="name">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<tem:Data>' +
'<tem:startDate>' + formatDate(new Date(dateToStart)) +
'</tem:startDate>' +
'<tem:endDate>' + formatDate(new Date(dateToStart)) +
'</tem:endDate>' +
'</tem:Data>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
flowFile1 = session.write(flowFile1,
new OutputStreamCallback(function (outputStream) {
outputStream.write(command.getBytes(StandardCharsets.UTF_8))
}));
session.transfer(flowFile1, REL_SUCCESS)
dateToStart = dateToEnd;
}
session.remove(flowFile)
}
--
View this message in context: http://apache-nifi-developer-list.39713.n7.nabble.com/Rolling-back-service-invokation-when-i-get-bad-response-tp16680.html
Sent from the Apache NiFi Developer List mailing list archive at Nabble.com.