Reading data from data set
Example below shows loading dataset object, reading data and putting them into JSONArray, which is then sent as response to the client.
package com.example; import com.belladati.extension.BaseExtensionEndpoint; import org.apache.tapestry5.StreamResponse; import com.belladati.json.JSONArray; import com.belladati.json.JSONObject; public class MyEndpoint extends BaseExtensionEndpoint { def row def values public StreamResponse doGet() { try { def dataset = loadDataset(123456); JSONArray data = new JSONArray(); readDatasetData(dataset, null) { //loads data per row JSONObject d = new JSONObject(); def rowID = row.getRowId(); d.put("rowID", String.valueOf(rowID)); for (e in values) { def k = e.key def v = e.value d.put(k, String.valueOf(v)); } data.add(d); } return createStreamResponse(data.toJSONString()); } catch (Exception e) { return createStreamResponse("error: " + e); } } }
Reading filtered and sorted data from data set
package com.example; import com.belladati.extension.BaseExtensionEndpoint; import org.apache.tapestry5.StreamResponse; import com.belladati.bi.biz.report.view.settings.Filter; import com.belladati.bi.biz.report.view.settings.OperationType; import com.belladati.json.JSON; import com.belladati.json.JSONArray; import com.belladati.json.JSONObject; public class MyEndpoint extends BaseExtensionEndpoint { def row def values @Override public StreamResponse doGet() { try { //console.log(param); def dataset = loadDataset(123456); def attribute = getDatasetAttribute(dataset, "L_CURRENCY"); Filter f = new Filter() f.and(attribute, OperationType.IN, "HDK"); String filter = buildFilter(dataset, f); JSONArray data = new JSONArray(); def key = readDatasetData(dataset,filter,1,10,"L_CUSTOMER DESC") {//loads data per row JSONObject d = new JSONObject(); def rowID = row.getRowId(); d.put("id", String.valueOf(rowID)); for (e in values) { def k = e.key def v = e.value if (v != null) { d.put(k, String.valueOf(v)); } } data.add(d); } return createStreamResponse(data.toJSONString()); } catch (Exception e) { return createStreamResponse("error: " + e); } } @Override public StreamResponse doPost() { // TODO Auto-generated method stub. Please insert here your code for POST operation. return createStreamResponse("OK", "text/plain", 200); } }
Sending SOAP request to 3rd party system
Following example reads JSON data from HTTP paramater data, parse it into JSONObject and retrieves the testId field from it. Consequently, testId is sent inside the SOAP body.
package com.example; import com.belladati.extension.BaseExtensionEndpoint; import org.apache.tapestry5.StreamResponse; import com.belladati.bi.biz.dataImport.source.URLImportTableSource; import org.apache.commons.io.IOUtils; import com.belladati.json.JSON; import com.belladati.json.JSONArray; import com.belladati.json.JSONObject; public class WriteResults extends BaseExtensionEndpoint { @Override public StreamResponse doPost() { def s = new URLImportTableSource("http://soap_endpoint_url", URLImportTableSource.MethodType.POST) s.addHeader("AUTHUSER", "admin") s.addHeader("AUTHPASSWORD", "XYZ") s.addHeader("SOAPaction", "Test") JSONObject data = JSON.fromJSONString(getParameter("data")) String testId = "Test" + data.getString("testId") s.setContent(""" <SOAP-ENV:Envelope encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <Item type="Document" action="add"> <item_number>"""+ testId +"""</item_number> </Item> </SOAP-ENV:Body> </SOAP-ENV:Envelope> """) return createStreamResponse(IOUtils.toString(s.getStream(null))) } }
Overview
Content Tools