Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi talend folks,
How to multiply big decimal number with -1 value.
My column name is data (big decimal).
data column value like (344.0,344.0).
I want to multiply below calculation in tmap.
calculation:
Case when ART = 'R' and SOLL = 'S' then data *- 1
when ART = 'R' and BEN = 'S' then data
else 0
kindly share your information.
Hi,
Assuming your data flow is called row71, fields are named as in your question and data datatype is BigDecimal, here is the solution:
(row71.ART == 'R' && row71.SOLL == 'S') ? row71.data.multiply(new BigDecimal(-1)) : (row71.ART == 'R' && row71.BEN == 'S') ? row71.data : (new BigDecimal(0))
the tMap with the expression:
and the result for different values:
.---+----+---+----. | tLogRow_36 | |=--+----+---+---=| |ART|SOLL|BEN|data| |=--+----+---+---=| |R |S |S |-100| |R |X |S |100 | |R |X |X |0 | |X |X |X |0 | '---+----+---+----'
Hi,
Assuming your data flow is called row71, fields are named as in your question and data datatype is BigDecimal, here is the solution:
(row71.ART == 'R' && row71.SOLL == 'S') ? row71.data.multiply(new BigDecimal(-1)) : (row71.ART == 'R' && row71.BEN == 'S') ? row71.data : (new BigDecimal(0))
the tMap with the expression:
and the result for different values:
.---+----+---+----. | tLogRow_36 | |=--+----+---+---=| |ART|SOLL|BEN|data| |=--+----+---+---=| |R |S |S |-100| |R |X |S |100 | |R |X |X |0 | |X |X |X |0 | '---+----+---+----'
Thank you @TRF