Hi, first I must say this is great ISO8583 framework. Can you please answer me a couple of questions?
Can LLBIN type be used for variable length numeric fields (BCD encoded)? My ISO messages are binary.
In my case length header for BCD encoded variable length numeric fields shouldn't be BCD encoded, just Hex value.
Also length for variable length numeric field shouldn't be number of bytes but number of nibbles. 4445123456781234 has length of 8 bytes, but my length header should be 16, actually 10 in HEX, so finally it would be 104445123456781234.
I made this work by doing following:
a) in IsoValue.write (line 268) I replaced
outs.write((((length % 100) / 10) << 4) | (length % 10)); with outs.write((byte)(length*2));
b) in LlbinParseInfo.parseBinary (line 91) I replaced
length = (((buf[pos] & 0xf0) >> 4) * 10) + (buf[pos] & 0x0f); with length = buf[pos]/2;
This works only for LLBN, haven't made same similar changes for LLLBIN couse I don't need it yet.
Do you know if I need to change anything else in code? Or do you know if this changes will have negative influence on some other functionality that I'm not aware of?
Thank you very much!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, first I must say this is great ISO8583 framework. Can you please answer me a couple of questions?
Can LLBIN type be used for variable length numeric fields (BCD encoded)? My ISO messages are binary.
In my case length header for BCD encoded variable length numeric fields shouldn't be BCD encoded, just Hex value.
Also length for variable length numeric field shouldn't be number of bytes but number of nibbles. 4445123456781234 has length of 8 bytes, but my length header should be 16, actually 10 in HEX, so finally it would be 104445123456781234.
I made this work by doing following:
a) in IsoValue.write (line 268) I replaced
outs.write((((length % 100) / 10) << 4) | (length % 10)); with outs.write((byte)(length*2));
b) in LlbinParseInfo.parseBinary (line 91) I replaced
length = (((buf[pos] & 0xf0) >> 4) * 10) + (buf[pos] & 0x0f); with length = buf[pos]/2;
This works only for LLBN, haven't made same similar changes for LLLBIN couse I don't need it yet.
Do you know if I need to change anything else in code? Or do you know if this changes will have negative influence on some other functionality that I'm not aware of?
Thank you very much!
Hi, i need same thing.
do you have any answers for this subject ?
thanks