package cherniak.bpmonline.com; import java.io.OutputStream; import java.net.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Attr; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; /** * OData insert request for bpmonline * */ public class App { private static final String SERVICE_URL = "http://int- web/Amdocs_T/0/ServiceModel/EntityDataService.svc/"; private static final String AUTH_URL = "http://int-web/Amdocs_T/ServiceModel/AuthService.svc/Login"; private static final String DS = "http://schemas.microsoft.com/ado/2007/08/dataservices"; private static final String DSMD = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; private static final String ATOM = "http://www.w3.org/2005/Atom"; public static void main( String[] args ) throws Exception { CookieManager msCookieManager = new CookieManager(); CookieHandler.setDefault(msCookieManager); if(GetAuthCookie("Supervisor", "Supervisor")) { CreateBpmEntityByOdataHttpExample(msCookieManager); } } public static boolean GetAuthCookie(String login, String password) { try{ URL urlAuth = new URL(AUTH_URL); HttpURLConnection connection1Auth = (HttpURLConnection) urlAuth.openConnection(); connection1Auth.setDoOutput(true); connection1Auth.setRequestMethod("POST"); connection1Auth.setRequestProperty("Content-Type","application/json"); String authJson = String.format("{\"UserName\": \"%s\", \"UserPassword\":\"%s\"}", login, password); byte[] outputBytes = authJson.getBytes("UTF-8"); OutputStream os = connection1Auth.getOutputStream(); os.write(outputBytes); os.close(); int responseCode = connection1Auth.getResponseCode(); return responseCode == 200; } catch (Exception e) { return false; } } public static void CreateBpmEntityByOdataHttpExample(CookieManager manager) { try{ //Create xml document DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element entry = doc.createElement("entry"); Attr attrAtom = doc.createAttribute("xmlns"); attrAtom.setValue(ATOM); entry.setAttributeNode(attrAtom); doc.appendChild(entry); Element content = doc.createElement("content"); Attr attrType = doc.createAttribute("type"); attrType.setValue("application/xml"); content.setAttributeNode(attrType); entry.appendChild(content); Element properties = doc.createElement("properties"); Attr attrMetadata = doc.createAttribute("xmlns"); attrMetadata.setValue(DSMD); properties.setAttributeNode(attrMetadata); content.appendChild(properties); //Set Name of Contact Element name = doc.createElement("Name"); Attr attrProp = doc.createAttribute("xmlns"); attrProp.setValue(DS); name.setAttributeNode(attrProp); name.appendChild(doc.createTextNode("Test Person")); properties.appendChild(name); //Set Dear of Contact Element dear = doc.createElement("Dear"); Attr attrOppo = doc.createAttribute("xmlns"); attrOppo.setValue(DS); dear.setAttributeNode(attrOppo); dear.appendChild(doc.createTextNode("Mister")); properties.appendChild(dear); doc.setXmlStandalone(true); //Send insert request URL url = new URL(SERVICE_URL + "ContactCollection/"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); connection.setRequestProperty("Accept", "application/atom+xml"); connection.setRequestProperty("Content-Type","application/atom+xml;type=entry"); //Add BPMCSRF for(HttpCookie cookie : manager.getCookieStore().getCookies()) { if(cookie.getName().equals("BPMCSRF")) { connection.setRequestProperty("BPMCSRF", cookie.getValue()); } } OutputStream os = connection.getOutputStream(); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.transform(new DOMSource(doc), new StreamResult(os)); os.close(); int responseCode = connection.getResponseCode(); System.out.println(responseCode); } catch (Exception e) { System.out.println(e.getMessage()); } } }