Bug 1213445

Summary: User can't specify Interface for Service Task
Product: [Retired] JBoss BPMS Platform 6 Reporter: Jozef Marko <jomarko>
Component: Eclipse ToolingAssignee: Robert (Bob) Brodt <bbrodt>
Status: CLOSED DEFERRED QA Contact: Jozef Marko <jomarko>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.1.0CC: bbrodt, kverlaen, mbaluch
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-07 18:21:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
request/response mapping details none

Description Jozef Marko 2015-04-20 15:08:15 UTC
Description of problem:
User can model process, which contains 'Service Task' element. But user can not specify interface , from which will be called operation.


Version-Release number of selected component (if applicable):
jbds-8.1.0.CR1_jbdsis-8.0.1.CR1 BPMN2 Modeler 1.1.2.Final

How reproducible:
1. Create process containing Service Task
2. See properties - 'Service Task' tab
3. There should be Interface combo

Comment 1 Robert (Bob) Brodt 2015-06-20 00:30:41 UTC
In BPMN2 Service Tasks only have references to an Operation; Operations are owned by an Interface, so it is not necessary to specify an Interface in the Service Task.

Interfaces are managed from the Process "Interfaces" property tab.

Comment 2 Jozef Marko 2015-06-26 10:42:30 UTC
Bob, you are completely right with your claim. Error is on my site. I should have been a little bit more specific.

Follow these steps to see, where I found the problem.
(1) Create process with 3 nodes: Start -> ServiceTask -> End
(2) Do NOT import any interface via process properties
(3) Double click on ServiceTask
(4) Select tab 'Service Task'
(5) Click on plus button next to Operation combo

*Here is the problem*

(6) In shown pop-up, user can fill only data specific for operation-method. User can't specify what interface is method from. 
(7) If user save process, there is error like: "The implementation for Interface Interface 1 must be a valid Java Type"

Comment 3 Robert (Bob) Brodt 2015-06-29 13:19:04 UTC
Interfaces can only be be created and edited in the Process -> Interfaces property tab. I think to make this less confusing we should remove the "+" button from the Service Task Operation combo box.

WDYT?

Comment 4 Robert (Bob) Brodt 2015-06-29 16:46:02 UTC
I have decided to enhance the Operation editing dialog so that the Interface name and implementation can also be edited. So, when the user creates a new Operation for the first time (no Interface definitions exist yet) he is given the chance to also edit the Interface name and implementation.

Please retest with build 1.1.4.201506261732

Comment 5 Jozef Marko 2015-07-01 06:40:41 UTC
Created attachment 1044919 [details]
request/response mapping details

Comment 6 Jozef Marko 2015-07-01 06:42:15 UTC
Bob, fix looks good. But one last detail.

Properties of 'Service Task' has 3 tabs (General, Service Task and I/O Parameters). On Service Task tab is user able to set mapping of Request/Response Message to process variables. When user saves process, this mapping is shown in detail on tab I/O Parameters.

Here is the issue.

If user select operation of previously imported interface, then Request/Response Message mapping results to good.png from the attachment 1044919 [details].

If user specify operation details manually, then Request/Response Message mapping results to wrong.png from the attachment 1044919 [details].

Names 'Parameter' and 'Result' are critical for process execution by engine. Is there some special reason, why in the second case are names 'input1' and 'output2'?

Comment 7 Robert (Bob) Brodt 2015-12-07 18:21:58 UTC
Yes, "input1" and "output2" are arbitrary names generated by the editor - is there some special reason why these names need to be "Parameter" and "Result"?

Never mind - I already know the answer ;) This has already been reported here:

https://bugzilla.redhat.com/show_bug.cgi?id=1188592