Dear Community,
I am new to Camunda and I am using the Camunda Run to avoid developing in Java. I have a parallel-multi-instance form requiring different players to upload each of them a file.
I would like a follow-on task to generate a report out of the different files uploaded, and therefore, I need to get the File variables resulting out of the multi-instance forms. To do so, following some indications I’ve seen from @Niall and @StephenOTT I created a “collector” variable on start using the following script:
text
task.execution.setVariable(‘signatures’, {value: [], type: “json”, valueInfo:{})`;
My form stores the file in a variable “signedPage” following the example of the documentation:
<input type="file" width="100" cam-variable-name= "signedPage" cam-variable-type="File" cam-max-filesize="10000000" id="signedPage" name="signedPage" />
And then I add an javascript event listener on completion of each of the instances of my parallel-multi-instance form like follows:
var jsonSignatures = JSON.parse(task.execution.getVariable('signatures'));
var Sign = task.execution.getVariable('signedPage');
jsonSignatures.value.push(JSON.stringify(Sign));
task.execution.setVariable('signatures',JSON.stringify(jsonSignatures));
My understanding is that the engine creates a variable type “File” when clicking submission, and that variable, implicitly, is a JSON I can get , including the name of the file and a link to the blob in the database where the file is stored.
When inspecting signatures property “value”, what I get is a sequence of “null”, one per form, as follows:
{"value":[null, null, null, null],"type":"json","valueInfo":{}}
On my listener script I tried to change the 2nd like to
var Sign = JSON.parse(task.execution.getVariable('signedPage'));
but then I get an exception sating that variable ‘signedPage’ is a Java.Byte.io array.
How can I get the “File” objects out of my listener?
Thanks in advance