cancel
Showing results for 
Search instead for 
Did you mean: 

How do we check if NO DATA in a CSV file after filtering out headers

MikeP
New Contributor II

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

6 REPLIES 6

j_angelevski
Contributor III

Hi @MikeP,

After the CSV parser, are your headers with empty values like "" ? Or simply there’s no data after after the csv parser ?

MikeP
New Contributor II

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
image

Hence why I thought the expressions I mentioned initially would work.

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 ?

MikeP
New Contributor II

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!