Six Stars

Validating Decimal with precision

Hi,

 

I have a requirement to validate the incoming message with the schema and one on the column has a decimal element.

 

My design has tfileInputdelimited --> tuniqrow-> tschemacompliancecheck ->tmap->toracleoutput

 

Initially, I defined my schema in tfileInputdelimited with length and defined the decimal column as float with length and precision. And i tried to validate all the columns in tschemacompliancecheck. It is not validating the decimal. My precision is 2, but i sent a data with 10 digits after decimal point and it still passes sucessfully.

 

Then i tried to validate the data at the tfileinputDelimited by defining the column as bigdecimal, but even that didn't work. Whatever number of digits i send after point, is treated sucessfully.

 

I played with option like (Advanced seprator for number, Double data format etc) but nothing is validating the precision.

 

Could you guys share your thoughts on this point.

 

Thanks

Sen

4 REPLIES
Thirteen Stars TRF
Thirteen Stars

Re: Validating Decimal with precision

Hi,

Format (length and precision) doesn't matter for content validation.

However, you should use a tFilterRow component to control which values are valid and which aren't.


TRF
Six Stars

Re: Validating Decimal with precision

Hi TRF,

 

Excuse-me, but i am not able to understand, what could be done with tfilterRow here. Use the Advanced option and parse the incoming as a doube with precision and then route accordingly?

 

tschemacompliancecheck would not validate the length for decimals ? because, i will have add a tfilterRow just for this decimal column..

 

Thanks

Sen

Thirteen Stars TRF
Thirteen Stars

Re: Validating Decimal with precision

Hi,
You can use tFilterRow to control min and max values. So, if you have 10 digits after the decimal point where you expect just 2 and those digits are greater than 0, then tFilterRow will reject the corresponding record.
That's what you expect, no?

TRF
Six Stars

Re: Validating Decimal with precision

Hi

 

Yes, This is what i want to do.

 

You suggest to do this advanced mode in filterrow using java program ? because lets say for example if I receive a decimal 55.182048495449, and if i validate if its less than 9999999.99 , it would pass.

 

I don't see an option in normal mode to count the number of digits after the decimal point and validate if they are greater than 0. Just wanted to check if i am missing something, else would write a java code in advanced mode.

 

Thanks