Hi
I have a Service Call Out which return Http Status Code.
I want to capture this http status code in Extract Variables Policy so that I can use it as a Condition for raising the fault
Here is the Extract Variables Policy which I am using
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="ParseTokenInfoResponse"> <DisplayName>ParseTokenInfoResponse</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Source clearPayload="false">calloutResponse</Source> <VariablePrefix>tokenInfo</VariablePrefix> <Variable name="status_code">calloutResponse.status.code</Variable> </ExtractVariables>
And for raising the fault
<Step> <FaultRules/> <Name>Raise-Fault</Name> <Condition>NOT(tokenInfo.status_code == 200)</Condition> </Step>
Please let me know what is missing here
Thanks
Your policy looks correct. Can you try printing the variable in a JavaScript. Here's an example:
Hi @arghya das
It is printing the status code in javascript
print("Status Code Variable >> "+context.getVariable("calloutResponse.status.code"));
results in Status Code Variable >> 200
So is it not working after assigning it to a variable ?
The NOT condition doesn't look right. Can you try != or NotEquals
Hi @GAURAV,
The ExtractVariable policy is used to extract values within a pattern. In your case, use please use AssignMessage policy to reassign the value calloutResponse.status.code into custom variable status_code -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Properties/> <AssignVariable> <Name>status_code</Name> <Ref>calloutResponse.status.code</Ref> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </AssignMessage>
Thanks,
Abhishek
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |