First I must admit that I know absolutly nothing about the IBM Process Server software, but I have worked with Adobe LC Forms quite a bit.
Usually with Forms you start with a form template (XDP or PDF format) created in the LiveCycle Designer tool. You then use then pass some XML data and the template location to Forms which merges the two and returns an interactive PDF (if you don't want an interactive PDF then use the Adobe LiveCycle Output ES product).
Forms will also extract XML data from a submitted form.
Both the Forms and the Output products have java API and SOAP interfaces. The SOAP interface supports base64, Mime and DIME attachments for the binary data. The online documentation has samples of the SOAP calls and there are a couple of articles on the developers network that show it as well.
Appriciate your response. Would it be possible to create HTML pages from Adobe Forms ES product. I want this UI screen to be developed and rendered using EJB application. If yes, it be great if you could point to some tutorial/learning urls.
another question was, IBM Websphere Process Servre will provide the webservices for interacting with its process. Is it possible to consume this webservice in Adobe Forms ES directly.
There is another product Adobe liveCycle Workbench ES can this be used for this requirement?
just to give more detail on my requirement.
Apart from creating task list pages and forms for Human task of Process server. I would like to fetch documents from IBM DB2 Content Manager for images associated for the forms. Also would like to create barcode on some forms to send to fax server.
Yes, Forms will produce HTML as well as PDF. There is an API called renderHTMLForm that produces HTML based on an XDP template. It works very similar to the API that produces PDF.
As far as consuming the web service goes, you have a couple of options:
1 - Have the template (form) call the web service. You create the template using the LiveCycle Designer tool. With Designer you can setup a data connection to a web service. This is usually used when you want to populate field data based on information you get from a web service (of course you can submit data to a web service as well). You should be able to populate an image field with data recieved from a web service call. I believe that if the image is supplied as a base64 encoded data by the web service then Forms will put the image directly into an image field.
2 - Use a web service call from a LC Workflow. Since Forms is part of the LiveCycle Suite you get access to the LiveCycle Workflow product as well (workflows are built with the Workbench tool). One of the foundation operations in LiveCycle is a web service call. In this method you would use the web service operation to call IBM's web service, then use a couple of "Set Value" operations to turn the results into XML data that could then be passed to Forms for rendering into your HTML form. Again the form template would include an image field.
LC Designer has tools for adding barcodes to your form (including binding the barcode to data fields).
Thanks a lot Hodmi,
I am doing the smal POC using approach #1 as suggested by you.
I did not got the second approach for using the Workbench ES. I understand that in Workbench ES, there are three components Forms, Process management and Data services. So its like complete BPM suite for workflow. Since process management in my environment is using IBM Websphere Process Server so I am unclear on Workbench usage.
Can I replace the process management capabilites of Workbench ES with IBM Websphere Process server by somehow using Workbench ES process management API directly calling the IBM Process Server either using EJB/Webservice etc. ?
When you installed LiveCycle Forms you also got the foundation classes (including the web service operation). However if you are going to use the IBM software as a workflow then you can call individual operations (such as the renderHTMLForm method) via the API. There are Java and web service endpoints (as well as several others) that you can call from your IBM workflow.
I am having a similar scenario where I'm trying to render the XDP using renderHTMLForm method in a browser. Before that I created the XDP file where I drag-n-dropped a data connection to WSDL which in turn created the form.
Now when I am using the attached servlet to render the form the submit button always refreshes the servlet. So it is not interacting with my web service anyway. Can you please help me to find out what is possibly the issue with my approach? Im stuck for last few days.
Attached are the files you might need to understand my scenario. Any help will be appreciated.
code.zip 5.2 K
Are you using Acrobat or Reader to display the form?
, I'm not sure I understand you. The servlet you supplied renders an HTML form and sends it back to the browser. The WSDL connection is in the form template (XDP). The Forms call is not supposed to do anything with the WSDL.
Thanks for replying.
Let me explain the requirement here...
I have a web service which is running in WebSphere Process Server. I want to render an XDP in browser where user is required to provide some input. I want to call the service from the browser and get return value from it based on user input and show the output received in the browser.
I created the WSDL data connection in Form Designer and saved my form as Form12.xdp. Now what would I have to do to call the service from the rendered HTML?
okay, now I understand.
You need to do a couple of things. The rendered HTML can't talk to the WSDL directly, so you have to "round trip" it back to the Forms server.
1 - Change your invoke button (newOperationBtn in your case) to execute on the server side. Do this by clicking on the button, going to the Object panel, select the Execute tab and modify the Run At value to Server.
2 - modify your render servlet (RenderHTMLForms.java) to include a TargetURL. This will tell the form to do an HTML Post whenever server side code is selected (say from your invokd button). The target will be another servlet that you will create (see step 3).
3 - create a servlet to process the server side request. This servlet will take the Post, run Form's processFormSubmission API and present the resulting HTML back to the browser. This is very similar to server side validation of data. There are samples on the LiveDocs pages.