Hello,
I have been struggling with an issue for almost 2 days so far.
I have an integration in a process that is triggered by a web API.
I am repeating this integration up to 5 times the response was not successful.
In the case where the response of the integration is successful in the first time, I am getting back the required response that is a json format that I am indexing from a process variable.
In the case where the integration is repeated twice or more, the response I am getting back is empty as if the process variable was returned as a null value.
The response i am indexing is the variable where I am saving the httpresponse from the integration.
So again, if integration goes through from the first time, the response is filled, if it goes through on the second time or more, the response is empty as if the web API only considered the first value saved in the variable where i am saving the httpresponse and it's not updating it; and when i check the process variables, i can see that the process variable is filled properly.
Any ideas or any suggestions on how to resolve this?
This is the response I am getting when the integration is happening twice or more:
{
}
when it's successful on the first trial, i am getting the below which is what we are expecting:
Discussion posts and replies are publicly visible
It is.
I am triggering this process from a Web API and calling the integration to another system inside the process as you can see in the image
the process is called in a web API. and the response of the web API needs to display the response of the integration shown in the image, hence the activity chaining.
i tried the the scheduling for the node, but it is also breaking the chaining
OK. Any kind of timer or scheduling will break the chaining.
I understand that you want to implement some error handling in that process model, but an Appian process is not Java and error handling on a low level like network timeouts etc. cannot be handled.
There is a reason for process alerts. If it is critical, that the integration call succeeds, then call the error() function in the integration node's output configuration in case the result is not valid. Then the process will stop and an admin needs to check.
In case a successful call is not important, return a 503 HTTP code.
Only solutions I can see working is implementing the retry logic directly in the calling application (as Stefan suggested above). You could also have one process manage the initial API call (and subsequent error retries) and provide a separate API endpoint to allow them to poll for a response or have your process call a webhook in the calling application once it has received a successful response.
@jeanmichelm0001
I have a same problem and how did you solve it?
Can you elaborate on that "same problem"?
@Stefan Helzle
Thank you for your response.
Here is my problem detail.
https://community.appian.com/discussions/f/integrations/30291/sending-base64-inline-with-json-using-integration-object-and-many-pdf-files-were-created
Thanks and need help
I have been reading it and did not really understand what you are trying to do.
Seems like you try to force Appian to somehow do this base64 conversion, which is difficult and tricky, and you will run into memory issues sooner or later.
@Stefan Helzle
I'm trying to implement an Appian Web API (POST method) that is exposed to an external system.A file is sent from an external system( Sending base64 inline with JSON) and the file format is base64.In appian, files are managed by unique ID.So convert the base64 value received by web api and change to appian value .
I understand. Pushing larger volumes of text into a process will get you into trouble sooner or later.
I strongly recommend to try to change that on the other side. Appian supports multipart posts where one part is the meta data, and the other is the binary file.