Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Using Service call out policy If the backend server is down show the response that is coming from the backend in the console.

Not applicable

Hello,

I used Service Callout policy to call the service. whenever the server is down of that particular

service Then I have to show the response that is coming from the backend in the console.

Could any one please help me?

0 5 184
5 REPLIES 5

Hi @NAVAJEEVANA BATHULA

Welcome to the community !!!

Not sure I understand the issue. Can you detail a bit more ?

What I understood is - you are making a Service callout and if that system is down, you want to send the request to another target system ? Is that correct ? Not sure what you mean by "show the response that is coming from the backend in the console"

You could return a previously cached version of the response if the risk of stale data isn't high for your use case?

@NAVAJEEVANA BATHULA, As per my understanding you want to display the back end error message as-is on the front end. Follow the below mentioned steps to achieve it.

1. Define FaultRule for "ExecutionFailed" fault to capture the back end error response.

<FaultRule name="ExecutionFailed">
            <Step>
                <Name>AM-Set-Execution-Failed-Error</Name>
            </Step>
            <Condition>(fault.name == "ExecutionFailed") or (fault.name == "servicecallout.ExecutionFailed")</Condition>
        </FaultRule>

2. Define an AssignMessage policy to set the "ServiceCallout.response" as payload with appropriate contentType.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="AM-Set-Execution-Failed-Error" enabled="true" continueOnError="false" async="false">
    <DisplayName>AM-Set-Execution-Failed-Error</DisplayName>
    <Set>
        <Headers/>
        <Payload contentType="application/json">{ServiceCallout.response}</Payload>
        <StatusCode>{response.status.code}</StatusCode>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo type="request" transport="http" createNew="false"/>
</AssignMessage>

Thanks for your response Mahammad Feroz. when the server is up I am getting response for ServiceCallout.response but if the server is down ServiceCallout.response is showing null. it is not returning any value. Is there anyting we could with this.

@NAVAJEEVANA BATHULA

, use "error.content" instead of "ServiceCallout.response" in the AssignMessage (AM-Set-Execution-Failed-Error) policy.