EDI电子数据交换中的ICN是什么?
在EDI术语中,ICN# 的全称为Interchange Control Number,是文件的发送方分配的唯一标识符,可以识别每一个文件。
我们常见的符合X12和EDIFACT报文标准的文件中,ICN#分别指的是ISA13和UNB06,如下示例:
X12标准:
1 | ISA*00* *00* *ZZ* *ZZ* *230511*1225*U*00401*000000004*0*T*:~ |
ISA13表示ISA段中第13个和第14个之间的数据,该文件的ICN#为000000004。
EDIFACT标准:
1 | UNB+UNOB:3+ + +230511:1405+000000004++++++' |
UNB05表示的是UNB段中第5个+和第六个+之间的数据,该文件的ICN#为000000004。
修改ICN的常见场景
交易伙伴要求不同的报文/工厂等的头部信息不一样,所有报文的Interchange control number都不能重复或者升级后需要interchange control number与升级前保持一致,该如何解决呢?
要想解决Interchange control number不能重复或者是需要实现修改前后保持一致的问题,可以对Interchange control number进行自定义的修改。在知行之桥EDI系统中,可以控制不同端口的interchange control number的起始值。
由于interchange control number是一个长度为9位的数字,每次生成一个interchange信息时,知行之桥的每个 EDI 端口会各自按顺序自动生成一个数字。在知行之桥EDI系统中,当你新建一个X12或者EDIFACT端口,interchange control number默认的起始值都是000000001。如果需要控制该数字的起始值,可以按以下操作:
知行之桥EDI系统2023.net版本修改方法:
打开软件安装目录下的db文件夹,可以看到如下几个数据库:
打开名为app_storage.db的数据库后,找到要修改的EDI端口,示例如下:
1)EDIFACT端口(端口ID为EDIFACT_ICNTEST):修改UNBInterchangeControlNumber对应的值:
如上图所示,UNBInterchangeControlNumber的值为4,我们可以回到知行之桥EDI系统中,点击查看端口ID为EDIFACT_ICNTEST的EDIFACT端口中最近发出的文件:
以ORDRSP.edi为例,点击这个文件即可预览:
可以看到上图中,interchange control number为000000004,与我们在数据库中查询的结果一致。
接下来我们将interchange control number的值修改为100000000,如下图所示:
此时在EDIFACT端口上传四个测试文件,按照我们设定的参数,这几个文件的interchange control number应该是从100000000开始自增的。我们在EDIFACT的输入选项卡下预览这几个文件:
可以看到修改参数之后,发送新的文件时,interchange control number是由我们新设定的100000000开始自增。我们可以根据时间的文件量,将这个参数设置为任意一个9位数。
2)X12端口:修改ISAControlNumber和GSControlNumber对应的值
如上图所示,ISAControlNumber以及GSControlNumber的值为4,我们可以回到知行之桥EDI系统中,点击查看端口ID为X12_ICNTEST的EDIFACT端口中最近发出的文件:
以856.x12为例,点击这个文件即可预览:
可以看到上图中,interchange control number为000000004,与我们在数据库中查询的结果一致。
接下来我们将数据库文件中的ISAControlNumber以及GSControlNumber的值修改为200000000,如下图所示:
此时在EDIFACT端口上传四个测试文件,按照我们设定的参数,这几个文件的interchange control number应该是从200000000开始自增的。我们在EDIFACT的输入选项卡下预览这几个文件:
可以看到修改参数之后,发送新的文件时,interchange control number是由我们新设定的200000000开始自增。我们可以根据时间的文件量,将这个参数设置为任意一个9位数。
需要注意的是,在修改interchange control number的时候,需要评估各个端口的文件量,在修改时可以把参数适当的设置大一些,以免出现由于文件量过大而导致再次出现重复ICN的情况。
JAVA版修改方法:
打开安装路径下的db文件夹,打开 derby数据库 app_storage。(可下载到本地后打开)
打开数据库后找到要修改的EDI端口
1)EDIFACT端口:修改UNBInterchangeControlNumber对应的值
2)X12端口:修改ISAControlNumber和GSControlNumber对应的值
修改完成后,打开知行之桥,重新在EDIFACT/X12端口上传XML 生成EDI 后可以看到Interchange control number已从设定的值开始自增了。
了解更多 EDI 信息,请参阅: EDI 是什么?
阅读原文