Hi @martin.stamm,
Based on the paragraph about Fetching Additional Variables here Participating in the Form Lifecycle | docs.camunda.org, I tried to fetch my merged JSON variable (in which, all the submitted values are appended from the previous Multi-Instance user task), but without success 
My relative script (as I can’t upload here my html files) for the task (“Receive the Selected Products”) which must receive the submitted values from the Multi-Instance task (“Select Products”) is the following:
<script cam-script type="text/form-script">
var variableManager = camForm.variableManager;
camForm.on('form-loaded', function() { // No any variable has been loaded from the server.
variableManager.fetchVariable('aggregatedList'); // We declare the merged JSON variable 'aggregatedList' so as to fetch its values.
});
camForm.on('variables-fetched', function() { // The merged JSON variable 'aggregatedList' has been fetched from the server.
var variableValue = variableManager.variableValue('aggregatedList');
});
</script>
I’m not sure if I must change sth in my relative script of the Multi-Instance task (“Select products”) in which, the submitted values of each user are appended in the merged JSON variable (“aggregatedList”).
Here is my respective script:
<script cam-script type="text/form-script">
camForm.on('form-loaded', function() { // The variable 'product' has not been loaded ("fetched") from the server yet.
camForm.variableManager.fetchVariable('product'); // We tell the "form SDK" to fetch the 'json' variable named 'product'.
});
camForm.on('variables-fetched', function() { // The value of variable 'product' has been fetched (loaded) from the server and
$scope.product = camForm.variableManager.variableValue('product'); // is bound to the current AngularJS $scope of the form.
});
$scope.changeQuantity = function(x, index, chkselct) { // "changeQuantity" function gets called at every change in the value of ("checkbox" or "quantity") input fields.
console.log('x: ' +x.Quantity+ ', chkselct: ' +chkselct+ ', index: '+ index); // We display (x, chkselct, index) values in the debugger window.
if (!chkselct) { // If product's "checkbox" is not checked, then
x.Quantity=undefined; // product's "quantity" input field has not a value.
}
$scope.product[index] = x; // Using "index" from the Array, we find the product, whose ("checkbox" or "quantity" input fields) value has changed.
$scope.total = total(); // "total" is bound to the current AngularJS $scope of the form as a function which gets called.
}
function total() { // When "total ()" function gets called,
var total = 0; // variable "total" is initialized.
angular.forEach($scope.product, function(x) { // Based on the "index" from the Array, "forEach" function reads each product whose ("checkbox" or "quantity" input fields) value has changed.
if (x.Quantity) { // If product's "quantity" input field has a value (so, product's "checkbox" is checked anyway), then
total += x.Price * x.Quantity; // we calculate "total" (by multiplying "product's price" by "product's quantity" and adding the last "total").
}
})
console.log('Total: ' + total); // We display "total" value in the debugger window.
return total; // "return" statement stops the execution of "total ()" function and returns a value from that function.
}
camForm.on('submit', function(evt) { // Before "submit" request is sent to the server,
var selectedProduct = []; // we create a new Array as a variable named "selectedProduct".
angular.forEach($scope.product, function(x) { // For each product of the "product" Array,
if (x.Quantity) { // if product's "quantity" input field has a value (so, product's "checkbox" is checked anyway),
selectedProduct.push(x); // we add the "selected product" to the "selectedProduct" Array.
}
})
if (selectedProduct.length<1) { // If no "product" has been selected from the "product" Array,
evt.submitPrevented = true; // an event handler prevents the form from being submitted by setting the property "submitPrevented" to 'true'.
} else { // If at least one "product" has been selected from the "product" Array,
camForm.variableManager.createVariable ({ // we "create" (declare) a new "Local process variable"
name: 'selectedProduct', // named 'selectedProduct' and
type: 'json', // provide as type information 'json' used for serialization.
value: selectedProduct
});
}
});
</script>
If you could check what happens, please let me know 
Thank you very much for your time,
Steve