什么是APERAK?

news2024/12/28 20:41:06

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电子数据交换全解指南

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用tushare数据画疫情感染人数地图

总是看到网上有各种各样的可以用地图来展示某一地区的情况,如GDP的增速、人口的变化等,于是就想想这个问题是否能用python来实现,经查阅资料发现,用python来画地图其实也并不难,做好数据和地图的关联就可以实现。 一、…

移动WEB开发之响应式布局--响应式开发

响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。 响应式布局容器 响应式需要一个父级做为布局容器,来配合子级元素来实现变化效果。 原理就是在不同屏幕下,通过媒体查询来改变这个布局…

洞察市场需求,深耕大健康赛道,缤跃酒店打造一站式运动酒店品牌

近期,人民数据研究院发布《2022全民跑步运动健康报告》,报告中显示参与跑步人群的年龄跨度随着社会对跑步运动不断攀升的热情而增加。现代生活节奏加快、竞争压力大使得部分中青年通过运动寻求解压,2022年18-40岁的跑者开始成为中坚力量&…

一文搞懂测试左移和测试右移的 Why-How-What

1080306 6.35 KB 软件测试技术应当贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其核心目标是尽快尽早地发现软件产品中所存在的各种问题 bug—— 与用户需求、预先定义的不一致性。 然而,传统…

ElasticSearch——刷盘原理流程

ElasticSearch——刷盘原理流程刷盘原理流程名词和操作解释相关设置刷盘原理流程 整个过程会分成几步: 数据会同时写入buffer缓冲区和translog日志文件buffer缓冲区满了或者到时间了(默认1s),就会将其中的数据转换成新的segment并…

【JavaEE】Java 线程的几种状态

目录 一、线程状态的种类及含义 二、线程状态间的切换条件 (1)使用isAlive()判断线程的存活状态 (2)关于BLOCKED、WAITING、TIMED_WAITING状态之间的转换 1.TIMED_WAITING 2.WAITING 3.BLOCKED 4.jconsole.exe的使用方式…

当 chatGPT 被职场 PUA ,笑麻了!

大家最近是不是被 chatGPT 刷屏了?简单来说,chatGPT 是一个智能聊天引擎。 那 chatGPT 和小爱同学、 siri 有什么区别呢? 如果体验过的朋友,能感受到区别还是很大,chatGPT 的智能表现过于优秀,远远超过了这…

【C++】STL-string模拟实现

文章目录驼峰法命名面试题:写一个简洁版的stringstring成员变量构造函数析构函数拷贝构造函数获取C形式的字符串 c_str赋值重载 operator简易版代码:string的改造 ->支持增删查改接口总览string成员变量构造函数交换拷贝构造赋值重载operator析构函数返回元素个数…

Python图像识别实战(四):搭建卷积神经网络进行图像二分类(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。 从本期开始,我将做一个关于图像识别的…

大疆A3飞控使用|飞控配置

大疆A3飞控使用|飞控配置大疆A3飞控介绍总体特性飞行特性外围设备保护功能SDK拓展拓展功能A3 飞控使用配置连接飞机基本设置机架安装遥控器电调动力配置感度电池控制参数调试基础感度动力带宽高级感度灵敏度控制器性能参数大疆A3飞控介绍 全新A3系列飞控系统结合安全可靠和精准…

【虹科案例】用于超高磁场的虹科 digitizerNETBOX——高采样率和完全同步采样

应用背景 国际 MegaGauss 科学实验室是东京大学固态物理研究所 (ISSP) 的一部分。实验室的目的是研究固态材料(如半导体、磁性材料、金属、绝缘体、超导材料)在超高磁场下的物理特性,这些领域还包括研究新材料并控制其阶段和功能。实验室脉冲…

百度工程师带你体验引擎中的nodejs

作者 | 糖果candy 导读 如果你是一个前端程序员,你不懂得像PHP、Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择。 Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那…

【Kotlin 协程】Flow 异步流 ③ ( 冷流 | 流被收集时运行 | 流的连续性 )

文章目录一、冷流 ( 流被收集时运行 )二、流的连续性一、冷流 ( 流被收集时运行 ) Flow 异步流 的 构建器函数 flow 函数 中的 代码 , 在 调用 Flow#collect 函数 时 , 也就是在 Flow 异步流 收集元素时 , 才会 执行 flow 构建器 中的代码 ; 这种机制的异步流 称为 冷流 ; 代…

移动WEB开发之响应式布局--Bootstrap栅格系统

栅格系统简介 栅格系统英文为“grid systems”,也有人翻译为“网格系统”,它是指将页面布局划分为等宽的列,然后通过列数 的定义来模块化页面布局。 Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(vi…

spring-statemachine状态机梳理

目录 一、基本回顾 1、为什么要用状态机 2、什么是状态机 3、状态机可归纳为4个要素 4、对应Spring StateMachine的核心步骤 5、简单例子 添加maven依赖 定义状态枚举和事件枚举 完成状态机的配置 简单测试一下 添加Listener 监听器,当状态变更时,触发方…

1. SpringMVC概述与入门

1. SpringMVC简介 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点 使用简单,开发便捷(相比于Servlet)灵活性强 2. 入门案例 2.1 实现步骤分析 1 创建web工程(Maven结构) 2 设置tomcat服务器,加…

Qt属性系统(Qt Property System)

Qt提供了巧妙的属性系统,它与某些编译器支持的属性系统相似。然而,作为平台和编译器无关的库,Qt不能够依赖于那些非标准的编译器特性,比如__property 或者 [property]。Qt的解决方案能够被任何Qt支持的平台下的标准C编译器支持。它…

Kafka工作流程简介

消息传递模式简介: 一个消息系统负责将数据从一个应用程序传递到另外一个应用程序中,应用程序只关注数据,无需关注数据在多个应用之间是如何传递的。 分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。 消息传递有…

MySQL面试常问问题(日志) —— 赶快收藏

目录 1.MySQL日志文件有哪些?分别介绍下作用? 2.binlog和redo log有什么区别? 3.一条更新语句怎么执行的了解吗? 4.那为什么要两阶段提交呢? 5.redo log怎么刷入磁盘的知道吗? 1.MySQL日志文件有哪些&…

Typora配合PicGo阿里云图床配置

写博客的时候,刚开始直接在各大平台上直接写,后来还是觉得不太方便,需要在各大平台之间来回切换。于是就改用Typora,但是有个问题就是图片的处理,只能放在本地。想要发布到各大平台,就需要图床。本文结合阿…