Bug 1123855 - Unable to assign variable name of the multi-instance sub process
Summary: Unable to assign variable name of the multi-instance sub process
Alias: None
Product: JBoss BPMS Platform 6
Classification: Retired
Component: jBPM Designer
Version: 6.0.2
Hardware: Unspecified
OS: Unspecified
Target Milestone: CR1
: ---
Assignee: Tihomir Surdilovic
QA Contact: Jiri Locker
Depends On:
Blocks: 1115479 1146248
TreeView+ depends on / blocked
Reported: 2014-07-28 13:29 UTC by Anton Giertli
Modified: 2019-09-20 21:29 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed:
Type: Bug

Attachments (Terms of Use)
[0] git repository (329.65 KB, application/zip)
2014-07-28 13:29 UTC, Anton Giertli
no flags Details
[0] git repository (226.40 KB, application/zip)
2014-07-29 10:56 UTC, Anton Giertli
no flags Details
6.0.2 GA - Screenshot of Properties (23.81 KB, image/png)
2014-09-24 10:27 UTC, Sona Mala
no flags Details
6.1.0 DR3 - Screenshot of Properties (76.54 KB, image/png)
2014-09-24 10:27 UTC, Sona Mala
no flags Details

System ID Priority Status Summary Last Updated
Red Hat Bugzilla 1123789 None None None Never
Red Hat Bugzilla 1124707 None None None Never

Internal Links: 1123789 1124707

Description Anton Giertli 2014-07-28 13:29:24 UTC
Created attachment 921762 [details]
[0] git repository

Description of problem:

If you set "variable name" in the multi-instance sub process, which is the variable which will store element of the current iteration, it is not possible to use this variable name in the Assignment section.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Create process which includes multi-instance sub process
2. Set "variable name" of this multi-instance sub process
3. Model Human Task or Service Task within this multi-instance sub process
4. Try to perform an assignment of the variable name you have just set to the input of the newly modeled task - not possible, the value is simply not being displayed.

==== use attached git repository ===
- import repository
- open Parent project
- check the "variable name" of the multi-instance sub process
- try to assign this variable in the reusable sub process, which is modeled within the multi-instance sub process - it is not possible. It is not related to reusable sub process only, there can be whatever task which has Assignments section - human task, service task

Actual results:
Variable name of multi-instance sub process is not being displayed in the Assignments editor of the tasks modeled within this multi-instance sub process.

Expected results:
Variable name of multi-instance sub process is being displayed in the Assignments editor of the tasks modeled within this multi-instance sub process.

Additional info:
The workaround is to create PROCESS with the *same* name as the multi-instance subprocess "variable name", then perform the mapping, then delete the process variable.

Comment 2 Anton Giertli 2014-07-29 10:56:21 UTC
Created attachment 922104 [details]
[0] git repository

ParentMulti includes multi-instance process.
When build, execute "InvoiceProcessing"

Comment 3 Anton Giertli 2014-07-30 07:30:19 UTC
Continuation of the Additional info:

-- Create process variable which will have the same data type as the element of the iteration (i.e Person), let's call it 'pPerson'

-- in multi-instance sub process, let's call 'variable name', which is the element of the iteration, by name 'pPerson'

-- Place Human Task in the Multi-Instance sub process

-- create datainput, 'myInput', data type Person

-- create dataoutput, 'myOutput'', data type Person

-- open assignment section of Human Task. 

 --> input: from pPerson to myInput
 --> output: from myOutput to pPerson

-- at this point it is not possible to successfully SAVE the project because there are two occurrences of the variable pPerson

-- let's delete the process variable pPerson

-- save the process, now, the assignment section is now somehow deformed, for example, the direction of the assignment is switched (this happened to the customer), or only dataoutput is preserved or datainput was renamed to the dataoutput..

Comment 8 Ryan Zhang 2014-09-11 08:59:22 UTC
This is not included in DR2.
Thanks for Marek pointing out. Moving back to MODIFIED.

Comment 10 Sona Mala 2014-09-24 10:25:31 UTC
I verify that if I add a subprocess variable I can find it in Data Assignment Editor.

Unfortunately, after discussion with Anton, I understand that this issue is not about subprocess variables. The other problem is that Properties Bar was change (compare screenshots from 6.0.2 GA, 6.1.0 DR3).

The real issue is that 'Variable Name' (variable where is stored the value from collection - maybe 'MI data input') is not visible in Data Assignment Editor of inner Task.

So Data Assignment Editor should contain these variables (correct me if I miss something):
  - process variable
  - subprocess variable (maybe all parents -> subprocess in subprocess)
  - pointer to collection ('Variable Name' or 'MI data input/output')

The current fix is perfect but it does not fix this issue.

Note: This commit changes type of "MI collection input / output" and once I set a value I cannot deselect it. Please, can you insert the empty option?

Comment 11 Sona Mala 2014-09-24 10:27:16 UTC
Created attachment 940735 [details]
6.0.2 GA - Screenshot of Properties

Comment 12 Sona Mala 2014-09-24 10:27:47 UTC
Created attachment 940736 [details]
6.1.0 DR3 - Screenshot of Properties

Comment 13 Anton Giertli 2014-09-24 10:34:19 UTC

I agree with you - the element of the current iteration, which was formerly stored in "Variable Name", and probably it is now called "MI Data Input/Output" needs to be 'assignable' in the elements which are stored inside the MI sub process.

If this is not the case I consider the fix as incomplete.

Setting back to 'Assigned' and waiting for Tiho's feedback.


Comment 14 Jason Peng 2014-09-29 15:43:39 UTC
Hi Anton,

The "formerly stored in 'Variable Name'", which version of jBPM do you mean?

I'd found this issue in BPMS 6.0.3 as well, and I also noticed that the iteration variables (both the Collection and elements of the collection) are not visible in multi-instance subprocess. I found a workaround solution by assigning the variables in Eclipse plugin. However, if I open the process file in Business Central and save it (without change anything), then the file will be messed up and not able to be run anymore (because of variable definition error exception).

btw, I think this issue is quite critical and many customers are depending on it. Will this bug be committed in 6.0.x?

Many thanks,

Comment 16 Radovan Synek 2014-10-21 14:53:52 UTC
The fix is not present in patch 6.0.3.P01, because propertywindow.js serves just as an input for aggregator [1]. As a result, designer-plugins.js (aggregated javascript to speed up loading of jBPM Designer) should be part of the patch, instead of propertywindow.js.

[1] https://github.com/droolsjbpm/jbpm-designer/blob/master/jbpm-designer-client/pom.xml#L315

Comment 17 Ryan Zhang 2014-10-23 05:00:11 UTC
OK, Thanks Radovan 's test and suggestion.
This has been fixed now and the patch zip has been uploaded again into the patch release  directory .

Comment 19 Jiri Locker 2014-10-27 12:32:13 UTC
MI data input and MI data output variables are now available in Data Assignment editor of the MI subprocess tasks.

Note You need to log in before you can comment on or make changes to this bug.