I got the following error when using filter in GET request,
works fine in postman.
Failed due to malformed requestUrlTemplate. Illegal character in query at index 93: https://www.#######.com/demo1/odata/####/tabdem1.ini,3/comp/PHONEBOOK?$filter=PHONENUM eq '0##-#######'
{
"message": "The request could not be understood by the server due to malformed syntax.",
"code": "bad.request",
"status": 400,
"messageParams": {},
"contextId": "4eb06d50-6ee1-43bf-b861-573de15af86f",
"details": [
{
"errorCode": "ACTION.PROCESSING"
}
],
"errors": [
{
"message": "Failed due to malformed requestUrlTemplate. Illegal character in query at index 93: https://www.#######.com/demo1/odata/######/tabdem1.ini,3/comp/PHONEBOOK?$filter=PHONENUM eq '0##-######'",
"code": "BAD_REQUEST",
"status": 400,
"messageParams": {},
"details": [],
"errors": []
}
]
}
We use the '$' as a special character in our processing to signify escaping using the Velocity Template Language. I don't see in our docs where we call out that you shouldn't use an unescaped '$' in your url so I'll see about getting a note in there for future reference.
You need to change your url to switch the '$' with ${esc.dollar} i.e. https://www.#######.com/demo1/odata/####/tabdem1.ini,3/comp/PHONEBOOK?${esc.dollar}filter=PHONENUM eq '0##-#######' and that should get you past this issue.
You may also need to use some of the Velocity Templating to properly escape the value of the $filter query parameter. Please see my link to our Velocity Template Language help page I linked in the beginning and feel free to reach out here if you need any more help.
Hi Trey,
Thanks for the assistance!
I changed it and i'm still getting the same error as below,
Do i need to use the Velocity Templating for that to work?
This is a GET request so I can't use requestTemplate.
Execute:
{
"message": "The request could not be understood by the server due to malformed syntax.",
"code": "bad.request",
"status": 400,
"messageParams": {},
"contextId": "f255b356-da14-48fe-b686-88093a4da714",
"details": [
{
"errorCode": "ACTION.PROCESSING"
}
],
"errors": [
{
"message": "Failed due to malformed requestUrlTemplate. Illegal character in query at index 93: https://www.#######.com/demo1/odata/####/tabdem1.ini,3/comp/PHONEBOOK?$filter=PHONENUM eq '###-######'",
"code": "BAD_REQUEST",
"status": 400,
"messageParams": {},
"details": [],
"errors": []
}
]
}
In order to troubleshoot and find what's causing an issue in your Data Action, it would be good if you could post/share details on your Data Action - your Input Contract (as JSON) and your Request Configuration (as JSON).
Hi Jerome,
I'm currently just trying to use the Request URL Template without contract fields, just to get a valid response, then I will add it as a contact fields.
this is the Request URL Template (I hashed identity values)
$ is a keyword for the Data Actions. That's why you need to replace it with a Velocity macro - ${esc.dollar}
What is also necessary is to escape certain characters in the url properly.
When you have " " (space) in a url, it will be replaced with %20
When you have ' (single quote), it will be replaced with %27.