Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 355657

Summary: Property Editor: Service Task
Product: [SOA] BPMN2Modeler Reporter: Robert Brodt <bbrodt>
Component: UIAssignee: Robert Brodt <bbrodt>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
URL: https://issues.jboss.org/browse/JBPM-3249
Whiteboard:

Description Robert Brodt CLA 2011-08-24 06:28:15 EDT
Create a custom property editor (implemented either as a popup dialog or a Property Sheet Tab) for Service Tasks.

-> hardcoded service parameters
-> data input / output mapping
-> waitForCompletion* is boolean: dropdown true/false or checkbox


Brian Fitzpatrick added a comment - 29/Jul/11 5:52 PM

Ok... So I'm looking at this in two phases... The Service Task object in the BPMN2 spec really doesn't have much to it, but the jbpm5 version does, so this will definitely have to be split out into the jbpm5 runtime area:

<itemDefinition id="_2_InMessageType" structureRef="java.lang.String" />
<message id="_2_InMessage" itemRef="_2_InMessageType" />
<interface id="_2_ServiceInterface" name="org.jbpm.examples.junit.HelloService">
<operation id="_2_ServiceOperation" name="hello">
<inMessageRef>_2_InMessage</inMessageRef>
</operation>
</interface>

<process processType="Private" isExecutable="true" id="ServiceProcess" name="Service Process" >

<property id="s" itemSubjectRef="_sItem"/>

<serviceTask id="_2" name="Hello" operationRef="_2_ServiceOperation" implementation="Other" >
<ioSpecification>
<dataInput id="_2_param" name="Parameter" />
<dataOutput id="_2_result" name="Result" />
<inputSet>
<dataInputRefs>_2_param</dataInputRefs>
</inputSet>
<outputSet>
<dataOutputRefs>_2_result</dataOutputRefs>
</outputSet>
</ioSpecification>
<dataInputAssociation>
<sourceRef>s</sourceRef>
<targetRef>_2_param</targetRef>
</dataInputAssociation>
<dataOutputAssociation>
<sourceRef>_2_result</sourceRef>
<targetRef>s</targetRef>
</dataOutputAssociation>
</serviceTask>

...

</process>

So we need the ability to:
1) Define a property (is it something that should be defined in the Palette? Or something simply maintained in the context of the bpmn file?)

2) Define an item definition, message, interface, and operation so it can be referenced by the custom service task. These seem to be outside the process element in the file, so would need to be added somehow...

3) Figure out why the implementation of the inputs & outputs is so convoluted...

a) You define an individual parameter (incoming) and an individual result (outgoing)
b) Then you define the set of input parameters (the inputSet) and a set of output parameters (the outputSet)
c) Then you associate the property "s" with the inputs and again with the outputs.

Is there a reason it's not handled in a single pair of elements instead of in three separate chunks? And this is just from one example (BPMN2 - ServiceProcess.bpmn2 from the jbpm5 examples). What other options/values are available here or is it just a Java service interface that's available at the moment?
Comment 1 Robert Brodt CLA 2012-03-01 09:48:54 EST
Fixed