XML in JSON exceeding 5 MB

Certified Lead Developer

Hello Appian Community,

We are facing an issue where Appian is generating a JSON message to an external system and the external system is sending Appian back a large JSON file that has XML in an element of the JSON returned. This XML doc can exceed 5MB because of Base64 string docs stored within the XML.

Appian will need to parse the XML out of the JSON response and send that on to a separate system.

The issue we are seeing is the response exceeds 5MB so we cannot have the "Return raw response body" set as the Response Body Parsing. We cannot use "Convert binary to Appian document" in the Response Body Parsing because we have to parse the response to get the XML from the JSON. We are attempting to use "Convert JSON to Appian value", but when indexing into fv!Response.body.fieldName we see an error thrown "com.appiancorp.suiteapi.content.exceptions.InvalidContentException: Invalid Content ID". 

We have tried different extensions for the document ".xml", ".txt",".pdf" and just blank but to no avail. 

Any thought on what is causing this issue?

Kevin

  Discussion posts and replies are publicly visible

Parents
  • Not a direct answer to your question but perhaps a different approach entirely. It's not great practice to have System A send System B data that the System B simply forwards on to System C, unless System B is going to process/derive value from that data.

    So: could System A send the part of the data directly to System C? (or, in a mature architecture, you'd probably have an ESB between all of your systems, so that would be responsible for orchestrating the various calls/responses)

Reply
  • Not a direct answer to your question but perhaps a different approach entirely. It's not great practice to have System A send System B data that the System B simply forwards on to System C, unless System B is going to process/derive value from that data.

    So: could System A send the part of the data directly to System C? (or, in a mature architecture, you'd probably have an ESB between all of your systems, so that would be responsible for orchestrating the various calls/responses)

Children