(转) 报文格式【定长报文】

定长报文简介

       定长报文,是目前使用最广泛的报文,同时比较简单的报文格式。理解起来也较为简单,但定长报文也有自身的局限性。其中最大的问题在于,如果定义域的长度需要加长,这时候相关的配置与程序代码都需要进行相应的改变,所以维护很不方便。
       定长报文,就是使用固定的长度来表示一个信息。本报文格式常见于金融银行业,所以以银行开户场景为例说明,例如银行柜面开户时,需要记录开户人的姓名,假定用户名用30个字节来表示,这样应该就可以满足国人的需要,15个汉字长度。当然我们这里也有开户时间的需要,那我们假定为8位长度,格式为"YYYYMMDD"。这样我们在记录这些数据是可以使用30+8(38)长度报文。但是这样问题就来,如果我们后期改变了时间的格式“YYYY-MM-DD”,这样我们就不仅要调整定长的长度,还有更改程序去生成指定时间格式。举例包含两个域,如果定长报文含有多个域,并且后期更改的域格式有很多,这种情况就凸显了定长报文的局限性。
【转载使用,请注明出处:http://blog.csdn.net/mahoking

定长报文案例


简单定长报文

        以下是简单报文示例,以银行开户为例,本例选举了些基本的信息,示例即可。

       根据上表的信息我们就拼组报文了,报文如下:
“77778710001上山打老虎         12345678912345678920141022”
将这个报文发送给后台程序的时候,后台程序就根据以上表格中定义的标准,将接收到的报文进行解析,然后再进行处理。

带变长域的定长报文

       假定在20140811,发生交易金额为789.80和20141012,发生交易金额为1489.80,此时得到如下的报文:
“77778710001 02014081178980           20141012148980          ”
这样通过变长域,可以循环的输出重复字段,这样服务端也可以循环展示获取到的信息

原文地址:https://www.cnblogs.com/tzhyy/p/9466936.html