Skip to main content

I am developing a Windows application that has a blackpearl workflow. Currently the workflow is started and actioned using the API. There is a problematic scenario when the application is unable to start a process instance due to a network or blackpearl issue. It looks like we will need to develop a web service for our applications to be able to send stuff in a more reliable fashion to blackpearl.


My question is does blackpearl already expose any web services that provide a similar functionality? I've also seen stuff mentioned about using SmartObjects - could they provide a better solution? BizTalk is also a possibility if there's any good way of using that with blackpearl.


 Basically, interested in any methods or ideas that are better than the current reliance on the blackpearl server being available.


Thanks

For our K2 .NET 2003 platform we created a webservice that wraps the K2ROM APIs, the webservice takes the XML data and starts the workflow process under calling user's security context.

However if K2 Service is not running, nothing will be created.   It's like asking data to be stored temporary somewhere if the database server is unavailable...

Do you need a disconnected model where the user could start processes on a laptop, the requests are saved locally then when they connect online it'll deliver those requests?     On the server side, you can create a queue where all start requests go into and having a separate service process the queue by calling K2 API.


Peter,


Our main thought so far is to go with the same thing, ie create a generic webservice that all of our applications can submit to in order to start workflow processes.


We possibly do want to adopt a disconnected model. It's not that the users will be working offline, more that in our experience with blackpearl it's prone to failing a lot and we can't rely on it always starting workflow processes for the user when required. What we need to do is allow the user to submit the workflow but then as far as they're concerned it's submitted - in the backend we need to ensure the workflow is started even if blackpearl is playing up.


 What I was thinking is that the webservice would accept XML containing the process name, datafields and values, and then it would attempt to start the workflow through the API. Failing that it would then store the data somewhere and retry later until successful.


Reply