- Tableau will first try look if $metadata is available. If it is, it will try use that to get the metadata.
- Otherwise, as you mentioned, it will use the first row to guess the metadata. It will ignore any other fields that's not in that first row.
I can't think of a way of getting all the properties at the moment. I assume that you are simply the odata feed consumer? (If you're the producer/implementator, simply stick all fields into the first row).
I hope that helps or at least clarify things.
Yes, I am the consumer of the OData. But this is helpful, I can talk to our engineer now. Thank you.