Hello,
We are working on an integration with one of our business partners using the BPA workflows offered by IFS Cloud (We are on 23R1). All the logic is in place and is working as intended, but the BPA fails for “large” datasets.
We are using the REST Call Task to send a web request to our partner’s API. The request body/payload cannot be stored as a string because when there are many items, the requestBody would quickly exceed the 2000 character limit to be stored in the Oracle database as a string. If it were to be stored as a string, we would receive a persistence layer exception at the end of the workflow.
Instead, we are storing it in a process variable called ‘requestBody’ as an object.
The request body field of the REST Call Task requires a string, so we must convert the JSON object to a string using Camunda Spin: JSON(requestBody).toString() in the task.
This works perfectly for “small“ payloads. However, even though I am not storing the “large” string, it still throws the same persistence layer error at the end of the workflow when a larger payload is sent.
Am I doing something wrong? Is there any way around this?
I’ve referred to 2000 characters or less as “small” and over 2000 characters as “large” here, but really 2000 is quite small in terms of payload size and, to me, REST tasks lose most of their appeal if there is no way around this limit.