如何读懂EDIFACT报文?
很多客户在进行EDI项目的时候,想要了解如何看懂EDIFACT报文中的数据,今天的文章就带大家学习EDIFACT报文的结构,以及如何才能获取到需要的数据。
首先,我们先来了解一下EDIFACT报文的结构,如下图所示:
一次EDI传输包含一段Interchange(必须有),Interchange中会包含一个或多个Functional Group(简称FG),FG段是否出现并不做强制要求,一个FG中可能会包含一个或多个Message。举例来说,如果需要在一次EDI传输中传送3个ORDERS采购订单,那么报文结构为一个Interchange下包含3个Message。
对报文结构有了基本的了解之后,我们再来看下如何从报文中获取数据。以下是一段示例的ORDERS采购订单报文,每一行开头由3个字符组成,叫做Segment节点,代表特定的业务含义,例如BGM代表报文的开始以及一些主信息,DTM代表时间信息,NAD代表实体信息(buyer、seller、bill-to等),RFF代表一些参考信息,LIN代表订单行物料信息,QTY代表数量等。
接下来,以LIN行为例,LIN表示Segment起始信息,+是数据元素Element分隔符(也可根据情况设置为其他符号),:是子元素Subelement分割符,’是段Segment分割符。再来看业务含义:001为订单行号,0000057G3454为物料号,BP是有固定含义的限定符Qualifier,限定该物料号为买方物料号,如果限定符为VP即为销售方物料号。类似的限定符还有QTY段的PCE,限定物料数量单位。
最后我们来详细地解析这一条ORDERS数据,假如我们要获取以下数据(只列举了部分信息段):
例如,我们要从报文中获取订单号以及订单日期,根据以上表格可以得知会出现在BGM以及DTM段,我们直接在报文中定位到该行,便可得知订单号为K12345、订单日期为19980626。其他的信息可以使用同样的方法获取,如下图:
以上就是基本的阅读EDIFACT报文以及获取业务数据的方法,虽然我们可以直接从EDIFACT报文中读取到数据,但相信大家可以感受到人工阅读EDIFACT报文,并从中提取数据是非常麻烦的。报文设计的初衷是为了方便计算机处理,不过直接阅读报文对于开发人员来说也是有意义的,可以用来对比收到的数据与原始数据是否一致。但对于ERP用户或者业务团队来说,很显然并不需要去读原始的EDIFACT报文,只需阅读EDI供应商解析后的数据。EDI在整个数据交换的流程中扮演的更多的是一个传输、翻译的角色。
知行之桥中的EDIFACT端口,可一步完成EDIFACT报文的解析或生成,方便将EDIFACT数据同步到不同的业务系统中,可点击EDIFACT端口查看EDIFACT端口详解,欢迎下载试用。
文章中讲解的ORDERS报文只是EDIFACT标准中一种简单的类型,还有很多种结构不同的报文,大家可以利用今天讲解的方法尝试地去读懂其他的报文,如果有任何疑问,请联系我们。
更多EDI信息,请参阅: EDI是什么?
阅读原文
如何读懂EDIFACT报文?相关推荐
- 如何读懂EDIFACT报文
很多客户在进行EDI项目的时候,想要了解如何看懂EDIFACT报文中的数据,今天的文章就带大家学习EDIFACT报文的结构,以及如何才能获取到需要的数据. 首先,我们先来了解一下EDIFACT报文的结 ...
- 如何读懂交易伙伴的EDI需求
很多客户在第一次收到交易伙伴发来的EDI需求时,往往是一头雾水的,有很多没有见过的专业名词,想要推进项目进程但是却无从下手.那么今天这篇文章就带大家简单了解下,在拿到EDI需求之后,如何从中提取出关键 ...
- 一文读懂HTTP/2及HTTP/3特性
前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一. 虽然 ...
- 串口通信 校验码_一文读懂S7-200 SMART自由口通信!
学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信: 1)modbus RTU通信 2)PPI协议通信 3)USS协议通信 4)自由口通信 何为自由口通信呢? 前三种通信必须要 ...
- 解析.DBC文件, 读懂CAN通信矩阵,实现车内信号仿真
通常我们拿到某个ECU的通信矩阵数据库文件,.dbc后缀名的文件. 直接使用CANdb++ Editor打开,可以很直观的读懂信号矩阵的信息,例如下图: 现在要把上图呈现的信号从.dbc文件中解析出来 ...
- 一文读懂元数据管理!
原文:一文读懂元数据管理! - 知乎 数字化时代,企业需要知道他们拥有什么数据,数据在哪里.由谁负责,数据中的值意味着什么,数据的生命周期是什么,哪些数据安全性和隐私性需要保护,以及谁使用了数据,用于 ...
- 网络编程之一文读懂什么是IPv6
网络编程之一文读懂什么是IPv6 复习一下什么是IPv4? IPv6又是什么? 为什么要使用IPv6? IPv6会带给我们什么? IPv6的优点这么多,为什么之前普及却这么慢? NAT这类技术,让IP ...
- 一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等
1.引言 关于"负载均衡"的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务. 负载均衡(Load ...
- 网络编程懒人入门(十一):一文读懂什么是IPv6
本文同时发布于"即时通讯技术圈"公众号,链接是:https://mp.weixin.qq.com/s/cS5xB2DrjF52rmz6EGVJ6A. 本文参考了公众号鲜枣课堂的&q ...
最新文章
- springboot_4 spring boot 使用servlet,filter,listener和interceptor
- SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)...
- 敏捷转型该怎么转?来看看这本书怎么说的吧
- 腾讯物联网开发者社区平台Tencent Things Network发布 让IoT应用开发快速安全
- PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
- 关于数据库中的锁,你不知道的是...
- iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
- HttpClient 模拟登录网易微博
- 虚拟机mysql创建一个表_MySQL:创建、修改和删除表
- BP神经网络之BP算法手写推导
- 评价模型的常用方法——精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
- html上绑定回车事件,js/jquery中input 绑定回车enter事件的代码
- python 正数变成负数_Python基础之位运算符(含原码反码补码的通俗解释)
- 大数据解读:穹顶之下,谁在关注雾霾
- DM8 控制文件转换为文本文件
- python能参加奥赛吗-信息竞赛一定要python吗
- 前端开发:v-if和v-for的优先级详解
- java拨号上网_华为AR路由器AR207-S配置pppoe拨号上网图解实例
- python全栈开发103_python全栈开发day103-python垃圾回收机制、mro和c3算法解析、跨域jsonp\CORS、Content-Type组件...
- 诺基亚wp手机安装linux,诺基亚惊世发布WP8系统新机——Lumia 920
热门文章
- iOS中获取WiFi的SSID(CNCopySupportedInterfaces())
- Android自定义键盘
- ThinkPHP3.0主入口配置,注册、登录案例
- matlab频谱分析中振幅的物理意义,对速度信号进行傅里叶谱分析之后,其纵坐标对应的幅值的物理意义是什么?是速度,还是振幅...
- 基于视词袋模型的场景识别
- [1005]pika 线程不安全
- 数学-快速心算:快速心算
- python去掉json中的转义符_企业微信表情符自动转义怎么用?企业微信电脑版这样做...
- 安卓手机主题软件_安卓手机赚钱软件
- 江苏省计算机一级考试试题库,2016年江苏省-计算机一级考试.试题-