02-14-2022 01:34 AM
Hello, I need to check if there is no actual data after reading and parsing a CSV file, I am using the CSV Parser and have checked the ‘Contains Header’ (as we will always have a row with headers), I then follow it with a Mapper. If we have no data at this point we need to stop processing and go down a different route. I’m struggling with how after the Mapper, I check if no data is present in my document ($). We have a router snap next and have tried the following options, but none seem to work in the expression window:-
$ == null
$.isEmpty()
Any help appreciated.
Thanks
Mike
02-14-2022 01:37 AM
Hi @MikeP,
After the CSV parser, are your headers with empty values like ""
? Or simply there’s no data after after the csv parser ?
02-14-2022 01:41 AM
hi j.evegelvski, the files will always have header text values like “Emp_ID”, the rows after this will be empty. I cant identify if we have any data for this file situation - no data. My dev head is saying maybe a ‘row count’ property (if data in any rows) after header row filtered out, this would be handy, but doesn’t seem to exist. Then just check if this value > 0.
Addendum: After the CSV Parser snap, then the next snap is a straight mapper snap for the document ($) the output view is
Hence why I thought the expressions I mentioned initially would work.
02-14-2022 02:23 AM
Hi @MikeP,
In that case your expression should work because $.isEmpty()
should return true. Not sure why it doesn’t work for you, but you can also try with the following: $.values().length == 0
. Can you also share your settings in the router snap ?
02-14-2022 04:36 AM
hi j.evegelvski, sorry for delayed reply.
I think I sussed it now.
!$.isEmpty() although no errors syntactically on setting it in the expression validation, it doesn’t seem to functionally work.
However, $.isEmpty() == false, the more explicit syntax, does work, therefore the router flow now conforms as expected.
Thanks for your assistance!