【发布时间】:2020-09-23 22:01:17
【问题描述】:
我有几个字段会根据该字段的用途更改其定义。
例如F48定义为:
Variable Length, 1-byte binary + 255 bytes, variable by usage, max 256 bytes
一次处理一种用法很简单,例如用法 A 在规范和我的打包程序中定义:
Variable length, 1-byte binary + 255 bytes, EBCDIC, max 256 bytes
<isofield
id="48"
length="255"
name="ADITIONAL DATA - PRIVATE"
class="org.jpos.iso.IFB_LLHECHAR"/>
但另一种用法可以定义为
variable length, 1-byte binary + 4 N, 4-bit BCD
或者
variable length, 1-byte binary + 143 AN, EBCDIC
等等。我不太确定如何在我的通用打包程序中处理同一字段的多次使用。
我考虑过使用 isofieldpackager 将其视为子字段,然后根据我需要的用途,我只使用该子字段。
例如,使用A,我尝试过
<isofieldpackager
id="48"
length="255"
name="F48 ADDITIONAL DATA - PRIVATE"
emitBitmap="false"
firstField="0"
class="org.jpos.iso.IFB_LLHBINARY"
packager="org.jpos.iso.packager.GenericSubFieldPackager">
<isofield
id="0"
length="255"
name="ADITIONAL DATA - PRIVATE"
class="org.jpos.iso.IFB_LLHECHAR"/>
</isofieldpackager>
然后将该字段设置为 isoMSG.set("48.0", "This is my data"),这似乎在大多数情况下都有效,但是当它到达我的获取时,该字段的前缀有一些不可读的数据过程。
感谢您的帮助,如果您需要更多信息,请告诉我
【问题讨论】: