Business Process Modeling - BTMSoftwareSolutions.com

Showing posts with label Intalio. Show all posts
Showing posts with label Intalio. Show all posts

Wednesday, September 28, 2011

Orbeon xForms Upload/Retrieve Docs from Database

The following screen cast shows how you can use the orbeon upload control to capture document information from a file and then use one submission to store the file to a database and another submission to retrieve the file from the database. 

To store the file to the database an xpl file is called which calls an xslt processor to format the input-config element of the url-generator.  The url-generator processor receieves the url of the temp file passed in on instance data dynamically created by xslt processor.  The url-generator processor grabs the file data in binary mode.  We then use an identity processor to aggregate the instance data passed in on the submission and the output of the url-generator.  We call another xlst processor to dynamically create the input-config element for the SQL processor which will insert the document into the database along with metadata about the file - mediatype, filename, size, ids, etc.

To retrieve the document from the database we call another submission which executes another xpl file.  We pass in instance data about the row of the file we selected to be used as parameters in the sql processor.  So we call sql processor and select the appropriate document.  Then we call an xslt processor and to dynamically configure the config-input element of the http-serializer.  We call a second xslt processor to wrap the document base64Binary data with a root document element and pass as the config-data to the http-serializer.

For assistance on your Orbeon xForms project with storing files and/or integrating with Intalio BPM workflow tool please contact us at BTM Software Solutions, LLC.

Unable to display content. Adobe Flash is required.

Wednesday, November 24, 2010

RESTful Service From Email Using Orbeon to Intalio

In a previous blog, I wrote about how you could use Intalio REST Connector to call an LDAP service created in Orbeon XPL.  In this blog I take a different tactic in using Orbeon and Intalio to meet a clients needs.

The client project entailed creating a reminder/alerting service using Intalio as the business rules service.  If a timer expires before an updated message comes in to the process, emails are to be sent out to staff and manager.  In the email, they wanted the capability of checking a box and replying to the email which would end the Intalio Process for monitoring that case if monitoring was no longer required.  So this is what I put together for them using Intalio and Orbeon.

When the email is sent, I format the body of the email using Intalio bpel:doXSLTransform function and in the xsl include HTML and values from the process.  As part of the html email I include a link which is formatted to call an Orbeon XPL file - a RESTful service.  In the url is the location of the service and the necessary parameters.  An example of the url format is below:

http://{ip}:{port}/orbeon/{appName}/{pagePath}?{parameter1}={value}&........

So, all this does is call the xpl file location which does the following.
  1. First we use an xsl processor to take the parameters from the url and put them in the pattern required by the delegation processor.
  2. The output of the xsl processor is passed to the input for the call of the delegation processor.  The delegation processor is configured to call Intalio Web Service.
  3. Intalio receives the message and responds back with the results, which in the case is just that the message was received.
  4. An xsl processor takes the result from the delegation processor and displays that result in the users browser.
So, in this example we were able to call a web service (in this example the service endpoint was located in Intalio as part of a business process) from within an email using orbeon as the RESTful service provider.

Thinking outside the box, Orbeon components were used without displaying one single xForms to add functionality to our process.

If you would like more information or would like to implement something similar in your organization, contact us at http://btmsoftwaresolutions.com.