Initiating a review with supporting documents using the Java API
You can use the Review, Commenting, and Approval building
block Java APIs to initiate a review. You can also add supporting
documents at the time you initiate the review.
package customsolution; import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Element; import org.xml.sax.SAXException; import com.adobe.idp.Document; import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; import com.adobe.livecycle.rca.client.ReviewCommentingAndApprovalServiceClient; import com.adobe.livecycle.rca.common.beans.RCADocument; import com.adobe.livecycle.rca.common.exception.RCAException; public class InitiateReviewWithSuppDoc { public String initiateReview() throws RCAException { ServiceClientFactory serviceClientFactory = getServiceClientFactory(); ReviewCommentingAndApprovalServiceClient rcaClient = new ReviewCommentingAndApprovalServiceClient(serviceClientFactory); //Step 1 Get review template (Assumption "CustomSolutionTemplate" already exists) String templateName = "CustomSolutionTemplate"; Document reviewTemplate = rcaClient.getReviewTemplate(templateName); //Step 2 Parse the template to add initiator to it, review title Document reviewContext = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); org.w3c.dom.Document reviewTemplateW3CDoc = db.parse(reviewTemplate.getInputStream()); reviewTemplateW3CDoc.getDocumentElement().normalize(); Element initiatorNode = (Element) reviewTemplateW3CDoc.getElementsByTagName("initiator").item(0); initiatorNode.setAttribute("domain", "DefaultDom"); initiatorNode.setAttribute("canonical_name", "apink"); Element titleNode = (Element) reviewTemplateW3CDoc.getElementsByTagName("title").item(0); titleNode.setTextContent("Sample Initiate Review"); DOMSource source = new DOMSource(reviewTemplateW3CDoc); StringWriter xmlAsWriter = new StringWriter(); StreamResult result = new StreamResult(xmlAsWriter); TransformerFactory.newInstance().newTransformer().transform(source, result); reviewContext = new Document(xmlAsWriter.toString().getBytes()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { e.printStackTrace(); } //Step 3 Initiate Review. Document reviewDocument = new Document(new File("/home/Documents/RCATest.pdf"), false); //Create supporting doc list List<RCADocument> supportingDocList = new ArrayList<RCADocument>(); //REF Type RCADocument supportingDocument1 = new RCADocument(); supportingDocument1.setType(RCADocument.Type.REF); supportingDocument1.setUri("www.adobe.com"); supportingDocument1.setDescription("Sample reference type supporting document"); supportingDocList.add(supportingDocument1); RCADocument supportingDocument2 = new RCADocument(); supportingDocument2.setType(RCADocument.Type.DOCUMENT); supportingDocument2.setName("Supporting Doc Sample"); supportingDocument2.setDocument(new Document(new File("/home/Documents/Page1.pdf"), false)); supportingDocument1.setDescription("Sample document type supporting document"); supportingDocList.add(supportingDocument2); String reviewId = rcaClient.initiateReview(reviewContext, reviewDocument, supportingDocList); return reviewId; } private ServiceClientFactory getServiceClientFactory(){ Properties connectionProps = new Properties(); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://localhost:8080"); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator"); connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password"); ServiceClientFactory serviceClientFactory = ServiceClientFactory.createInstance(connectionProps); return serviceClientFactory; } public static void main(String args[]) { try { String reviewId = new InitiateReviewWithSuppDoc().initiateReview(); System.out.println(reviewId); } catch (RCAException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
|
// Ethnio survey code removed