import groovy.json.JsonSlurper; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVPrinter; import com.oracle.e1.common.OrchestrationAttributes; import java.text.SimpleDateFormat; HashMap < String, Object > main(OrchestrationAttributes orchAttr, HashMap inputMap) { HashMap < String, Object > returnMap = new HashMap < String, Object > (); returnMap.put("CSVComplete", "false"); def jsonIn = new JsonSlurper().parseText(inputMap.get("One Line Data")); def jsonData = jsonIn.fs_DATABROWSE_V0101B.data.gridData.rowset; if (jsonData.size() == 0) { returnMap.put("CSVComplete", "empty"); return returnMap; } def fileName = orchAttr.getTempFileName("oneLine.csv"); returnMap.put("CSVOutFileName", fileName); //class writer to write file def def sw = new StringWriter(); //build the CSV writer with a header def csv = new CSVPrinter(sw, CSVFormat.DEFAULT.withHeader("addressNumber", "alphaName", "searchType", "addressLine1", "city", "state", "zipCode", "country", "phonePrefix", "phoneNumber")); // create output file fileCsvOut = new File(fileName); def count=0; // build the CSV def an8Map = new ArrayList(); for (int i = 0; i < jsonData.size(); i++) { def addressNumber = jsonData[i].F0101_AN8; if (an8Map.contains(addressNumber)) { continue; } an8Map.add(addressNumber); count++; csv.printRecord(addressNumber, jsonData[i].F0101_ALPH, jsonData[i].F0101_AT1, jsonData[i].F0116_ADD1, jsonData[i].F0116_CTY1, jsonData[i].F0116_ADDS, jsonData[i].F0116_ADDZ, jsonData[i].F0116_CTR, jsonData[i].F0115_AR1, jsonData[i].F0115_PH1); } csv.close(); //writing csv to file fileCsvOut.withWriter('UTF-8') { writer -> writer.write(sw.toString()) } orchAttr.writeDebug(sw.toString()); returnMap.put("csv", sw.toString()); returnMap.put("CSVComplete", "true"); returnMap.put("CSVcount", Integer.toString(count)); return returnMap; }