Validating Decimal with precision

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

Forteen Stars TRF
Forteen 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

Forteen Stars TRF
Forteen 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