package code.model{
import scala.collection.JavaConversions._
import oracle.bpel.services.workflow.client._
import oracle.bpel.services.workflow.query._
import java.util.HashMap
import IWorkflowServiceClientConstants._
class Worklist(host:String,username:String,password:String, protocol:String = "SOAP"){
val client = protocol match {
case "SOAP" =>
val properties = new HashMap[CONNECTION_PROPERTY,java.lang.String]()
properties.put(CONNECTION_PROPERTY.SOAP_END_POINT_ROOT, "https://%s".format(host))
WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT, properties, null)
}
def tasks ={
val queryService = client.getTaskQueryService
val workflowContext = queryService.authenticate(username,password.toCharArray,null)
val queryColumns = List("TASKID","TASKNUMBER","TITLE","OUTCOME")
val optionalInfo = List(ITaskQueryService.OptionalInfo.PAYLOAD)
queryService.queryTasks(workflowContext,
queryColumns,
optionalInfo,
ITaskQueryService.AssignmentFilter.MY_AND_GROUP,
null, //No keywords
null, //No custom predicate
null, //No special ordering
0, //Do not page the query result
0)
}
}
}
I'm including full import trails because Scala is really touchy about versions and I'd like people to be able to follow along if they need to. Like, you know, me in two years.
The second thing is going to be working out the payloads. I know they're going to be XSDs sitting somewhere in or around my metadata repository. I just haven't worked out where yet.
Monday, June 3, 2013
Oracle BPM 11.1.1.7 ps6 custom integration
3 years since my last post.
Moving on, now I'm doing some Oracle stuff. Oracle BPM (Business Process Management) is an incredibly expensive, somewhat competent, moderately usable system which sits on its SOA stack, in its contrived Fusion Middleware layer.
We're using it to build executable workflows for the complex processes which govern Universities. But we can't use the default view layers for our students for a whole bunch of reasons.
So, since the students mostly need to see progress, we're going with our own custom view layer. BPM is service driven, so this shouldn't present a giant problem. There are two main elements going forward (not counting all the fancy dan javascript and whatever):
1) A Model which encompasses all the service calls into the Oracle provided client API, and
2) A bunch of forms which will generate payloads to add into the tasks so that the engine can process them and proceed.
Model:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment