var table = execution.getVariable(‘Table’);
// remove the process variable because after finishing the service task
// “Get Weather Forecast” the engine tries to write the “table” variable in the history
// but the history field is to small for the big XML result
execution.removeVariable(‘Table’)
//print('TABLE: ’ + table);
S(table).xPath(‘string(/NewDataSet/Table[1]/City[1])’).string();
I could find the problem in the process. The response of the service task is saved in the process variable “Table”. After that, the engine would like write this variable in the history. But the “Table” variable contains the whole response of the soap call and this is to much for the defined database column.
The solution is to change the output parameter of the service task. For that, I renamed the output parameter from “Table” to “City”, changed the type to “Script” and call the external script “parseTemperature.js”.
It is necessary to change a bit the “parseTemperature.js”. It contains now the following code.
With these changes, you can set the “City” process variable directly from the script to the output parameter of the connector.
At least, delete the output parameter which is configured in the “Input/Output” tab.
To be sure, you can understand what I mean, look into the process file. invokeSoapService_1.bpmn (8.9 KB)
I just played around a little bit and it looks like this error is possible also when not all dependecies are present.
I use custom spring boot runtime, javascript for response handling - and I did forgot to import some Spin dependencies (Art.Id camunda-spin-dataformat-all). Comiple and deploy phases were good but rutime failed at certain point - Spin plugin dependencies were not completely present.