Business Process Modeling - BTMSoftwareSolutions.com

Thursday, July 16, 2009

Intalio Diagram Web Service and Orbeon

Intalio and Orbeon yet again make my life so easy that I had to share a short blog about my late night coding. I had a thought today how I wanted to provide the ability for users to query some records and then start an Intalio business process off of one of those records. Now I did not want to develop a diagram that was a query and stick it into the processes tab of Intalio - too me a query is a query and may or may not lead to starting a process. And knowing that an Intalio Process does not have to start with a user entering data onto a form within Intalio, but may be started from any external system that can access a web service, I started down this path.

In a previous project, I developed a diagram which when compiled in Intalio creates a WSDL. This WSDL was provided to a client. The client imported that wsdl into ASP.NET and after several hours of trying to figure out the ASP.NET portion - we got processes kicked off from a .NET application into Intalio. Well, I use Orbeon forms and not ASP.NET. But I figured Orbeon is a powerful program, I should be able to start an Intalio process from an external Orbeon form. Yep - and pretty easy too. This is all that it took.

I had to create the diagram in Intalio which created my WSDL.

I had to create one instance, one control (Trigger) and one submission in my Orbeon xForm:
  1. A Trigger inside a repeated table which would first dynamically set an xml element and second send a Submission to the web service
  2. An instance which would hold the SOAP message passed to the web service. Inside the SOAP message body is the parameter the web service is expecting which I set above using the trigger and a setvalue action.
  3. A submission which would invoke the web service and send the SOAP payload

That was it. Real simple. And here is another trick if you need it.

I use the soapUI plugin in the Intalio eclispe framework - great tool. To create a new wsdl project in soapUI you just browse out to the Intalio generated WSDL. Once you double click on the request message, you get the web service end point displayed for you and in the request frame, the SOAP payload which you can just copy and place within the xform instance you are going to reference in the submission. Just make sure you have any namespaces from your SOAP message referenced in the xhtml document or you will get an error.

Any questions or comments drop me a line:

Brian Steuhl: bsteuhl@btmsoftwaresolutions.com