I've used this before and I got it to work. Try Array ppoRows = null instead of object ppoRows = null. Otherwise try using a configuration name instead of "@". I occasionally got BOMs with no rows in that config but I didn't get that exception.
This is the first time I am using the EPDM API and I managed to get it to work as I was using the wrong layout name ("BOM" : 11 lines above the line throwing an error) and the bomView object was not being populated. Once I changed to the correct layout name that I created in the Admin console, it populated the object with the correct information.
Thanks for your help though. Much appreciated.