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
  • 0
    Certified Lead Developer
    in reply to jeanmichelm0001

    Not quite sure what the issue may be but what could help to troubleshoot would be to create a PV lists for each of the return values and add custom outputs where you add it to the list - it would allow you to see what's returned on subsequent calls.

    A couple of other notes:

    • Not sure why activity chaining is required in this process model considering you're possibly doing some retries with a timer.
    • Won't have much of an effect other than simplifying your PM but you can also put the delay directly on the node itself. Set it to 0 minutes on the 1st try and 1 minute on any subsequent try.

Children
  • 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

  • 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.