什么是APERAK?
APERAK(Application error and acknowledgement message)是由消息接收方发出的应用程序错误和确认信息。其目的是:
a) 通知消息发送方他的消息已经被消息接收方收到,由于业务系统在处理过程中遇到错误,已被拒绝。
b) 向消息发送方确认消息已被接收方收到。
APERAK 报文中主要包含哪些信息?
主要包含的信息如下:
- 文件错误日期
- 错误描述
- 发票日期/发货日期
- 发票号/发货编号
- 名称以及地址信息
- 自由文本
APERAK 报文结构如下:
位置标记名称 SR
0010 UNH消息头 M 1
0020 BGM信息开头 M 1
0030 DTM日期/时间/周期 C 9
0040 FTX自由文本 C 9
0050 CNT控制总量 C 9
0060 ----- 段组 1 ------------------ C 99----------+
0070 DOC文档/消息详细信息 M 1 |
0080 DTM日期/时间/周期 C 99----------+
0090 ----- 段组 2 ------------------ C 9------------+
0100 RFF参考 M 1 |
0110 DTM日期/时间/周期 C 9------------+
0120 ----- 段组 3 ------------------ C 9------------+
0130 NAD名称和地址 M 1 |
0140 CTA联系信息 C 9 |
0150 COM通讯接点 C 9------------+
0160 ----- 段组 4 ------------------ C 99999------+
0170 ERC应用错误信息 M 1 |
0180 FTX自由文本 C 1 |
|
0190 ----- 段组 5 ------------------ C 9----------+|
0200 RFF参考 M 1 ||
0210 FTX自由文本 C 9------------++
0220 UNT消息尾部 M 1
APERAK常见的几种应用场景
1.针对DESADV发货通知发出的APERAK
如果A公司发给B公司的DESADV被B公司的应用系统检测到数据错误,B公司将会给A公司发送一个APERAK。这将意味着此DESADV发货通知还没有加载到B公司的应用系统中,A公司需要确认是否提交一份更正的DESADV发货通知。
2.针对INVOIC发票发出的APERAK
如果A公司发给B公司的INVOIC发票被B公司的应用系统检测到数据错误,B公司将会给A公司发送一个APERAK。这将意味着此INVOIC发票还没有加载到B公司的财务系统中,A公司需要更正并重新发送带有相同发票号的INVOIC发票。
示例报文
APERAK for DESADV failure:
UNB+UNOA:1+SENDERID:1+RECEIVERID:1+150715:0115+1++APERAK
UNH+1+APERAK:D:97A:UN
BGM+:::APPLICATION ACKNOWLEDGEMENT+20150715+11
DTM+97:20150714:102
RFF+SI:22222222
DTM+11:20150714:102
NAD+SF+123456CITY00
NAD+ST+123
ERC+012::116
FTX+AAO+3++ERROR DESCRIPTION
UNT+10+1
UNZ+1+1
对于DESADV发货通知可以通过RFF字段进行识别,根据发货单号方便定位到具体的某一个DEASDV发货通知:
RFF+SI:22222222
APERAK for INVOIC failure: :
UNB+UNOA:1+SENDERID:1+RECEIVERID:1+150720:1002+1++APERAK
UNH+1+APERAK:D:97A:UN
BGM+:::APPLICATION ACKNOWLEDGEMENT++11
DTM+97:20150719:102
RFF+IV:99999999
DTM+3:20150719:102
NAD+SF+123456
NAD+ST+CBS
ERC+830::116
FTX+AAO+3++ ERROR DESCRIPTION
UNT+10+1
UNZ+1+1
对于INVOIC发票可以同样通过RFF字段进行识别,根据发票号方便定位到具体的发票:
RFF+IV:99999999
以上信息中,需要注意 ERC 应用错误信息字段,在上述两个示例中,ERC01分别取值如下:
ERC+012::116
ERC+830::116
其中 012和830为应用错误信息代码,其代表的含义分别为:
- 012 Invalid Combination无效组合
- 830 Refused By Payee 被收款人拒绝
ERC01字段的可能取值还包括:
- 003 Duplicate Billing重复计费
- 007 Missing Data 缺少数据
- 008 Out of Range超出范围
- 009 Invalid Date 无效日期
- 010 Total Out of Balance结余总额
- 011 Not Matching 不匹配
- 013 Duplicate ASN重复ASN
- 802 Invalid Debit or Credit Flag Code 无效的借记或贷记标志代码
- 848 Incorrect Data 数据不正确
- CUR Invalid Currency Code 无效的货币代码
- INC Incomplete Transaction 未完成的交易
- IQT Invalid Quantity 无效数量
- P Missing or Invalid Item Quantity 缺少或无效的项目数量
- POI Purchase Order Number Invalid 采购订单编号无效
- Q Missing or Invalid Item Identification 缺少或无效的物品标识
- QTY Quantity 数量
- UNP Invalid Unit Price 无效单价
注意事项
1.APERAK 遵循EDIFACT国际标准,而在X12标准中,扮演类似角色的是 EDI 824报文。
2.APERAK有时会和 CONTRL相互混淆,CONTRL 报文会告知发送方其文件的语法是否正确,而 APERAK 则告知发送方消息是否已被内部应用程序或 ERP 系统正确处理。
解决方案
作为发送方,可以将已有的Excel、CSV格式转换为APERAK报文,如图所示,是一个生成APERAK报文的工作流:
以Excel方案为例,用户可以填写好Excel格式的报文信息,直接将其作为附件发送至指定邮箱,知行之桥EDI系统将会抓取该邮箱下的附件,进入EDI系统后,将数据解析为XML格式,并进一步转换成符合EDIFACT国际标准的APERAK报文,通过AS2或者SFTP等方式上传至交易伙伴的EDI系统中。
作为接收方,知行之桥EDI系统可以将接收到的APERAK报文转换为可读性更强的文件格式,或者是直接将数据传输至企业的业务系统中。如图所示,是一个解析APERAK报文进入中间数据库的工作流:
我们以通过AS2接收文件为例,首先需要通过AS2与交易伙伴搭建好EDI传输通道。接下来通过EDIFACT 端口将接收到的APERAK报文解析为XML,通过XMLMap端口转换至数据库XML,最后通过数据库端口即可将数据插入至数据库,供后端系统使用。
如果大家有关于EDI的任何疑问或者希望了解更多的EDI相关信息,欢迎联系知行软件。
更多EDI信息,请参阅: EDI电子数据交换全解指南
阅读原文