如何读懂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报文?
很多客户在进行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 ...
最新文章
- 【Vegas原创】“無法解析 equal to 動作的定序衝突”错误的处理
- 关于知识整理、积累与记忆
- java 终结此段代码并重新运行_Java垃圾回收
- 0xff00是65208
- loop设备及losetup命令介绍[转]
- 基础知识 | 对目标检测认识及理解
- python支付宝自动支付_python-支付宝支付示例
- iframe调用父页面方法_5.1 vue中子组件调用父组件的方法,务必理解自定义事件的重要性...
- 怎么把pdf文件转换成word文件
- 刚刚,Google 官方发布了 2 份编程指南,干货十足!
- TigerGraph集群安装
- SQL数据库置疑修复说明文档
- 晶振波形不是正弦波_求助各位!有源晶振出来的波形是方波还是正弦波?
- R导入excel数据
- 主板开启网络唤醒_电脑网络唤醒如何关闭?华硕路由网络唤醒?#TIL#网络唤醒(WOL)除了设置主板,还需要操作系...
- day14.逻辑运算,位运算
- 拿什么拯救炒币上瘾的你
- spring集成kafka运行时报错:Failed to construct kafka producer] with root cause
- centos7 卸载docker
- 两种方法分割python多空格字符串
热门文章
- 用简单算法去除图像抖动
- 六度人脉 全球最高效的人脉法则(图)
- 从超融合到混合云,深信服有了哪些新“畅想”?
- 休眠后电脑马上自动唤醒解决
- 学习 spring-cloud-aibaba第九篇,综合应用微信小程序《背诗词》
- python自学网站-杭州python自学网站
- 计算机二级office考试题库操作题,计算机二级考试MSOffice考试题库ppt操作题附答案...
- ConcurrentLinkedQueue使用和方法介绍
- 什么是机器学习,为什么它如此重要?
- 零基础入门C语言,只需2小时轻松学会!