Tutorials & examples

Table of Contents

Tutorials

Examples

Custom Web Service code snippet

import javax.net.ssl.HttpsURLConnection import groovy.json.JsonSlurper def randomPerson(def name, def surname, def email){ URL url = new URL("https://randomuser.me/api/"); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); con.setRequestMethod("GET"); int status = con.getResponseCode(); Reader streamReader = null; if (status > 299) { streamReader = new InputStreamReader(con.getErrorStream()); } else { streamReader = new InputStreamReader(con.getInputStream()); } def json = new JsonSlurper() def object = json.parseText(streamReader.text) change name value { object.results.get(0).get("name").get("first") } change surname value { object.results.get(0).get("name").get("last") } change email value { object.results.get(0).get("email") } }

Runner code snippet

import com.netgrif.application.engine.auth.domain.* import com.netgrif.application.engine.petrinet.domain.roles.ProcessRole import com.netgrif.application.engine.auth.service.interfaces.IUserService @Autowired private IUserService userService @Override void run(String... args) throws Exception { log.info("Calling custom runner"); userService.saveNew(new User( name: "User", surname: "Test", email: "test@netgrif.com", password: "password", state: UserState.ACTIVE, authorities: [] as Set, processRoles: [] as Set)) }

CSV pom dependency

<!--CSV pom--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.6</version> </dependency>

CSV parser code snippet

import org.apache.commons.csv.* void importCSVFile(FileField file, String net, List fields){ try{ def stream = new FileInputStream(new File(file.value.path)) CSVParser parser = CSVParser.parse(stream, Charset.forName("UTF-8"), CSVFormat.EXCEL.withDelimiter(',' as char)) for (CSVRecord record in parser.iterator()) { def cas = createCase(net, record[0]) fields.eachWithIndex { String entry, int i -> cas.getDataField(entry).setValue(record[i]) } workflowService.save(cas) } } catch (Exception e) { log.error("Import CSV File error", e) } }

*this example follows funcionality created in example: Import CSV as cases

CSV export code snippet

import com.netgrif.application.engine.petrinet.domain.dataset.FileField import com.netgrif.application.engine.workflow.domain.QCase import com.netgrif.application.engine.workflow.domain.Case def exportCSVFile(String net, List fields) throws IOException { File csvOutputFile = new File("storage/" + useCase.stringId + "_csv_file.csv") FileWriter writer = new FileWriter(csvOutputFile); workflowService.searchAll(QCase.case$.processIdentifier.eq(net)).eachWithIndex{ Case ca, int i -> writer.write(i.toString() + ",") fields.each{ if(ca.getFieldValue(it) != null) writer.write(escapeSpecialCharacters(ca.getFieldValue(it).toString()) + ",") else writer.write(",") } writer.write(System.lineSeparator()) } return new FileFieldValue(csvOutputFile.name,csvOutputFile.path) } String escapeSpecialCharacters(String data) { String escapedData = data.replaceAll("\\R", " ") if (data.contains(",") || data.contains("\"") || data.contains("'")) { data = data.replace("\"", "\"\"") escapedData = "\"" + data + "\"" } return escapedData; }