The characters E in 20976E , { represent some number notation. Something they call it zone…
Has anybody has any idea what this zone notation for numbering means… i am totally unaware of this and never heard of it. Searched the internet a little bit but did not find any info on it…
Hello,
I am not sure what this notation is but I would like to know the following:
Where are you getting the information from (System (hardware, software), OS platform, integration software generating this information, input type (invoice, shipping schedule, rma, …)
What is the correct information suppose to be.
I can guess at a translation for this but I don’t know its worth:
5016020976E00000000000 -> exponential notation for 5016020976
D7000000{000000{000000{000000{000000{000000{ -> decimal number (D) sequence of fixed length (7) delimited by “{”. So you could have
5016020976
0
0
0
0
0
0
But then This could be account numbers for a payroll or to say push ({) the following amounts of money (000000) for employee number “D7”.
Hope you can really supply some extra information as you see how impossible it is to solve without knowing the environment it is working from and into. Thank you.
Hi ybedu,
I am getting this flat file from a MainFrame system and those folks say that these special characters means some zone info for representing some numeric format. For Example:
256527H means - it is the hex equivalent of the zone - and the 8
So after conversion it has to come to 25652.78-
Similary i want to know what does 20976E , { mean ?
Hello Sreedhar,
I asked for the extra information in hopes that others would be clearer on your situation. Like I said, I have not directly encountered your situation and took the most intuitive approach I could find. I noticed you went from 256527H to 25652.78- and the “.78-” is something I could not make up. My attempted translation is 20976E to 2.0976 to 2.10 with rounding. I gave you my best attempt about the other data in the prior posting. Hopefully someone else will read into this read and have the exact answer or at least a better guess. If all fails just ask the mainframe folks to tell you exactly all the scenarios of data to output. Don’t worry if it makes you look bad in front of them, they will thank you later for getting the job done. Good day.
The easiest way around this is to have whomever is generating this file to change the format from say PIC S9(5)V99 to PIC +9(5).99 . I am assuming that the program generating this data is written in COBOL. This will put both your sign and your decimal point as a separate printable characters (and in this case change it from a 7 byte field to a 9). So instead of “256527H”, you would have “-25652.78”, which would be much easier to digest in webMethods.
I realize that the producer of this data may not be willing or able to modify the program, but if so, that would be the easiest way around your problem.
My mainframe COBOL is a little rusty, but I believe that is correct.
Roger - Your COBOL is not at all rusty. We are dealing with a similar scenario as well. I believe the PIC S9(5)V99 represents a signed decimal (positive or negative) with 5 integer values and a maximum of 2 decimal values.
As for the “H” in the last byte, this is an EBCDIC representation of an ASCII “-5” (negative 5). The other negative numbers you may come across are:
EBCDIC: {J, K, L, M, N, O, P, Q, R} which correspond to
ASCII: {-1, -2, -3, -4, -5, -6, -7, -8, -9}
Just to follow up, we implemented this approach to pass negative ASCII number to a COBOL PIC S9(5) data type. To add to the table above, an EBCDIC “{” (left bracket) corresponds to an ASCII negative number ending with “0”.
I know that’s really confusing so let me give examples. An ASCII “-21” looks like “2J”, ASCII “-22” looks like EBCDIC “2K”, etc. Now for the really goofy one … an ASCII “-20” would be an EBCDIC “2}”