|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Sign EBCDIC Custom Overpunched |
« View previous topic :: View next topic » |
Author |
Message
|
jdelcid72 |
Posted: Mon Nov 10, 2008 9:27 am Post subject: Sign EBCDIC Custom Overpunched |
|
|
Newbie
Joined: 10 Nov 2008 Posts: 3
|
Hello... I'm having trouble with EBCDIC signed numbers.
I'm receiving data from iSeries RPG program on a queue that has some "decimal" values on a TDS string, for example, say I asked for an account ballance:
Code: |
0104652Joe Smith 0000150000 |
In XML this would be:
Code: |
<Account>
<Number>0104652</Number>
<Name>Joe Smith</Name>
<Ballance>1500.00</Ballance>
</Account> |
The TDS structure would be:
Code: |
Account (complex type)
Number (type: string, length: 7)
Name (type: string, length: 15)
Ballance (type: decimal, length: 10, virtual decimal point: 2) |
My problem is that only negative numbers are sent with the EBCDIC Custom Overpunched encoding. For example if the account ballance is -450.71 (negative fourhundred fifty and seventyone cents) it sends:
Code: |
0108812Albert Young 000004507J |
So, if I set the physical type in the message set to "External Decimal" and check "Sign EBCDIC Custom Overpunched", negative numbers work just fine... but, positive nombers can't be parsed, since they are not encoded!
Any help would be appreciated.
-Juan Gabriel Del Cid |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Nov 10, 2008 2:16 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Is this overpunching a mixture between pic 9(x) and pic 9(x) comp-3??  _________________ MQ & Broker admin |
|
Back to top |
|
 |
kimbert |
Posted: Mon Nov 10, 2008 3:05 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
There is no setting in either the CWF or TDS physical format to do what you require. I suggest that you model the field as a string, and then convert the value yourself using ESQL or Java. |
|
Back to top |
|
 |
jdelcid72 |
Posted: Mon Nov 10, 2008 3:16 pm Post subject: |
|
|
Newbie
Joined: 10 Nov 2008 Posts: 3
|
Well, I'm not sure what the unsigned version would be, but, the signed version is "PIC S9(08)V99"... then again, this is for COBOL. The RPG declaration is simply:
And, yes... the problem is it prints normal (or pic 9(x) as you say) positive numbers and encoded (pic 9(x) com-3) negative numbers instead of printing all of them encoded.
Either that or message broker needs to parse normal non-encoded numbers as positive ones.
Thanks for your time,
-JG |
|
Back to top |
|
 |
jdelcid72 |
Posted: Mon Nov 10, 2008 4:03 pm Post subject: |
|
|
Newbie
Joined: 10 Nov 2008 Posts: 3
|
kimbert wrote: |
There is no setting in either the CWF or TDS physical format to do what you require. I suggest that you model the field as a string, and then convert the value yourself using ESQL or Java. |
I did this already, but, it seems to me that this is precisely why there's an "External decimal" physical type for decimal values and the "EBCDIC Custom Overpunched".
It's something very common in the iSeries world and since message broker interacts with legacy sysems... this is not customized behavior on the iSeries side, mind you. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|