Reg invalid representation in decimal

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
san_deep
Participant
Posts: 33
Joined: Wed Sep 27, 2006 6:10 am
Location: india

Reg invalid representation in decimal

Post by san_deep »

Hi,

I am gettting the following errors while running my job.

APT_CombinedOperatorController(2),1: Fatal Error: APT_Decimal::asIntegerS64: invalid representation in decimal; the leading nybble must be zero with odd precision.

I am getting with one of the stage variables( i came to this conclusion because when i removing the calculation inside this and passing the value 0 i am able to run the job).

My job design is

DS--->Transformer---->lkp----->Transformer------>DS.

I am doing look up on three sequential file and my mode is continue both for "Condition not met" and "Look up failure".
I am handling for null and empty value in the transformer for the columns which i am taking from reference links.

All values includede in to the calculations of stage variables and column derivations Decimal.

i had tried with environment variable:-
$APT_DECIMAL_INTERM_SCALE (20)
$APT_DECIMAL_INTERM_PRECISION(5)
just keep check on intermediate values.

waiting for info on this error.


[/code]
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Please post the data type, initialization expression and derivation expression for the stage variable in question.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
san_deep
Participant
Posts: 33
Joined: Wed Sep 27, 2006 6:10 am
Location: india

Post by san_deep »

Hi Ray,
The following are the stage variables.
The stage variable in bold is the one which on replacing by Zero my job is running fine.

Stage variable: StgStdPri (Decimal 12,5)
Derivation: StgDosPri

Stage variable: StgDosPri (Decimal 12,5)
Derivation: IF ToTrans.eoynpt=0 THEN '0' AND StgStdPri =0 ELSE ToTrans.dosnpt AND StgStdPri= ToTrans.eoynpt

Stage variable: StgMetQty (Decimal 12,5)
Derivation: IF ToTrans.eoynpt<>0 AND ToTrans.met_qty=0 THEN ToTrans.rx_mqty ELSE IF ToTrans.eoynpt<>0 AND ToTrans.met_qty<>0 THEN ToTrans.met_qty ELSE ToTrans.met_qty

Stage variable: StgAmtStdEoy( Decimal 12,5)
Derivation: StgAmtStdDos

Stage variable: StgAmtStdDos (Deciaml 12,5)
Derivation: IF ToTrans.eoynpt=0 THEN ToTrans.amt_eqv AND
StgAmtStdEoy= ToTrans.amt_eqv ELSE StgMetQty* ToTrans.rx_cf* StgDosPri AND StgAmtStdEoy= StgMetQty* ToTrans.rx_cf* StgStdPri


Even i tried with higher decimal values up to (27,5) [both in stage variable & column derivation] just to take care of the overflow of the calculated value.

Hope to get some info.

Thanks for your time.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

It's not really clear that this is the source of the problem. To isolate the location can you please run with operator combination disabled in the Transformer stage or in the job?
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
san_deep
Participant
Posts: 33
Joined: Wed Sep 27, 2006 6:10 am
Location: india

Post by san_deep »

Hi Ray,

i tried with that.
I used the $APT_DISABLE_COMBINATION and setting its value to true.

After using this i am getting the fatal error as APT_Decimal:Compare -Left hand side decimal has an invalid representation.

please tell me if you need any other information.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

I think the derivations of StgDosPri stage variable may be the issue here - they are generating logical values. The best way I can illustrate this is by rearranging its derivation expression.

IF ToTrans.eoynpt=0
THEN ('0' AND StgStdPri=0)
ELSE (ToTrans.dosnpt AND StgStdPri=ToTrans.eoynpt)

Now, what did you really mean for this to produce?
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
san_deep
Participant
Posts: 33
Joined: Wed Sep 27, 2006 6:10 am
Location: india

Post by san_deep »

Hi,

Thanks a lot Ray for your info.

I am now able to run the job.

I just want to put the details of the back tracking this issue as it can be helpful for some one else facing similar kind of problem.

After checking that the logic is working fine, we thought of two options:-
1. Either the data we are getting is wrong.
2. The data set is corrupted or the cloumn used in the Stage variable calculation is not correctly populated.


We recreated the dataset and made a couple of changes ( we trimmed the value and null is handled with zero population) for the Column derivation used in the stage variable.

And one more i am not using $APT_DISABLE_COMBINATION any more.

thanks.
Post Reply