cancel
Showing results for 
Search instead for 
Did you mean: 

REST snap errors when passing in variables for HTTP Entity and Service URL

swright
New Contributor III

I’m basically doing what is described in the following article but am getting an error.

Failure: Service URL: $serviceUrl is undefined. Perhaps you meant: $requestBody, Reason: ‘serviceUrl’ was not found while evaluating the sub-expression ‘$serviceUrl’, Resolution: Check the spelling of the property or, if the property is optional, use the get() method (e.g. $.get(‘serviceUrl’))

This is from my REST Patch snap:

image

This is the json that is the input for the REST Patch snap:

[

{

“requestBody”:

{

“ExternalIdentifierNumber”:

“002500012”

}

}

{

“serviceUrl”:

"https:///”

}

]

Thanks,
Scott

1 ACCEPTED SOLUTION

robin
Former Employee

@swright your input JSON doesn’t look correct. If you want to reference two variables, they need to be within the same JSON object. For instance, this is an example of an input document to the REST PATCH Snap that would allow referencing $serviceUrl and $requestBody in the Snap settings:

[
    {
        "requestBody": {
            "ExternalIdentifierNumber": "002500012"
        },
        "serviceUrl": "https://"
    }
]

If you wanted two PATCH requests to be sent (sequentially, to different URLs etc), the input body would look like:

[{
	"requestBody": {
		"ExternalIdentifierNumber": "002500012"
	},
	"serviceUrl": "https://someurl.com"
},
{
	"requestBody": {
		"ExternalIdentifierNumber": "ABCD"
	},
	"serviceUrl": "https://anotherurl.com"
}]

View solution in original post

4 REPLIES 4

robin
Former Employee

@swright your input JSON doesn’t look correct. If you want to reference two variables, they need to be within the same JSON object. For instance, this is an example of an input document to the REST PATCH Snap that would allow referencing $serviceUrl and $requestBody in the Snap settings:

[
    {
        "requestBody": {
            "ExternalIdentifierNumber": "002500012"
        },
        "serviceUrl": "https://"
    }
]

If you wanted two PATCH requests to be sent (sequentially, to different URLs etc), the input body would look like:

[{
	"requestBody": {
		"ExternalIdentifierNumber": "002500012"
	},
	"serviceUrl": "https://someurl.com"
},
{
	"requestBody": {
		"ExternalIdentifierNumber": "ABCD"
	},
	"serviceUrl": "https://anotherurl.com"
}]

swright
New Contributor III

Hi Robin,

I’m having some trouble getting it into that format. I’m using a union and somehow that is the output of the union. The target path of mapper2 is the $requestBody.ExternalIdentifierNumber and mapper3 is the $serviceUrl.:

image001.png

Thanks,

Scott

robin
Former Employee

@swright A Union will combine two streams of documents into a single stream.

What you want to do is combine the actual document contents themselves (a document in one stream is combined with the content of a document in another stream). To do this, use the Join Snap where the left and right paths resolve to the same constant value e.g.

image

swright
New Contributor III

Thanks Robin! That corrected the error!

Scott