Integration inside a process called in a web API

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:

{

    "statusLine""",
    "statusCode"null,
    "headers"null,
    "contentType""",
    "body"null

}

when it's successful on the first trial, i am getting the below which is what we are expecting:

{
"statusLine": "HTTP/1.1 200 OK",
"statusCode": 200,
"headers": {
"Content-Type": "application/json; charset=UTF-8",
"Content-Length": "151",
"Date": "Fri, 11 Mar 2022 15:54:22 GMT",
"x-correlation-id": "c3021a2e-7dc7-455f-95ce-a415a51b2c98",
"Connection": "Keep-Alive"
},
"contentType": "application/json; charset=UTF-8",
"body": {
"id": "1031913250000200",
"statusComment": "Rejected By Bank -(Invalid ValueDate, Invalid Document Base 64 File)",
"statusCode": "1"
}
}
Thank you
Jean Michel

  Discussion posts and replies are publicly visible

Parents Reply Children
  • 0
    Certified Lead Developer
    in reply to jeanmichelm0001

    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.

  • 0
    Certified Lead Developer
    in reply to Stefan Helzle

    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.