โ04-10-2020 02:11 PM
Hi Folks,
Iโm having trouble getting a proper handling from Snaplogic on a REST call.
So the rest call will return on success:
โentityโ:
{
โMessageIdโ:โ0101017165ec422f-dfa2bb38-faac-4c48-bcd7-0e2869d80fb6-000000โ, โฆ}
And on Error:
โentityโ: "ERROR: An error occurred โฆ
Thing is these are different - one is a dictionary and the other a string. So it fails badly when I check for entity error.
Is there a standard pattern for this?
Thanks,
Tim
Solved! Go to Solution.
โ04-13-2020 07:14 AM
Another option is to use the matches
operator that can check a value against a pattern. The nice thing about this approach is that the pattern looks roughly like the value being matched and the type of the value is implicitly checked. So, an error wonโt be raised if the value has an unexpected type.
For your first example:
The object pattern, { MessageId }
, would only match objects that contain the property MessageId
. The full expression would look like this:
$entity matches { MessageId }
For the second example:
A string pattern that uses the ...
wildcard can check for a value with a prefix. The full expression would look like:
$entity matches "ERROR:"...
(Unfortunately, while there is documentation for the match
operator, the documentation for matches
seems to be missing at the moment. Weโll get that fixed)
โ04-10-2020 05:12 PM
This is what I have: $entity.toString().contains(โERRORโ)
โ04-11-2020 05:22 AM
Hi @TimBurns
The expression the router snap should look like this.
$entity instanceof Object
Regards
Anil Kumar
โ04-13-2020 07:14 AM
Another option is to use the matches
operator that can check a value against a pattern. The nice thing about this approach is that the pattern looks roughly like the value being matched and the type of the value is implicitly checked. So, an error wonโt be raised if the value has an unexpected type.
For your first example:
The object pattern, { MessageId }
, would only match objects that contain the property MessageId
. The full expression would look like this:
$entity matches { MessageId }
For the second example:
A string pattern that uses the ...
wildcard can check for a value with a prefix. The full expression would look like:
$entity matches "ERROR:"...
(Unfortunately, while there is documentation for the match
operator, the documentation for matches
seems to be missing at the moment. Weโll get that fixed)
โ04-13-2020 01:29 PM
Thank you. That is cleaner.
$entity instanceof Object && โMessageIdโ in $entity
This is what I doing before and it was kind of icky.