Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

Error Invoking adobe livecycle process from Documentum Workflow method

Avatar

Level 7

Hi,

I have written a documentum workflow method which generates xml files dynamically and send it to the adobe server to convert the xml file to pdf and return the pdf document.When I ran the code from my local machine it is working fine,but when I deployed the code in the Documentum Server where JBoss is the application server,the code is throwing null in getting a InvocationResponse object,

Below the code I have written


public class PDFTemplateWorkflow extends WorkflowMethod {

private static final String REQUEST_PACKAGE = "Package0";
private static final String FEE_PACKAGE = "Package1";

 
public int doTask(IDfWorkitem workitem, IDfProperties activityParameters,
   PrintWriter printWriter) throws Exception
   {
   /*Read the activity parameters */
   System.out.println("Entering into doTask Method");
   String requestPackage =activityParameters.getString(REQUEST_PACKAGE);
   System.out.println("First Package is "+requestPackage);
   String feePackage =activityParameters.getString(FEE_PACKAGE);
   System.out.println("Second Package is"+feePackage);

  
   Properties ConnectionProps = new Properties();
   ServiceClientFactory factory = null;
   IDfSession session = null;
   String DocumentID = null;
   String prepopulatedValues=null;
   HashMap params1 = new HashMap();
   HashMap params2 = new HashMap();
   Object application_id=null;
   String LoginName;
   String Address;
   String formName;
   String DocumentumFolderPath;
   String operationName="FEE_PAYMENT";
   String applicationName="FEE_PAYMENT";
  
  
   try{
      
    //Set connection properties required to invoke LiveCycle ES2
    ConnectionProps.setProperty("DSC_DEFAULT_SOAP_ENDPOINT", "http://hydhtc137429d:8080");
    ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","SOAP");
    ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
    ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
    ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
  
    // Create a ServiceClientFactory instance
    factory = ServiceClientFactory.createInstance(ConnectionProps);
    ServiceClient myServiceClient = factory.getServiceClient();
    System.out.println("ServiceClient Object is "+myServiceClient);
   
    Date currentDate = new Date();
    SimpleDateFormat formatter= new SimpleDateFormat("dd/MM/yyyy");
    String dateNow = formatter.format(currentDate);
    System.out.println("Now the date is :=>  " + dateNow);
     
    if (workitem instanceof IDfWorkitemEx) {
     IDfWorkitemEx workitemEx = (IDfWorkitemEx) workitem;
     application_id = workitemEx.getPrimitiveVariableValue("application_id");
     System.out.println("Application id of the document is"+application_id);
    
    }
       
    session=workitem.getSession();
    LoginName=session.getLoginUserName();
    Address=LoginName + "Park Street";
    DocumentumFolderPath = "/Infy_test/Adobe_Test/"+application_id;
    formName = "FeePayment_"+application_id;
    prepopulatedValues = "<PaymentLetter>"
     + "<ApplicationID>" + application_id + "</ApplicationID>"
     + "<Date>" + dateNow + "</Date>"
     + "<ApplicantName>" + LoginName + "</ApplicantName>"
     + "<ApplicantAddress>" + Address + "</ApplicantAddress>"
     + "</PaymentLetter>";
   
          System.out.println("xml structure is : " + prepopulatedValues);
                                             
           //writing into xml file
           FileWriter fstreamout = new FileWriter("F:/Adobe/FeePayment.xml");
           BufferedWriter out = new BufferedWriter(fstreamout);
           out.write(prepopulatedValues);
           //Close the output stream
           out.close();
           File ImageXML = new File("F:/Adobe/FeePayment.xml");  
        InputStream inXML = new FileInputStream(ImageXML);
        Document inputXML = new Document(inXML);
       
           params1.put("InputFormData", inputXML);
           params1.put("InputFormName", "FormatofPaymentLetter.pdf");
            
    //Create an InvocationRequest object to send request to Adobe to create pdf file
           System.out.println("Entering first method to transform xml to pdf");
    InvocationRequest request =  factory.createInvocationRequest(
      "EndtoEndFlow/RenderForm",        //Specify the short-lived process name
      "invoke",           //Specify the operation name   
      params1,               //Specify input values
      true);               //Create a synchronous request

    //Send the invocation request to the short-lived process and
    //get back an invocation response -- outDoc refers to the output parameter for the
    System.out.println("request object is "+request);
    System.out.println("till this point success");
    InvocationResponse response = myServiceClient.invoke(request);
   
    System.out.println("response object is "+response);
    Document myPDFfile = (Document)response.getOutputParameter("ReaderExtendedForm");
    System.out.println("pdf file is"+myPDFfile);
    System.out.println("final sucess");
   
       
    //writing the pdf to the file
    InputStream tempStream = myPDFfile.getInputStream();
    File f = new File("F:/Adobe/FeePayment.pdf");       
          OutputStream outStream=new FileOutputStream(f);
          byte buf[]=new byte[(int) myPDFfile.length()];
          int len;
          while((len=tempStream.read(buf))>0)
           outStream.write(buf,0,len);
           outStream.close();
           tempStream.close();    
          
         //end of first invocation method
             
           IDfSysObject sysobject=(IDfSysObject) session.newObject("sebi_reg_document");
           System.out.println("creating an instance of sebi_reg_document object");
           sysobject.setObjectName(formName);
           sysobject.setString("applicant_name", applicationName);
           sysobject.setString("application_id", application_id.toString());
           sysobject.setString("operation_name", operationName);
           sysobject.setString("a_content_type", "pdf");
           sysobject.setPath("F:/Adobe/FeePayment.pdf", "pdf", 0, null);
           sysobject.link(DocumentumFolderPath);
           sysobject.save();
           String r_object_id=sysobject.getString("r_object_id");
           System.out.println("Document id created is "+r_object_id);
           IDfId id=new DfId(r_object_id);
           System.out.println("Document successfully created in Docbase");
          
           workitem.addAttachment("Package1", id);
          
                         
   }
   catch(Exception e){
    System.out.println(e.getMessage());
    }
    return 0;
    }
 
    }

Can soneone please help me on this

Regards,

Sunil

1 Reply