OMG, I'm so sorry, please ignore. Its so simple, just had to use: row.remove( 'salesRankShortTerm' ); because the script runs at the end after the entire entity has been processed (I suppose) rather than per field.
Thanks! On Tue, Sep 20, 2011 at 5:42 PM, Pulkit Singhal <pulkitsing...@gmail.com> wrote: > The data I'm running through the DIH looks like: > > <products> > <product> > <new>false</new> > <active>false</active> > <regularPrice>349.99</regularPrice> > <salesRankShortTerm/> > </product> > </products> > > As you can see, in this particular instance of a product, there is no > value for "salesRankShortTerm" which happens to be defined in my > schema like so: > <field name="salesRankShortTerm" type="slong" indexed="true" stored="true" > /> > > Having an empty value in the incoming DIH data leads to an exception: > Caused by: java.lang.NumberFormatException: For input string: "" > > 1) How can I skip this field if its empty? > > If I use script transformer like so: > <script> > <![CDATA[ > function skipRow(row) { > var salesRankShortTerm = row.get( 'salesRankShortTerm' ); > if ( salesRankShortTerm == null || salesRankShortTerm == '' ) { > row.put( '$skipRow', 'true' ); > } > return row; > } > ]]> > </script> > THEN, I will end up skipping the entire document :( > > 2) So please help me understand how I can configure it to only skip a > field and not the document? > > Thanks, > - Pulkit >